From 5d005c9ff87cb240b022c6bdb66b780e6369d2ab Mon Sep 17 00:00:00 2001 From: Iliyan Peychev Date: Tue, 19 Jul 2011 09:17:53 +0200 Subject: [PATCH 001/132] AUI-464 - fix AUI Image Viewer arrows class name generation --- src/aui-image-viewer/js/aui-image-viewer-base.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/aui-image-viewer/js/aui-image-viewer-base.js b/src/aui-image-viewer/js/aui-image-viewer-base.js index 299fd74ed9a..65e134a68d0 100644 --- a/src/aui-image-viewer/js/aui-image-viewer-base.js +++ b/src/aui-image-viewer/js/aui-image-viewer-base.js @@ -83,10 +83,6 @@ var L = A.Lang, return Array.prototype.slice.call(arguments).join(SPACE); }, - ESC = 'ESC', - RIGHT = 'RIGHT', - LEFT = 'LEFT', - getCN = A.getClassName, CSS_HELPER_SCROLL_LOCK = getCN(HELPER, SCROLL, LOCK), @@ -103,6 +99,10 @@ var L = A.Lang, CSS_IMAGE_VIEWER_LOADING = getCN(IMAGE_VIEWER, LOADING), CSS_OVERLAY_HIDDEN = getCN(OVERLAY, HIDDEN), + KEY_ESC = 'ESC', + KEY_RIGHT = 'RIGHT', + KEY_LEFT = 'LEFT', + MAP_RESET_DIMENSIONS = { height: AUTO, width: AUTO @@ -1306,13 +1306,13 @@ var ImageViewer = A.Component.create( return false; // NOTE: return } - if (event.isKey(LEFT)) { + if (event.isKey(KEY_LEFT)) { instance.prev(); } - else if (event.isKey(RIGHT)) { + else if (event.isKey(KEY_RIGHT)) { instance.next(); } - else if (event.isKey(ESC)) { + else if (event.isKey(KEY_ESC)) { instance.close(); } }, From ace60227064ed599cb221be1bd3dab507a6b829f Mon Sep 17 00:00:00 2001 From: Iliyan Peychev Date: Tue, 19 Jul 2011 09:18:28 +0200 Subject: [PATCH 002/132] AUI-464 - Build files --- .../aui-image-viewer-base-debug.js | 14 +++++++------- .../aui-image-viewer-base-min.js | 4 ++-- build/aui-image-viewer/aui-image-viewer-base.js | 14 +++++++------- build/aui-image-viewer/aui-image-viewer-debug.js | 16 ++++++++-------- build/aui-image-viewer/aui-image-viewer-min.js | 6 +++--- build/aui-image-viewer/aui-image-viewer.js | 16 ++++++++-------- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/build/aui-image-viewer/aui-image-viewer-base-debug.js b/build/aui-image-viewer/aui-image-viewer-base-debug.js index 99c59f03382..587bac4aa42 100644 --- a/build/aui-image-viewer/aui-image-viewer-base-debug.js +++ b/build/aui-image-viewer/aui-image-viewer-base-debug.js @@ -84,10 +84,6 @@ var L = A.Lang, return Array.prototype.slice.call(arguments).join(SPACE); }, - ESC = 'ESC', - RIGHT = 'RIGHT', - LEFT = 'LEFT', - getCN = A.getClassName, CSS_HELPER_SCROLL_LOCK = getCN(HELPER, SCROLL, LOCK), @@ -104,6 +100,10 @@ var L = A.Lang, CSS_IMAGE_VIEWER_LOADING = getCN(IMAGE_VIEWER, LOADING), CSS_OVERLAY_HIDDEN = getCN(OVERLAY, HIDDEN), + KEY_ESC = 'ESC', + KEY_RIGHT = 'RIGHT', + KEY_LEFT = 'LEFT', + MAP_RESET_DIMENSIONS = { height: AUTO, width: AUTO @@ -1307,13 +1307,13 @@ var ImageViewer = A.Component.create( return false; // NOTE: return } - if (event.isKey(LEFT)) { + if (event.isKey(KEY_LEFT)) { instance.prev(); } - else if (event.isKey(RIGHT)) { + else if (event.isKey(KEY_RIGHT)) { instance.next(); } - else if (event.isKey(ESC)) { + else if (event.isKey(KEY_ESC)) { instance.close(); } }, diff --git a/build/aui-image-viewer/aui-image-viewer-base-min.js b/build/aui-image-viewer/aui-image-viewer-base-min.js index 2d83f029c40..ef873a4b469 100644 --- a/build/aui-image-viewer/aui-image-viewer-base-min.js +++ b/build/aui-image-viewer/aui-image-viewer-base-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-image-viewer-base",function(aq){var aj=aq.Lang,aH=aj.isBoolean,Q=aj.isNumber,D=aj.isObject,aM=aj.isString,at=aq.Plugin.NodeFX,aV="anim",e="arrow",M="arrowLeftEl",i="arrowRightEl",aT="auto",aP="bd",S="blank",az="body",p="boundingBox",aE="caption",x="captionEl",aC="captionFromTitle",d="centered",f="close",ar="closeEl",H="createDocumentFragment",aD="currentIndex",aN="easeBothStrong",aK="footer",n="helper",ag="hidden",t="hide",aA="href",af="icon",E="image",w="imageAnim",aJ="image-viewer",aw="info",P="infoEl",ak="infoTemplate",b="left",ao="link",W="links",aI="loader",aS="loading",K="loadingEl",v="lock",o="maxHeight",aO="maxWidth",U="modal",I="offsetHeight",aL="offsetWidth",X="opacity",l="overlay",av="preloadAllImages",ai="preloadNeighborImages",aa="px",j="region",k="right",u="scroll",an="show",C="showArrows",aF="showClose",q=" ",ay="src",aB="title",m="top",O="totalLinks",V="viewportRegion",ac="visible",ap="ownerDocument",aR=function(A){return(A instanceof aq.NodeList);},aQ=function(){return Array.prototype.slice.call(arguments).join(q);},a="ESC",k="RIGHT",b="LEFT",z=aq.getClassName,Y=z(n,u,v),R=z(af,aS),y=z(aJ,e),am=z(aJ,e,b),aG=z(aJ,e,k),F=z(aJ,aP),ab=z(aJ,aE),B=z(aJ,f),ah=z(aJ,E),c=z(aJ,aw),aU=z(aJ,ao),ax=z(aJ,aS),r=z(l,ag),ae={height:aT,width:aT},g=document.createTextNode(""),T="Image {current} of {total}",al='',au='',s='
',h='',G='',Z='
',N='
',J='
';var ad=aq.Component.create({NAME:aJ,ATTRS:{anim:{value:true,validator:aH},bodyContent:{value:g},caption:{value:S,validator:aM},captionFromTitle:{value:true,validator:aH},centered:{value:true},currentIndex:{value:0,validator:Q},image:{readOnly:true,valueFn:function(){return aq.Node.create(G);}},imageAnim:{value:{},setter:function(A){return aq.merge({to:{opacity:1},easing:aN,duration:0.8},A);},validator:D},infoTemplate:{getter:function(A){return this._getInfoTemplate(A);},value:T,validator:aM},links:{setter:function(L){var A=this;if(aR(L)){return L;}else{if(aM(L)){return aq.all(L);}}return new aq.NodeList([L]);}},loading:{value:false,validator:aH},modal:{value:{opacity:0.8,background:"#000"}},preloadAllImages:{value:false,validator:aH},preloadNeighborImages:{value:true,validator:aH},showClose:{value:true,validator:aH},showArrows:{value:true,validator:aH},totalLinks:{readOnly:true,getter:function(A){return this.get(W).size();}},visible:{value:false},zIndex:{value:3000,validator:Q},arrowLeftEl:{readOnly:true,valueFn:function(){return aq.Node.create(al);}},arrowRightEl:{readOnly:true,valueFn:function(){return aq.Node.create(au);}},captionEl:{readOnly:true,valueFn:function(){return aq.Node.create(s);}},closeEl:{readOnly:true,valueFn:function(){return aq.Node.create(h);}},infoEl:{readOnly:true,valueFn:function(){return aq.Node.create(Z);}},loader:{readOnly:true,valueFn:function(){return aq.Node.create(N).appendTo(document.body);}},loadingEl:{valueFn:function(){return aq.Node.create(J);}},maxHeight:{value:Infinity,validator:Q},maxWidth:{value:Infinity,validator:Q}},EXTENDS:aq.OverlayBase,prototype:{_keyHandler:null,renderUI:function(){var A=this;A._renderControls();A._renderFooter();A.get(W).addClass(aU);},bindUI:function(){var A=this;var L=A.get(W);var aX=A.get(M);var aW=A.get(i);var aY=A.get(ar);aX.on("click",aq.bind(A._onClickLeftArrow,A));aW.on("click",aq.bind(A._onClickRightArrow,A));aY.on("click",aq.bind(A._onClickCloseEl,A));L.on("click",aq.bind(A._onClickLinks,A));A._keyHandler=aq.bind(A._onKeyInteraction,A);aq.getDoc().on("keydown",A._keyHandler);A.after("render",A._afterRender);A.after("loadingChange",A._afterLoadingChange);A.after("visibleChange",A._afterVisibleChange);},destructor:function(){var A=this;var L=A.get(W);A.close();L.detach("click");L.removeClass(aU);aq.getDoc().detach("keydown",A._keyHandler);A.get(M).remove(true);A.get(i).remove(true);A.get(ar).remove(true);A.get(aI).remove(true);},close:function(){var A=this;A.hide();A.hideMask();},getLink:function(L){var A=this;return A.get(W).item(L);},getCurrentLink:function(){var A=this;return A.getLink(A.get(aD));},loadImage:function(A){var a3=this;var aX=a3.bodyNode;var a2=a3.get(aI);a3.set(aS,true);var L=a3._activeImagePool;if(!L){L=[];var a1=a3.get(E);var a0=a1.clone();var aZ=a1.clone();var aY=aq.bind(a3._onLoadImage,a3);a0.on("load",aY);aZ.on("load",aY);L.push(a0,aZ);a3._activeImagePool=L;}var aW=L[0];aW.removeAttribute("height");aW.removeAttribute("width");aW.setStyles(ae);a2.append(aW);L.push(L.shift(aW));if(aq.UA.webkit){aW.attr(ay,"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==");}aW.attr(ay,A);a3.fire("request",{image:aW});},hasLink:function(L){var A=this;return A.getLink(L);},hasNext:function(){var A=this;return A.hasLink(A.get(aD)+1);},hasPrev:function(){var A=this;return A.hasLink(A.get(aD)-1);},hideControls:function(){var A=this;A.get(M).hide();A.get(i).hide();A.get(ar).hide();},hideMask:function(){aq.ImageViewerMask.hide();},next:function(){var A=this;if(A.hasNext()){A.set(aD,A.get(aD)+1);A.show();}},preloadAllImages:function(){var A=this;A.get(W).each(function(aW,L){A.preloadImage(L);});},preloadImage:function(L){var A=this;var aW=A.getLink(L);if(aW){var aX=aW.attr(aA);A._createPreloadImage(aX);}},prev:function(){var A=this;if(A.hasPrev()){A.set(aD,A.get(aD)-1);A.show();}},showLoading:function(){var A=this;var L=A.get(K);A.setStdModContent(az,L);L.center(A.bodyNode);},showMask:function(){var A=this;var L=A.get(U);if(D(L)){aq.each(L,function(aX,aW){aq.ImageViewerMask.set(aW,aX);});}if(L){aq.ImageViewerMask.show();}},show:function(){var A=this;var L=A.getCurrentLink();if(L){A.showMask();ad.superclass.show.apply(this,arguments);A.loadImage(L.attr(aA));}},_clearPreloadImageFn:function(){var A=this;var aW=A._preloadImagePool;var aX;for(var L in aW){aX=aW[L];if(aX&&aX.complete){aW[L]=null;}}},_createPreloadImage:function(aX){var A=this; -var L=A._preloadImagePool;if(!L){L=A._preloadImagePool={};A._clearPreloadImageTask=aq.debounce(A._clearPreloadImageFn,50,A);}if(!(aX in L)){var aW=new Image();aW.onload=A._clearPreloadImageTask;aW.src=aX;L[aX]=aW;}},_renderControls:function(){var L=this;var A=aq.one(az);A.append(L.get(M).hide());A.append(L.get(i).hide());A.append(L.get(ar).hide());},_renderFooter:function(){var A=this;var L=A.get(p);var aW=L.get(ap).invoke(H);aW.append(A.get(x));aW.append(A.get(P));A.setStdModContent(aK,aW);},_syncCaptionUI:function(){var A=this;var aW=A.get(aE);var aY=A.get(x);var L=A.get(aC);if(L){var aX=A.getCurrentLink();if(aX){var aZ=aX.attr(aB);if(aZ){aW=aX.attr(aB);}}}aY.html(aW);},_syncControlsUI:function(){var A=this;var aW=A.get(p);var aX=A.get(M);var L=A.get(i);var a0=A.get(ar);if(A.get(ac)){if(A.get(C)){var aZ=aW.get(V);var aY=Math.floor(aZ.height/2)+aZ.top;aX[A.hasPrev()?an:t]();L[A.hasNext()?an:t]();aX.setStyle(m,aY-aX.get(I)+aa);L.setStyle(m,aY-L.get(I)+aa);}if(A.get(aF)){a0.show();}}else{A.hideControls();}},_syncImageViewerUI:function(){var A=this;A._syncControlsUI();A._syncCaptionUI();A._syncInfoUI();},_syncInfoUI:function(){var A=this;var L=A.get(P);L.html(A.get(ak));},_getRatio:function(aY,L){var A=this;var aX=1;var a0=A.get(o);var aZ=A.get(aO);if((L>a0)||(aY>aZ)){var a1=(L/a0);var aW=(aY/aZ);aX=Math.max(a1,aW);}return aX;},_getInfoTemplate:function(L){var A=this;var aW=A.get(O);var aX=A.get(aD)+1;return aq.substitute(L,{current:aX,total:aW});},_afterRender:function(){var A=this;var L=A.bodyNode;L.addClass(F);if(A.get(av)){A.preloadAllImages();}},_afterLoadingChange:function(aW){var A=this;var L=A.get(p);if(aW.newVal){L.addClass(ax);A.showLoading();}else{L.removeClass(ax);}},_afterVisibleChange:function(L){var A=this;A._syncControlsUI();},_onClickCloseEl:function(L){var A=this;A.close();L.halt();},_onClickLeftArrow:function(L){var A=this;A.prev();L.halt();},_onClickRightArrow:function(L){var A=this;A.next();L.halt();},_onClickLinks:function(L){var A=this;var aW=L.currentTarget;A.set(aD,A.get(W).indexOf(aW));A.show();L.preventDefault();},_onKeyInteraction:function(L){var A=this;if(!A.get(ac)){return false;}if(L.isKey(b)){A.prev();}else{if(L.isKey(k)){A.next();}else{if(L.isKey(a)){A.close();}}}},_onLoadImage:function(aW){var A=this;var aX=aW.currentTarget;var aY=A.get(w);if(A.get(aV)){aX.setStyle(X,0);aX.unplug(at).plug(at);aX.fx.on("end",function(aZ){A.fire("anim",{anim:aZ,image:aX});});aX.fx.setAttrs(aY);aX.fx.stop().run();}A.setStdModContent(az,aX);A._uiSetImageSize(aX);A._syncImageViewerUI();A._setAlignCenter(true);A.set(aS,false);A.fire("load",{image:aX});if(A.get(ai)){var L=A.get(aD);A.preloadImage(L+1);A.preloadImage(L-1);}},_uiSetImageSize:function(a0){var L=this;var aY=L.bodyNode;var aZ=a0.get(j);var aX=L._getRatio(aZ.width,aZ.height);var A=(aZ.height/aX);var aW=(aZ.width/aX);a0.set(I,A);a0.set(aL,aW);aY.setStyles({height:A+aa,width:aW+aa});}}});aq.ImageViewer=ad;aq.ImageViewerMask=new aq.OverlayMask().render();},"@VERSION@",{requires:["anim","aui-overlay-mask","substitute"],skinnable:true}); \ No newline at end of file +AUI.add("aui-image-viewer-base",function(ar){var ak=ar.Lang,aJ=ak.isBoolean,Q=ak.isNumber,D=ak.isObject,aO=ak.isString,au=ar.Plugin.NodeFX,aX="anim",d="arrow",M="arrowLeftEl",h="arrowRightEl",aV="auto",aR="bd",T="blank",aB="body",o="boundingBox",aG="caption",x="captionEl",aE="captionFromTitle",c="centered",e="close",at="closeEl",H="createDocumentFragment",aF="currentIndex",aP="easeBothStrong",aM="footer",m="helper",ah="hidden",t="hide",aC="href",ag="icon",E="image",w="imageAnim",aL="image-viewer",ax="info",P="infoEl",al="infoTemplate",a="left",ap="link",X="links",aK="loader",aU="loading",K="loadingEl",v="lock",n="maxHeight",aQ="maxWidth",V="modal",I="offsetHeight",aN="offsetWidth",Y="opacity",k="overlay",aw="preloadAllImages",aj="preloadNeighborImages",ab="px",i="region",j="right",u="scroll",ao="show",C="showArrows",aH="showClose",q=" ",aA="src",aD="title",l="top",O="totalLinks",W="viewportRegion",ad="visible",aq="ownerDocument",aT=function(A){return(A instanceof ar.NodeList);},aS=function(){return Array.prototype.slice.call(arguments).join(q);},z=ar.getClassName,Z=z(m,u,v),S=z(ag,aU),y=z(aL,d),an=z(aL,d,a),aI=z(aL,d,j),F=z(aL,aR),ac=z(aL,aG),B=z(aL,e),ai=z(aL,E),b=z(aL,ax),aW=z(aL,ap),az=z(aL,aU),r=z(k,ah),p="ESC",R="RIGHT",ay="LEFT",af={height:aV,width:aV},f=document.createTextNode(""),U="Image {current} of {total}",am='',av='',s='
',g='',G='',aa='
',N='
',J='
';var ae=ar.Component.create({NAME:aL,ATTRS:{anim:{value:true,validator:aJ},bodyContent:{value:f},caption:{value:T,validator:aO},captionFromTitle:{value:true,validator:aJ},centered:{value:true},currentIndex:{value:0,validator:Q},image:{readOnly:true,valueFn:function(){return ar.Node.create(G);}},imageAnim:{value:{},setter:function(A){return ar.merge({to:{opacity:1},easing:aP,duration:0.8},A);},validator:D},infoTemplate:{getter:function(A){return this._getInfoTemplate(A);},value:U,validator:aO},links:{setter:function(L){var A=this;if(aT(L)){return L;}else{if(aO(L)){return ar.all(L);}}return new ar.NodeList([L]);}},loading:{value:false,validator:aJ},modal:{value:{opacity:0.8,background:"#000"}},preloadAllImages:{value:false,validator:aJ},preloadNeighborImages:{value:true,validator:aJ},showClose:{value:true,validator:aJ},showArrows:{value:true,validator:aJ},totalLinks:{readOnly:true,getter:function(A){return this.get(X).size();}},visible:{value:false},zIndex:{value:3000,validator:Q},arrowLeftEl:{readOnly:true,valueFn:function(){return ar.Node.create(am);}},arrowRightEl:{readOnly:true,valueFn:function(){return ar.Node.create(av);}},captionEl:{readOnly:true,valueFn:function(){return ar.Node.create(s);}},closeEl:{readOnly:true,valueFn:function(){return ar.Node.create(g);}},infoEl:{readOnly:true,valueFn:function(){return ar.Node.create(aa);}},loader:{readOnly:true,valueFn:function(){return ar.Node.create(N).appendTo(document.body);}},loadingEl:{valueFn:function(){return ar.Node.create(J);}},maxHeight:{value:Infinity,validator:Q},maxWidth:{value:Infinity,validator:Q}},EXTENDS:ar.OverlayBase,prototype:{_keyHandler:null,renderUI:function(){var A=this;A._renderControls();A._renderFooter();A.get(X).addClass(aW);},bindUI:function(){var A=this;var L=A.get(X);var aZ=A.get(M);var aY=A.get(h);var a0=A.get(at);aZ.on("click",ar.bind(A._onClickLeftArrow,A));aY.on("click",ar.bind(A._onClickRightArrow,A));a0.on("click",ar.bind(A._onClickCloseEl,A));L.on("click",ar.bind(A._onClickLinks,A));A._keyHandler=ar.bind(A._onKeyInteraction,A);ar.getDoc().on("keydown",A._keyHandler);A.after("render",A._afterRender);A.after("loadingChange",A._afterLoadingChange);A.after("visibleChange",A._afterVisibleChange);},destructor:function(){var A=this;var L=A.get(X);A.close();L.detach("click");L.removeClass(aW);ar.getDoc().detach("keydown",A._keyHandler);A.get(M).remove(true);A.get(h).remove(true);A.get(at).remove(true);A.get(aK).remove(true);},close:function(){var A=this;A.hide();A.hideMask();},getLink:function(L){var A=this;return A.get(X).item(L);},getCurrentLink:function(){var A=this;return A.getLink(A.get(aF));},loadImage:function(A){var a5=this;var aZ=a5.bodyNode;var a4=a5.get(aK);a5.set(aU,true);var L=a5._activeImagePool;if(!L){L=[];var a3=a5.get(E);var a2=a3.clone();var a1=a3.clone();var a0=ar.bind(a5._onLoadImage,a5);a2.on("load",a0);a1.on("load",a0);L.push(a2,a1);a5._activeImagePool=L;}var aY=L[0];aY.removeAttribute("height");aY.removeAttribute("width");aY.setStyles(af);a4.append(aY);L.push(L.shift(aY));if(ar.UA.webkit){aY.attr(aA,"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==");}aY.attr(aA,A);a5.fire("request",{image:aY});},hasLink:function(L){var A=this;return A.getLink(L);},hasNext:function(){var A=this;return A.hasLink(A.get(aF)+1);},hasPrev:function(){var A=this;return A.hasLink(A.get(aF)-1);},hideControls:function(){var A=this;A.get(M).hide();A.get(h).hide();A.get(at).hide();},hideMask:function(){ar.ImageViewerMask.hide();},next:function(){var A=this;if(A.hasNext()){A.set(aF,A.get(aF)+1);A.show();}},preloadAllImages:function(){var A=this;A.get(X).each(function(aY,L){A.preloadImage(L);});},preloadImage:function(L){var A=this;var aY=A.getLink(L);if(aY){var aZ=aY.attr(aC);A._createPreloadImage(aZ);}},prev:function(){var A=this;if(A.hasPrev()){A.set(aF,A.get(aF)-1);A.show();}},showLoading:function(){var A=this;var L=A.get(K);A.setStdModContent(aB,L);L.center(A.bodyNode);},showMask:function(){var A=this;var L=A.get(V);if(D(L)){ar.each(L,function(aZ,aY){ar.ImageViewerMask.set(aY,aZ);});}if(L){ar.ImageViewerMask.show();}},show:function(){var A=this;var L=A.getCurrentLink();if(L){A.showMask();ae.superclass.show.apply(this,arguments);A.loadImage(L.attr(aC));}},_clearPreloadImageFn:function(){var A=this;var aY=A._preloadImagePool;var aZ;for(var L in aY){aZ=aY[L];if(aZ&&aZ.complete){aY[L]=null;}}},_createPreloadImage:function(aZ){var A=this; +var L=A._preloadImagePool;if(!L){L=A._preloadImagePool={};A._clearPreloadImageTask=ar.debounce(A._clearPreloadImageFn,50,A);}if(!(aZ in L)){var aY=new Image();aY.onload=A._clearPreloadImageTask;aY.src=aZ;L[aZ]=aY;}},_renderControls:function(){var L=this;var A=ar.one(aB);A.append(L.get(M).hide());A.append(L.get(h).hide());A.append(L.get(at).hide());},_renderFooter:function(){var A=this;var L=A.get(o);var aY=L.get(aq).invoke(H);aY.append(A.get(x));aY.append(A.get(P));A.setStdModContent(aM,aY);},_syncCaptionUI:function(){var A=this;var aY=A.get(aG);var a0=A.get(x);var L=A.get(aE);if(L){var aZ=A.getCurrentLink();if(aZ){var a1=aZ.attr(aD);if(a1){aY=aZ.attr(aD);}}}a0.html(aY);},_syncControlsUI:function(){var A=this;var aY=A.get(o);var aZ=A.get(M);var L=A.get(h);var a2=A.get(at);if(A.get(ad)){if(A.get(C)){var a1=aY.get(W);var a0=Math.floor(a1.height/2)+a1.top;aZ[A.hasPrev()?ao:t]();L[A.hasNext()?ao:t]();aZ.setStyle(l,a0-aZ.get(I)+ab);L.setStyle(l,a0-L.get(I)+ab);}if(A.get(aH)){a2.show();}}else{A.hideControls();}},_syncImageViewerUI:function(){var A=this;A._syncControlsUI();A._syncCaptionUI();A._syncInfoUI();},_syncInfoUI:function(){var A=this;var L=A.get(P);L.html(A.get(al));},_getRatio:function(a0,L){var A=this;var aZ=1;var a2=A.get(n);var a1=A.get(aQ);if((L>a2)||(a0>a1)){var a3=(L/a2);var aY=(a0/a1);aZ=Math.max(a3,aY);}return aZ;},_getInfoTemplate:function(L){var A=this;var aY=A.get(O);var aZ=A.get(aF)+1;return ar.substitute(L,{current:aZ,total:aY});},_afterRender:function(){var A=this;var L=A.bodyNode;L.addClass(F);if(A.get(aw)){A.preloadAllImages();}},_afterLoadingChange:function(aY){var A=this;var L=A.get(o);if(aY.newVal){L.addClass(az);A.showLoading();}else{L.removeClass(az);}},_afterVisibleChange:function(L){var A=this;A._syncControlsUI();},_onClickCloseEl:function(L){var A=this;A.close();L.halt();},_onClickLeftArrow:function(L){var A=this;A.prev();L.halt();},_onClickRightArrow:function(L){var A=this;A.next();L.halt();},_onClickLinks:function(L){var A=this;var aY=L.currentTarget;A.set(aF,A.get(X).indexOf(aY));A.show();L.preventDefault();},_onKeyInteraction:function(L){var A=this;if(!A.get(ad)){return false;}if(L.isKey(ay)){A.prev();}else{if(L.isKey(R)){A.next();}else{if(L.isKey(p)){A.close();}}}},_onLoadImage:function(aY){var A=this;var aZ=aY.currentTarget;var a0=A.get(w);if(A.get(aX)){aZ.setStyle(Y,0);aZ.unplug(au).plug(au);aZ.fx.on("end",function(a1){A.fire("anim",{anim:a1,image:aZ});});aZ.fx.setAttrs(a0);aZ.fx.stop().run();}A.setStdModContent(aB,aZ);A._uiSetImageSize(aZ);A._syncImageViewerUI();A._setAlignCenter(true);A.set(aU,false);A.fire("load",{image:aZ});if(A.get(aj)){var L=A.get(aF);A.preloadImage(L+1);A.preloadImage(L-1);}},_uiSetImageSize:function(a2){var L=this;var a0=L.bodyNode;var a1=a2.get(i);var aZ=L._getRatio(a1.width,a1.height);var A=(a1.height/aZ);var aY=(a1.width/aZ);a2.set(I,A);a2.set(aN,aY);a0.setStyles({height:A+ab,width:aY+ab});}}});ar.ImageViewer=ae;ar.ImageViewerMask=new ar.OverlayMask().render();},"@VERSION@",{requires:["anim","aui-overlay-mask","substitute"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-image-viewer/aui-image-viewer-base.js b/build/aui-image-viewer/aui-image-viewer-base.js index 99c59f03382..587bac4aa42 100644 --- a/build/aui-image-viewer/aui-image-viewer-base.js +++ b/build/aui-image-viewer/aui-image-viewer-base.js @@ -84,10 +84,6 @@ var L = A.Lang, return Array.prototype.slice.call(arguments).join(SPACE); }, - ESC = 'ESC', - RIGHT = 'RIGHT', - LEFT = 'LEFT', - getCN = A.getClassName, CSS_HELPER_SCROLL_LOCK = getCN(HELPER, SCROLL, LOCK), @@ -104,6 +100,10 @@ var L = A.Lang, CSS_IMAGE_VIEWER_LOADING = getCN(IMAGE_VIEWER, LOADING), CSS_OVERLAY_HIDDEN = getCN(OVERLAY, HIDDEN), + KEY_ESC = 'ESC', + KEY_RIGHT = 'RIGHT', + KEY_LEFT = 'LEFT', + MAP_RESET_DIMENSIONS = { height: AUTO, width: AUTO @@ -1307,13 +1307,13 @@ var ImageViewer = A.Component.create( return false; // NOTE: return } - if (event.isKey(LEFT)) { + if (event.isKey(KEY_LEFT)) { instance.prev(); } - else if (event.isKey(RIGHT)) { + else if (event.isKey(KEY_RIGHT)) { instance.next(); } - else if (event.isKey(ESC)) { + else if (event.isKey(KEY_ESC)) { instance.close(); } }, diff --git a/build/aui-image-viewer/aui-image-viewer-debug.js b/build/aui-image-viewer/aui-image-viewer-debug.js index 9e8f505e0f4..87876ea5fb5 100644 --- a/build/aui-image-viewer/aui-image-viewer-debug.js +++ b/build/aui-image-viewer/aui-image-viewer-debug.js @@ -84,10 +84,6 @@ var L = A.Lang, return Array.prototype.slice.call(arguments).join(SPACE); }, - ESC = 'ESC', - RIGHT = 'RIGHT', - LEFT = 'LEFT', - getCN = A.getClassName, CSS_HELPER_SCROLL_LOCK = getCN(HELPER, SCROLL, LOCK), @@ -104,6 +100,10 @@ var L = A.Lang, CSS_IMAGE_VIEWER_LOADING = getCN(IMAGE_VIEWER, LOADING), CSS_OVERLAY_HIDDEN = getCN(OVERLAY, HIDDEN), + KEY_ESC = 'ESC', + KEY_RIGHT = 'RIGHT', + KEY_LEFT = 'LEFT', + MAP_RESET_DIMENSIONS = { height: AUTO, width: AUTO @@ -1307,13 +1307,13 @@ var ImageViewer = A.Component.create( return false; // NOTE: return } - if (event.isKey(LEFT)) { + if (event.isKey(KEY_LEFT)) { instance.prev(); } - else if (event.isKey(RIGHT)) { + else if (event.isKey(KEY_RIGHT)) { instance.next(); } - else if (event.isKey(ESC)) { + else if (event.isKey(KEY_ESC)) { instance.close(); } }, @@ -2240,5 +2240,5 @@ A.ImageGallery = ImageGallery; }, '@VERSION@' ,{requires:['aui-image-viewer-base','aui-paginator','aui-toolbar'], skinnable:true}); -AUI.add('aui-image-viewer', function(A){}, '@VERSION@' ,{skinnable:true, use:['aui-image-viewer-base','aui-image-viewer-gallery']}); +AUI.add('aui-image-viewer', function(A){}, '@VERSION@' ,{use:['aui-image-viewer-base','aui-image-viewer-gallery'], skinnable:true}); diff --git a/build/aui-image-viewer/aui-image-viewer-min.js b/build/aui-image-viewer/aui-image-viewer-min.js index a2b18b66f54..8db9757348e 100644 --- a/build/aui-image-viewer/aui-image-viewer-min.js +++ b/build/aui-image-viewer/aui-image-viewer-min.js @@ -1,3 +1,3 @@ -AUI.add("aui-image-viewer-base",function(aq){var aj=aq.Lang,aH=aj.isBoolean,Q=aj.isNumber,D=aj.isObject,aM=aj.isString,at=aq.Plugin.NodeFX,aV="anim",e="arrow",M="arrowLeftEl",i="arrowRightEl",aT="auto",aP="bd",S="blank",az="body",p="boundingBox",aE="caption",x="captionEl",aC="captionFromTitle",d="centered",f="close",ar="closeEl",H="createDocumentFragment",aD="currentIndex",aN="easeBothStrong",aK="footer",n="helper",ag="hidden",t="hide",aA="href",af="icon",E="image",w="imageAnim",aJ="image-viewer",aw="info",P="infoEl",ak="infoTemplate",b="left",ao="link",W="links",aI="loader",aS="loading",K="loadingEl",v="lock",o="maxHeight",aO="maxWidth",U="modal",I="offsetHeight",aL="offsetWidth",X="opacity",l="overlay",av="preloadAllImages",ai="preloadNeighborImages",aa="px",j="region",k="right",u="scroll",an="show",C="showArrows",aF="showClose",q=" ",ay="src",aB="title",m="top",O="totalLinks",V="viewportRegion",ac="visible",ap="ownerDocument",aR=function(A){return(A instanceof aq.NodeList);},aQ=function(){return Array.prototype.slice.call(arguments).join(q);},a="ESC",k="RIGHT",b="LEFT",z=aq.getClassName,Y=z(n,u,v),R=z(af,aS),y=z(aJ,e),am=z(aJ,e,b),aG=z(aJ,e,k),F=z(aJ,aP),ab=z(aJ,aE),B=z(aJ,f),ah=z(aJ,E),c=z(aJ,aw),aU=z(aJ,ao),ax=z(aJ,aS),r=z(l,ag),ae={height:aT,width:aT},g=document.createTextNode(""),T="Image {current} of {total}",al='',au='',s='
',h='',G='',Z='
',N='
',J='
';var ad=aq.Component.create({NAME:aJ,ATTRS:{anim:{value:true,validator:aH},bodyContent:{value:g},caption:{value:S,validator:aM},captionFromTitle:{value:true,validator:aH},centered:{value:true},currentIndex:{value:0,validator:Q},image:{readOnly:true,valueFn:function(){return aq.Node.create(G);}},imageAnim:{value:{},setter:function(A){return aq.merge({to:{opacity:1},easing:aN,duration:0.8},A);},validator:D},infoTemplate:{getter:function(A){return this._getInfoTemplate(A);},value:T,validator:aM},links:{setter:function(L){var A=this;if(aR(L)){return L;}else{if(aM(L)){return aq.all(L);}}return new aq.NodeList([L]);}},loading:{value:false,validator:aH},modal:{value:{opacity:0.8,background:"#000"}},preloadAllImages:{value:false,validator:aH},preloadNeighborImages:{value:true,validator:aH},showClose:{value:true,validator:aH},showArrows:{value:true,validator:aH},totalLinks:{readOnly:true,getter:function(A){return this.get(W).size();}},visible:{value:false},zIndex:{value:3000,validator:Q},arrowLeftEl:{readOnly:true,valueFn:function(){return aq.Node.create(al);}},arrowRightEl:{readOnly:true,valueFn:function(){return aq.Node.create(au);}},captionEl:{readOnly:true,valueFn:function(){return aq.Node.create(s);}},closeEl:{readOnly:true,valueFn:function(){return aq.Node.create(h);}},infoEl:{readOnly:true,valueFn:function(){return aq.Node.create(Z);}},loader:{readOnly:true,valueFn:function(){return aq.Node.create(N).appendTo(document.body);}},loadingEl:{valueFn:function(){return aq.Node.create(J);}},maxHeight:{value:Infinity,validator:Q},maxWidth:{value:Infinity,validator:Q}},EXTENDS:aq.OverlayBase,prototype:{_keyHandler:null,renderUI:function(){var A=this;A._renderControls();A._renderFooter();A.get(W).addClass(aU);},bindUI:function(){var A=this;var L=A.get(W);var aX=A.get(M);var aW=A.get(i);var aY=A.get(ar);aX.on("click",aq.bind(A._onClickLeftArrow,A));aW.on("click",aq.bind(A._onClickRightArrow,A));aY.on("click",aq.bind(A._onClickCloseEl,A));L.on("click",aq.bind(A._onClickLinks,A));A._keyHandler=aq.bind(A._onKeyInteraction,A);aq.getDoc().on("keydown",A._keyHandler);A.after("render",A._afterRender);A.after("loadingChange",A._afterLoadingChange);A.after("visibleChange",A._afterVisibleChange);},destructor:function(){var A=this;var L=A.get(W);A.close();L.detach("click");L.removeClass(aU);aq.getDoc().detach("keydown",A._keyHandler);A.get(M).remove(true);A.get(i).remove(true);A.get(ar).remove(true);A.get(aI).remove(true);},close:function(){var A=this;A.hide();A.hideMask();},getLink:function(L){var A=this;return A.get(W).item(L);},getCurrentLink:function(){var A=this;return A.getLink(A.get(aD));},loadImage:function(A){var a3=this;var aX=a3.bodyNode;var a2=a3.get(aI);a3.set(aS,true);var L=a3._activeImagePool;if(!L){L=[];var a1=a3.get(E);var a0=a1.clone();var aZ=a1.clone();var aY=aq.bind(a3._onLoadImage,a3);a0.on("load",aY);aZ.on("load",aY);L.push(a0,aZ);a3._activeImagePool=L;}var aW=L[0];aW.removeAttribute("height");aW.removeAttribute("width");aW.setStyles(ae);a2.append(aW);L.push(L.shift(aW));if(aq.UA.webkit){aW.attr(ay,"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==");}aW.attr(ay,A);a3.fire("request",{image:aW});},hasLink:function(L){var A=this;return A.getLink(L);},hasNext:function(){var A=this;return A.hasLink(A.get(aD)+1);},hasPrev:function(){var A=this;return A.hasLink(A.get(aD)-1);},hideControls:function(){var A=this;A.get(M).hide();A.get(i).hide();A.get(ar).hide();},hideMask:function(){aq.ImageViewerMask.hide();},next:function(){var A=this;if(A.hasNext()){A.set(aD,A.get(aD)+1);A.show();}},preloadAllImages:function(){var A=this;A.get(W).each(function(aW,L){A.preloadImage(L);});},preloadImage:function(L){var A=this;var aW=A.getLink(L);if(aW){var aX=aW.attr(aA);A._createPreloadImage(aX);}},prev:function(){var A=this;if(A.hasPrev()){A.set(aD,A.get(aD)-1);A.show();}},showLoading:function(){var A=this;var L=A.get(K);A.setStdModContent(az,L);L.center(A.bodyNode);},showMask:function(){var A=this;var L=A.get(U);if(D(L)){aq.each(L,function(aX,aW){aq.ImageViewerMask.set(aW,aX);});}if(L){aq.ImageViewerMask.show();}},show:function(){var A=this;var L=A.getCurrentLink();if(L){A.showMask();ad.superclass.show.apply(this,arguments);A.loadImage(L.attr(aA));}},_clearPreloadImageFn:function(){var A=this;var aW=A._preloadImagePool;var aX;for(var L in aW){aX=aW[L];if(aX&&aX.complete){aW[L]=null;}}},_createPreloadImage:function(aX){var A=this; -var L=A._preloadImagePool;if(!L){L=A._preloadImagePool={};A._clearPreloadImageTask=aq.debounce(A._clearPreloadImageFn,50,A);}if(!(aX in L)){var aW=new Image();aW.onload=A._clearPreloadImageTask;aW.src=aX;L[aX]=aW;}},_renderControls:function(){var L=this;var A=aq.one(az);A.append(L.get(M).hide());A.append(L.get(i).hide());A.append(L.get(ar).hide());},_renderFooter:function(){var A=this;var L=A.get(p);var aW=L.get(ap).invoke(H);aW.append(A.get(x));aW.append(A.get(P));A.setStdModContent(aK,aW);},_syncCaptionUI:function(){var A=this;var aW=A.get(aE);var aY=A.get(x);var L=A.get(aC);if(L){var aX=A.getCurrentLink();if(aX){var aZ=aX.attr(aB);if(aZ){aW=aX.attr(aB);}}}aY.html(aW);},_syncControlsUI:function(){var A=this;var aW=A.get(p);var aX=A.get(M);var L=A.get(i);var a0=A.get(ar);if(A.get(ac)){if(A.get(C)){var aZ=aW.get(V);var aY=Math.floor(aZ.height/2)+aZ.top;aX[A.hasPrev()?an:t]();L[A.hasNext()?an:t]();aX.setStyle(m,aY-aX.get(I)+aa);L.setStyle(m,aY-L.get(I)+aa);}if(A.get(aF)){a0.show();}}else{A.hideControls();}},_syncImageViewerUI:function(){var A=this;A._syncControlsUI();A._syncCaptionUI();A._syncInfoUI();},_syncInfoUI:function(){var A=this;var L=A.get(P);L.html(A.get(ak));},_getRatio:function(aY,L){var A=this;var aX=1;var a0=A.get(o);var aZ=A.get(aO);if((L>a0)||(aY>aZ)){var a1=(L/a0);var aW=(aY/aZ);aX=Math.max(a1,aW);}return aX;},_getInfoTemplate:function(L){var A=this;var aW=A.get(O);var aX=A.get(aD)+1;return aq.substitute(L,{current:aX,total:aW});},_afterRender:function(){var A=this;var L=A.bodyNode;L.addClass(F);if(A.get(av)){A.preloadAllImages();}},_afterLoadingChange:function(aW){var A=this;var L=A.get(p);if(aW.newVal){L.addClass(ax);A.showLoading();}else{L.removeClass(ax);}},_afterVisibleChange:function(L){var A=this;A._syncControlsUI();},_onClickCloseEl:function(L){var A=this;A.close();L.halt();},_onClickLeftArrow:function(L){var A=this;A.prev();L.halt();},_onClickRightArrow:function(L){var A=this;A.next();L.halt();},_onClickLinks:function(L){var A=this;var aW=L.currentTarget;A.set(aD,A.get(W).indexOf(aW));A.show();L.preventDefault();},_onKeyInteraction:function(L){var A=this;if(!A.get(ac)){return false;}if(L.isKey(b)){A.prev();}else{if(L.isKey(k)){A.next();}else{if(L.isKey(a)){A.close();}}}},_onLoadImage:function(aW){var A=this;var aX=aW.currentTarget;var aY=A.get(w);if(A.get(aV)){aX.setStyle(X,0);aX.unplug(at).plug(at);aX.fx.on("end",function(aZ){A.fire("anim",{anim:aZ,image:aX});});aX.fx.setAttrs(aY);aX.fx.stop().run();}A.setStdModContent(az,aX);A._uiSetImageSize(aX);A._syncImageViewerUI();A._setAlignCenter(true);A.set(aS,false);A.fire("load",{image:aX});if(A.get(ai)){var L=A.get(aD);A.preloadImage(L+1);A.preloadImage(L-1);}},_uiSetImageSize:function(a0){var L=this;var aY=L.bodyNode;var aZ=a0.get(j);var aX=L._getRatio(aZ.width,aZ.height);var A=(aZ.height/aX);var aW=(aZ.width/aX);a0.set(I,A);a0.set(aL,aW);aY.setStyles({height:A+aa,width:aW+aa});}}});aq.ImageViewer=ad;aq.ImageViewerMask=new aq.OverlayMask().render();},"@VERSION@",{requires:["anim","aui-overlay-mask","substitute"],skinnable:true});AUI.add("aui-image-viewer-gallery",function(r){var m=r.Lang,E=m.isBoolean,ag=m.isNumber,N=m.isObject,p=m.isString,o="autoPlay",V="body",O="content",e="currentIndex",Q="delay",w=".",K="entry",g="handler",Y="hidden",T="href",d="image-gallery",G="img",x="left",S="links",R="offsetWidth",t="overlay",v="page",aj="paginator",F="paginatorEl",H="paginatorInstance",i="pause",D="paused",b="pausedLabel",aa="play",y="player",B="playing",n="playingLabel",ah="px",l="repeat",s="showPlayer",a=" ",ac="src",ab="thumb",W="toolbar",ai="totalLinks",u="useOriginalImage",I="viewportRegion",af="visible",C=function(){return Array.prototype.slice.call(arguments).join(a);},j=r.getClassName,M=j(d,aj),q=j(d,aj,O),P=j(d,aj,K),U=j(d,aj,S),ae=j(d,aj,ab),c=j(d,y),X=j(d,y,O),f=j(t,Y),al="(playing)",k='
{PageLinks}
',z='',h='
',ak='
',Z='
',ad='';var J=r.Component.create({NAME:d,ATTRS:{autoPlay:{value:false,validator:E},delay:{value:7000,validator:ag},paginator:{value:{},setter:function(L){var A=this;var an=A.get(F);var am=A.get(ai);return r.merge({containers:an,pageContainerTemplate:h,pageLinkContent:r.bind(A._setThumbContent,A),pageLinkTemplate:z,template:k,total:am,on:{changeRequest:function(ao){A.fire("changeRequest",{state:ao.state});}}},L);},validator:N},paginatorEl:{readyOnly:true,valueFn:function(){return r.Node.create(ak);}},paginatorInstance:{value:null},paused:{value:false,validator:E},pausedLabel:{value:"",validator:p},playing:{value:false,validator:E},playingLabel:{value:al,validator:p},repeat:{value:true,validator:E},showPlayer:{value:true,validator:E},toolbar:{value:{},setter:function(L){var A=this;return r.merge({children:[{id:aa,icon:aa},{id:i,icon:i}]},L);},validator:N},useOriginalImage:{value:false,validator:E}},EXTENDS:r.ImageViewer,prototype:{toolbar:null,_timer:null,renderUI:function(){var A=this;J.superclass.renderUI.apply(this,arguments);A._renderPaginator();if(A.get(s)){A._renderPlayer();}},bindUI:function(){var A=this;J.superclass.bindUI.apply(this,arguments);A._bindToolbarUI();A.on("playingChange",A._onPlayingChange);A.on("pausedChange",A._onPausedChange);A.publish("changeRequest",{defaultFn:this._changeRequest});},destroy:function(){var A=this;J.superclass.destroy.apply(this,arguments);A.get(H).destroy();},hidePaginator:function(){var A=this;A.get(F).addClass(f);},pause:function(){var A=this;A.set(D,true);A.set(B,false);A._syncInfoUI();},play:function(){var A=this;A.set(D,false);A.set(B,true);A._syncInfoUI();},show:function(){var A=this;var am=A.getCurrentLink();if(am){A.showMask();r.ImageViewer.superclass.show.apply(this,arguments);var L=A.get(H);L.set(v,A.get(e)+1);L.changeRequest();}},showPaginator:function(){var A=this;A.get(F).removeClass(f);},_bindToolbarUI:function(){var A=this;if(A.get(s)){var L=A.toolbar;var an=L.item(aa); -var am=L.item(i);if(an){an.set(g,r.bind(A.play,A));}if(am){am.set(g,r.bind(A.pause,A));}}},_cancelTimer:function(){var A=this;if(A._timer){A._timer.cancel();}},_renderPaginator:function(){var A=this;var am=A.get(F);r.one(V).append(am.hide());var L=new r.Paginator(A.get(aj)).render();A.set(H,L);},_renderPlayer:function(){var A=this;var am=A.get(F);var L=r.Node.create(ad);am.append(r.Node.create(Z).append(L));A.toolbar=new r.Toolbar(A.get(W)).render(L);},_startTimer:function(){var A=this;var L=A.get(Q);A._cancelTimer();A._timer=r.later(L,A,A._syncSlideShow);},_syncControlsUI:function(){var A=this;J.superclass._syncControlsUI.apply(this,arguments);if(A.get(af)){A._syncSelectedThumbUI();A.showPaginator();}else{A.hidePaginator();A._cancelTimer();}},_syncSelectedThumbUI:function(){var A=this;var am=A.get(e);var L=A.get(H);var an=L.get(v)-1;if(am!=an){L.set(v,am+1);L.changeRequest();}},_syncSlideShow:function(){var A=this;if(!A.hasNext()){if(A.get(l)){A.set(e,-1);}else{A._cancelTimer();}}A.next();},_changeRequest:function(A){var ar=this;var an=A.state.paginator;var am=A.state;var aq=am.before;var ap=am.page;if(!ar.get(af)){return false;}var ao=ar.get(e);var L=ap-1;if(!aq||(aq&&aq.page!=ap)){ar.set(e,L);ar.loadImage(ar.getCurrentLink().attr(T));an.setState(am);var au=ar.get(D);var at=ar.get(B);if(at&&!au){ar._startTimer();}}},_setThumbContent:function(ar,L){var A=this;var an=L-1;var ap=A.getLink(an);var aq=ar.one(w+ae);var ao=null;if(A.get(u)){ao=ap.attr(T);}else{var am=ap.one(G);if(am){ao=am.attr(ac);}}if(ao&&aq.getData("thumbSrc")!=ao){aq.setStyles({backgroundImage:"url("+ao+")"});aq.setData("thumbSrc",ao);}},_getInfoTemplate:function(L){var am;var A=this;var ao=A.get(D);var an=A.get(B);if(an){am=A.get(n);}else{if(ao){am=A.get(b);}}return C(J.superclass._getInfoTemplate.apply(this,arguments),am);},_afterVisibleChange:function(L){var A=this;J.superclass._afterVisibleChange.apply(this,arguments);if(L.newVal){if(A.get(o)){A.play();}}},_onPausedChange:function(L){var A=this;if(L.newVal){A._cancelTimer();}},_onPlayingChange:function(L){var A=this;if(L.newVal){A._startTimer();}}}});r.ImageGallery=J;},"@VERSION@",{requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"],skinnable:true});AUI.add("aui-image-viewer",function(a){},"@VERSION@",{skinnable:true,use:["aui-image-viewer-base","aui-image-viewer-gallery"]}); \ No newline at end of file +AUI.add("aui-image-viewer-base",function(ar){var ak=ar.Lang,aJ=ak.isBoolean,Q=ak.isNumber,D=ak.isObject,aO=ak.isString,au=ar.Plugin.NodeFX,aX="anim",d="arrow",M="arrowLeftEl",h="arrowRightEl",aV="auto",aR="bd",T="blank",aB="body",o="boundingBox",aG="caption",x="captionEl",aE="captionFromTitle",c="centered",e="close",at="closeEl",H="createDocumentFragment",aF="currentIndex",aP="easeBothStrong",aM="footer",m="helper",ah="hidden",t="hide",aC="href",ag="icon",E="image",w="imageAnim",aL="image-viewer",ax="info",P="infoEl",al="infoTemplate",a="left",ap="link",X="links",aK="loader",aU="loading",K="loadingEl",v="lock",n="maxHeight",aQ="maxWidth",V="modal",I="offsetHeight",aN="offsetWidth",Y="opacity",k="overlay",aw="preloadAllImages",aj="preloadNeighborImages",ab="px",i="region",j="right",u="scroll",ao="show",C="showArrows",aH="showClose",q=" ",aA="src",aD="title",l="top",O="totalLinks",W="viewportRegion",ad="visible",aq="ownerDocument",aT=function(A){return(A instanceof ar.NodeList);},aS=function(){return Array.prototype.slice.call(arguments).join(q);},z=ar.getClassName,Z=z(m,u,v),S=z(ag,aU),y=z(aL,d),an=z(aL,d,a),aI=z(aL,d,j),F=z(aL,aR),ac=z(aL,aG),B=z(aL,e),ai=z(aL,E),b=z(aL,ax),aW=z(aL,ap),az=z(aL,aU),r=z(k,ah),p="ESC",R="RIGHT",ay="LEFT",af={height:aV,width:aV},f=document.createTextNode(""),U="Image {current} of {total}",am='',av='',s='
',g='',G='',aa='
',N='
',J='
';var ae=ar.Component.create({NAME:aL,ATTRS:{anim:{value:true,validator:aJ},bodyContent:{value:f},caption:{value:T,validator:aO},captionFromTitle:{value:true,validator:aJ},centered:{value:true},currentIndex:{value:0,validator:Q},image:{readOnly:true,valueFn:function(){return ar.Node.create(G);}},imageAnim:{value:{},setter:function(A){return ar.merge({to:{opacity:1},easing:aP,duration:0.8},A);},validator:D},infoTemplate:{getter:function(A){return this._getInfoTemplate(A);},value:U,validator:aO},links:{setter:function(L){var A=this;if(aT(L)){return L;}else{if(aO(L)){return ar.all(L);}}return new ar.NodeList([L]);}},loading:{value:false,validator:aJ},modal:{value:{opacity:0.8,background:"#000"}},preloadAllImages:{value:false,validator:aJ},preloadNeighborImages:{value:true,validator:aJ},showClose:{value:true,validator:aJ},showArrows:{value:true,validator:aJ},totalLinks:{readOnly:true,getter:function(A){return this.get(X).size();}},visible:{value:false},zIndex:{value:3000,validator:Q},arrowLeftEl:{readOnly:true,valueFn:function(){return ar.Node.create(am);}},arrowRightEl:{readOnly:true,valueFn:function(){return ar.Node.create(av);}},captionEl:{readOnly:true,valueFn:function(){return ar.Node.create(s);}},closeEl:{readOnly:true,valueFn:function(){return ar.Node.create(g);}},infoEl:{readOnly:true,valueFn:function(){return ar.Node.create(aa);}},loader:{readOnly:true,valueFn:function(){return ar.Node.create(N).appendTo(document.body);}},loadingEl:{valueFn:function(){return ar.Node.create(J);}},maxHeight:{value:Infinity,validator:Q},maxWidth:{value:Infinity,validator:Q}},EXTENDS:ar.OverlayBase,prototype:{_keyHandler:null,renderUI:function(){var A=this;A._renderControls();A._renderFooter();A.get(X).addClass(aW);},bindUI:function(){var A=this;var L=A.get(X);var aZ=A.get(M);var aY=A.get(h);var a0=A.get(at);aZ.on("click",ar.bind(A._onClickLeftArrow,A));aY.on("click",ar.bind(A._onClickRightArrow,A));a0.on("click",ar.bind(A._onClickCloseEl,A));L.on("click",ar.bind(A._onClickLinks,A));A._keyHandler=ar.bind(A._onKeyInteraction,A);ar.getDoc().on("keydown",A._keyHandler);A.after("render",A._afterRender);A.after("loadingChange",A._afterLoadingChange);A.after("visibleChange",A._afterVisibleChange);},destructor:function(){var A=this;var L=A.get(X);A.close();L.detach("click");L.removeClass(aW);ar.getDoc().detach("keydown",A._keyHandler);A.get(M).remove(true);A.get(h).remove(true);A.get(at).remove(true);A.get(aK).remove(true);},close:function(){var A=this;A.hide();A.hideMask();},getLink:function(L){var A=this;return A.get(X).item(L);},getCurrentLink:function(){var A=this;return A.getLink(A.get(aF));},loadImage:function(A){var a5=this;var aZ=a5.bodyNode;var a4=a5.get(aK);a5.set(aU,true);var L=a5._activeImagePool;if(!L){L=[];var a3=a5.get(E);var a2=a3.clone();var a1=a3.clone();var a0=ar.bind(a5._onLoadImage,a5);a2.on("load",a0);a1.on("load",a0);L.push(a2,a1);a5._activeImagePool=L;}var aY=L[0];aY.removeAttribute("height");aY.removeAttribute("width");aY.setStyles(af);a4.append(aY);L.push(L.shift(aY));if(ar.UA.webkit){aY.attr(aA,"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==");}aY.attr(aA,A);a5.fire("request",{image:aY});},hasLink:function(L){var A=this;return A.getLink(L);},hasNext:function(){var A=this;return A.hasLink(A.get(aF)+1);},hasPrev:function(){var A=this;return A.hasLink(A.get(aF)-1);},hideControls:function(){var A=this;A.get(M).hide();A.get(h).hide();A.get(at).hide();},hideMask:function(){ar.ImageViewerMask.hide();},next:function(){var A=this;if(A.hasNext()){A.set(aF,A.get(aF)+1);A.show();}},preloadAllImages:function(){var A=this;A.get(X).each(function(aY,L){A.preloadImage(L);});},preloadImage:function(L){var A=this;var aY=A.getLink(L);if(aY){var aZ=aY.attr(aC);A._createPreloadImage(aZ);}},prev:function(){var A=this;if(A.hasPrev()){A.set(aF,A.get(aF)-1);A.show();}},showLoading:function(){var A=this;var L=A.get(K);A.setStdModContent(aB,L);L.center(A.bodyNode);},showMask:function(){var A=this;var L=A.get(V);if(D(L)){ar.each(L,function(aZ,aY){ar.ImageViewerMask.set(aY,aZ);});}if(L){ar.ImageViewerMask.show();}},show:function(){var A=this;var L=A.getCurrentLink();if(L){A.showMask();ae.superclass.show.apply(this,arguments);A.loadImage(L.attr(aC));}},_clearPreloadImageFn:function(){var A=this;var aY=A._preloadImagePool;var aZ;for(var L in aY){aZ=aY[L];if(aZ&&aZ.complete){aY[L]=null;}}},_createPreloadImage:function(aZ){var A=this; +var L=A._preloadImagePool;if(!L){L=A._preloadImagePool={};A._clearPreloadImageTask=ar.debounce(A._clearPreloadImageFn,50,A);}if(!(aZ in L)){var aY=new Image();aY.onload=A._clearPreloadImageTask;aY.src=aZ;L[aZ]=aY;}},_renderControls:function(){var L=this;var A=ar.one(aB);A.append(L.get(M).hide());A.append(L.get(h).hide());A.append(L.get(at).hide());},_renderFooter:function(){var A=this;var L=A.get(o);var aY=L.get(aq).invoke(H);aY.append(A.get(x));aY.append(A.get(P));A.setStdModContent(aM,aY);},_syncCaptionUI:function(){var A=this;var aY=A.get(aG);var a0=A.get(x);var L=A.get(aE);if(L){var aZ=A.getCurrentLink();if(aZ){var a1=aZ.attr(aD);if(a1){aY=aZ.attr(aD);}}}a0.html(aY);},_syncControlsUI:function(){var A=this;var aY=A.get(o);var aZ=A.get(M);var L=A.get(h);var a2=A.get(at);if(A.get(ad)){if(A.get(C)){var a1=aY.get(W);var a0=Math.floor(a1.height/2)+a1.top;aZ[A.hasPrev()?ao:t]();L[A.hasNext()?ao:t]();aZ.setStyle(l,a0-aZ.get(I)+ab);L.setStyle(l,a0-L.get(I)+ab);}if(A.get(aH)){a2.show();}}else{A.hideControls();}},_syncImageViewerUI:function(){var A=this;A._syncControlsUI();A._syncCaptionUI();A._syncInfoUI();},_syncInfoUI:function(){var A=this;var L=A.get(P);L.html(A.get(al));},_getRatio:function(a0,L){var A=this;var aZ=1;var a2=A.get(n);var a1=A.get(aQ);if((L>a2)||(a0>a1)){var a3=(L/a2);var aY=(a0/a1);aZ=Math.max(a3,aY);}return aZ;},_getInfoTemplate:function(L){var A=this;var aY=A.get(O);var aZ=A.get(aF)+1;return ar.substitute(L,{current:aZ,total:aY});},_afterRender:function(){var A=this;var L=A.bodyNode;L.addClass(F);if(A.get(aw)){A.preloadAllImages();}},_afterLoadingChange:function(aY){var A=this;var L=A.get(o);if(aY.newVal){L.addClass(az);A.showLoading();}else{L.removeClass(az);}},_afterVisibleChange:function(L){var A=this;A._syncControlsUI();},_onClickCloseEl:function(L){var A=this;A.close();L.halt();},_onClickLeftArrow:function(L){var A=this;A.prev();L.halt();},_onClickRightArrow:function(L){var A=this;A.next();L.halt();},_onClickLinks:function(L){var A=this;var aY=L.currentTarget;A.set(aF,A.get(X).indexOf(aY));A.show();L.preventDefault();},_onKeyInteraction:function(L){var A=this;if(!A.get(ad)){return false;}if(L.isKey(ay)){A.prev();}else{if(L.isKey(R)){A.next();}else{if(L.isKey(p)){A.close();}}}},_onLoadImage:function(aY){var A=this;var aZ=aY.currentTarget;var a0=A.get(w);if(A.get(aX)){aZ.setStyle(Y,0);aZ.unplug(au).plug(au);aZ.fx.on("end",function(a1){A.fire("anim",{anim:a1,image:aZ});});aZ.fx.setAttrs(a0);aZ.fx.stop().run();}A.setStdModContent(aB,aZ);A._uiSetImageSize(aZ);A._syncImageViewerUI();A._setAlignCenter(true);A.set(aU,false);A.fire("load",{image:aZ});if(A.get(aj)){var L=A.get(aF);A.preloadImage(L+1);A.preloadImage(L-1);}},_uiSetImageSize:function(a2){var L=this;var a0=L.bodyNode;var a1=a2.get(i);var aZ=L._getRatio(a1.width,a1.height);var A=(a1.height/aZ);var aY=(a1.width/aZ);a2.set(I,A);a2.set(aN,aY);a0.setStyles({height:A+ab,width:aY+ab});}}});ar.ImageViewer=ae;ar.ImageViewerMask=new ar.OverlayMask().render();},"@VERSION@",{requires:["anim","aui-overlay-mask","substitute"],skinnable:true});AUI.add("aui-image-viewer-gallery",function(r){var m=r.Lang,E=m.isBoolean,ag=m.isNumber,N=m.isObject,p=m.isString,o="autoPlay",V="body",O="content",e="currentIndex",Q="delay",w=".",K="entry",g="handler",Y="hidden",T="href",d="image-gallery",G="img",x="left",S="links",R="offsetWidth",t="overlay",v="page",aj="paginator",F="paginatorEl",H="paginatorInstance",i="pause",D="paused",b="pausedLabel",aa="play",y="player",B="playing",n="playingLabel",ah="px",l="repeat",s="showPlayer",a=" ",ac="src",ab="thumb",W="toolbar",ai="totalLinks",u="useOriginalImage",I="viewportRegion",af="visible",C=function(){return Array.prototype.slice.call(arguments).join(a);},j=r.getClassName,M=j(d,aj),q=j(d,aj,O),P=j(d,aj,K),U=j(d,aj,S),ae=j(d,aj,ab),c=j(d,y),X=j(d,y,O),f=j(t,Y),al="(playing)",k='
{PageLinks}
',z='',h='
',ak='
',Z='
',ad='';var J=r.Component.create({NAME:d,ATTRS:{autoPlay:{value:false,validator:E},delay:{value:7000,validator:ag},paginator:{value:{},setter:function(L){var A=this;var an=A.get(F);var am=A.get(ai);return r.merge({containers:an,pageContainerTemplate:h,pageLinkContent:r.bind(A._setThumbContent,A),pageLinkTemplate:z,template:k,total:am,on:{changeRequest:function(ao){A.fire("changeRequest",{state:ao.state});}}},L);},validator:N},paginatorEl:{readyOnly:true,valueFn:function(){return r.Node.create(ak);}},paginatorInstance:{value:null},paused:{value:false,validator:E},pausedLabel:{value:"",validator:p},playing:{value:false,validator:E},playingLabel:{value:al,validator:p},repeat:{value:true,validator:E},showPlayer:{value:true,validator:E},toolbar:{value:{},setter:function(L){var A=this;return r.merge({children:[{id:aa,icon:aa},{id:i,icon:i}]},L);},validator:N},useOriginalImage:{value:false,validator:E}},EXTENDS:r.ImageViewer,prototype:{toolbar:null,_timer:null,renderUI:function(){var A=this;J.superclass.renderUI.apply(this,arguments);A._renderPaginator();if(A.get(s)){A._renderPlayer();}},bindUI:function(){var A=this;J.superclass.bindUI.apply(this,arguments);A._bindToolbarUI();A.on("playingChange",A._onPlayingChange);A.on("pausedChange",A._onPausedChange);A.publish("changeRequest",{defaultFn:this._changeRequest});},destroy:function(){var A=this;J.superclass.destroy.apply(this,arguments);A.get(H).destroy();},hidePaginator:function(){var A=this;A.get(F).addClass(f);},pause:function(){var A=this;A.set(D,true);A.set(B,false);A._syncInfoUI();},play:function(){var A=this;A.set(D,false);A.set(B,true);A._syncInfoUI();},show:function(){var A=this;var am=A.getCurrentLink();if(am){A.showMask();r.ImageViewer.superclass.show.apply(this,arguments);var L=A.get(H);L.set(v,A.get(e)+1);L.changeRequest();}},showPaginator:function(){var A=this;A.get(F).removeClass(f);},_bindToolbarUI:function(){var A=this;if(A.get(s)){var L=A.toolbar;var an=L.item(aa); +var am=L.item(i);if(an){an.set(g,r.bind(A.play,A));}if(am){am.set(g,r.bind(A.pause,A));}}},_cancelTimer:function(){var A=this;if(A._timer){A._timer.cancel();}},_renderPaginator:function(){var A=this;var am=A.get(F);r.one(V).append(am.hide());var L=new r.Paginator(A.get(aj)).render();A.set(H,L);},_renderPlayer:function(){var A=this;var am=A.get(F);var L=r.Node.create(ad);am.append(r.Node.create(Z).append(L));A.toolbar=new r.Toolbar(A.get(W)).render(L);},_startTimer:function(){var A=this;var L=A.get(Q);A._cancelTimer();A._timer=r.later(L,A,A._syncSlideShow);},_syncControlsUI:function(){var A=this;J.superclass._syncControlsUI.apply(this,arguments);if(A.get(af)){A._syncSelectedThumbUI();A.showPaginator();}else{A.hidePaginator();A._cancelTimer();}},_syncSelectedThumbUI:function(){var A=this;var am=A.get(e);var L=A.get(H);var an=L.get(v)-1;if(am!=an){L.set(v,am+1);L.changeRequest();}},_syncSlideShow:function(){var A=this;if(!A.hasNext()){if(A.get(l)){A.set(e,-1);}else{A._cancelTimer();}}A.next();},_changeRequest:function(A){var ar=this;var an=A.state.paginator;var am=A.state;var aq=am.before;var ap=am.page;if(!ar.get(af)){return false;}var ao=ar.get(e);var L=ap-1;if(!aq||(aq&&aq.page!=ap)){ar.set(e,L);ar.loadImage(ar.getCurrentLink().attr(T));an.setState(am);var au=ar.get(D);var at=ar.get(B);if(at&&!au){ar._startTimer();}}},_setThumbContent:function(ar,L){var A=this;var an=L-1;var ap=A.getLink(an);var aq=ar.one(w+ae);var ao=null;if(A.get(u)){ao=ap.attr(T);}else{var am=ap.one(G);if(am){ao=am.attr(ac);}}if(ao&&aq.getData("thumbSrc")!=ao){aq.setStyles({backgroundImage:"url("+ao+")"});aq.setData("thumbSrc",ao);}},_getInfoTemplate:function(L){var am;var A=this;var ao=A.get(D);var an=A.get(B);if(an){am=A.get(n);}else{if(ao){am=A.get(b);}}return C(J.superclass._getInfoTemplate.apply(this,arguments),am);},_afterVisibleChange:function(L){var A=this;J.superclass._afterVisibleChange.apply(this,arguments);if(L.newVal){if(A.get(o)){A.play();}}},_onPausedChange:function(L){var A=this;if(L.newVal){A._cancelTimer();}},_onPlayingChange:function(L){var A=this;if(L.newVal){A._startTimer();}}}});r.ImageGallery=J;},"@VERSION@",{requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"],skinnable:true});AUI.add("aui-image-viewer",function(a){},"@VERSION@",{use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-image-viewer/aui-image-viewer.js b/build/aui-image-viewer/aui-image-viewer.js index 9e8f505e0f4..87876ea5fb5 100644 --- a/build/aui-image-viewer/aui-image-viewer.js +++ b/build/aui-image-viewer/aui-image-viewer.js @@ -84,10 +84,6 @@ var L = A.Lang, return Array.prototype.slice.call(arguments).join(SPACE); }, - ESC = 'ESC', - RIGHT = 'RIGHT', - LEFT = 'LEFT', - getCN = A.getClassName, CSS_HELPER_SCROLL_LOCK = getCN(HELPER, SCROLL, LOCK), @@ -104,6 +100,10 @@ var L = A.Lang, CSS_IMAGE_VIEWER_LOADING = getCN(IMAGE_VIEWER, LOADING), CSS_OVERLAY_HIDDEN = getCN(OVERLAY, HIDDEN), + KEY_ESC = 'ESC', + KEY_RIGHT = 'RIGHT', + KEY_LEFT = 'LEFT', + MAP_RESET_DIMENSIONS = { height: AUTO, width: AUTO @@ -1307,13 +1307,13 @@ var ImageViewer = A.Component.create( return false; // NOTE: return } - if (event.isKey(LEFT)) { + if (event.isKey(KEY_LEFT)) { instance.prev(); } - else if (event.isKey(RIGHT)) { + else if (event.isKey(KEY_RIGHT)) { instance.next(); } - else if (event.isKey(ESC)) { + else if (event.isKey(KEY_ESC)) { instance.close(); } }, @@ -2240,5 +2240,5 @@ A.ImageGallery = ImageGallery; }, '@VERSION@' ,{requires:['aui-image-viewer-base','aui-paginator','aui-toolbar'], skinnable:true}); -AUI.add('aui-image-viewer', function(A){}, '@VERSION@' ,{skinnable:true, use:['aui-image-viewer-base','aui-image-viewer-gallery']}); +AUI.add('aui-image-viewer', function(A){}, '@VERSION@' ,{use:['aui-image-viewer-base','aui-image-viewer-gallery'], skinnable:true}); From f67edcfba429a1e5033b1c4d1999a20ab686a2d0 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Sat, 23 Jul 2011 18:41:55 -0300 Subject: [PATCH 003/132] AUI-461 DiagramBuilder preview component --- demos/diagram-builder/checker-bg.png | Bin 0 -> 108 bytes demos/diagram-builder/connector.html | 196 ++++++ demos/diagram-builder/index.html | 187 +++++- .../assets/aui-diagram-builder-base-core.css | 4 +- ...d.aui-diagram-builder-connector.properties | 10 + .../build.aui-diagram-builder-connector.xml | 7 + src/aui-diagram-builder/build.properties | 4 +- .../js/aui-diagram-builder-base.js | 60 +- .../js/aui-diagram-builder-connector.js | 562 +++++++++++++++++ .../js/aui-diagram-builder-impl.js | 596 +++++++++++++++++- 10 files changed, 1545 insertions(+), 81 deletions(-) create mode 100644 demos/diagram-builder/checker-bg.png create mode 100644 demos/diagram-builder/connector.html create mode 100755 src/aui-diagram-builder/build.aui-diagram-builder-connector.properties create mode 100755 src/aui-diagram-builder/build.aui-diagram-builder-connector.xml create mode 100644 src/aui-diagram-builder/js/aui-diagram-builder-connector.js diff --git a/demos/diagram-builder/checker-bg.png b/demos/diagram-builder/checker-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..a23232d93846c619b78a6775804f303f304e26ec GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnL3?x0byx0z;7>k44ofy`glX(f`um$*pxPJfs z{r~^}KCeaefg&QFE{-7_*OL + + + + + + + +
+

Chart with Multiple Axes

+ +
+
+
+ +
+
+
+ +
+ + +
+ + diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index 203f1327511..74a04f74c9a 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -19,13 +19,111 @@ width: 250px; } + + .aui-diagram-builder-base-drop-container .aui-diagram-node-editing .aui-diagram-node-content { + background-color: lightyellow !important; + } + + .aui-diagram-builder-base-viewport { + position: relative; + background-image: url("checker-bg.png"); + outline: 0; + + border-left: 1px solid #CCCCCC; + border-right: 1px solid #BBBBBB; + + border-bottom: 1px solid #BBBBBB; + border-top: 1px solid #CCCCCC; + } + .aui-diagram-node { - background-color: #D96666; - border: 2px solid black; + z-index: 10 !important; } - .aui-diagram-builder-base-drop-container .aui-diagram-node.aui-diagram-node-editing { - background-color: lightyellow; + .aui-diagram-node-content { + background-color: #D5E1DD; + border: 2px solid #747E80; + border-radius: 15px; + } + + .aui-diagram-builder-connector-wrapper { + z-index: 1; + } + + .aui-diagram-builder-anchor-node { + width: 15px; + height: 15px; + background: #2B3E42; + position: absolute; +/* border: 1px solid #2B3E42;*/ + cursor: pointer; + border-radius: 12px; + } + + .aui-diagram-builder-anchor-hover { + background: green; + } + + .aui-diagram-builder-anchor-node.yui3-dd-dragging { + background: yellow; + } + + .aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid { + background: green; + } + + .aui-diagram-builder-anchor-node.yui3-dd-drop-over { + background: #F7F3E8; + border: 2px solid #747E80; + -moz-transform: scale(1.3); + -moz-transition:-moz-transform 0.4s ease-in-out; + -moz-transition: background-color 0.4s linear; + -webkit-transform: scale(1.3); + -webkit-transition:-moz-transform 0.4s ease-in-out; + -webkit-transition: background-color 0.4s linear; + } + + .aui-diagram-node-content { + padding: 10px; + } + + .log { + width: 300px; + font-size: 10px; + } + + .aui-diagram-builder-controls { + display: none; + } + + .aui-diagram-node-selected .aui-diagram-builder-controls { + display: block; + text-align: center; + padding: 3px; + } + + .aui-diagram-node-controls-icon { + display: inline-block; + margin-top: -3px; + vertical-align: middle; + } + + .aui-diagram-node-selected { + border: 1px dotted #666; + } + + .aui-diagram-node-selected .aui-diagram-node-content { +/* background-color: lightgreen !important;*/ +/* border-radius: 15px;*/ +/* border: 1px dotted #666;*/ + } + + .aui-diagram-node-focused { + outline: 0; + } + + .aui-diagram-node-focused .aui-diagram-node-content { +/* background-color: lightyellow !important;*/ } @@ -58,7 +156,7 @@

Alloy - diagram-builder-base Demo

-
+
@@ -78,27 +176,61 @@

Alloy - diagram-builder-base Demo

AUI().use('aui-diagram-builder', function(A) { + var availableFields = [ + { + type: 'node', + label: 'Node', + iconClass: 'node-icon' + }, + { + type: 'task', + label: 'Task', + iconClass: 'task-icon' + } + ]; + + node = new A.DiagramNode({ + bodyContent: 'Node', + xy: [400, 200], + fields: [ + {}, + {} + ] + }); + diagramBuilder1 = new A.DiagramBuilder( { boundingBox: '#diagrambuilderBB', srcNode: '#diagrambuilderCB', // height: 600, - availableFields: [ + availableFields: availableFields, + fields: [ + node, { - type: 'node', - label: 'My special label', - iconClass: 'my-icon' + bodyContent: 'Node1', + xy: [200, 200], + fields: [ + {}, + {} + ] }, { - type: 'node', - label: 'My special second label', - iconClass: 'my-second-icon', - draggable: false + bodyContent: 'Node2', + fields: [ + {}, + {} + ] + }, + { + xy: [600, 200], + bodyContent: 'Node3', + fields: [ + {}, + {}, + {}, + {} + ] } - ], - fields: [ - { bodyContent: 'Node1', xy: [200, 200] }, - { bodyContent: 'Node2' } ] } ).render(); @@ -118,24 +250,17 @@

Alloy - diagram-builder-base Demo

// console.log('addField', event); } }, - availableFields: [ + availableFields: availableFields, + + fields: [ { - type: 'node', - id: 'myLabel', - label: 'My label', - iconClass: 'my-icon' + bodyContent: 'Node1', + xy: [200, 200] }, { - id: 'mySecondLabel', - label: 'My second label', - iconClass: 'my-second-icon' + bodyContent: 'Node2' } ], - - fields: [ - { bodyContent: 'Node1', xy: [200, 200] }, - { bodyContent: 'Node2' } - ], // fields: new A.ArrayList([{a:1}, {a:2}]), // propertyList: { @@ -157,7 +282,7 @@

Alloy - diagram-builder-base Demo

} ).render('#diagramBuilder2'); - diagramBuilder2.set('height', 1000); + // diagramBuilder2.set('height', 1000); // diagramBuilder2.set('fields', [1,2]); // diagramBuilder2.addField({bodyContent:'ABC'}); diff --git a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index b2bddeb1a4a..d07f3fe1cd3 100644 --- a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -41,7 +41,7 @@ width: 260px; } -.aui-diagram-builder-base-content-container { +.aui-diagram-builder-base-viewport { background-color: #f5f5f5; } @@ -55,7 +55,7 @@ .aui-diagram-node { position: absolute; - background-color: #D96666; +/* background-color: #D96666;*/ } .aui-diagram-builder-base-drop-container { diff --git a/src/aui-diagram-builder/build.aui-diagram-builder-connector.properties b/src/aui-diagram-builder/build.aui-diagram-builder-connector.properties new file mode 100755 index 00000000000..33d9fe2f5ca --- /dev/null +++ b/src/aui-diagram-builder/build.aui-diagram-builder-connector.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-diagram-builder +global.build.component=${srcdir}/build/aui-diagram-builder + +component=aui-diagram-builder-connector +component.jsfiles=aui-diagram-builder-connector.js +component.requires=aui-base,arraylist-add,arraylist-filter,json,graphics,dd +component.skinnable=true \ No newline at end of file diff --git a/src/aui-diagram-builder/build.aui-diagram-builder-connector.xml b/src/aui-diagram-builder/build.aui-diagram-builder-connector.xml new file mode 100755 index 00000000000..054aa366b0e --- /dev/null +++ b/src/aui-diagram-builder/build.aui-diagram-builder-connector.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-diagram-builder/build.properties b/src/aui-diagram-builder/build.properties index cf4d5148e68..38020a40be8 100755 --- a/src/aui-diagram-builder/build.properties +++ b/src/aui-diagram-builder/build.properties @@ -3,8 +3,8 @@ srcdir=../../ global.build.component=${srcdir}/build/aui-diagram-builder -component.rollup.modules.buildfiles=build.aui-diagram-builder-base.xml,build.aui-diagram-builder-impl.xml +component.rollup.modules.buildfiles=build.aui-diagram-builder-base.xml,build.aui-diagram-builder-impl.xml,build.aui-diagram-builder-connector.xml component.rollup=true component.skinnable=true -component.use=aui-diagram-builder-base,aui-diagram-builder-impl +component.use=aui-diagram-builder-base,aui-diagram-builder-impl,aui-diagram-builder-connector component=aui-diagram-builder \ No newline at end of file diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-base.js b/src/aui-diagram-builder/js/aui-diagram-builder-base.js index 189cc5e7cc7..d5ce666e095 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-base.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-base.js @@ -33,7 +33,7 @@ var Lang = A.Lang, CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', - CONTENT_CONTAINER = 'contentContainer', + VIEWPORT = 'viewport', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -71,9 +71,10 @@ var Lang = A.Lang, _SPACE = ' ', _DOT = '.', _DOLLAR = '$', + _HASH = '#', CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_BASE_VIEWPORT = AgetClassName(DIAGRAM, BUILDER, BASE, VIEWPORT), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -143,6 +144,18 @@ var AvailableField = A.Component.create({ EXTENDS: A.Base, + buildNodeId: function(id) { + return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; + }, + + getAvailableFieldByNode: function(node) { + return A.one(node).getData(AVAILABLE_FIELD); + }, + + getAvailableFieldById: function(id) { + return A.AvailableField.getAvailableFieldByNode(_HASH+A.AvailableField.buildNodeId(id)); + }, + prototype: { FIELD_ITEM_TEMPLATE: '
  • ' + '' + @@ -222,10 +235,6 @@ var AvailableField = A.Component.create({ } }); -AvailableField.buildNodeId = function(id) { - return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.AvailableField = AvailableField; var FieldSupport = function() { @@ -255,12 +264,13 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; + var newField = instance.createField(field); instance._updateFields( - instance.get(FIELDS).add( - instance.createField(field) - ) + instance.get(FIELDS).add(newField) ); + + return newField; }, removeField: function(field) { @@ -316,9 +326,9 @@ var DiagramBuilderBase = A.Component.create( validator: isArray }, - contentContainer: { + viewport: { valueFn: function() { - return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + return A.Node.create(this.VIEWPORT_TEMPLATE); } }, @@ -384,10 +394,10 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, + viewport: _DOT+CSS_DIAGRAM_BUILDER_BASE_VIEWPORT }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -395,10 +405,10 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
    ', DROP_CONTAINER_TEMPLATE: '
    ', TOOLBAR_CONTAINER_TEMPLATE: '
    ', FIELDS_CONTAINER_TEMPLATE: '
      ', + VIEWPORT_TEMPLATE: '
      ', fieldsNode: null, propertyList: null, @@ -421,7 +431,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); - instance.contentContainer = instance.get(CONTENT_CONTAINER); + instance.viewport = instance.get(VIEWPORT); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -434,14 +444,20 @@ var DiagramBuilderBase = A.Component.create( return (drag === availableFieldsDrag.dd); }, - plotFields: function(fields) { + plotFields: function() { + var instance = this; + var fields = instance.get(FIELDS); + + fields.each(function(field) { + instance.plotField(field); + }); }, renderUI: function() { var instance = this; instance._renderTabs(); - instance._renderContentContainer(); + instance._renderViewport(); instance._uiSetAvailableFields( instance.get(AVAILABLE_FIELDS) @@ -497,13 +513,13 @@ var DiagramBuilderBase = A.Component.create( instance.fire(SAVE); }, - _renderContentContainer: function() { + _renderViewport: function() { var instance = this; var contentBox = instance.get(CONTENT_BOX); - var contentContainer = instance.contentContainer; + var viewport = instance.viewport; - contentContainer.appendChild(instance.dropContainer); - contentBox.appendChild(contentContainer); + viewport.appendChild(instance.dropContainer); + contentBox.appendChild(viewport); }, _renderPropertyList: function() { @@ -587,6 +603,7 @@ var DiagramBuilderBase = A.Component.create( return A.merge( { bubbleTargets: instance, + groups: [AVAILABLE_FIELDS], node: instance.dropContainer }, val || {} @@ -601,6 +618,7 @@ var DiagramBuilderBase = A.Component.create( bubbleTargets: instance, container: instance.get(BOUNDING_BOX), dragConfig: { + groups: [AVAILABLE_FIELDS], plugins: [ { cfg: { diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-connector.js b/src/aui-diagram-builder/js/aui-diagram-builder-connector.js new file mode 100644 index 00000000000..a21ab0e71b4 --- /dev/null +++ b/src/aui-diagram-builder/js/aui-diagram-builder-connector.js @@ -0,0 +1,562 @@ +var Lang = A.Lang, + isArray = Lang.isArray, + isBoolean = Lang.isBoolean, + isNumber = Lang.isNumber, + isObject = Lang.isObject, + isString = Lang.isString, + + YArray = A.Array, + + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + + isArrayList = function(val) { + return (val instanceof A.ArrayList); + }, + + ANCHOR = 'anchor', + ARROW_POINTS = 'arrowPoints', + BODY = 'body', + BOUNDING_BOX = 'boundingBox', + BUILDER = 'builder', + COLOR = 'color', + CONNECTOR = 'connector', + DATA_ANCHOR = 'dataAnchor', + DIAGRAM = 'diagram', + DIAGRAM_NODE = 'diagramNode', + HEIGHT = 'height', + ID = 'id', + LAZY_DRAW = 'lazyDraw', + MAX_SOURCES = 'maxSources', + MAX_TARGETS = 'maxTargets', + NODE = 'node', + P1 = 'p1', + P2 = 'p2', + PATH = 'path', + SHAPE = 'shape', + SOURCES = 'sources', + TARGETS = 'targets', + VIEWPORT = 'viewport', + WIDTH = 'width', + WRAPPER = 'wrapper', + + _DOT = '.', + + AgetClassName = A.getClassName, + + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); + +A.PolygonUtil = { + ARROW_POINTS: [ + [ -12, -6 ], + [ -8, 0 ], + [ -12, 6 ], + [ 6, 0 ] + ], + + drawLineArrow: function(shape, x1, y1, x2, y2, arrowPoints) { + var instance = this; + + shape.moveTo(x1, y1); + shape.lineTo(x2, y2); + + var angle = Math.atan2(y2-y1, x2-x1), centerX = (x2+x1)/2, centerY = (y2+y1)/2; + + instance.drawPolygon( + shape, + instance.translatePoints(instance.rotatePoints(arrowPoints || instance.ARROW_POINTS, angle), centerX, centerY) + ); + }, + + drawPolygon: function(shape, points) { + var instance = this; + + shape.moveTo(points[0][0], points[0][1]); + + YArray.each(points, function(p, i) { + if (i > 0) { + shape.lineTo(points[i][0], points[i][1]); + } + }); + + shape.lineTo(points[0][0], points[0][1]); + shape.end(); + }, + + translatePoints: function(points, x, y) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push([ points[i][0] + x, points[i][1] + y ]); + }); + + return xy; + }, + + rotatePoints: function(points, angle) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push(instance.rotatePoint(angle, points[i][0], points[i][1])); + }); + + return xy; + }, + + rotatePoint: function(angle, x, y) { + return [ + (x * Math.cos(angle)) - (y * Math.sin(angle)), + (x * Math.sin(angle)) + (y * Math.cos(angle)) + ]; + } +}; + +A.Connector = A.Base.create('line', A.Base, [], { + graphics: null, + shape: null, + + initializer: function(config) { + var instance = this; + + instance.after({ + p1Change: instance.draw, + p2Change: instance.draw + }); + + instance._initGraphics(); + instance._initShapes(); + + if (!instance.get(LAZY_DRAW)) { + instance.draw(); + } + }, + + destroy: function() { + var instance = this; + + instance.graphics.destroy(); + }, + + draw: function() { + var instance = this; + var shape = instance.shape; + + var c1 = instance.getCoordinate(instance.get(P1)); + var c2 = instance.getCoordinate(instance.get(P2)); + + shape.clear(); + + A.PolygonUtil.drawLineArrow(shape, c1[0], c1[1], c2[0], c2[1], instance.get(ARROW_POINTS)); + }, + + getCoordinate: function(p) { + var instance = this; + var xy = instance.get(VIEWPORT).getXY(); + + return [ p[0] - xy[0], p[1] - xy[1] ]; + }, + + _initGraphics: function() { + var instance = this; + + var graphics = new A.Graphic({ + width: instance.get(WIDTH), + height: instance.get(HEIGHT), + render: instance.get(VIEWPORT) + }); + + instance.graphics = graphics; + }, + + _initShapes: function() { + var instance = this; + + instance.shape = instance.graphics.getShape( + instance.get(SHAPE) + ); + }, + + _setShape: function(val) { + var instance = this; + + return A.merge( + { + type: PATH, + stroke: { + color: instance.get(COLOR), + weight: 2 + }, + fill: { + color: instance.get(COLOR) + } + }, + val + ); + } +},{ + ATTRS: { + color: { + value: '#666', + validator: isString + }, + + lazyDraw: { + value: false, + validator: isBoolean + }, + + viewport: { + setter: A.one, + value: BODY + }, + + shape: { + value: null, + setter: '_setShape' + }, + + arrowPoints: { + value: A.PolygonUtil.ARROW_POINTS + }, + + p1: { + value: [0, 0], + validator: isArray + }, + + p2: { + value: [0, 0], + validator: isArray + } + } +}); + +A.Anchor = A.Base.create('anchor', A.Base, [], { + ANCHOR_WRAPPER_TEMPLATE: '
      ', + NODE_TEMPLATE: '
      ', + + connectors: null, + + initializer: function() { + var instance = this; + + instance.connectors = {}; + + instance._renderNode(); + + instance.connectTargets(); + + instance.after({ + targetsChange: instance._afterTargetsChange + }); + }, + + addSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source).add(source) + ); + }, + + addTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target).add(target) + ); + }, + + alignConnectors: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + var tConnector = instance.getConnector(target); + + if (tConnector) { + tConnector.set(P1, instance.getCenterXY()); + tConnector.set(P2, target.getCenterXY()); + } + }); + + instance.get(SOURCES).each(function(source) { + var sConnector = source.getConnector(instance); + + if (sConnector) { + sConnector.set(P1, source.getCenterXY()); + sConnector.set(P2, instance.getCenterXY()); + } + }); + + return instance; + }, + + destroy: function() { + var instance = this; + + instance.disconnectTargets(); + instance.disconnectSources(); + + instance.get(NODE).remove(); + }, + + connect: function(target) { + var instance = this; + + instance.addTarget(target); + + if (!instance.isConnected(target)) { + var tConnector = target.get(CONNECTOR); + + tConnector.p1 = instance.getCenterXY(); + tConnector.p2 = target.getCenterXY(); + + instance.connectors[target.get(ID)] = new A.Connector(tConnector); + } + + return instance; + }, + + connectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(A.bind(instance.connect, instance)); + + return instance; + }, + + disconnect: function(target) { + var instance = this; + + instance.getConnector(target).destroy(); + + instance.removeTarget(target); + target.removeSource(instance); + }, + + disconnectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + instance.disconnect(target); + }); + + return instance; + }, + + disconnectSources: function() { + var instance = this; + + instance.get(SOURCES).each(function(source) { + source.disconnect(instance); + }); + + return instance; + }, + + getCenterXY: function() { + var instance = this; + + return instance.get(NODE).getCenterXY(); + }, + + getConnector: function(target) { + var instance = this; + + return instance.connectors[target.get(ID)]; + }, + + isConnected: function(target) { + var instance = this; + + return instance.connectors.hasOwnProperty(target.get(ID)); + }, + + updateSources: function(sources) { + var instance = this; + + instance.set(SOURCES, sources); + + return instance; + }, + + updateTargets: function(targets) { + var instance = this; + + instance.set(TARGETS, targets); + + return instance; + }, + + removeSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source) + ); + }, + + removeTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target) + ); + }, + + _afterActiveChange: function(event) { + var instance = this; + + instance._uiSetActive(event.newVal); + }, + + _afterTargetsChange: function(event) { + var instance = this; + + // TODO - event.prevVal is always equal to event.newVal, review this + // logic below, references between anchors needs to be cleaned up otherwise + // will store the wrong relationship between nodes. + + event.prevVal.each(function(anchor) { + anchor.removeSource(instance); + }); + + event.newVal.each(function(anchor) { + anchor.addSource(instance); + }); + }, + + _renderNode: function() { + var instance = this; + var diagramNode = instance.get(DIAGRAM_NODE); + var container = diagramNode.get(BOUNDING_BOX); + + instance.wrapper = container.one(_DOT+CSS_DB_ANCHOR_NODE_WRAPPER) || + A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE); + + instance.wrapper.appendTo(container).appendChild(instance.get(NODE)); + }, + + _setConnector: function(val) { + var instance = this; + + return A.merge( + { + viewport: instance.get(VIEWPORT) + }, + val + ); + }, + + _setSources: function(val) { + var instance = this; + + return instance._setAnchors(val); + }, + + _setTargets: function(val) { + var instance = this; + + val = instance._setAnchors(val); + + val.each(function(anchor) { + anchor.addSource(instance); + }); + + return val; + }, + + _setAnchors: function(val) { + var instance = this; + + if (!isArrayList(val)) { + var targets = []; + + A.Array.each(val, function(target) { + if (isString(target)) { + // TODO - need this? + target = A.Anchor.getAnchorByNode(target); + } + + targets.push( isAnchor(target) ? target : new A.Anchor(target) ); + }); + + val = new A.ArrayList(targets); + } + + return val; + }, + + _setNode: function(val) { + var instance = this; + var id = instance.get(ID); + + return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + } +},{ + ATTRS: { + diagramNode: { + }, + + connector: { + setter: '_setConnector', + value: {}, + validator: isObject + }, + + id: { + readOnly: true, + valueFn: function() { + return A.guid(); + } + }, + + maxSources: { + value: Infinity, + validator: isNumber + }, + + maxTargets: { + value: Infinity, + validator: isNumber + }, + + node: { + setter: '_setNode', + valueFn: function() { + var instance = this; + + return A.Node.create(instance.NODE_TEMPLATE); + } + }, + + sources: { + value: [], + setter: '_setSources', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + targets: { + value: [], + setter: '_setTargets', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + viewport: { + setter: A.one, + value: BODY + } + }, + + getAnchorByNode: function(node) { + return A.one(node).getData(DATA_ANCHOR); + } +}); \ No newline at end of file diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js index 881b74ba39f..0a02c774f34 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js @@ -2,6 +2,7 @@ var Lang = A.Lang, isArray = Lang.isArray, isObject = Lang.isObject, isString = Lang.isString, + isBoolean = Lang.isBoolean, AArray = A.Array, @@ -13,6 +14,10 @@ var Lang = A.Lang, return (val instanceof A.DiagramNode); }, + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + getLeftTop = function(container, node) { var nodeXY = isArray(node) ? node : node.getXY(); var containerXY = isArray(container) ? container : container.getXY(); @@ -22,44 +27,123 @@ var Lang = A.Lang, }); }, + ANCHOR = 'anchor', + ANCHORS = 'anchors', + ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', + CANCEL = 'cancel', + CLICK = 'click', + CONTENT = 'content', + CONTROLS = 'controls', + CONTROLS_TOOLBAR = 'controlsToolbar', DATA = 'data', DBLCLICK = 'dblclick', + DELETE = 'delete', + DELETE_MESSAGE = 'deleteMessage', DESCRIPTION = 'description', DIAGRAM = 'diagram', - DIAGRAM_BUILDER = 'diagram-builder', - DIAGRAM_NODE = 'diagram-node', + DIAGRAM_BUILDER_NAME = 'diagram-builder', + DIAGRAM_NODE = 'diagramNode', + DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + ESC = 'esc', + FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', + HOVER = 'hover', + KEYDOWN = 'keydown', + LINK = 'link', + MOUSEENTER = 'mouseenter', + MOUSELEAVE = 'mouseleave', NAME = 'name', NODE = 'node', + P1 = 'p1', + P2 = 'p2', PARENT_NODE = 'parentNode', RECORDS = 'records', RECORDSET = 'recordset', + REGION = 'region', RENDERED = 'rendered', + SELECTED = 'selected', + SHUFFLE = 'shuffle', + TASK = 'task', + TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', + VIEWPORT = 'viewport', + WRAPPER = 'wrapper', XY = 'xy', _DOT = '.', + _DOLLAR = '$', _EMPTY_STR = '', + _DASH = '-', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_CONTROLS = AgetClassName(DIAGRAM, BUILDER, CONTROLS), + CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE), + CSS_DIAGRAM_NODE_CONTENT = AgetClassName(DIAGRAM, NODE, CONTENT), CSS_DIAGRAM_NODE_EDITING = AgetClassName(DIAGRAM, NODE, EDITING), - CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE); + CSS_DIAGRAM_NODE_SELECTED = AgetClassName(DIAGRAM, NODE, SELECTED); + +// REMOVE THIS! +var __dump = function() { + var PAD = '        ', BR = '
      '; + + A.all('.aui-diagram-node').each(function(n) { + var b = _EMPTY_STR, + dn = A.Widget.getByNode(n), + dnName = dn.get('name'), + dnBB = dn.get('boundingBox'), + log = dnBB.one('.log') || A.Node.create('
      ').appendTo(dnBB); + + b += dnName + BR; + + dn.get(FIELDS).each(function(a) { + b += PAD + 'a: ' + a.get('id') + BR; + + a.get('targets').each(function(t) { + var tdn = t.get(DIAGRAM_NODE); + + t.get('node').setContent(t.get('id')); + + b += PAD + PAD + 't: ' + tdn.get('name') + ' (s: ' + t.get('id') + ')' + BR; + }); + + a.get('sources').each(function(s) { + var sdn = s.get(DIAGRAM_NODE); + + s.get('node').setContent(s.get('id')); + + b += PAD + PAD + 's: ' + sdn.get('name') + ' (t: ' + s.get('id') + ')' + BR; + }); + }); + + log.setContent(b); + }); +}; +// END. var DiagramBuilder = A.Component.create({ - NAME: DIAGRAM_BUILDER, + NAME: DIAGRAM_BUILDER_NAME, ATTRS: { fieldsDragConfig: { value: null, setter: '_setFieldsDragConfig', validator: isObject + }, + + tmpConnector: { + setter: '_setTmpConnector', + value: {}, + validator: isObject } }, @@ -76,12 +160,18 @@ var DiagramBuilder = A.Component.create({ instance.on({ cancel: instance._onCancel, + 'drag:drag': instance._onDrag, 'drag:end': instance._onDragEnd, 'drop:hit': instance._onDropHit, save: instance._onSave }); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); + + instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); instance.dropContainer.delegate(DBLCLICK, A.bind(instance._onNodeEdit, instance), _DOT+CSS_DIAGRAM_NODE); + instance.dropContainer.delegate(MOUSEENTER, A.bind(instance._onMouseenterAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); + instance.dropContainer.delegate(MOUSELEAVE, A.bind(instance._onMouseleaveAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); }, syncUI: function() { @@ -90,12 +180,17 @@ var DiagramBuilder = A.Component.create({ A.DiagramBuilder.superclass.syncUI.apply(this, arguments); instance._setupFieldsDrag(); + + instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, createField: function(val) { var instance = this; if (!isDiagramNode(val)) { + // val.bubbleTargets = instance; + val.builder = instance; + val.viewport = instance.get(VIEWPORT); val = new (instance.getFieldClass(val.type || NODE))(val); } @@ -125,21 +220,31 @@ var DiagramBuilder = A.Component.create({ return (drag === fieldsDrag.dd); }, - plotFields: function() { + plotField: function(field) { var instance = this; - var fields = instance.get(FIELDS); - fields.each(function(field) { - instance.plotField(field); - }); + if (!field.get(RENDERED)) { + field.render(instance.dropContainer); + } }, - plotField: function(field) { + unselectAll: function() { var instance = this; + var selectedNode = instance.selectedNode; - if (!field.get(RENDERED)) { - field.render(instance.dropContainer); + if (selectedNode) { + selectedNode.set(SELECTED, false); } + + instance.selectedNode = null; + }, + + select: function(diagramNode) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, startEditingNode: function(diagramNode) { @@ -150,8 +255,6 @@ var DiagramBuilder = A.Component.create({ instance.tabView.selectTab(A.DiagramBuilder.SETTINGS_TAB); - // instance._renderPropertyList(); - instance.propertyList.set(RECORDSET, diagramNode.getProperties()); diagramNode.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE_EDITING); @@ -173,12 +276,42 @@ var DiagramBuilder = A.Component.create({ } }, + _afterKeyEvent: function(event) { + var instance = this; + + if (!instance.selectedNode || event.hasModifier() || !event.isKeyInSet(ESC, DELETE)) { + return; + } + + if (event.isKey(ESC)) { + instance._onEscKey(event); + } + else if (event.isKey(DELETE)) { + instance._onDeleteKey(event); + } + + event.halt(); + }, + _onCancel: function(event) { var instance = this; instance.stopEditingNode(); }, + _onDrag: function(event) { + var instance = this; + var drag = event.target; + + if (instance.isFieldsDrag(drag)) { + var diagramNode = A.Widget.getByNode(drag.get(DRAG_NODE)); + + diagramNode.get(FIELDS).each(function(anchor) { + anchor.alignConnectors(); + }); + } + }, + _onDragEnd: function(event) { var instance = this; var drag = event.target; @@ -197,15 +330,56 @@ var DiagramBuilder = A.Component.create({ if (instance.isAvailableFieldsDrag(drag)) { var availableField = drag.get(NODE).getData(AVAILABLE_FIELD); - instance.addField({ + var newField = instance.addField({ xy: getLeftTop(drag.lastXY, instance.dropContainer), - type: availableField.get(TYPE) + type: availableField.get(TYPE), + fields: [{}] }); + + instance.select(newField); } }, + _onDeleteKey: function(event) { + var instance = this; + + instance.selectedNode.close(); + }, + + _onEscKey: function(event) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + }, + + _onMouseenterAnchors: function(event) { + var instance = this; + + event.currentTarget.addClass(CSS_DB_ANCHOR_HOVER); + }, + + _onMouseleaveAnchors: function(event) { + var instance = this; + + event.currentTarget.removeClass(CSS_DB_ANCHOR_HOVER); + }, + + _onNodeClick: function(event) { + var instance = this; + var diagramNode = A.Widget.getByNode(event.currentTarget); + + instance.select(diagramNode); + }, + _onNodeEdit: function(event) { var instance = this; + + // Only enable editing if the double clicked node is inside the node contentBox. + if (!event.target.ancestor(_DOT+CSS_DIAGRAM_NODE_CONTENT, true)) { + return; + } + var diagramNode = A.Widget.getByNode(event.currentTarget); if (diagramNode) { @@ -229,6 +403,18 @@ var DiagramBuilder = A.Component.create({ } }, + _setTmpConnector: function(val) { + var instance = this; + + return A.merge( + { + lazyDraw: true, + viewport: instance.viewport + }, + val + ); + }, + _setFieldsDragConfig: function(val) { var instance = this; var dropContainer = instance.dropContainer; @@ -273,11 +459,32 @@ A.DiagramBuilder = DiagramBuilder; A.DiagramBuilder.types = {}; +var DiagramNodeOverlay = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + EXTENDS: A.Overlay, + + // A.FieldSupport augment the class with "fields" attribute and util methods + // such as: addField, removeField. Although the attribute is called "fields" due to + // the augmentation, those fields are the anchors. TODO: Allow A.FieldSupport to + // customize the name of the attribute and method sufixes. + AUGMENTS: [A.FieldSupport] +}); + var DiagramNode = A.Component.create({ - NAME: DIAGRAM_NODE, + NAME: DIAGRAM_NODE_NAME, + + UI_ATTRS: [FIELDS, NAME, SELECTED], ATTRS: { + anchorsDragConfig: { + value: null, + setter: '_setAnchorsDragConfig', + validator: isObject + }, + builder: { + setter: '_setBuilder', validator: isDiagramBuilder }, @@ -287,7 +494,7 @@ var DiagramNode = A.Component.create({ }, height: { - value: 100 + value: 90 }, name: { @@ -299,8 +506,14 @@ var DiagramNode = A.Component.create({ validator: isString }, + selected: { + value: false, + validator: isBoolean + }, + strings: { value: { + deleteMessage: 'Are you sure you want to delete?', description: 'Description', name: 'Name', type: 'Type' @@ -312,14 +525,114 @@ var DiagramNode = A.Component.create({ validator: isString }, + controlsToolbar: { + setter: '_setControlsToolbar', + validator: isObject, + value: null + }, + width: { - value: 200 + value: 90 + }, + + zIndex: { + value: 100 + }, + + tabIndex: { + value: 1 } }, - EXTENDS: A.Overlay, + EXTENDS: DiagramNodeOverlay, + + buildNodeId: function(id) { + return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + }, prototype: { + ANCHOR_WRAPPER_TEMPLATE: '
      ', + CONTROLS_TEMPLATE: '
      ', + + initializer: function() { + var instance = this; + + instance._renderNodes(); + instance._setupAnchorsDrag(); + + instance.after({ + render: instance._afterRender + }); + + instance.on({ + 'drag:drag': instance._onAnchorDrag, + 'drag:end': instance._onAnchorDragEnd, + 'drag:start': instance._onAnchorDragStart, + 'drop:hit': instance._onAnchorDropHit + }); + + instance.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE+_DASH+instance.get(TYPE)); + + // REMOVE THIS! + instance.set('bodyContent', instance.get(NAME)); + }, + + alignAnchors: function() { + var instance = this; + var anchors = instance.get(FIELDS); + + var cRegion = instance.get(BOUNDING_BOX).get(REGION), + dAngle = Math.floor(360/anchors.size()), + a = cRegion.width/2, + b = cRegion.height/2, + centerX = cRegion.left + cRegion.width/2, + centerY = cRegion.top + cRegion.height/2; + + anchors.each(function(anchor, index) { + var anchorNode = anchor.get(NODE); + var aRegion = anchorNode.get(REGION); + var exy = instance._getEllipseXY(a, b, centerX, centerY, index*dAngle); + + anchorNode.setXY([ exy[0] - aRegion.width/2, exy[1] - aRegion.height/2 ]); + + anchor.alignConnectors(); + }); + + return instance; + }, + + close: function() { + var instance = this; + var strings = instance.getStrings(); + + if (confirm(strings[DELETE_MESSAGE])) { + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + + instance.destroy(); + } + + __dump(); + + return instance; + }, + + createField: function(val) { + var instance = this; + + if (!isAnchor(val)) { + var builder = instance.get(BUILDER); + + val.diagramNode = instance; + val.viewport = (builder ? builder.get(VIEWPORT) : null); + + val = new A.Anchor(val); + } + + return val; + }, + getLeftTop: function() { var instance = this; @@ -368,12 +681,225 @@ var DiagramNode = A.Component.create({ ]; }, + _afterRender: function(event) { + var instance = this; + + instance.alignAnchors(); + + instance._renderControls(); + }, + _getContainer: function() { var instance = this; return (instance.get(BUILDER).dropContainer || instance.get(BOUNDING_BOX).get(PARENT_NODE)); }, + _getEllipseXY: function(a, b, centerX, centerY, angle) { + var t = angle*Math.PI/180; + + return [ centerX + a*Math.cos(t), centerY - b*Math.sin(t) ]; + }, + + _handleAddAnchorEvent: function(event) { + var instance = this; + + instance.addField({}); + + // event.halt(); + }, + + _handleAddTaskEvent: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + var diagramNode = new A.DiagramNode({ + type: NODE, + xy: [100, 100] // TODO - find best position? + }); + + builder.addField(diagramNode); + + var source = instance.addField({}); + var target = diagramNode.addField({}); + source.connect(target); + }, + + _handleCloseEvent: function(event) { + var instance = this; + + instance.close(); + }, + + _onAnchorDrag: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P2, event.target.get(DRAG_NODE).getCenterXY()); + }, + + _onAnchorDragEnd: function(event) { + var instance = this; + var shape = instance.get(BUILDER).tmpConnector.shape; + + shape.clear(); + shape.end(); + }, + + _onAnchorDragStart: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P1, event.target.get(NODE).getCenterXY()); + }, + + _onAnchorDropHit: function(event) { + var instance = this; + var source = A.Anchor.getAnchorByNode(event.drag.get(NODE)); + var target = A.Anchor.getAnchorByNode(event.drop.get(NODE)); + + source.connect(target); + + __dump(); + }, + + _renderControls: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.controlsNode = A.Node.create(instance.CONTROLS_TEMPLATE).appendTo(boundingBox); + }, + + _renderNodes: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.anchorWrapper = A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE).appendTo(boundingBox); + }, + + _renderControlsToolbar: function(event) { + var instance = this; + + instance.controlsToolbar = new A.Toolbar( + instance.get(CONTROLS_TOOLBAR) + ) + .render(instance.controlsNode); + }, + + _setBuilder: function(val) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + anchor.set(VIEWPORT, val.get(VIEWPORT)); + }); + + return val; + }, + + _setAnchorsDragConfig: function(val) { + var instance = this; + var builder = instance.get(BUILDER); + + return A.merge( + { + bubbleTargets: instance, + container: instance.anchorWrapper, + dragConfig: { + groups: [ANCHORS], + plugins: [ + { + cfg: { + constrain: (builder ? builder.get(VIEWPORT) : null) + }, + fn: A.Plugin.DDConstrained + }, + { + cfg: { + scrollDelay: 150 + }, + fn: A.Plugin.DDWinScroll + }, + { + cfg: { + moveOnEnd: false + }, + fn: A.Plugin.DDProxy + } + ] + }, + nodes: _DOT+CSS_DB_ANCHOR_NODE, + target: true + }, + val || {} + ); + }, + + _setupAnchorsDrag: function() { + var instance = this; + + instance.anchorsDrag = new A.DD.Delegate( + instance.get(ANCHORS_DRAG_CONFIG) + ); + }, + + _setControlsToolbar: function(val) { + var instance = this; + + return A.merge( + { + activeState: false, + children: [ + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK + }, + { + handler: A.bind(instance._handleAddTaskEvent, instance), + icon: SHUFFLE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL + } + ] + }, + val + ); + }, + + _uiSetFields: function(val) { + var instance = this; + + if (instance.get(RENDERED)) { + instance.alignAnchors(); + + setTimeout(function() { + instance.anchorsDrag.syncTargets(); + }, 50); + } + }, + + _uiSetName: function(val) { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetSelected: function(val) { + var instance = this; + + instance.get(BOUNDING_BOX).toggleClass(CSS_DIAGRAM_NODE_SELECTED, val); + + if (val && !instance.controlsToolbar) { + instance._renderControlsToolbar(); + } + + // if (instance.get(RENDERED)) { + // instance.alignAnchors(); + // } + }, + _uiSetXY : function(val) { var instance = this; var containerXY = instance._getContainer().getXY(); @@ -383,10 +909,30 @@ var DiagramNode = A.Component.create({ } }); -DiagramNode.buildNodeId = function(id) { - return DIAGRAM_NODE + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.DiagramNode = DiagramNode; -A.DiagramBuilder.types['node'] = A.DiagramNode; \ No newline at end of file +A.DiagramBuilder.types[NODE] = A.DiagramNode; + +A.DiagramNodeTask = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: TASK + } + }, + + EXTENDS: A.DiagramNode +}); + +A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; + +// TODO deletar anchors OK +// TODO deletar connections (delete) OK +// TODO Adicionar overlay de controles OK +// TODO syncTargets dd delegate + + +// TODO gerar XML +// TODO reposicionar setas? +// TODO Adicionar groups/validation for connection \ No newline at end of file From 680a489bddec733f005debdda2a88166248ffc77 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Sat, 23 Jul 2011 18:42:09 -0300 Subject: [PATCH 004/132] Build files --- build/aui-base/aui-base-debug.js | 2 +- build/aui-base/aui-base-min.js | 2 +- build/aui-base/aui-base.js | 2 +- .../assets/aui-diagram-builder-base-core.css | 4 +- .../skins/sam/aui-diagram-builder-base.css | 2 +- .../assets/skins/sam/aui-diagram-builder.css | 2 +- .../aui-diagram-builder-base-debug.js | 60 +- .../aui-diagram-builder-base-min.js | 4 +- .../aui-diagram-builder-base.js | 60 +- .../aui-diagram-builder-connector-debug.js | 565 ++++++++ .../aui-diagram-builder-connector-min.js | 1 + .../aui-diagram-builder-connector.js | 565 ++++++++ .../aui-diagram-builder-debug.js | 1237 ++++++++++++++++- .../aui-diagram-builder-impl-debug.js | 596 +++++++- .../aui-diagram-builder-impl-min.js | 3 +- .../aui-diagram-builder-impl.js | 596 +++++++- .../aui-diagram-builder-min.js | 8 +- .../aui-diagram-builder.js | 1237 ++++++++++++++++- build/aui/aui-min.js | 2 +- build/aui/aui.js | 2 +- 20 files changed, 4735 insertions(+), 215 deletions(-) create mode 100644 build/aui-diagram-builder/aui-diagram-builder-connector-debug.js create mode 100644 build/aui-diagram-builder/aui-diagram-builder-connector-min.js create mode 100644 build/aui-diagram-builder/aui-diagram-builder-connector.js diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index d6064c4a60a..c9fe54518c1 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -32,7 +32,7 @@ 'aui-datepicker': {submodules: {'aui-datepicker-select': {skinnable:true, requires:['aui-datepicker-base','aui-button-item']}, 'aui-datepicker-base': {skinnable:true, requires:['aui-calendar','aui-overlay-context']} }, use:['aui-datepicker-base','aui-datepicker-select'], skinnable:true}, 'aui-debounce': {skinnable:false}, 'aui-delayed-task': {skinnable:false}, - 'aui-diagram-builder': {submodules: {'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl'], skinnable:true}, + 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index 3df737e12f7..0d3db8022f2 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,2 +1,2 @@ -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(e){var h=e.Lang,i=h.isArray,c=h.isFunction,b=h.isString,d=e.Array,n=e.namespace("Lang.String"),j=d.indexOf,l="",g=e.config.doc,m="firstChild",f="innerHTML",a="nodeValue",k="normalize";e.mix(n,{contains:function(p,o){return p.indexOf(o)!=-1;},endsWith:function(q,p){var o=(q.length-p.length);return((o>=0)&&(q.indexOf(p,o)==o));},escapeRegEx:function(o){return o.replace(/([.*+?^$(){}|[\]\/\\])/g,"\\$1");},repeat:function(o,p){return new Array(p+1).join(o);},padNumber:function(q,r,o){var s=o?Number(q).toFixed(o):String(q);var p=s.indexOf(".");if(p==-1){p=s.length;}return n.repeat("0",Math.max(0,r-p))+s;},remove:function(r,o,q){var p=new RegExp(n.escapeRegEx(o),q?"g":"");return r.replace(p,"");},removeAll:function(p,o){return n.remove(p,o,true);},startsWith:function(p,o){return(p.lastIndexOf(o,0)==0);},trim:h.trim,unescapeEntities:function(o){if(n.contains(o,"&")){if(g&&!n.contains(o,"<")){o=n._unescapeEntitiesUsingDom(o);}else{o=n._unescapeXmlEntities(o);}}return o;},_unescapeEntitiesUsingDom:function(p){var o=n._unescapeNode;o[f]=p;if(o[k]){o[k]();}p=o.firstChild.nodeValue;o[f]=l;return p;},_unescapeXmlEntities:function(o){return o.replace(/&([^;]+);/g,function(q,p){switch(p){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:if(p.charAt(0)=="#"){var r=Number("0"+p.substr(1));if(!isNaN(r)){return String.fromCharCode(r);}}return q;}});},_unescapeNode:g.createElement("a")});e.mix(d,{remove:function(o,r,q){var p=o.slice((q||r)+1||o.length);o.length=(r<0)?(o.length+r):r;return o.push.apply(o,p);},removeItem:function(o,q){var p=j(o,q);return d.remove(o,p);}});e.mix(h,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(p){var o=this;return String(p).indexOf(e.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index d6064c4a60a..c9fe54518c1 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -32,7 +32,7 @@ 'aui-datepicker': {submodules: {'aui-datepicker-select': {skinnable:true, requires:['aui-datepicker-base','aui-button-item']}, 'aui-datepicker-base': {skinnable:true, requires:['aui-calendar','aui-overlay-context']} }, use:['aui-datepicker-base','aui-datepicker-select'], skinnable:true}, 'aui-debounce': {skinnable:false}, 'aui-delayed-task': {skinnable:false}, - 'aui-diagram-builder': {submodules: {'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl'], skinnable:true}, + 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, diff --git a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index b2bddeb1a4a..d07f3fe1cd3 100644 --- a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -41,7 +41,7 @@ width: 260px; } -.aui-diagram-builder-base-content-container { +.aui-diagram-builder-base-viewport { background-color: #f5f5f5; } @@ -55,7 +55,7 @@ .aui-diagram-node { position: absolute; - background-color: #D96666; +/* background-color: #D96666;*/ } .aui-diagram-builder-base-drop-container { diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css index 878ebece12d..d2806cbfddf 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css @@ -1 +1 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border:1px solid #ccc;list-style:none outside none;margin:3px 0;padding:10px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{border:1px solid #000}.aui-diagram-builder-base-field-icon{float:left;margin:2px 5px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1;padding-left:260px}.aui-diagram-builder-base-tabs-container{float:left;margin-left:-260px;width:260px}.aui-diagram-builder-base-content-container{background-color:#f5f5f5}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-tabs-container-content{padding:5px}.aui-diagram-node{position:absolute;background-color:#d96666}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-add .aui-tab-label{background:url(add.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-settings .aui-tab-label{background:url(configuration.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-tab-label{padding-bottom:5px;padding-left:22px}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px} +.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border:1px solid #ccc;list-style:none outside none;margin:3px 0;padding:10px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{border:1px solid #000}.aui-diagram-builder-base-field-icon{float:left;margin:2px 5px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1;padding-left:260px}.aui-diagram-builder-base-tabs-container{float:left;margin-left:-260px;width:260px}.aui-diagram-builder-base-viewport{background-color:#f5f5f5}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-tabs-container-content{padding:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-add .aui-tab-label{background:url(add.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-settings .aui-tab-label{background:url(configuration.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-tab-label{padding-bottom:5px;padding-left:22px}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px} diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css index 3e62b88c14b..7e2e9b559bd 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css @@ -1,2 +1,2 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border:1px solid #ccc;list-style:none outside none;margin:3px 0;padding:10px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{border:1px solid #000}.aui-diagram-builder-base-field-icon{float:left;margin:2px 5px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1;padding-left:260px}.aui-diagram-builder-base-tabs-container{float:left;margin-left:-260px;width:260px}.aui-diagram-builder-base-content-container{background-color:#f5f5f5}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-tabs-container-content{padding:5px}.aui-diagram-node{position:absolute;background-color:#d96666}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-add .aui-tab-label{background:url(add.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-settings .aui-tab-label{background:url(configuration.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-tab-label{padding-bottom:5px;padding-left:22px}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px} +.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border:1px solid #ccc;list-style:none outside none;margin:3px 0;padding:10px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{border:1px solid #000}.aui-diagram-builder-base-field-icon{float:left;margin:2px 5px 0}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1;padding-left:260px}.aui-diagram-builder-base-tabs-container{float:left;margin-left:-260px;width:260px}.aui-diagram-builder-base-viewport{background-color:#f5f5f5}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-tabs-container-content{padding:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-add .aui-tab-label{background:url(add.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-diagram-builder-base-tab-settings .aui-tab-label{background:url(configuration.png) no-repeat 0 -1px}.aui-diagram-builder-base-tabs-container .aui-tab-label{padding-bottom:5px;padding-left:22px}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px} diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js index fb9c9d865a3..be9cb6f4650 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js @@ -34,7 +34,7 @@ var Lang = A.Lang, CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', - CONTENT_CONTAINER = 'contentContainer', + VIEWPORT = 'viewport', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -72,9 +72,10 @@ var Lang = A.Lang, _SPACE = ' ', _DOT = '.', _DOLLAR = '$', + _HASH = '#', CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_BASE_VIEWPORT = AgetClassName(DIAGRAM, BUILDER, BASE, VIEWPORT), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -144,6 +145,18 @@ var AvailableField = A.Component.create({ EXTENDS: A.Base, + buildNodeId: function(id) { + return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; + }, + + getAvailableFieldByNode: function(node) { + return A.one(node).getData(AVAILABLE_FIELD); + }, + + getAvailableFieldById: function(id) { + return A.AvailableField.getAvailableFieldByNode(_HASH+A.AvailableField.buildNodeId(id)); + }, + prototype: { FIELD_ITEM_TEMPLATE: '
    • ' + '' + @@ -223,10 +236,6 @@ var AvailableField = A.Component.create({ } }); -AvailableField.buildNodeId = function(id) { - return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.AvailableField = AvailableField; var FieldSupport = function() { @@ -256,12 +265,13 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; + var newField = instance.createField(field); instance._updateFields( - instance.get(FIELDS).add( - instance.createField(field) - ) + instance.get(FIELDS).add(newField) ); + + return newField; }, removeField: function(field) { @@ -317,9 +327,9 @@ var DiagramBuilderBase = A.Component.create( validator: isArray }, - contentContainer: { + viewport: { valueFn: function() { - return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + return A.Node.create(this.VIEWPORT_TEMPLATE); } }, @@ -385,10 +395,10 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, + viewport: _DOT+CSS_DIAGRAM_BUILDER_BASE_VIEWPORT }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -396,10 +406,10 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
      ', DROP_CONTAINER_TEMPLATE: '
      ', TOOLBAR_CONTAINER_TEMPLATE: '
      ', FIELDS_CONTAINER_TEMPLATE: '
        ', + VIEWPORT_TEMPLATE: '
        ', fieldsNode: null, propertyList: null, @@ -422,7 +432,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); - instance.contentContainer = instance.get(CONTENT_CONTAINER); + instance.viewport = instance.get(VIEWPORT); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -435,14 +445,20 @@ var DiagramBuilderBase = A.Component.create( return (drag === availableFieldsDrag.dd); }, - plotFields: function(fields) { + plotFields: function() { + var instance = this; + var fields = instance.get(FIELDS); + + fields.each(function(field) { + instance.plotField(field); + }); }, renderUI: function() { var instance = this; instance._renderTabs(); - instance._renderContentContainer(); + instance._renderViewport(); instance._uiSetAvailableFields( instance.get(AVAILABLE_FIELDS) @@ -498,13 +514,13 @@ var DiagramBuilderBase = A.Component.create( instance.fire(SAVE); }, - _renderContentContainer: function() { + _renderViewport: function() { var instance = this; var contentBox = instance.get(CONTENT_BOX); - var contentContainer = instance.contentContainer; + var viewport = instance.viewport; - contentContainer.appendChild(instance.dropContainer); - contentBox.appendChild(contentContainer); + viewport.appendChild(instance.dropContainer); + contentBox.appendChild(viewport); }, _renderPropertyList: function() { @@ -588,6 +604,7 @@ var DiagramBuilderBase = A.Component.create( return A.merge( { bubbleTargets: instance, + groups: [AVAILABLE_FIELDS], node: instance.dropContainer }, val || {} @@ -602,6 +619,7 @@ var DiagramBuilderBase = A.Component.create( bubbleTargets: instance, container: instance.get(BOUNDING_BOX), dragConfig: { + groups: [AVAILABLE_FIELDS], plugins: [ { cfg: { diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-min.js b/build/aui-diagram-builder/aui-diagram-builder-base-min.js index 460835bde8b..03a1704328a 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-diagram-builder-base",function(ab){var R=ab.Lang,d=R.isArray,ao=R.isBoolean,K=R.isNumber,z=R.isObject,ar=R.isString,H=function(A){return(A instanceof ab.ArrayList);},P=function(A){return(A instanceof ab.Node);},C=function(A){return(A instanceof ab.AvailableField);},aC=ab.Array,T="add",k="addNode",aB="auto",L="availableField",O="availableFields",ay="availableFieldsDragConfig",al="base",s="boundingBox",av="builder",X="cancel",ap="clearfix",a="container",Z="content",u="contentBox",e="contentContainer",N="contentNode",D="createDocumentFragment",y="diagram",E="diagram-builder-base",Y="disk",o="draggable",ax="drop",ai="dropConfig",V="dropContainer",an="field",t="fields",n="fieldsContainer",am="height",p="helper",U="icon",v="iconClass",ah="id",ad="label",af="list",r="node",x="nodeSettings",aa="propertyList",aw="rendered",aj="save",q="settings",M="tab",b="tabs",f="tabview",F="tabView",J="toolbar",j="toolbarContainer",w=ab.getClassName,aA=" ",h=".",G="$",aD=w(y,av,al,ax,a),ak=w(y,av,al,Z,a),B=w(y,av,al,an),g=w(y,av,al,t,a),ae=w(y,av,al,an,o),c=w(y,av,al,an,U),S=w(y,av,al,an,ad),m=w(y,av,al,b,a),W=w(y,av,al,b,a,Z),ag=w(y,av,al,M,T),I=w(y,av,al,M,q),at=w(y,av,al,J,a),ac=w(p,ap),l=w(U),au=w(f,Z),az=w(f,af);var i=ab.Component.create({NAME:L,ATTRS:{draggable:{value:true,validator:ao},label:{validator:ar},iconClass:{validator:ar},id:{value:ab.guid(),setter:"_setId",validator:ar},node:{valueFn:function(aE){var A=this;if(!P(aE)){aE=ab.Node.create(ab.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aE.setData(L,A);}return aE;},validator:P,writeOnce:true},type:{value:r,validator:ar}},EXTENDS:ab.Base,prototype:{FIELD_ITEM_TEMPLATE:'
      • '+''+''+"
      • ",initializer:function(){var A=this;var aE=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aE.one(h+S);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(ah));A._uiSetLabel(A.get(ad));},_afterDraggableChange:function(aE){var A=this;A._uiSetDraggable(aE.newVal);},_afterIdChange:function(aE){var A=this;A._uiSetId(aE.newVal);},_afterLabelChange:function(aE){var A=this;A._uiSetLabel(aE.newVal);},_setId:function(A){return ab.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aE){var A=this;A.get(r).toggleClass(ae,aE);},_uiSetLabel:function(aE){var A=this;A.labelNode.setContent(aE);},_uiSetId:function(aE){var A=this;A.get(r).set(ah,aE);}}});i.buildNodeId=function(A){return O+G+an+G+A;};ab.AvailableField=i;var Q=function(){};Q.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||H(A);}}};ab.mix(Q.prototype,{createFields:function(aF){var aE=this;var A=[];aC.each(aF,function(aG){A.push(aE.createField(aG));});return new ab.ArrayList(A);},addField:function(aE){var A=this;A._updateFields(A.get(t).add(A.createField(aE)));},removeField:function(aE){var A=this;A._updateFields(A.get(t).remove(aE));},_updateFields:function(aE){var A=this;A.set(t,aE);},_setFields:function(aE){var A=this;if(H(aE)){return aE;}else{return A.createFields(aE);}},createField:function(A){return A;}});ab.FieldSupport=Q;var aq=ab.Component.create({NAME:E,ATTRS:{availableFields:{setter:"_setAvailableFields",validator:d},contentContainer:{valueFn:function(){return ab.Node.create(this.CONTENT_CONTAINER_TEMPLATE);}},dropContainer:{valueFn:function(){return ab.Node.create(this.DROP_CONTAINER_TEMPLATE);}},dropConfig:{value:null,setter:"_setDropConfig",validator:z},availableFieldsDragConfig:{value:null,setter:"_setAvailableFieldsDragConfig",validator:z},fieldsContainer:{valueFn:function(){return ab.Node.create(this.FIELDS_CONTAINER_TEMPLATE);}},propertyList:{setter:"_setPropertyList",validator:z,value:null},strings:{value:{addNode:"Add node",cancel:"Cancel",nodeSettings:"Node settings",propertyName:"Property Name",save:"Save",value:"Value"}},tabView:{setter:"_setTabView",validator:z,value:null,writeOnce:true},toolbar:{setter:"_setToolbar",validator:z,value:null},toolbarContainer:{valueFn:function(){return ab.Node.create(this.TOOLBAR_CONTAINER_TEMPLATE);}}},HTML_PARSER:{contentContainer:h+ak,dropContainer:h+aD,fieldsContainer:h+g,toolbarContainer:h+at},UI_ATTRS:[O,t],AUGMENTS:[ab.FieldSupport],prototype:{CONTENT_CONTAINER_TEMPLATE:'
        ',DROP_CONTAINER_TEMPLATE:'
        ',TOOLBAR_CONTAINER_TEMPLATE:'
        ',FIELDS_CONTAINER_TEMPLATE:'
          ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.contentContainer=A.get(e);A.dropContainer=A.get(V);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aF){var A=this;var aE=A.availableFieldsDrag;return(aF===aE.dd);},plotFields:function(A){},renderUI:function(){var A=this;A._renderTabs();A._renderContentContainer();A._uiSetAvailableFields(A.get(O));},syncUI:function(){var A=this;var aE=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aE.addClass(ac);},_afterActiveTabChange:function(aF){var A=this;var aE=aF.newVal.get(N);if(A.get(aw)&&(aE===A.settingsNode)){A._renderSettings();}},_afterRender:function(aE){var A=this;A.plotFields();},_afterUiSetHeight:function(aE){var A=this;A.dropContainer.setStyle(am,K(aE)?aE+A.DEF_UNIT:aE);},_defCancelFn:function(aE){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(X);},_handleSaveEvent:function(){var A=this;A.fire(aj);},_renderContentContainer:function(){var A=this;var aE=A.get(u);var aF=A.contentContainer;aF.appendChild(A.dropContainer);aE.appendChild(aF);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ab.PropertyList(A.get(aa)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar(); -},_renderTabs:function(){var A=this;if(!A.tabView){var aE=new ab.TabView(A.get(F));A.tabView=aE;A.fieldsNode=aE.getTab(0).get(N);A.settingsNode=aE.getTab(1).get(N);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ab.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ab.DD.Drop(A.get(ai));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ab.DD.Delegate(A.get(ay));},_setAvailableFields:function(aF){var aE=this;var A=[];aC.each(aF,function(aH,aG){A.push(C(aH)?aH:new ab.AvailableField(aH));});return A;},_setDropConfig:function(aE){var A=this;return ab.merge({bubbleTargets:A,node:A.dropContainer},aE||{});},_setAvailableFieldsDragConfig:function(aE){var A=this;return ab.merge({bubbleTargets:A,container:A.get(s),dragConfig:{plugins:[{cfg:{moveOnEnd:false},fn:ab.Plugin.DDProxy}]},nodes:h+ae},aE||{});},_setPropertyList:function(aE){var A=this;return ab.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aB}},aE);},_setTabView:function(aH){var aE=this;var aG=aE.get(s);var aI=aG.one(h+az);var aF={after:{activeTabChange:ab.bind(aE._afterActiveTabChange,aE)},boundingBox:aG.one(h+m),contentBox:aG.one(h+W),bubbleTargets:aE,contentNode:aG.one(h+au),cssClass:m,listNode:aI,render:aE.get(u)};if(!aI){var A=aE.getStrings();aF.items=[{cssClass:ag,label:A[k]},{cssClass:I,label:A[x]}];}return ab.merge(aF,aH);},_setToolbar:function(aF){var aE=this;var A=aE.getStrings();return ab.merge({activeState:false,bubbleTargets:aE,children:[{handler:ab.bind(aE._handleSaveEvent,aE),label:A[aj],icon:Y},{handler:ab.bind(aE._handleCancelEvent,aE),label:A[X]}]},aF);},_uiSetAvailableFields:function(aG){var A=this;var aF=A.fieldsNode;if(aF){var aE=ab.getDoc().invoke(D);aC.each(aG,function(aH){aE.appendChild(aH.get(r));});aF.setContent(A.fieldsContainer.setContent(aE));}},_uiSetFields:function(aE){var A=this;if(A.get(aw)){A.plotFields();}}}});ab.DiagramBuilderBase=aq;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(ad){var T=ad.Lang,d=T.isArray,ap=T.isBoolean,M=T.isNumber,B=T.isObject,at=T.isString,I=function(A){return(A instanceof ad.ArrayList);},R=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,V="add",k="addNode",aC="auto",N="availableField",Q="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Z="cancel",aq="clearfix",a="container",ab="content",u="contentBox",J="viewport",P="contentNode",E="createDocumentFragment",z="diagram",F="diagram-builder-base",aa="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",W="icon",v="iconClass",aj="id",af="label",ai="list",r="node",y="nodeSettings",ac="propertyList",ax="rendered",al="save",q="settings",O="tab",b="tabs",e="tabview",G="tabView",L="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",H="$",h="#",aE=w(z,aw,am,ay,a),x=w(z,aw,am,J),C=w(z,aw,am,ao),f=w(z,aw,am,t,a),ag=w(z,aw,am,ao,o),c=w(z,aw,am,ao,W),U=w(z,aw,am,ao,af),m=w(z,aw,am,b,a),Y=w(z,aw,am,b,a,ab),ah=w(z,aw,am,O,V),K=w(z,aw,am,O,q),au=w(z,aw,am,L,a),ae=w(p,aq),l=w(W),av=w(e,ab),aA=w(e,ai);var i=ad.Component.create({NAME:N,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!R(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(N,A);}return aF;},validator:R,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return Q+H+ao+H+A;},getAvailableFieldByNode:function(A){return ad.one(A).getData(N);},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},prototype:{FIELD_ITEM_TEMPLATE:'
        • '+''+''+"
        • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+U);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);}}});ad.AvailableField=i;var S=function(){};S.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||I(A);}}};ad.mix(S.prototype,{createFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aH){A.push(aF.createField(aH));});return new ad.ArrayList(A);},addField:function(aF){var A=this;var aG=A.createField(aF);A._updateFields(A.get(t).add(aG));return aG;},removeField:function(aF){var A=this;A._updateFields(A.get(t).remove(aF));},_updateFields:function(aF){var A=this;A.set(t,aF);},_setFields:function(aF){var A=this;if(I(aF)){return aF;}else{return A.createFields(aF);}},createField:function(A){return A;}});ad.FieldSupport=S;var ar=ad.Component.create({NAME:F,ATTRS:{availableFields:{setter:"_setAvailableFields",validator:d},viewport:{valueFn:function(){return ad.Node.create(this.VIEWPORT_TEMPLATE);}},dropContainer:{valueFn:function(){return ad.Node.create(this.DROP_CONTAINER_TEMPLATE);}},dropConfig:{value:null,setter:"_setDropConfig",validator:B},availableFieldsDragConfig:{value:null,setter:"_setAvailableFieldsDragConfig",validator:B},fieldsContainer:{valueFn:function(){return ad.Node.create(this.FIELDS_CONTAINER_TEMPLATE);}},propertyList:{setter:"_setPropertyList",validator:B,value:null},strings:{value:{addNode:"Add node",cancel:"Cancel",nodeSettings:"Node settings",propertyName:"Property Name",save:"Save",value:"Value"}},tabView:{setter:"_setTabView",validator:B,value:null,writeOnce:true},toolbar:{setter:"_setToolbar",validator:B,value:null},toolbarContainer:{valueFn:function(){return ad.Node.create(this.TOOLBAR_CONTAINER_TEMPLATE);}}},HTML_PARSER:{dropContainer:g+aE,fieldsContainer:g+f,toolbarContainer:g+au,viewport:g+x},UI_ATTRS:[Q,t],AUGMENTS:[ad.FieldSupport],prototype:{DROP_CONTAINER_TEMPLATE:'
          ',TOOLBAR_CONTAINER_TEMPLATE:'
          ',FIELDS_CONTAINER_TEMPLATE:'
            ',VIEWPORT_TEMPLATE:'
            ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.viewport=A.get(J);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderViewport();A._uiSetAvailableFields(A.get(Q));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(P);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,M(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Z);},_handleSaveEvent:function(){var A=this;A.fire(al);},_renderViewport:function(){var aF=this;var aG=aF.get(u);var A=aF.viewport;A.appendChild(aF.dropContainer);aG.appendChild(A);},_renderPropertyList:function(){var A=this; +if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(P);A.settingsNode=aF.getTab(1).get(P);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(L)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[Q],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[Q],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+Y),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ah,label:A[k]},{cssClass:K,label:A[y]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:aa},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Z]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-base.js b/build/aui-diagram-builder/aui-diagram-builder-base.js index fb9c9d865a3..be9cb6f4650 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base.js @@ -34,7 +34,7 @@ var Lang = A.Lang, CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', - CONTENT_CONTAINER = 'contentContainer', + VIEWPORT = 'viewport', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -72,9 +72,10 @@ var Lang = A.Lang, _SPACE = ' ', _DOT = '.', _DOLLAR = '$', + _HASH = '#', CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_BASE_VIEWPORT = AgetClassName(DIAGRAM, BUILDER, BASE, VIEWPORT), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -144,6 +145,18 @@ var AvailableField = A.Component.create({ EXTENDS: A.Base, + buildNodeId: function(id) { + return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; + }, + + getAvailableFieldByNode: function(node) { + return A.one(node).getData(AVAILABLE_FIELD); + }, + + getAvailableFieldById: function(id) { + return A.AvailableField.getAvailableFieldByNode(_HASH+A.AvailableField.buildNodeId(id)); + }, + prototype: { FIELD_ITEM_TEMPLATE: '
          • ' + '' + @@ -223,10 +236,6 @@ var AvailableField = A.Component.create({ } }); -AvailableField.buildNodeId = function(id) { - return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.AvailableField = AvailableField; var FieldSupport = function() { @@ -256,12 +265,13 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; + var newField = instance.createField(field); instance._updateFields( - instance.get(FIELDS).add( - instance.createField(field) - ) + instance.get(FIELDS).add(newField) ); + + return newField; }, removeField: function(field) { @@ -317,9 +327,9 @@ var DiagramBuilderBase = A.Component.create( validator: isArray }, - contentContainer: { + viewport: { valueFn: function() { - return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + return A.Node.create(this.VIEWPORT_TEMPLATE); } }, @@ -385,10 +395,10 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, + viewport: _DOT+CSS_DIAGRAM_BUILDER_BASE_VIEWPORT }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -396,10 +406,10 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
            ', DROP_CONTAINER_TEMPLATE: '
            ', TOOLBAR_CONTAINER_TEMPLATE: '
            ', FIELDS_CONTAINER_TEMPLATE: '
              ', + VIEWPORT_TEMPLATE: '
              ', fieldsNode: null, propertyList: null, @@ -422,7 +432,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); - instance.contentContainer = instance.get(CONTENT_CONTAINER); + instance.viewport = instance.get(VIEWPORT); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -435,14 +445,20 @@ var DiagramBuilderBase = A.Component.create( return (drag === availableFieldsDrag.dd); }, - plotFields: function(fields) { + plotFields: function() { + var instance = this; + var fields = instance.get(FIELDS); + + fields.each(function(field) { + instance.plotField(field); + }); }, renderUI: function() { var instance = this; instance._renderTabs(); - instance._renderContentContainer(); + instance._renderViewport(); instance._uiSetAvailableFields( instance.get(AVAILABLE_FIELDS) @@ -498,13 +514,13 @@ var DiagramBuilderBase = A.Component.create( instance.fire(SAVE); }, - _renderContentContainer: function() { + _renderViewport: function() { var instance = this; var contentBox = instance.get(CONTENT_BOX); - var contentContainer = instance.contentContainer; + var viewport = instance.viewport; - contentContainer.appendChild(instance.dropContainer); - contentBox.appendChild(contentContainer); + viewport.appendChild(instance.dropContainer); + contentBox.appendChild(viewport); }, _renderPropertyList: function() { @@ -588,6 +604,7 @@ var DiagramBuilderBase = A.Component.create( return A.merge( { bubbleTargets: instance, + groups: [AVAILABLE_FIELDS], node: instance.dropContainer }, val || {} @@ -602,6 +619,7 @@ var DiagramBuilderBase = A.Component.create( bubbleTargets: instance, container: instance.get(BOUNDING_BOX), dragConfig: { + groups: [AVAILABLE_FIELDS], plugins: [ { cfg: { diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js b/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js new file mode 100644 index 00000000000..e48234c19d4 --- /dev/null +++ b/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js @@ -0,0 +1,565 @@ +AUI.add('aui-diagram-builder-connector', function(A) { +var Lang = A.Lang, + isArray = Lang.isArray, + isBoolean = Lang.isBoolean, + isNumber = Lang.isNumber, + isObject = Lang.isObject, + isString = Lang.isString, + + YArray = A.Array, + + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + + isArrayList = function(val) { + return (val instanceof A.ArrayList); + }, + + ANCHOR = 'anchor', + ARROW_POINTS = 'arrowPoints', + BODY = 'body', + BOUNDING_BOX = 'boundingBox', + BUILDER = 'builder', + COLOR = 'color', + CONNECTOR = 'connector', + DATA_ANCHOR = 'dataAnchor', + DIAGRAM = 'diagram', + DIAGRAM_NODE = 'diagramNode', + HEIGHT = 'height', + ID = 'id', + LAZY_DRAW = 'lazyDraw', + MAX_SOURCES = 'maxSources', + MAX_TARGETS = 'maxTargets', + NODE = 'node', + P1 = 'p1', + P2 = 'p2', + PATH = 'path', + SHAPE = 'shape', + SOURCES = 'sources', + TARGETS = 'targets', + VIEWPORT = 'viewport', + WIDTH = 'width', + WRAPPER = 'wrapper', + + _DOT = '.', + + AgetClassName = A.getClassName, + + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); + +A.PolygonUtil = { + ARROW_POINTS: [ + [ -12, -6 ], + [ -8, 0 ], + [ -12, 6 ], + [ 6, 0 ] + ], + + drawLineArrow: function(shape, x1, y1, x2, y2, arrowPoints) { + var instance = this; + + shape.moveTo(x1, y1); + shape.lineTo(x2, y2); + + var angle = Math.atan2(y2-y1, x2-x1), centerX = (x2+x1)/2, centerY = (y2+y1)/2; + + instance.drawPolygon( + shape, + instance.translatePoints(instance.rotatePoints(arrowPoints || instance.ARROW_POINTS, angle), centerX, centerY) + ); + }, + + drawPolygon: function(shape, points) { + var instance = this; + + shape.moveTo(points[0][0], points[0][1]); + + YArray.each(points, function(p, i) { + if (i > 0) { + shape.lineTo(points[i][0], points[i][1]); + } + }); + + shape.lineTo(points[0][0], points[0][1]); + shape.end(); + }, + + translatePoints: function(points, x, y) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push([ points[i][0] + x, points[i][1] + y ]); + }); + + return xy; + }, + + rotatePoints: function(points, angle) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push(instance.rotatePoint(angle, points[i][0], points[i][1])); + }); + + return xy; + }, + + rotatePoint: function(angle, x, y) { + return [ + (x * Math.cos(angle)) - (y * Math.sin(angle)), + (x * Math.sin(angle)) + (y * Math.cos(angle)) + ]; + } +}; + +A.Connector = A.Base.create('line', A.Base, [], { + graphics: null, + shape: null, + + initializer: function(config) { + var instance = this; + + instance.after({ + p1Change: instance.draw, + p2Change: instance.draw + }); + + instance._initGraphics(); + instance._initShapes(); + + if (!instance.get(LAZY_DRAW)) { + instance.draw(); + } + }, + + destroy: function() { + var instance = this; + + instance.graphics.destroy(); + }, + + draw: function() { + var instance = this; + var shape = instance.shape; + + var c1 = instance.getCoordinate(instance.get(P1)); + var c2 = instance.getCoordinate(instance.get(P2)); + + shape.clear(); + + A.PolygonUtil.drawLineArrow(shape, c1[0], c1[1], c2[0], c2[1], instance.get(ARROW_POINTS)); + }, + + getCoordinate: function(p) { + var instance = this; + var xy = instance.get(VIEWPORT).getXY(); + + return [ p[0] - xy[0], p[1] - xy[1] ]; + }, + + _initGraphics: function() { + var instance = this; + + var graphics = new A.Graphic({ + width: instance.get(WIDTH), + height: instance.get(HEIGHT), + render: instance.get(VIEWPORT) + }); + + instance.graphics = graphics; + }, + + _initShapes: function() { + var instance = this; + + instance.shape = instance.graphics.getShape( + instance.get(SHAPE) + ); + }, + + _setShape: function(val) { + var instance = this; + + return A.merge( + { + type: PATH, + stroke: { + color: instance.get(COLOR), + weight: 2 + }, + fill: { + color: instance.get(COLOR) + } + }, + val + ); + } +},{ + ATTRS: { + color: { + value: '#666', + validator: isString + }, + + lazyDraw: { + value: false, + validator: isBoolean + }, + + viewport: { + setter: A.one, + value: BODY + }, + + shape: { + value: null, + setter: '_setShape' + }, + + arrowPoints: { + value: A.PolygonUtil.ARROW_POINTS + }, + + p1: { + value: [0, 0], + validator: isArray + }, + + p2: { + value: [0, 0], + validator: isArray + } + } +}); + +A.Anchor = A.Base.create('anchor', A.Base, [], { + ANCHOR_WRAPPER_TEMPLATE: '
              ', + NODE_TEMPLATE: '
              ', + + connectors: null, + + initializer: function() { + var instance = this; + + instance.connectors = {}; + + instance._renderNode(); + + instance.connectTargets(); + + instance.after({ + targetsChange: instance._afterTargetsChange + }); + }, + + addSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source).add(source) + ); + }, + + addTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target).add(target) + ); + }, + + alignConnectors: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + var tConnector = instance.getConnector(target); + + if (tConnector) { + tConnector.set(P1, instance.getCenterXY()); + tConnector.set(P2, target.getCenterXY()); + } + }); + + instance.get(SOURCES).each(function(source) { + var sConnector = source.getConnector(instance); + + if (sConnector) { + sConnector.set(P1, source.getCenterXY()); + sConnector.set(P2, instance.getCenterXY()); + } + }); + + return instance; + }, + + destroy: function() { + var instance = this; + + instance.disconnectTargets(); + instance.disconnectSources(); + + instance.get(NODE).remove(); + }, + + connect: function(target) { + var instance = this; + + instance.addTarget(target); + + if (!instance.isConnected(target)) { + var tConnector = target.get(CONNECTOR); + + tConnector.p1 = instance.getCenterXY(); + tConnector.p2 = target.getCenterXY(); + + instance.connectors[target.get(ID)] = new A.Connector(tConnector); + } + + return instance; + }, + + connectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(A.bind(instance.connect, instance)); + + return instance; + }, + + disconnect: function(target) { + var instance = this; + + instance.getConnector(target).destroy(); + + instance.removeTarget(target); + target.removeSource(instance); + }, + + disconnectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + instance.disconnect(target); + }); + + return instance; + }, + + disconnectSources: function() { + var instance = this; + + instance.get(SOURCES).each(function(source) { + source.disconnect(instance); + }); + + return instance; + }, + + getCenterXY: function() { + var instance = this; + + return instance.get(NODE).getCenterXY(); + }, + + getConnector: function(target) { + var instance = this; + + return instance.connectors[target.get(ID)]; + }, + + isConnected: function(target) { + var instance = this; + + return instance.connectors.hasOwnProperty(target.get(ID)); + }, + + updateSources: function(sources) { + var instance = this; + + instance.set(SOURCES, sources); + + return instance; + }, + + updateTargets: function(targets) { + var instance = this; + + instance.set(TARGETS, targets); + + return instance; + }, + + removeSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source) + ); + }, + + removeTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target) + ); + }, + + _afterActiveChange: function(event) { + var instance = this; + + instance._uiSetActive(event.newVal); + }, + + _afterTargetsChange: function(event) { + var instance = this; + + // TODO - event.prevVal is always equal to event.newVal, review this + // logic below, references between anchors needs to be cleaned up otherwise + // will store the wrong relationship between nodes. + + event.prevVal.each(function(anchor) { + anchor.removeSource(instance); + }); + + event.newVal.each(function(anchor) { + anchor.addSource(instance); + }); + }, + + _renderNode: function() { + var instance = this; + var diagramNode = instance.get(DIAGRAM_NODE); + var container = diagramNode.get(BOUNDING_BOX); + + instance.wrapper = container.one(_DOT+CSS_DB_ANCHOR_NODE_WRAPPER) || + A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE); + + instance.wrapper.appendTo(container).appendChild(instance.get(NODE)); + }, + + _setConnector: function(val) { + var instance = this; + + return A.merge( + { + viewport: instance.get(VIEWPORT) + }, + val + ); + }, + + _setSources: function(val) { + var instance = this; + + return instance._setAnchors(val); + }, + + _setTargets: function(val) { + var instance = this; + + val = instance._setAnchors(val); + + val.each(function(anchor) { + anchor.addSource(instance); + }); + + return val; + }, + + _setAnchors: function(val) { + var instance = this; + + if (!isArrayList(val)) { + var targets = []; + + A.Array.each(val, function(target) { + if (isString(target)) { + // TODO - need this? + target = A.Anchor.getAnchorByNode(target); + } + + targets.push( isAnchor(target) ? target : new A.Anchor(target) ); + }); + + val = new A.ArrayList(targets); + } + + return val; + }, + + _setNode: function(val) { + var instance = this; + var id = instance.get(ID); + + return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + } +},{ + ATTRS: { + diagramNode: { + }, + + connector: { + setter: '_setConnector', + value: {}, + validator: isObject + }, + + id: { + readOnly: true, + valueFn: function() { + return A.guid(); + } + }, + + maxSources: { + value: Infinity, + validator: isNumber + }, + + maxTargets: { + value: Infinity, + validator: isNumber + }, + + node: { + setter: '_setNode', + valueFn: function() { + var instance = this; + + return A.Node.create(instance.NODE_TEMPLATE); + } + }, + + sources: { + value: [], + setter: '_setSources', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + targets: { + value: [], + setter: '_setTargets', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + viewport: { + setter: A.one, + value: BODY + } + }, + + getAnchorByNode: function(node) { + return A.one(node).getData(DATA_ANCHOR); + } +}); + +}, '@VERSION@' ,{requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd'], skinnable:true}); diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector-min.js b/build/aui-diagram-builder/aui-diagram-builder-connector-min.js new file mode 100644 index 00000000000..35a0ebce02c --- /dev/null +++ b/build/aui-diagram-builder/aui-diagram-builder-connector-min.js @@ -0,0 +1 @@ +AUI.add("aui-diagram-builder-connector",function(k){var M=k.Lang,r=M.isArray,v=M.isBoolean,L=M.isNumber,z=M.isObject,h=M.isString,D=k.Array,b=function(A){return(A instanceof k.Anchor);},E=function(A){return(A instanceof k.ArrayList);},y="anchor",F="arrowPoints",C="body",G="boundingBox",N="builder",w="color",n="connector",a="dataAnchor",x="diagram",s="diagramNode",u="height",p="id",I="lazyDraw",j="maxSources",i="maxTargets",J="node",m="p1",l="p2",e="path",q="shape",g="sources",f="targets",B="viewport",c="width",K="wrapper",o=".",t=k.getClassName,d=t(x,N,y,J,K),H=t(x,N,y,J);k.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(T,O,V,A,U,R){var W=this;T.moveTo(O,V);T.lineTo(A,U);var P=Math.atan2(U-V,A-O),S=(A+O)/2,Q=(U+V)/2;W.drawPolygon(T,W.translatePoints(W.rotatePoints(R||W.ARROW_POINTS,P),S,Q));},drawPolygon:function(O,P){var A=this;O.moveTo(P[0][0],P[0][1]);D.each(P,function(R,Q){if(Q>0){O.lineTo(P[Q][0],P[Q][1]);}});O.lineTo(P[0][0],P[0][1]);O.end();},translatePoints:function(P,O,R){var A=this;var Q=[];D.each(P,function(T,S){Q.push([P[S][0]+O,P[S][1]+R]);});return Q;},rotatePoints:function(O,Q){var A=this;var P=[];D.each(O,function(S,R){P.push(A.rotatePoint(Q,O[R][0],O[R][1]));});return P;},rotatePoint:function(O,A,P){return[(A*Math.cos(O))-(P*Math.sin(O)),(A*Math.sin(O))+(P*Math.cos(O))];}};k.Connector=k.Base.create("line",k.Base,[],{graphics:null,shape:null,initializer:function(O){var A=this;A.after({p1Change:A.draw,p2Change:A.draw});A._initGraphics();A._initShapes();if(!A.get(I)){A.draw();}},destroy:function(){var A=this;A.graphics.destroy();},draw:function(){var A=this;var O=A.shape;var Q=A.getCoordinate(A.get(m));var P=A.getCoordinate(A.get(l));O.clear();k.PolygonUtil.drawLineArrow(O,Q[0],Q[1],P[0],P[1],A.get(F));},getCoordinate:function(P){var A=this;var O=A.get(B).getXY();return[P[0]-O[0],P[1]-O[1]];},_initGraphics:function(){var A=this;var O=new k.Graphic({width:A.get(c),height:A.get(u),render:A.get(B)});A.graphics=O;},_initShapes:function(){var A=this;A.shape=A.graphics.getShape(A.get(q));},_setShape:function(O){var A=this;return k.merge({type:e,stroke:{color:A.get(w),weight:2},fill:{color:A.get(w)}},O);}},{ATTRS:{color:{value:"#666",validator:h},lazyDraw:{value:false,validator:v},viewport:{setter:k.one,value:C},shape:{value:null,setter:"_setShape"},arrowPoints:{value:k.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:r},p2:{value:[0,0],validator:r}}});k.Anchor=k.Base.create("anchor",k.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
              ',NODE_TEMPLATE:'
              ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({targetsChange:A._afterTargetsChange});},addSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O).add(O));},addTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O).add(O));},alignConnectors:function(){var A=this;A.get(f).each(function(O){var P=A.getConnector(O);if(P){P.set(m,A.getCenterXY());P.set(l,O.getCenterXY());}});A.get(g).each(function(O){var P=O.getConnector(A);if(P){P.set(m,O.getCenterXY());P.set(l,A.getCenterXY());}});return A;},destroy:function(){var A=this;A.disconnectTargets();A.disconnectSources();A.get(J).remove();},connect:function(O){var A=this;A.addTarget(O);if(!A.isConnected(O)){var P=O.get(n);P.p1=A.getCenterXY();P.p2=O.getCenterXY();A.connectors[O.get(p)]=new k.Connector(P);}return A;},connectTargets:function(){var A=this;A.get(f).each(k.bind(A.connect,A));return A;},disconnect:function(O){var A=this;A.getConnector(O).destroy();A.removeTarget(O);O.removeSource(A);},disconnectTargets:function(){var A=this;A.get(f).each(function(O){A.disconnect(O);});return A;},disconnectSources:function(){var A=this;A.get(g).each(function(O){O.disconnect(A);});return A;},getCenterXY:function(){var A=this;return A.get(J).getCenterXY();},getConnector:function(O){var A=this;return A.connectors[O.get(p)];},isConnected:function(O){var A=this;return A.connectors.hasOwnProperty(O.get(p));},updateSources:function(O){var A=this;A.set(g,O);return A;},updateTargets:function(O){var A=this;A.set(f,O);return A;},removeSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O));},removeTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O));},_afterActiveChange:function(O){var A=this;A._uiSetActive(O.newVal);},_afterTargetsChange:function(O){var A=this;O.prevVal.each(function(P){P.removeSource(A);});O.newVal.each(function(P){P.addSource(A);});},_renderNode:function(){var A=this;var P=A.get(s);var O=P.get(G);A.wrapper=O.one(o+d)||k.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(O).appendChild(A.get(J));},_setConnector:function(O){var A=this;return k.merge({viewport:A.get(B)},O);},_setSources:function(O){var A=this;return A._setAnchors(O);},_setTargets:function(O){var A=this;O=A._setAnchors(O);O.each(function(P){P.addSource(A);});return O;},_setAnchors:function(P){var A=this;if(!E(P)){var O=[];k.Array.each(P,function(Q){if(h(Q)){Q=k.Anchor.getAnchorByNode(Q);}O.push(b(Q)?Q:new k.Anchor(Q));});P=new k.ArrayList(O);}return P;},_setNode:function(O){var A=this;var P=A.get(p);return k.one(O).set(p,P).setData(a,A);}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:z},id:{readOnly:true,valueFn:function(){return k.guid();}},maxSources:{value:Infinity,validator:L},maxTargets:{value:Infinity,validator:L},node:{setter:"_setNode",valueFn:function(){var A=this;return k.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return r(A)||E(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return r(A)||E(A);}},viewport:{setter:k.one,value:C}},getAnchorByNode:function(A){return k.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector.js b/build/aui-diagram-builder/aui-diagram-builder-connector.js new file mode 100644 index 00000000000..e48234c19d4 --- /dev/null +++ b/build/aui-diagram-builder/aui-diagram-builder-connector.js @@ -0,0 +1,565 @@ +AUI.add('aui-diagram-builder-connector', function(A) { +var Lang = A.Lang, + isArray = Lang.isArray, + isBoolean = Lang.isBoolean, + isNumber = Lang.isNumber, + isObject = Lang.isObject, + isString = Lang.isString, + + YArray = A.Array, + + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + + isArrayList = function(val) { + return (val instanceof A.ArrayList); + }, + + ANCHOR = 'anchor', + ARROW_POINTS = 'arrowPoints', + BODY = 'body', + BOUNDING_BOX = 'boundingBox', + BUILDER = 'builder', + COLOR = 'color', + CONNECTOR = 'connector', + DATA_ANCHOR = 'dataAnchor', + DIAGRAM = 'diagram', + DIAGRAM_NODE = 'diagramNode', + HEIGHT = 'height', + ID = 'id', + LAZY_DRAW = 'lazyDraw', + MAX_SOURCES = 'maxSources', + MAX_TARGETS = 'maxTargets', + NODE = 'node', + P1 = 'p1', + P2 = 'p2', + PATH = 'path', + SHAPE = 'shape', + SOURCES = 'sources', + TARGETS = 'targets', + VIEWPORT = 'viewport', + WIDTH = 'width', + WRAPPER = 'wrapper', + + _DOT = '.', + + AgetClassName = A.getClassName, + + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); + +A.PolygonUtil = { + ARROW_POINTS: [ + [ -12, -6 ], + [ -8, 0 ], + [ -12, 6 ], + [ 6, 0 ] + ], + + drawLineArrow: function(shape, x1, y1, x2, y2, arrowPoints) { + var instance = this; + + shape.moveTo(x1, y1); + shape.lineTo(x2, y2); + + var angle = Math.atan2(y2-y1, x2-x1), centerX = (x2+x1)/2, centerY = (y2+y1)/2; + + instance.drawPolygon( + shape, + instance.translatePoints(instance.rotatePoints(arrowPoints || instance.ARROW_POINTS, angle), centerX, centerY) + ); + }, + + drawPolygon: function(shape, points) { + var instance = this; + + shape.moveTo(points[0][0], points[0][1]); + + YArray.each(points, function(p, i) { + if (i > 0) { + shape.lineTo(points[i][0], points[i][1]); + } + }); + + shape.lineTo(points[0][0], points[0][1]); + shape.end(); + }, + + translatePoints: function(points, x, y) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push([ points[i][0] + x, points[i][1] + y ]); + }); + + return xy; + }, + + rotatePoints: function(points, angle) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push(instance.rotatePoint(angle, points[i][0], points[i][1])); + }); + + return xy; + }, + + rotatePoint: function(angle, x, y) { + return [ + (x * Math.cos(angle)) - (y * Math.sin(angle)), + (x * Math.sin(angle)) + (y * Math.cos(angle)) + ]; + } +}; + +A.Connector = A.Base.create('line', A.Base, [], { + graphics: null, + shape: null, + + initializer: function(config) { + var instance = this; + + instance.after({ + p1Change: instance.draw, + p2Change: instance.draw + }); + + instance._initGraphics(); + instance._initShapes(); + + if (!instance.get(LAZY_DRAW)) { + instance.draw(); + } + }, + + destroy: function() { + var instance = this; + + instance.graphics.destroy(); + }, + + draw: function() { + var instance = this; + var shape = instance.shape; + + var c1 = instance.getCoordinate(instance.get(P1)); + var c2 = instance.getCoordinate(instance.get(P2)); + + shape.clear(); + + A.PolygonUtil.drawLineArrow(shape, c1[0], c1[1], c2[0], c2[1], instance.get(ARROW_POINTS)); + }, + + getCoordinate: function(p) { + var instance = this; + var xy = instance.get(VIEWPORT).getXY(); + + return [ p[0] - xy[0], p[1] - xy[1] ]; + }, + + _initGraphics: function() { + var instance = this; + + var graphics = new A.Graphic({ + width: instance.get(WIDTH), + height: instance.get(HEIGHT), + render: instance.get(VIEWPORT) + }); + + instance.graphics = graphics; + }, + + _initShapes: function() { + var instance = this; + + instance.shape = instance.graphics.getShape( + instance.get(SHAPE) + ); + }, + + _setShape: function(val) { + var instance = this; + + return A.merge( + { + type: PATH, + stroke: { + color: instance.get(COLOR), + weight: 2 + }, + fill: { + color: instance.get(COLOR) + } + }, + val + ); + } +},{ + ATTRS: { + color: { + value: '#666', + validator: isString + }, + + lazyDraw: { + value: false, + validator: isBoolean + }, + + viewport: { + setter: A.one, + value: BODY + }, + + shape: { + value: null, + setter: '_setShape' + }, + + arrowPoints: { + value: A.PolygonUtil.ARROW_POINTS + }, + + p1: { + value: [0, 0], + validator: isArray + }, + + p2: { + value: [0, 0], + validator: isArray + } + } +}); + +A.Anchor = A.Base.create('anchor', A.Base, [], { + ANCHOR_WRAPPER_TEMPLATE: '
              ', + NODE_TEMPLATE: '
              ', + + connectors: null, + + initializer: function() { + var instance = this; + + instance.connectors = {}; + + instance._renderNode(); + + instance.connectTargets(); + + instance.after({ + targetsChange: instance._afterTargetsChange + }); + }, + + addSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source).add(source) + ); + }, + + addTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target).add(target) + ); + }, + + alignConnectors: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + var tConnector = instance.getConnector(target); + + if (tConnector) { + tConnector.set(P1, instance.getCenterXY()); + tConnector.set(P2, target.getCenterXY()); + } + }); + + instance.get(SOURCES).each(function(source) { + var sConnector = source.getConnector(instance); + + if (sConnector) { + sConnector.set(P1, source.getCenterXY()); + sConnector.set(P2, instance.getCenterXY()); + } + }); + + return instance; + }, + + destroy: function() { + var instance = this; + + instance.disconnectTargets(); + instance.disconnectSources(); + + instance.get(NODE).remove(); + }, + + connect: function(target) { + var instance = this; + + instance.addTarget(target); + + if (!instance.isConnected(target)) { + var tConnector = target.get(CONNECTOR); + + tConnector.p1 = instance.getCenterXY(); + tConnector.p2 = target.getCenterXY(); + + instance.connectors[target.get(ID)] = new A.Connector(tConnector); + } + + return instance; + }, + + connectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(A.bind(instance.connect, instance)); + + return instance; + }, + + disconnect: function(target) { + var instance = this; + + instance.getConnector(target).destroy(); + + instance.removeTarget(target); + target.removeSource(instance); + }, + + disconnectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + instance.disconnect(target); + }); + + return instance; + }, + + disconnectSources: function() { + var instance = this; + + instance.get(SOURCES).each(function(source) { + source.disconnect(instance); + }); + + return instance; + }, + + getCenterXY: function() { + var instance = this; + + return instance.get(NODE).getCenterXY(); + }, + + getConnector: function(target) { + var instance = this; + + return instance.connectors[target.get(ID)]; + }, + + isConnected: function(target) { + var instance = this; + + return instance.connectors.hasOwnProperty(target.get(ID)); + }, + + updateSources: function(sources) { + var instance = this; + + instance.set(SOURCES, sources); + + return instance; + }, + + updateTargets: function(targets) { + var instance = this; + + instance.set(TARGETS, targets); + + return instance; + }, + + removeSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source) + ); + }, + + removeTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target) + ); + }, + + _afterActiveChange: function(event) { + var instance = this; + + instance._uiSetActive(event.newVal); + }, + + _afterTargetsChange: function(event) { + var instance = this; + + // TODO - event.prevVal is always equal to event.newVal, review this + // logic below, references between anchors needs to be cleaned up otherwise + // will store the wrong relationship between nodes. + + event.prevVal.each(function(anchor) { + anchor.removeSource(instance); + }); + + event.newVal.each(function(anchor) { + anchor.addSource(instance); + }); + }, + + _renderNode: function() { + var instance = this; + var diagramNode = instance.get(DIAGRAM_NODE); + var container = diagramNode.get(BOUNDING_BOX); + + instance.wrapper = container.one(_DOT+CSS_DB_ANCHOR_NODE_WRAPPER) || + A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE); + + instance.wrapper.appendTo(container).appendChild(instance.get(NODE)); + }, + + _setConnector: function(val) { + var instance = this; + + return A.merge( + { + viewport: instance.get(VIEWPORT) + }, + val + ); + }, + + _setSources: function(val) { + var instance = this; + + return instance._setAnchors(val); + }, + + _setTargets: function(val) { + var instance = this; + + val = instance._setAnchors(val); + + val.each(function(anchor) { + anchor.addSource(instance); + }); + + return val; + }, + + _setAnchors: function(val) { + var instance = this; + + if (!isArrayList(val)) { + var targets = []; + + A.Array.each(val, function(target) { + if (isString(target)) { + // TODO - need this? + target = A.Anchor.getAnchorByNode(target); + } + + targets.push( isAnchor(target) ? target : new A.Anchor(target) ); + }); + + val = new A.ArrayList(targets); + } + + return val; + }, + + _setNode: function(val) { + var instance = this; + var id = instance.get(ID); + + return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + } +},{ + ATTRS: { + diagramNode: { + }, + + connector: { + setter: '_setConnector', + value: {}, + validator: isObject + }, + + id: { + readOnly: true, + valueFn: function() { + return A.guid(); + } + }, + + maxSources: { + value: Infinity, + validator: isNumber + }, + + maxTargets: { + value: Infinity, + validator: isNumber + }, + + node: { + setter: '_setNode', + valueFn: function() { + var instance = this; + + return A.Node.create(instance.NODE_TEMPLATE); + } + }, + + sources: { + value: [], + setter: '_setSources', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + targets: { + value: [], + setter: '_setTargets', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + viewport: { + setter: A.one, + value: BODY + } + }, + + getAnchorByNode: function(node) { + return A.one(node).getData(DATA_ANCHOR); + } +}); + +}, '@VERSION@' ,{requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd'], skinnable:true}); diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index fbc2659c074..42d2ebf15d9 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -34,7 +34,7 @@ var Lang = A.Lang, CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', - CONTENT_CONTAINER = 'contentContainer', + VIEWPORT = 'viewport', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -72,9 +72,10 @@ var Lang = A.Lang, _SPACE = ' ', _DOT = '.', _DOLLAR = '$', + _HASH = '#', CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_BASE_VIEWPORT = AgetClassName(DIAGRAM, BUILDER, BASE, VIEWPORT), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -144,6 +145,18 @@ var AvailableField = A.Component.create({ EXTENDS: A.Base, + buildNodeId: function(id) { + return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; + }, + + getAvailableFieldByNode: function(node) { + return A.one(node).getData(AVAILABLE_FIELD); + }, + + getAvailableFieldById: function(id) { + return A.AvailableField.getAvailableFieldByNode(_HASH+A.AvailableField.buildNodeId(id)); + }, + prototype: { FIELD_ITEM_TEMPLATE: '
            • ' + '' + @@ -223,10 +236,6 @@ var AvailableField = A.Component.create({ } }); -AvailableField.buildNodeId = function(id) { - return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.AvailableField = AvailableField; var FieldSupport = function() { @@ -256,12 +265,13 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; + var newField = instance.createField(field); instance._updateFields( - instance.get(FIELDS).add( - instance.createField(field) - ) + instance.get(FIELDS).add(newField) ); + + return newField; }, removeField: function(field) { @@ -317,9 +327,9 @@ var DiagramBuilderBase = A.Component.create( validator: isArray }, - contentContainer: { + viewport: { valueFn: function() { - return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + return A.Node.create(this.VIEWPORT_TEMPLATE); } }, @@ -385,10 +395,10 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, + viewport: _DOT+CSS_DIAGRAM_BUILDER_BASE_VIEWPORT }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -396,10 +406,10 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
              ', DROP_CONTAINER_TEMPLATE: '
              ', TOOLBAR_CONTAINER_TEMPLATE: '
              ', FIELDS_CONTAINER_TEMPLATE: '
                ', + VIEWPORT_TEMPLATE: '
                ', fieldsNode: null, propertyList: null, @@ -422,7 +432,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); - instance.contentContainer = instance.get(CONTENT_CONTAINER); + instance.viewport = instance.get(VIEWPORT); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -435,14 +445,20 @@ var DiagramBuilderBase = A.Component.create( return (drag === availableFieldsDrag.dd); }, - plotFields: function(fields) { + plotFields: function() { + var instance = this; + var fields = instance.get(FIELDS); + + fields.each(function(field) { + instance.plotField(field); + }); }, renderUI: function() { var instance = this; instance._renderTabs(); - instance._renderContentContainer(); + instance._renderViewport(); instance._uiSetAvailableFields( instance.get(AVAILABLE_FIELDS) @@ -498,13 +514,13 @@ var DiagramBuilderBase = A.Component.create( instance.fire(SAVE); }, - _renderContentContainer: function() { + _renderViewport: function() { var instance = this; var contentBox = instance.get(CONTENT_BOX); - var contentContainer = instance.contentContainer; + var viewport = instance.viewport; - contentContainer.appendChild(instance.dropContainer); - contentBox.appendChild(contentContainer); + viewport.appendChild(instance.dropContainer); + contentBox.appendChild(viewport); }, _renderPropertyList: function() { @@ -588,6 +604,7 @@ var DiagramBuilderBase = A.Component.create( return A.merge( { bubbleTargets: instance, + groups: [AVAILABLE_FIELDS], node: instance.dropContainer }, val || {} @@ -602,6 +619,7 @@ var DiagramBuilderBase = A.Component.create( bubbleTargets: instance, container: instance.get(BOUNDING_BOX), dragConfig: { + groups: [AVAILABLE_FIELDS], plugins: [ { cfg: { @@ -723,6 +741,7 @@ var Lang = A.Lang, isArray = Lang.isArray, isObject = Lang.isObject, isString = Lang.isString, + isBoolean = Lang.isBoolean, AArray = A.Array, @@ -734,6 +753,10 @@ var Lang = A.Lang, return (val instanceof A.DiagramNode); }, + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + getLeftTop = function(container, node) { var nodeXY = isArray(node) ? node : node.getXY(); var containerXY = isArray(container) ? container : container.getXY(); @@ -743,44 +766,123 @@ var Lang = A.Lang, }); }, + ANCHOR = 'anchor', + ANCHORS = 'anchors', + ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', + CANCEL = 'cancel', + CLICK = 'click', + CONTENT = 'content', + CONTROLS = 'controls', + CONTROLS_TOOLBAR = 'controlsToolbar', DATA = 'data', DBLCLICK = 'dblclick', + DELETE = 'delete', + DELETE_MESSAGE = 'deleteMessage', DESCRIPTION = 'description', DIAGRAM = 'diagram', - DIAGRAM_BUILDER = 'diagram-builder', - DIAGRAM_NODE = 'diagram-node', + DIAGRAM_BUILDER_NAME = 'diagram-builder', + DIAGRAM_NODE = 'diagramNode', + DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + ESC = 'esc', + FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', + HOVER = 'hover', + KEYDOWN = 'keydown', + LINK = 'link', + MOUSEENTER = 'mouseenter', + MOUSELEAVE = 'mouseleave', NAME = 'name', NODE = 'node', + P1 = 'p1', + P2 = 'p2', PARENT_NODE = 'parentNode', RECORDS = 'records', RECORDSET = 'recordset', + REGION = 'region', RENDERED = 'rendered', + SELECTED = 'selected', + SHUFFLE = 'shuffle', + TASK = 'task', + TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', + VIEWPORT = 'viewport', + WRAPPER = 'wrapper', XY = 'xy', _DOT = '.', + _DOLLAR = '$', _EMPTY_STR = '', + _DASH = '-', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_CONTROLS = AgetClassName(DIAGRAM, BUILDER, CONTROLS), + CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE), + CSS_DIAGRAM_NODE_CONTENT = AgetClassName(DIAGRAM, NODE, CONTENT), CSS_DIAGRAM_NODE_EDITING = AgetClassName(DIAGRAM, NODE, EDITING), - CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE); + CSS_DIAGRAM_NODE_SELECTED = AgetClassName(DIAGRAM, NODE, SELECTED); + +// REMOVE THIS! +var __dump = function() { + var PAD = '        ', BR = '
                '; + + A.all('.aui-diagram-node').each(function(n) { + var b = _EMPTY_STR, + dn = A.Widget.getByNode(n), + dnName = dn.get('name'), + dnBB = dn.get('boundingBox'), + log = dnBB.one('.log') || A.Node.create('
                ').appendTo(dnBB); + + b += dnName + BR; + + dn.get(FIELDS).each(function(a) { + b += PAD + 'a: ' + a.get('id') + BR; + + a.get('targets').each(function(t) { + var tdn = t.get(DIAGRAM_NODE); + + t.get('node').setContent(t.get('id')); + + b += PAD + PAD + 't: ' + tdn.get('name') + ' (s: ' + t.get('id') + ')' + BR; + }); + + a.get('sources').each(function(s) { + var sdn = s.get(DIAGRAM_NODE); + + s.get('node').setContent(s.get('id')); + + b += PAD + PAD + 's: ' + sdn.get('name') + ' (t: ' + s.get('id') + ')' + BR; + }); + }); + + log.setContent(b); + }); +}; +// END. var DiagramBuilder = A.Component.create({ - NAME: DIAGRAM_BUILDER, + NAME: DIAGRAM_BUILDER_NAME, ATTRS: { fieldsDragConfig: { value: null, setter: '_setFieldsDragConfig', validator: isObject + }, + + tmpConnector: { + setter: '_setTmpConnector', + value: {}, + validator: isObject } }, @@ -797,12 +899,18 @@ var DiagramBuilder = A.Component.create({ instance.on({ cancel: instance._onCancel, + 'drag:drag': instance._onDrag, 'drag:end': instance._onDragEnd, 'drop:hit': instance._onDropHit, save: instance._onSave }); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); + + instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); instance.dropContainer.delegate(DBLCLICK, A.bind(instance._onNodeEdit, instance), _DOT+CSS_DIAGRAM_NODE); + instance.dropContainer.delegate(MOUSEENTER, A.bind(instance._onMouseenterAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); + instance.dropContainer.delegate(MOUSELEAVE, A.bind(instance._onMouseleaveAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); }, syncUI: function() { @@ -811,12 +919,17 @@ var DiagramBuilder = A.Component.create({ A.DiagramBuilder.superclass.syncUI.apply(this, arguments); instance._setupFieldsDrag(); + + instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, createField: function(val) { var instance = this; if (!isDiagramNode(val)) { + // val.bubbleTargets = instance; + val.builder = instance; + val.viewport = instance.get(VIEWPORT); val = new (instance.getFieldClass(val.type || NODE))(val); } @@ -846,21 +959,31 @@ var DiagramBuilder = A.Component.create({ return (drag === fieldsDrag.dd); }, - plotFields: function() { + plotField: function(field) { var instance = this; - var fields = instance.get(FIELDS); - fields.each(function(field) { - instance.plotField(field); - }); + if (!field.get(RENDERED)) { + field.render(instance.dropContainer); + } }, - plotField: function(field) { + unselectAll: function() { var instance = this; + var selectedNode = instance.selectedNode; - if (!field.get(RENDERED)) { - field.render(instance.dropContainer); + if (selectedNode) { + selectedNode.set(SELECTED, false); } + + instance.selectedNode = null; + }, + + select: function(diagramNode) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, startEditingNode: function(diagramNode) { @@ -871,8 +994,6 @@ var DiagramBuilder = A.Component.create({ instance.tabView.selectTab(A.DiagramBuilder.SETTINGS_TAB); - // instance._renderPropertyList(); - instance.propertyList.set(RECORDSET, diagramNode.getProperties()); diagramNode.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE_EDITING); @@ -894,12 +1015,42 @@ var DiagramBuilder = A.Component.create({ } }, + _afterKeyEvent: function(event) { + var instance = this; + + if (!instance.selectedNode || event.hasModifier() || !event.isKeyInSet(ESC, DELETE)) { + return; + } + + if (event.isKey(ESC)) { + instance._onEscKey(event); + } + else if (event.isKey(DELETE)) { + instance._onDeleteKey(event); + } + + event.halt(); + }, + _onCancel: function(event) { var instance = this; instance.stopEditingNode(); }, + _onDrag: function(event) { + var instance = this; + var drag = event.target; + + if (instance.isFieldsDrag(drag)) { + var diagramNode = A.Widget.getByNode(drag.get(DRAG_NODE)); + + diagramNode.get(FIELDS).each(function(anchor) { + anchor.alignConnectors(); + }); + } + }, + _onDragEnd: function(event) { var instance = this; var drag = event.target; @@ -918,15 +1069,56 @@ var DiagramBuilder = A.Component.create({ if (instance.isAvailableFieldsDrag(drag)) { var availableField = drag.get(NODE).getData(AVAILABLE_FIELD); - instance.addField({ + var newField = instance.addField({ xy: getLeftTop(drag.lastXY, instance.dropContainer), - type: availableField.get(TYPE) + type: availableField.get(TYPE), + fields: [{}] }); + + instance.select(newField); } }, + _onDeleteKey: function(event) { + var instance = this; + + instance.selectedNode.close(); + }, + + _onEscKey: function(event) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + }, + + _onMouseenterAnchors: function(event) { + var instance = this; + + event.currentTarget.addClass(CSS_DB_ANCHOR_HOVER); + }, + + _onMouseleaveAnchors: function(event) { + var instance = this; + + event.currentTarget.removeClass(CSS_DB_ANCHOR_HOVER); + }, + + _onNodeClick: function(event) { + var instance = this; + var diagramNode = A.Widget.getByNode(event.currentTarget); + + instance.select(diagramNode); + }, + _onNodeEdit: function(event) { var instance = this; + + // Only enable editing if the double clicked node is inside the node contentBox. + if (!event.target.ancestor(_DOT+CSS_DIAGRAM_NODE_CONTENT, true)) { + return; + } + var diagramNode = A.Widget.getByNode(event.currentTarget); if (diagramNode) { @@ -950,6 +1142,18 @@ var DiagramBuilder = A.Component.create({ } }, + _setTmpConnector: function(val) { + var instance = this; + + return A.merge( + { + lazyDraw: true, + viewport: instance.viewport + }, + val + ); + }, + _setFieldsDragConfig: function(val) { var instance = this; var dropContainer = instance.dropContainer; @@ -994,11 +1198,32 @@ A.DiagramBuilder = DiagramBuilder; A.DiagramBuilder.types = {}; +var DiagramNodeOverlay = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + EXTENDS: A.Overlay, + + // A.FieldSupport augment the class with "fields" attribute and util methods + // such as: addField, removeField. Although the attribute is called "fields" due to + // the augmentation, those fields are the anchors. TODO: Allow A.FieldSupport to + // customize the name of the attribute and method sufixes. + AUGMENTS: [A.FieldSupport] +}); + var DiagramNode = A.Component.create({ - NAME: DIAGRAM_NODE, + NAME: DIAGRAM_NODE_NAME, + + UI_ATTRS: [FIELDS, NAME, SELECTED], ATTRS: { + anchorsDragConfig: { + value: null, + setter: '_setAnchorsDragConfig', + validator: isObject + }, + builder: { + setter: '_setBuilder', validator: isDiagramBuilder }, @@ -1008,7 +1233,7 @@ var DiagramNode = A.Component.create({ }, height: { - value: 100 + value: 90 }, name: { @@ -1020,8 +1245,14 @@ var DiagramNode = A.Component.create({ validator: isString }, + selected: { + value: false, + validator: isBoolean + }, + strings: { value: { + deleteMessage: 'Are you sure you want to delete?', description: 'Description', name: 'Name', type: 'Type' @@ -1033,14 +1264,114 @@ var DiagramNode = A.Component.create({ validator: isString }, + controlsToolbar: { + setter: '_setControlsToolbar', + validator: isObject, + value: null + }, + width: { - value: 200 + value: 90 + }, + + zIndex: { + value: 100 + }, + + tabIndex: { + value: 1 } }, - EXTENDS: A.Overlay, + EXTENDS: DiagramNodeOverlay, + + buildNodeId: function(id) { + return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + }, prototype: { + ANCHOR_WRAPPER_TEMPLATE: '
                ', + CONTROLS_TEMPLATE: '
                ', + + initializer: function() { + var instance = this; + + instance._renderNodes(); + instance._setupAnchorsDrag(); + + instance.after({ + render: instance._afterRender + }); + + instance.on({ + 'drag:drag': instance._onAnchorDrag, + 'drag:end': instance._onAnchorDragEnd, + 'drag:start': instance._onAnchorDragStart, + 'drop:hit': instance._onAnchorDropHit + }); + + instance.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE+_DASH+instance.get(TYPE)); + + // REMOVE THIS! + instance.set('bodyContent', instance.get(NAME)); + }, + + alignAnchors: function() { + var instance = this; + var anchors = instance.get(FIELDS); + + var cRegion = instance.get(BOUNDING_BOX).get(REGION), + dAngle = Math.floor(360/anchors.size()), + a = cRegion.width/2, + b = cRegion.height/2, + centerX = cRegion.left + cRegion.width/2, + centerY = cRegion.top + cRegion.height/2; + + anchors.each(function(anchor, index) { + var anchorNode = anchor.get(NODE); + var aRegion = anchorNode.get(REGION); + var exy = instance._getEllipseXY(a, b, centerX, centerY, index*dAngle); + + anchorNode.setXY([ exy[0] - aRegion.width/2, exy[1] - aRegion.height/2 ]); + + anchor.alignConnectors(); + }); + + return instance; + }, + + close: function() { + var instance = this; + var strings = instance.getStrings(); + + if (confirm(strings[DELETE_MESSAGE])) { + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + + instance.destroy(); + } + + __dump(); + + return instance; + }, + + createField: function(val) { + var instance = this; + + if (!isAnchor(val)) { + var builder = instance.get(BUILDER); + + val.diagramNode = instance; + val.viewport = (builder ? builder.get(VIEWPORT) : null); + + val = new A.Anchor(val); + } + + return val; + }, + getLeftTop: function() { var instance = this; @@ -1089,31 +1420,829 @@ var DiagramNode = A.Component.create({ ]; }, + _afterRender: function(event) { + var instance = this; + + instance.alignAnchors(); + + instance._renderControls(); + }, + _getContainer: function() { var instance = this; return (instance.get(BUILDER).dropContainer || instance.get(BOUNDING_BOX).get(PARENT_NODE)); }, - _uiSetXY : function(val) { + _getEllipseXY: function(a, b, centerX, centerY, angle) { + var t = angle*Math.PI/180; + + return [ centerX + a*Math.cos(t), centerY - b*Math.sin(t) ]; + }, + + _handleAddAnchorEvent: function(event) { var instance = this; - var containerXY = instance._getContainer().getXY(); - this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); - } - } -}); + instance.addField({}); -DiagramNode.buildNodeId = function(id) { - return DIAGRAM_NODE + _DOLLAR + FIELD + _DOLLAR + id; -}; + // event.halt(); + }, -A.DiagramNode = DiagramNode; + _handleAddTaskEvent: function(event) { + var instance = this; + var builder = instance.get(BUILDER); -A.DiagramBuilder.types['node'] = A.DiagramNode; + var diagramNode = new A.DiagramNode({ + type: NODE, + xy: [100, 100] // TODO - find best position? + }); -}, '@VERSION@' ,{requires:['aui-diagram-builder-base','overlay'], skinnable:true}); + builder.addField(diagramNode); + + var source = instance.addField({}); + var target = diagramNode.addField({}); + source.connect(target); + }, + + _handleCloseEvent: function(event) { + var instance = this; + + instance.close(); + }, + + _onAnchorDrag: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P2, event.target.get(DRAG_NODE).getCenterXY()); + }, + + _onAnchorDragEnd: function(event) { + var instance = this; + var shape = instance.get(BUILDER).tmpConnector.shape; + + shape.clear(); + shape.end(); + }, + + _onAnchorDragStart: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P1, event.target.get(NODE).getCenterXY()); + }, + + _onAnchorDropHit: function(event) { + var instance = this; + var source = A.Anchor.getAnchorByNode(event.drag.get(NODE)); + var target = A.Anchor.getAnchorByNode(event.drop.get(NODE)); + + source.connect(target); + + __dump(); + }, + + _renderControls: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.controlsNode = A.Node.create(instance.CONTROLS_TEMPLATE).appendTo(boundingBox); + }, + + _renderNodes: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.anchorWrapper = A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE).appendTo(boundingBox); + }, + + _renderControlsToolbar: function(event) { + var instance = this; + + instance.controlsToolbar = new A.Toolbar( + instance.get(CONTROLS_TOOLBAR) + ) + .render(instance.controlsNode); + }, + + _setBuilder: function(val) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + anchor.set(VIEWPORT, val.get(VIEWPORT)); + }); + + return val; + }, + + _setAnchorsDragConfig: function(val) { + var instance = this; + var builder = instance.get(BUILDER); + + return A.merge( + { + bubbleTargets: instance, + container: instance.anchorWrapper, + dragConfig: { + groups: [ANCHORS], + plugins: [ + { + cfg: { + constrain: (builder ? builder.get(VIEWPORT) : null) + }, + fn: A.Plugin.DDConstrained + }, + { + cfg: { + scrollDelay: 150 + }, + fn: A.Plugin.DDWinScroll + }, + { + cfg: { + moveOnEnd: false + }, + fn: A.Plugin.DDProxy + } + ] + }, + nodes: _DOT+CSS_DB_ANCHOR_NODE, + target: true + }, + val || {} + ); + }, + + _setupAnchorsDrag: function() { + var instance = this; + + instance.anchorsDrag = new A.DD.Delegate( + instance.get(ANCHORS_DRAG_CONFIG) + ); + }, + + _setControlsToolbar: function(val) { + var instance = this; + + return A.merge( + { + activeState: false, + children: [ + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK + }, + { + handler: A.bind(instance._handleAddTaskEvent, instance), + icon: SHUFFLE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL + } + ] + }, + val + ); + }, + + _uiSetFields: function(val) { + var instance = this; + + if (instance.get(RENDERED)) { + instance.alignAnchors(); + + setTimeout(function() { + instance.anchorsDrag.syncTargets(); + }, 50); + } + }, + + _uiSetName: function(val) { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetSelected: function(val) { + var instance = this; + + instance.get(BOUNDING_BOX).toggleClass(CSS_DIAGRAM_NODE_SELECTED, val); + + if (val && !instance.controlsToolbar) { + instance._renderControlsToolbar(); + } + + // if (instance.get(RENDERED)) { + // instance.alignAnchors(); + // } + }, + + _uiSetXY : function(val) { + var instance = this; + var containerXY = instance._getContainer().getXY(); + + this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); + } + } +}); + +A.DiagramNode = DiagramNode; + +A.DiagramBuilder.types[NODE] = A.DiagramNode; + +A.DiagramNodeTask = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: TASK + } + }, + + EXTENDS: A.DiagramNode +}); + +A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; + +// TODO deletar anchors OK +// TODO deletar connections (delete) OK +// TODO Adicionar overlay de controles OK +// TODO syncTargets dd delegate + + +// TODO gerar XML +// TODO reposicionar setas? +// TODO Adicionar groups/validation for connection + +}, '@VERSION@' ,{requires:['aui-diagram-builder-base','overlay'], skinnable:true}); +AUI.add('aui-diagram-builder-connector', function(A) { +var Lang = A.Lang, + isArray = Lang.isArray, + isBoolean = Lang.isBoolean, + isNumber = Lang.isNumber, + isObject = Lang.isObject, + isString = Lang.isString, + + YArray = A.Array, + + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + + isArrayList = function(val) { + return (val instanceof A.ArrayList); + }, + + ANCHOR = 'anchor', + ARROW_POINTS = 'arrowPoints', + BODY = 'body', + BOUNDING_BOX = 'boundingBox', + BUILDER = 'builder', + COLOR = 'color', + CONNECTOR = 'connector', + DATA_ANCHOR = 'dataAnchor', + DIAGRAM = 'diagram', + DIAGRAM_NODE = 'diagramNode', + HEIGHT = 'height', + ID = 'id', + LAZY_DRAW = 'lazyDraw', + MAX_SOURCES = 'maxSources', + MAX_TARGETS = 'maxTargets', + NODE = 'node', + P1 = 'p1', + P2 = 'p2', + PATH = 'path', + SHAPE = 'shape', + SOURCES = 'sources', + TARGETS = 'targets', + VIEWPORT = 'viewport', + WIDTH = 'width', + WRAPPER = 'wrapper', + + _DOT = '.', + + AgetClassName = A.getClassName, + + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); + +A.PolygonUtil = { + ARROW_POINTS: [ + [ -12, -6 ], + [ -8, 0 ], + [ -12, 6 ], + [ 6, 0 ] + ], + + drawLineArrow: function(shape, x1, y1, x2, y2, arrowPoints) { + var instance = this; + + shape.moveTo(x1, y1); + shape.lineTo(x2, y2); + + var angle = Math.atan2(y2-y1, x2-x1), centerX = (x2+x1)/2, centerY = (y2+y1)/2; + + instance.drawPolygon( + shape, + instance.translatePoints(instance.rotatePoints(arrowPoints || instance.ARROW_POINTS, angle), centerX, centerY) + ); + }, + + drawPolygon: function(shape, points) { + var instance = this; + + shape.moveTo(points[0][0], points[0][1]); + + YArray.each(points, function(p, i) { + if (i > 0) { + shape.lineTo(points[i][0], points[i][1]); + } + }); + + shape.lineTo(points[0][0], points[0][1]); + shape.end(); + }, + + translatePoints: function(points, x, y) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push([ points[i][0] + x, points[i][1] + y ]); + }); + + return xy; + }, + + rotatePoints: function(points, angle) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push(instance.rotatePoint(angle, points[i][0], points[i][1])); + }); + + return xy; + }, + + rotatePoint: function(angle, x, y) { + return [ + (x * Math.cos(angle)) - (y * Math.sin(angle)), + (x * Math.sin(angle)) + (y * Math.cos(angle)) + ]; + } +}; + +A.Connector = A.Base.create('line', A.Base, [], { + graphics: null, + shape: null, + + initializer: function(config) { + var instance = this; + + instance.after({ + p1Change: instance.draw, + p2Change: instance.draw + }); + + instance._initGraphics(); + instance._initShapes(); + + if (!instance.get(LAZY_DRAW)) { + instance.draw(); + } + }, + + destroy: function() { + var instance = this; + + instance.graphics.destroy(); + }, + + draw: function() { + var instance = this; + var shape = instance.shape; + + var c1 = instance.getCoordinate(instance.get(P1)); + var c2 = instance.getCoordinate(instance.get(P2)); + + shape.clear(); + + A.PolygonUtil.drawLineArrow(shape, c1[0], c1[1], c2[0], c2[1], instance.get(ARROW_POINTS)); + }, + + getCoordinate: function(p) { + var instance = this; + var xy = instance.get(VIEWPORT).getXY(); + + return [ p[0] - xy[0], p[1] - xy[1] ]; + }, + + _initGraphics: function() { + var instance = this; + + var graphics = new A.Graphic({ + width: instance.get(WIDTH), + height: instance.get(HEIGHT), + render: instance.get(VIEWPORT) + }); + + instance.graphics = graphics; + }, + + _initShapes: function() { + var instance = this; + + instance.shape = instance.graphics.getShape( + instance.get(SHAPE) + ); + }, + + _setShape: function(val) { + var instance = this; + + return A.merge( + { + type: PATH, + stroke: { + color: instance.get(COLOR), + weight: 2 + }, + fill: { + color: instance.get(COLOR) + } + }, + val + ); + } +},{ + ATTRS: { + color: { + value: '#666', + validator: isString + }, + + lazyDraw: { + value: false, + validator: isBoolean + }, + + viewport: { + setter: A.one, + value: BODY + }, + + shape: { + value: null, + setter: '_setShape' + }, + + arrowPoints: { + value: A.PolygonUtil.ARROW_POINTS + }, + + p1: { + value: [0, 0], + validator: isArray + }, + + p2: { + value: [0, 0], + validator: isArray + } + } +}); + +A.Anchor = A.Base.create('anchor', A.Base, [], { + ANCHOR_WRAPPER_TEMPLATE: '
                ', + NODE_TEMPLATE: '
                ', + + connectors: null, + + initializer: function() { + var instance = this; + + instance.connectors = {}; + + instance._renderNode(); + + instance.connectTargets(); + + instance.after({ + targetsChange: instance._afterTargetsChange + }); + }, + + addSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source).add(source) + ); + }, + + addTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target).add(target) + ); + }, + + alignConnectors: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + var tConnector = instance.getConnector(target); + + if (tConnector) { + tConnector.set(P1, instance.getCenterXY()); + tConnector.set(P2, target.getCenterXY()); + } + }); + + instance.get(SOURCES).each(function(source) { + var sConnector = source.getConnector(instance); + + if (sConnector) { + sConnector.set(P1, source.getCenterXY()); + sConnector.set(P2, instance.getCenterXY()); + } + }); + + return instance; + }, + + destroy: function() { + var instance = this; + + instance.disconnectTargets(); + instance.disconnectSources(); + + instance.get(NODE).remove(); + }, + + connect: function(target) { + var instance = this; + + instance.addTarget(target); + + if (!instance.isConnected(target)) { + var tConnector = target.get(CONNECTOR); + + tConnector.p1 = instance.getCenterXY(); + tConnector.p2 = target.getCenterXY(); + + instance.connectors[target.get(ID)] = new A.Connector(tConnector); + } + + return instance; + }, + + connectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(A.bind(instance.connect, instance)); + + return instance; + }, + + disconnect: function(target) { + var instance = this; + + instance.getConnector(target).destroy(); + + instance.removeTarget(target); + target.removeSource(instance); + }, + + disconnectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + instance.disconnect(target); + }); + + return instance; + }, + + disconnectSources: function() { + var instance = this; + + instance.get(SOURCES).each(function(source) { + source.disconnect(instance); + }); + + return instance; + }, + + getCenterXY: function() { + var instance = this; + + return instance.get(NODE).getCenterXY(); + }, + + getConnector: function(target) { + var instance = this; + + return instance.connectors[target.get(ID)]; + }, + + isConnected: function(target) { + var instance = this; + + return instance.connectors.hasOwnProperty(target.get(ID)); + }, + + updateSources: function(sources) { + var instance = this; + + instance.set(SOURCES, sources); + + return instance; + }, + + updateTargets: function(targets) { + var instance = this; + + instance.set(TARGETS, targets); + + return instance; + }, + + removeSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source) + ); + }, + + removeTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target) + ); + }, + + _afterActiveChange: function(event) { + var instance = this; + + instance._uiSetActive(event.newVal); + }, + + _afterTargetsChange: function(event) { + var instance = this; + + // TODO - event.prevVal is always equal to event.newVal, review this + // logic below, references between anchors needs to be cleaned up otherwise + // will store the wrong relationship between nodes. + + event.prevVal.each(function(anchor) { + anchor.removeSource(instance); + }); + + event.newVal.each(function(anchor) { + anchor.addSource(instance); + }); + }, + + _renderNode: function() { + var instance = this; + var diagramNode = instance.get(DIAGRAM_NODE); + var container = diagramNode.get(BOUNDING_BOX); + + instance.wrapper = container.one(_DOT+CSS_DB_ANCHOR_NODE_WRAPPER) || + A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE); + + instance.wrapper.appendTo(container).appendChild(instance.get(NODE)); + }, + + _setConnector: function(val) { + var instance = this; + + return A.merge( + { + viewport: instance.get(VIEWPORT) + }, + val + ); + }, + + _setSources: function(val) { + var instance = this; + + return instance._setAnchors(val); + }, + + _setTargets: function(val) { + var instance = this; + + val = instance._setAnchors(val); + + val.each(function(anchor) { + anchor.addSource(instance); + }); + + return val; + }, + + _setAnchors: function(val) { + var instance = this; + + if (!isArrayList(val)) { + var targets = []; + + A.Array.each(val, function(target) { + if (isString(target)) { + // TODO - need this? + target = A.Anchor.getAnchorByNode(target); + } + + targets.push( isAnchor(target) ? target : new A.Anchor(target) ); + }); + + val = new A.ArrayList(targets); + } + + return val; + }, + + _setNode: function(val) { + var instance = this; + var id = instance.get(ID); + + return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + } +},{ + ATTRS: { + diagramNode: { + }, + + connector: { + setter: '_setConnector', + value: {}, + validator: isObject + }, + + id: { + readOnly: true, + valueFn: function() { + return A.guid(); + } + }, + + maxSources: { + value: Infinity, + validator: isNumber + }, + + maxTargets: { + value: Infinity, + validator: isNumber + }, + + node: { + setter: '_setNode', + valueFn: function() { + var instance = this; + + return A.Node.create(instance.NODE_TEMPLATE); + } + }, + + sources: { + value: [], + setter: '_setSources', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + targets: { + value: [], + setter: '_setTargets', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + viewport: { + setter: A.one, + value: BODY + } + }, + + getAnchorByNode: function(node) { + return A.one(node).getData(DATA_ANCHOR); + } +}); + +}, '@VERSION@' ,{requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd'], skinnable:true}); -AUI.add('aui-diagram-builder', function(A){}, '@VERSION@' ,{use:['aui-diagram-builder-base','aui-diagram-builder-impl'], skinnable:true}); +AUI.add('aui-diagram-builder', function(A){}, '@VERSION@' ,{use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}); diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js index d7ee02a9cb2..47d1c299466 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js @@ -3,6 +3,7 @@ var Lang = A.Lang, isArray = Lang.isArray, isObject = Lang.isObject, isString = Lang.isString, + isBoolean = Lang.isBoolean, AArray = A.Array, @@ -14,6 +15,10 @@ var Lang = A.Lang, return (val instanceof A.DiagramNode); }, + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + getLeftTop = function(container, node) { var nodeXY = isArray(node) ? node : node.getXY(); var containerXY = isArray(container) ? container : container.getXY(); @@ -23,44 +28,123 @@ var Lang = A.Lang, }); }, + ANCHOR = 'anchor', + ANCHORS = 'anchors', + ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', + CANCEL = 'cancel', + CLICK = 'click', + CONTENT = 'content', + CONTROLS = 'controls', + CONTROLS_TOOLBAR = 'controlsToolbar', DATA = 'data', DBLCLICK = 'dblclick', + DELETE = 'delete', + DELETE_MESSAGE = 'deleteMessage', DESCRIPTION = 'description', DIAGRAM = 'diagram', - DIAGRAM_BUILDER = 'diagram-builder', - DIAGRAM_NODE = 'diagram-node', + DIAGRAM_BUILDER_NAME = 'diagram-builder', + DIAGRAM_NODE = 'diagramNode', + DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + ESC = 'esc', + FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', + HOVER = 'hover', + KEYDOWN = 'keydown', + LINK = 'link', + MOUSEENTER = 'mouseenter', + MOUSELEAVE = 'mouseleave', NAME = 'name', NODE = 'node', + P1 = 'p1', + P2 = 'p2', PARENT_NODE = 'parentNode', RECORDS = 'records', RECORDSET = 'recordset', + REGION = 'region', RENDERED = 'rendered', + SELECTED = 'selected', + SHUFFLE = 'shuffle', + TASK = 'task', + TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', + VIEWPORT = 'viewport', + WRAPPER = 'wrapper', XY = 'xy', _DOT = '.', + _DOLLAR = '$', _EMPTY_STR = '', + _DASH = '-', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_CONTROLS = AgetClassName(DIAGRAM, BUILDER, CONTROLS), + CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE), + CSS_DIAGRAM_NODE_CONTENT = AgetClassName(DIAGRAM, NODE, CONTENT), CSS_DIAGRAM_NODE_EDITING = AgetClassName(DIAGRAM, NODE, EDITING), - CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE); + CSS_DIAGRAM_NODE_SELECTED = AgetClassName(DIAGRAM, NODE, SELECTED); + +// REMOVE THIS! +var __dump = function() { + var PAD = '        ', BR = '
                '; + + A.all('.aui-diagram-node').each(function(n) { + var b = _EMPTY_STR, + dn = A.Widget.getByNode(n), + dnName = dn.get('name'), + dnBB = dn.get('boundingBox'), + log = dnBB.one('.log') || A.Node.create('
                ').appendTo(dnBB); + + b += dnName + BR; + + dn.get(FIELDS).each(function(a) { + b += PAD + 'a: ' + a.get('id') + BR; + + a.get('targets').each(function(t) { + var tdn = t.get(DIAGRAM_NODE); + + t.get('node').setContent(t.get('id')); + + b += PAD + PAD + 't: ' + tdn.get('name') + ' (s: ' + t.get('id') + ')' + BR; + }); + + a.get('sources').each(function(s) { + var sdn = s.get(DIAGRAM_NODE); + + s.get('node').setContent(s.get('id')); + + b += PAD + PAD + 's: ' + sdn.get('name') + ' (t: ' + s.get('id') + ')' + BR; + }); + }); + + log.setContent(b); + }); +}; +// END. var DiagramBuilder = A.Component.create({ - NAME: DIAGRAM_BUILDER, + NAME: DIAGRAM_BUILDER_NAME, ATTRS: { fieldsDragConfig: { value: null, setter: '_setFieldsDragConfig', validator: isObject + }, + + tmpConnector: { + setter: '_setTmpConnector', + value: {}, + validator: isObject } }, @@ -77,12 +161,18 @@ var DiagramBuilder = A.Component.create({ instance.on({ cancel: instance._onCancel, + 'drag:drag': instance._onDrag, 'drag:end': instance._onDragEnd, 'drop:hit': instance._onDropHit, save: instance._onSave }); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); + + instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); instance.dropContainer.delegate(DBLCLICK, A.bind(instance._onNodeEdit, instance), _DOT+CSS_DIAGRAM_NODE); + instance.dropContainer.delegate(MOUSEENTER, A.bind(instance._onMouseenterAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); + instance.dropContainer.delegate(MOUSELEAVE, A.bind(instance._onMouseleaveAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); }, syncUI: function() { @@ -91,12 +181,17 @@ var DiagramBuilder = A.Component.create({ A.DiagramBuilder.superclass.syncUI.apply(this, arguments); instance._setupFieldsDrag(); + + instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, createField: function(val) { var instance = this; if (!isDiagramNode(val)) { + // val.bubbleTargets = instance; + val.builder = instance; + val.viewport = instance.get(VIEWPORT); val = new (instance.getFieldClass(val.type || NODE))(val); } @@ -126,21 +221,31 @@ var DiagramBuilder = A.Component.create({ return (drag === fieldsDrag.dd); }, - plotFields: function() { + plotField: function(field) { var instance = this; - var fields = instance.get(FIELDS); - fields.each(function(field) { - instance.plotField(field); - }); + if (!field.get(RENDERED)) { + field.render(instance.dropContainer); + } }, - plotField: function(field) { + unselectAll: function() { var instance = this; + var selectedNode = instance.selectedNode; - if (!field.get(RENDERED)) { - field.render(instance.dropContainer); + if (selectedNode) { + selectedNode.set(SELECTED, false); } + + instance.selectedNode = null; + }, + + select: function(diagramNode) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, startEditingNode: function(diagramNode) { @@ -151,8 +256,6 @@ var DiagramBuilder = A.Component.create({ instance.tabView.selectTab(A.DiagramBuilder.SETTINGS_TAB); - // instance._renderPropertyList(); - instance.propertyList.set(RECORDSET, diagramNode.getProperties()); diagramNode.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE_EDITING); @@ -174,12 +277,42 @@ var DiagramBuilder = A.Component.create({ } }, + _afterKeyEvent: function(event) { + var instance = this; + + if (!instance.selectedNode || event.hasModifier() || !event.isKeyInSet(ESC, DELETE)) { + return; + } + + if (event.isKey(ESC)) { + instance._onEscKey(event); + } + else if (event.isKey(DELETE)) { + instance._onDeleteKey(event); + } + + event.halt(); + }, + _onCancel: function(event) { var instance = this; instance.stopEditingNode(); }, + _onDrag: function(event) { + var instance = this; + var drag = event.target; + + if (instance.isFieldsDrag(drag)) { + var diagramNode = A.Widget.getByNode(drag.get(DRAG_NODE)); + + diagramNode.get(FIELDS).each(function(anchor) { + anchor.alignConnectors(); + }); + } + }, + _onDragEnd: function(event) { var instance = this; var drag = event.target; @@ -198,15 +331,56 @@ var DiagramBuilder = A.Component.create({ if (instance.isAvailableFieldsDrag(drag)) { var availableField = drag.get(NODE).getData(AVAILABLE_FIELD); - instance.addField({ + var newField = instance.addField({ xy: getLeftTop(drag.lastXY, instance.dropContainer), - type: availableField.get(TYPE) + type: availableField.get(TYPE), + fields: [{}] }); + + instance.select(newField); } }, + _onDeleteKey: function(event) { + var instance = this; + + instance.selectedNode.close(); + }, + + _onEscKey: function(event) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + }, + + _onMouseenterAnchors: function(event) { + var instance = this; + + event.currentTarget.addClass(CSS_DB_ANCHOR_HOVER); + }, + + _onMouseleaveAnchors: function(event) { + var instance = this; + + event.currentTarget.removeClass(CSS_DB_ANCHOR_HOVER); + }, + + _onNodeClick: function(event) { + var instance = this; + var diagramNode = A.Widget.getByNode(event.currentTarget); + + instance.select(diagramNode); + }, + _onNodeEdit: function(event) { var instance = this; + + // Only enable editing if the double clicked node is inside the node contentBox. + if (!event.target.ancestor(_DOT+CSS_DIAGRAM_NODE_CONTENT, true)) { + return; + } + var diagramNode = A.Widget.getByNode(event.currentTarget); if (diagramNode) { @@ -230,6 +404,18 @@ var DiagramBuilder = A.Component.create({ } }, + _setTmpConnector: function(val) { + var instance = this; + + return A.merge( + { + lazyDraw: true, + viewport: instance.viewport + }, + val + ); + }, + _setFieldsDragConfig: function(val) { var instance = this; var dropContainer = instance.dropContainer; @@ -274,11 +460,32 @@ A.DiagramBuilder = DiagramBuilder; A.DiagramBuilder.types = {}; +var DiagramNodeOverlay = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + EXTENDS: A.Overlay, + + // A.FieldSupport augment the class with "fields" attribute and util methods + // such as: addField, removeField. Although the attribute is called "fields" due to + // the augmentation, those fields are the anchors. TODO: Allow A.FieldSupport to + // customize the name of the attribute and method sufixes. + AUGMENTS: [A.FieldSupport] +}); + var DiagramNode = A.Component.create({ - NAME: DIAGRAM_NODE, + NAME: DIAGRAM_NODE_NAME, + + UI_ATTRS: [FIELDS, NAME, SELECTED], ATTRS: { + anchorsDragConfig: { + value: null, + setter: '_setAnchorsDragConfig', + validator: isObject + }, + builder: { + setter: '_setBuilder', validator: isDiagramBuilder }, @@ -288,7 +495,7 @@ var DiagramNode = A.Component.create({ }, height: { - value: 100 + value: 90 }, name: { @@ -300,8 +507,14 @@ var DiagramNode = A.Component.create({ validator: isString }, + selected: { + value: false, + validator: isBoolean + }, + strings: { value: { + deleteMessage: 'Are you sure you want to delete?', description: 'Description', name: 'Name', type: 'Type' @@ -313,14 +526,114 @@ var DiagramNode = A.Component.create({ validator: isString }, + controlsToolbar: { + setter: '_setControlsToolbar', + validator: isObject, + value: null + }, + width: { - value: 200 + value: 90 + }, + + zIndex: { + value: 100 + }, + + tabIndex: { + value: 1 } }, - EXTENDS: A.Overlay, + EXTENDS: DiagramNodeOverlay, + + buildNodeId: function(id) { + return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + }, prototype: { + ANCHOR_WRAPPER_TEMPLATE: '
                ', + CONTROLS_TEMPLATE: '
                ', + + initializer: function() { + var instance = this; + + instance._renderNodes(); + instance._setupAnchorsDrag(); + + instance.after({ + render: instance._afterRender + }); + + instance.on({ + 'drag:drag': instance._onAnchorDrag, + 'drag:end': instance._onAnchorDragEnd, + 'drag:start': instance._onAnchorDragStart, + 'drop:hit': instance._onAnchorDropHit + }); + + instance.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE+_DASH+instance.get(TYPE)); + + // REMOVE THIS! + instance.set('bodyContent', instance.get(NAME)); + }, + + alignAnchors: function() { + var instance = this; + var anchors = instance.get(FIELDS); + + var cRegion = instance.get(BOUNDING_BOX).get(REGION), + dAngle = Math.floor(360/anchors.size()), + a = cRegion.width/2, + b = cRegion.height/2, + centerX = cRegion.left + cRegion.width/2, + centerY = cRegion.top + cRegion.height/2; + + anchors.each(function(anchor, index) { + var anchorNode = anchor.get(NODE); + var aRegion = anchorNode.get(REGION); + var exy = instance._getEllipseXY(a, b, centerX, centerY, index*dAngle); + + anchorNode.setXY([ exy[0] - aRegion.width/2, exy[1] - aRegion.height/2 ]); + + anchor.alignConnectors(); + }); + + return instance; + }, + + close: function() { + var instance = this; + var strings = instance.getStrings(); + + if (confirm(strings[DELETE_MESSAGE])) { + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + + instance.destroy(); + } + + __dump(); + + return instance; + }, + + createField: function(val) { + var instance = this; + + if (!isAnchor(val)) { + var builder = instance.get(BUILDER); + + val.diagramNode = instance; + val.viewport = (builder ? builder.get(VIEWPORT) : null); + + val = new A.Anchor(val); + } + + return val; + }, + getLeftTop: function() { var instance = this; @@ -369,12 +682,225 @@ var DiagramNode = A.Component.create({ ]; }, + _afterRender: function(event) { + var instance = this; + + instance.alignAnchors(); + + instance._renderControls(); + }, + _getContainer: function() { var instance = this; return (instance.get(BUILDER).dropContainer || instance.get(BOUNDING_BOX).get(PARENT_NODE)); }, + _getEllipseXY: function(a, b, centerX, centerY, angle) { + var t = angle*Math.PI/180; + + return [ centerX + a*Math.cos(t), centerY - b*Math.sin(t) ]; + }, + + _handleAddAnchorEvent: function(event) { + var instance = this; + + instance.addField({}); + + // event.halt(); + }, + + _handleAddTaskEvent: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + var diagramNode = new A.DiagramNode({ + type: NODE, + xy: [100, 100] // TODO - find best position? + }); + + builder.addField(diagramNode); + + var source = instance.addField({}); + var target = diagramNode.addField({}); + source.connect(target); + }, + + _handleCloseEvent: function(event) { + var instance = this; + + instance.close(); + }, + + _onAnchorDrag: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P2, event.target.get(DRAG_NODE).getCenterXY()); + }, + + _onAnchorDragEnd: function(event) { + var instance = this; + var shape = instance.get(BUILDER).tmpConnector.shape; + + shape.clear(); + shape.end(); + }, + + _onAnchorDragStart: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P1, event.target.get(NODE).getCenterXY()); + }, + + _onAnchorDropHit: function(event) { + var instance = this; + var source = A.Anchor.getAnchorByNode(event.drag.get(NODE)); + var target = A.Anchor.getAnchorByNode(event.drop.get(NODE)); + + source.connect(target); + + __dump(); + }, + + _renderControls: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.controlsNode = A.Node.create(instance.CONTROLS_TEMPLATE).appendTo(boundingBox); + }, + + _renderNodes: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.anchorWrapper = A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE).appendTo(boundingBox); + }, + + _renderControlsToolbar: function(event) { + var instance = this; + + instance.controlsToolbar = new A.Toolbar( + instance.get(CONTROLS_TOOLBAR) + ) + .render(instance.controlsNode); + }, + + _setBuilder: function(val) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + anchor.set(VIEWPORT, val.get(VIEWPORT)); + }); + + return val; + }, + + _setAnchorsDragConfig: function(val) { + var instance = this; + var builder = instance.get(BUILDER); + + return A.merge( + { + bubbleTargets: instance, + container: instance.anchorWrapper, + dragConfig: { + groups: [ANCHORS], + plugins: [ + { + cfg: { + constrain: (builder ? builder.get(VIEWPORT) : null) + }, + fn: A.Plugin.DDConstrained + }, + { + cfg: { + scrollDelay: 150 + }, + fn: A.Plugin.DDWinScroll + }, + { + cfg: { + moveOnEnd: false + }, + fn: A.Plugin.DDProxy + } + ] + }, + nodes: _DOT+CSS_DB_ANCHOR_NODE, + target: true + }, + val || {} + ); + }, + + _setupAnchorsDrag: function() { + var instance = this; + + instance.anchorsDrag = new A.DD.Delegate( + instance.get(ANCHORS_DRAG_CONFIG) + ); + }, + + _setControlsToolbar: function(val) { + var instance = this; + + return A.merge( + { + activeState: false, + children: [ + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK + }, + { + handler: A.bind(instance._handleAddTaskEvent, instance), + icon: SHUFFLE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL + } + ] + }, + val + ); + }, + + _uiSetFields: function(val) { + var instance = this; + + if (instance.get(RENDERED)) { + instance.alignAnchors(); + + setTimeout(function() { + instance.anchorsDrag.syncTargets(); + }, 50); + } + }, + + _uiSetName: function(val) { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetSelected: function(val) { + var instance = this; + + instance.get(BOUNDING_BOX).toggleClass(CSS_DIAGRAM_NODE_SELECTED, val); + + if (val && !instance.controlsToolbar) { + instance._renderControlsToolbar(); + } + + // if (instance.get(RENDERED)) { + // instance.alignAnchors(); + // } + }, + _uiSetXY : function(val) { var instance = this; var containerXY = instance._getContainer().getXY(); @@ -384,12 +910,32 @@ var DiagramNode = A.Component.create({ } }); -DiagramNode.buildNodeId = function(id) { - return DIAGRAM_NODE + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.DiagramNode = DiagramNode; -A.DiagramBuilder.types['node'] = A.DiagramNode; +A.DiagramBuilder.types[NODE] = A.DiagramNode; + +A.DiagramNodeTask = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: TASK + } + }, + + EXTENDS: A.DiagramNode +}); + +A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; + +// TODO deletar anchors OK +// TODO deletar connections (delete) OK +// TODO Adicionar overlay de controles OK +// TODO syncTargets dd delegate + + +// TODO gerar XML +// TODO reposicionar setas? +// TODO Adicionar groups/validation for connection }, '@VERSION@' ,{requires:['aui-diagram-builder-base','overlay'], skinnable:true}); diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js index 79fe9e45d4e..89a00c8e6a2 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js @@ -1 +1,2 @@ -AUI.add("aui-diagram-builder-impl",function(h){var K=h.Lang,u=K.isArray,E=K.isObject,e=K.isString,o=h.Array,y=function(A){return(A instanceof h.DiagramBuilderBase);},p=function(A){return(A instanceof h.DiagramNode);},n=function(A,N){var M=u(N)?N:N.getXY();var O=u(A)?A:A.getXY();return o.map(O,function(Q,P){return Math.max(0,Q-M[P]);});},B="availableField",I="boundingBox",L="builder",g="data",t="dblclick",a="description",C="diagram",d="diagram-builder",v="diagram-node",c="dragNode",b="editing",x="fields",s="fieldsDragConfig",z="name",J="node",f="parentNode",i="records",D="recordset",G="rendered",j="type",k="xy",r=".",q="",w=h.getClassName,l=w(C,J,b),F=w(C,J);var m=h.Component.create({NAME:d,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:E}},EXTENDS:h.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.dropContainer.delegate(t,h.bind(A._onNodeEdit,A),r+F);},syncUI:function(){var A=this;h.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();},createField:function(M){var A=this;if(!p(M)){M=new (A.getFieldClass(M.type||J))(M);}M.set(L,A);return M;},getFieldClass:function(N){var A=this;var M=h.DiagramBuilder.types[N];if(M){return M;}else{h.log("The field type: ["+N+"] couldn't be found.");return null;}},isFieldsDrag:function(N){var A=this;var M=A.fieldsDrag;return(N===M.dd);},plotFields:function(){var M=this;var A=M.get(x);A.each(function(N){M.plotField(N);});},plotField:function(M){var A=this;if(!M.get(G)){M.render(A.dropContainer);}},startEditingNode:function(M){var A=this;if(M){A.stopEditingNode();A.tabView.selectTab(h.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(D,M.getProperties());M.get(I).addClass(l);A.editNode=M;}},stopEditingNode:function(N){var A=this;var M=N||A.editNode;if(M){A.tabView.selectTab(h.DiagramBuilder.FIELDS_TAB);M.get(I).removeClass(l);A.editNode=null;}},_onCancel:function(M){var A=this;A.stopEditingNode();},_onDragEnd:function(N){var A=this;var M=N.target;if(A.isFieldsDrag(M)){var O=h.Widget.getByNode(M.get(c));O.set(k,O.getLeftTop());}},_onDropHit:function(N){var A=this;var M=N.drag;if(A.isAvailableFieldsDrag(M)){var O=M.get(J).getData(B);A.addField({xy:n(M.lastXY,A.dropContainer),type:O.get(j)});}},_onNodeEdit:function(M){var A=this;var N=h.Widget.getByNode(M.currentTarget);if(N){A.startEditingNode(N);}},_onSave:function(N){var A=this;var M=A.editNode;var O=A.propertyList.get(D);if(M){o.each(O.get(i),function(P){var Q=P.get(g);M.set(Q.attributeName,Q.value);});A.stopEditingNode(M);}},_setFieldsDragConfig:function(N){var A=this;var M=A.dropContainer;return h.merge({bubbleTargets:A,container:M,dragConfig:{plugins:[{cfg:{constrain:M},fn:h.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:h.Plugin.DDWinScroll}]},nodes:r+F},N||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new h.DD.Delegate(A.get(s));}}});h.DiagramBuilder=m;h.DiagramBuilder.types={};var H=h.Component.create({NAME:v,ATTRS:{builder:{validator:y},description:{value:q,validator:e},height:{value:100},name:{valueFn:function(){var A=this;return A.get(j)+(++h.Env._uidx);},validator:e},strings:{value:{description:"Description",name:"Name",type:"Type"}},type:{value:J,validator:e},width:{value:200}},EXTENDS:h.Overlay,prototype:{getLeftTop:function(){var A=this;return n(A.get(I),A._getContainer());},getProperties:function(){var A=this;var M=A.getPropertyModel();o.each(M,function(N){N.value=A.get(N.attributeName);});return M;},getPropertyModel:function(){var M=this;var A=M.getStrings();return[{attributeName:a,editor:new h.TextAreaCellEditor(),name:A[a]},{attributeName:z,editor:new h.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[z]},{attributeName:j,editor:false,name:A[j]}];},_getContainer:function(){var A=this;return(A.get(L).dropContainer||A.get(I).get(f));},_uiSetXY:function(N){var A=this;var M=A._getContainer().getXY();this._posNode.setXY([N[0]+M[0],N[1]+M[1]]);}}});H.buildNodeId=function(A){return v+_DOLLAR+FIELD+_DOLLAR+A;};h.DiagramNode=H;h.DiagramBuilder.types["node"]=h.DiagramNode;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-impl",function(W){var L=W.Lang,c=L.isArray,w=L.isObject,ar=L.isString,ao=L.isBoolean,ay=W.Array,J=function(A){return(A instanceof W.DiagramBuilderBase);},ap=function(A){return(A instanceof W.DiagramNode);},S=function(A){return(A instanceof W.Anchor);},ab=function(A,aB){var aA=c(aB)?aB:aB.getXY();var aC=c(A)?A:A.getXY();return ay.map(aC,function(aE,aD){return Math.max(0,aE-aA[aD]);});},ad="anchor",X="anchors",R="anchorsDragConfig",F="availableField",k="boundingBox",au="builder",P="cancel",ai="click",U="content",y="controls",ah="controlsToolbar",ag="data",Q="dblclick",I="delete",Y="deleteMessage",al="description",v="diagram",T="diagram-builder",ac="diagramNode",s="diagram-node",am="dragNode",D="editing",a="esc",an="field",m="fields",aa="fieldsDragConfig",l="hover",E="keydown",V="link",n="mouseenter",K="mouseleave",i="name",j="node",af="p1",ae="p2",d="parentNode",O="records",h="recordset",g="region",av="rendered",aq="selected",x="shuffle",t="task",B="tmpConnector",e="type",C="viewport",at="wrapper",q="xy",f=".",z="$",G="",ax="-",p=W.getClassName,Z=p(v,au,ad,l),aj=p(v,au,ad,j),u=p(v,au,ad,j,at),o=p(v,au,y),M=p(v,j),b=p(v,j,U),ak=p(v,j,D),aw=p(v,j,aq);var N=function(){var aA="        ",A="
                ";W.all(".aui-diagram-node").each(function(aG){var aB=G,aD=W.Widget.getByNode(aG),aC=aD.get("name"),aF=aD.get("boundingBox"),aE=aF.one(".log")||W.Node.create("
                ").appendTo(aF);aB+=aC+A;aD.get(m).each(function(aH){aB+=aA+"a: "+aH.get("id")+A;aH.get("targets").each(function(aI){var aJ=aI.get(ac);aI.get("node").setContent(aI.get("id"));aB+=aA+aA+"t: "+aJ.get("name")+" (s: "+aI.get("id")+")"+A;});aH.get("sources").each(function(aJ){var aI=aJ.get(ac);aJ.get("node").setContent(aJ.get("id"));aB+=aA+aA+"s: "+aI.get("name")+" (t: "+aJ.get("id")+")"+A;});});aE.setContent(aB);});};var r=W.Component.create({NAME:T,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:w},tmpConnector:{setter:"_setTmpConnector",value:{},validator:w}},EXTENDS:W.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=W.getDoc().on(E,W.bind(A._afterKeyEvent,A));A.dropContainer.delegate(ai,W.bind(A._onNodeClick,A),f+M);A.dropContainer.delegate(Q,W.bind(A._onNodeEdit,A),f+M);A.dropContainer.delegate(n,W.bind(A._onMouseenterAnchors,A),f+aj);A.dropContainer.delegate(K,W.bind(A._onMouseleaveAnchors,A),f+aj);},syncUI:function(){var A=this;W.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new W.Connector(A.get(B));},createField:function(aA){var A=this;if(!ap(aA)){aA.builder=A;aA.viewport=A.get(C);aA=new (A.getFieldClass(aA.type||j))(aA);}aA.set(au,A);return aA;},getFieldClass:function(aB){var A=this;var aA=W.DiagramBuilder.types[aB];if(aA){return aA;}else{W.log("The field type: ["+aB+"] couldn't be found.");return null;}},isFieldsDrag:function(aB){var A=this;var aA=A.fieldsDrag;return(aB===aA.dd);},plotField:function(aA){var A=this;if(!aA.get(av)){aA.render(A.dropContainer);}},unselectAll:function(){var A=this;var aA=A.selectedNode;if(aA){aA.set(aq,false);}A.selectedNode=null;},select:function(aA){var A=this;A.unselectAll();A.stopEditingNode();A.selectedNode=aA.set(aq,true).focus();},startEditingNode:function(aA){var A=this;if(aA){A.stopEditingNode();A.tabView.selectTab(W.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(h,aA.getProperties());aA.get(k).addClass(ak);A.editNode=aA;}},stopEditingNode:function(aB){var A=this;var aA=aB||A.editNode;if(aA){A.tabView.selectTab(W.DiagramBuilder.FIELDS_TAB);aA.get(k).removeClass(ak);A.editNode=null;}},_afterKeyEvent:function(aA){var A=this;if(!A.selectedNode||aA.hasModifier()||!aA.isKeyInSet(a,I)){return;}if(aA.isKey(a)){A._onEscKey(aA);}else{if(aA.isKey(I)){A._onDeleteKey(aA);}}aA.halt();},_onCancel:function(aA){var A=this;A.stopEditingNode();},_onDrag:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.get(m).each(function(aD){aD.alignConnectors();});}},_onDragEnd:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.set(q,aC.getLeftTop());}},_onDropHit:function(aB){var A=this;var aA=aB.drag;if(A.isAvailableFieldsDrag(aA)){var aD=aA.get(j).getData(F);var aC=A.addField({xy:ab(aA.lastXY,A.dropContainer),type:aD.get(e),fields:[{}]});A.select(aC);}},_onDeleteKey:function(aA){var A=this;A.selectedNode.close();},_onEscKey:function(aA){var A=this;A.unselectAll();A.stopEditingNode();},_onMouseenterAnchors:function(aA){var A=this;aA.currentTarget.addClass(Z);},_onMouseleaveAnchors:function(aA){var A=this;aA.currentTarget.removeClass(Z);},_onNodeClick:function(aA){var A=this;var aB=W.Widget.getByNode(aA.currentTarget);A.select(aB);},_onNodeEdit:function(aA){var A=this;if(!aA.target.ancestor(f+b,true)){return;}var aB=W.Widget.getByNode(aA.currentTarget);if(aB){A.startEditingNode(aB);}},_onSave:function(aB){var A=this;var aA=A.editNode;var aC=A.propertyList.get(h);if(aA){ay.each(aC.get(O),function(aD){var aE=aD.get(ag);aA.set(aE.attributeName,aE.value);});A.stopEditingNode(aA);}},_setTmpConnector:function(aA){var A=this;return W.merge({lazyDraw:true,viewport:A.viewport},aA);},_setFieldsDragConfig:function(aB){var A=this;var aA=A.dropContainer;return W.merge({bubbleTargets:A,container:aA,dragConfig:{plugins:[{cfg:{constrain:aA},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll}]},nodes:f+M},aB||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new W.DD.Delegate(A.get(aa));}}});W.DiagramBuilder=r;W.DiagramBuilder.types={};var H=W.Component.create({NAME:s,EXTENDS:W.Overlay,AUGMENTS:[W.FieldSupport]});var az=W.Component.create({NAME:s,UI_ATTRS:[m,i,aq],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:w},builder:{setter:"_setBuilder",validator:J},description:{value:G,validator:ar},height:{value:90},name:{valueFn:function(){var A=this; +return A.get(e)+(++W.Env._uidx);},validator:ar},selected:{value:false,validator:ao},strings:{value:{deleteMessage:"Are you sure you want to delete?",description:"Description",name:"Name",type:"Type"}},type:{value:j,validator:ar},controlsToolbar:{setter:"_setControlsToolbar",validator:w,value:null},width:{value:90},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:H,buildNodeId:function(A){return s+z+an+z+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                ',CONTROLS_TEMPLATE:'
                ',initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(k).addClass(M+ax+A.get(e));A.set("bodyContent",A.get(i));},alignAnchors:function(){var aA=this;var aE=aA.get(m);var aC=aA.get(k).get(g),aD=Math.floor(360/aE.size()),aB=aC.width/2,A=aC.height/2,aG=aC.left+aC.width/2,aF=aC.top+aC.height/2;aE.each(function(aK,aJ){var aI=aK.get(j);var aL=aI.get(g);var aH=aA._getEllipseXY(aB,A,aG,aF,aJ*aD);aI.setXY([aH[0]-aL.width/2,aH[1]-aL.height/2]);aK.alignConnectors();});return aA;},close:function(){var aA=this;var A=aA.getStrings();if(confirm(A[Y])){aA.get(m).each(function(aB){aB.destroy();});aA.destroy();}N();return aA;},createField:function(aB){var A=this;if(!S(aB)){var aA=A.get(au);aB.diagramNode=A;aB.viewport=(aA?aA.get(C):null);aB=new W.Anchor(aB);}return aB;},getLeftTop:function(){var A=this;return ab(A.get(k),A._getContainer());},getProperties:function(){var A=this;var aA=A.getPropertyModel();ay.each(aA,function(aB){aB.value=A.get(aB.attributeName);});return aA;},getPropertyModel:function(){var aA=this;var A=aA.getStrings();return[{attributeName:al,editor:new W.TextAreaCellEditor(),name:A[al]},{attributeName:i,editor:new W.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[i]},{attributeName:e,editor:false,name:A[e]}];},_afterRender:function(aA){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(au).dropContainer||A.get(k).get(d));},_getEllipseXY:function(aA,A,aD,aC,aE){var aB=aE*Math.PI/180;return[aD+aA*Math.cos(aB),aC-A*Math.sin(aB)];},_handleAddAnchorEvent:function(aA){var A=this;A.addField({});},_handleAddTaskEvent:function(aB){var A=this;var aA=A.get(au);var aE=new W.DiagramNode({type:j,xy:[100,100]});aA.addField(aE);var aC=A.addField({});var aD=aE.addField({});aC.connect(aD);},_handleCloseEvent:function(aA){var A=this;A.close();},_onAnchorDrag:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(ae,aB.target.get(am).getCenterXY());},_onAnchorDragEnd:function(aB){var A=this;var aA=A.get(au).tmpConnector.shape;aA.clear();aA.end();},_onAnchorDragStart:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(af,aB.target.get(j).getCenterXY());},_onAnchorDropHit:function(aA){var A=this;var aB=W.Anchor.getAnchorByNode(aA.drag.get(j));var aC=W.Anchor.getAnchorByNode(aA.drop.get(j));aB.connect(aC);N();},_renderControls:function(){var A=this;var aA=A.get(k);A.controlsNode=W.Node.create(A.CONTROLS_TEMPLATE).appendTo(aA);},_renderNodes:function(){var A=this;var aA=A.get(k);A.anchorWrapper=W.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(aA);},_renderControlsToolbar:function(aA){var A=this;A.controlsToolbar=new W.Toolbar(A.get(ah)).render(A.controlsNode);},_setBuilder:function(aA){var A=this;A.get(m).each(function(aB){aB.set(C,aA.get(C));});return aA;},_setAnchorsDragConfig:function(aB){var A=this;var aA=A.get(au);return W.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[X],plugins:[{cfg:{constrain:(aA?aA.get(C):null)},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:W.Plugin.DDProxy}]},nodes:f+aj,target:true},aB||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new W.DD.Delegate(A.get(R));},_setControlsToolbar:function(aA){var A=this;return W.merge({activeState:false,children:[{handler:W.bind(A._handleAddAnchorEvent,A),icon:V},{handler:W.bind(A._handleAddTaskEvent,A),icon:x},{handler:W.bind(A._handleCloseEvent,A),icon:P}]},aA);},_uiSetFields:function(aA){var A=this;if(A.get(av)){A.alignAnchors();setTimeout(function(){A.anchorsDrag.syncTargets();},50);}},_uiSetName:function(aB){var A=this;var aA=A.get(k);aA.setAttribute(i,W.DiagramNode.buildNodeId(aB));},_uiSetSelected:function(aA){var A=this;A.get(k).toggleClass(aw,aA);if(aA&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(aB){var A=this;var aA=A._getContainer().getXY();this._posNode.setXY([aB[0]+aA[0],aB[1]+aA[1]]);}}});W.DiagramNode=az;W.DiagramBuilder.types[j]=W.DiagramNode;W.DiagramNodeTask=W.Component.create({NAME:s,ATTRS:{type:{value:t}},EXTENDS:W.DiagramNode});W.DiagramBuilder.types[t]=W.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl.js b/build/aui-diagram-builder/aui-diagram-builder-impl.js index d7ee02a9cb2..47d1c299466 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl.js @@ -3,6 +3,7 @@ var Lang = A.Lang, isArray = Lang.isArray, isObject = Lang.isObject, isString = Lang.isString, + isBoolean = Lang.isBoolean, AArray = A.Array, @@ -14,6 +15,10 @@ var Lang = A.Lang, return (val instanceof A.DiagramNode); }, + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + getLeftTop = function(container, node) { var nodeXY = isArray(node) ? node : node.getXY(); var containerXY = isArray(container) ? container : container.getXY(); @@ -23,44 +28,123 @@ var Lang = A.Lang, }); }, + ANCHOR = 'anchor', + ANCHORS = 'anchors', + ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', + CANCEL = 'cancel', + CLICK = 'click', + CONTENT = 'content', + CONTROLS = 'controls', + CONTROLS_TOOLBAR = 'controlsToolbar', DATA = 'data', DBLCLICK = 'dblclick', + DELETE = 'delete', + DELETE_MESSAGE = 'deleteMessage', DESCRIPTION = 'description', DIAGRAM = 'diagram', - DIAGRAM_BUILDER = 'diagram-builder', - DIAGRAM_NODE = 'diagram-node', + DIAGRAM_BUILDER_NAME = 'diagram-builder', + DIAGRAM_NODE = 'diagramNode', + DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + ESC = 'esc', + FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', + HOVER = 'hover', + KEYDOWN = 'keydown', + LINK = 'link', + MOUSEENTER = 'mouseenter', + MOUSELEAVE = 'mouseleave', NAME = 'name', NODE = 'node', + P1 = 'p1', + P2 = 'p2', PARENT_NODE = 'parentNode', RECORDS = 'records', RECORDSET = 'recordset', + REGION = 'region', RENDERED = 'rendered', + SELECTED = 'selected', + SHUFFLE = 'shuffle', + TASK = 'task', + TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', + VIEWPORT = 'viewport', + WRAPPER = 'wrapper', XY = 'xy', _DOT = '.', + _DOLLAR = '$', _EMPTY_STR = '', + _DASH = '-', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_CONTROLS = AgetClassName(DIAGRAM, BUILDER, CONTROLS), + CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE), + CSS_DIAGRAM_NODE_CONTENT = AgetClassName(DIAGRAM, NODE, CONTENT), CSS_DIAGRAM_NODE_EDITING = AgetClassName(DIAGRAM, NODE, EDITING), - CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE); + CSS_DIAGRAM_NODE_SELECTED = AgetClassName(DIAGRAM, NODE, SELECTED); + +// REMOVE THIS! +var __dump = function() { + var PAD = '        ', BR = '
                '; + + A.all('.aui-diagram-node').each(function(n) { + var b = _EMPTY_STR, + dn = A.Widget.getByNode(n), + dnName = dn.get('name'), + dnBB = dn.get('boundingBox'), + log = dnBB.one('.log') || A.Node.create('
                ').appendTo(dnBB); + + b += dnName + BR; + + dn.get(FIELDS).each(function(a) { + b += PAD + 'a: ' + a.get('id') + BR; + + a.get('targets').each(function(t) { + var tdn = t.get(DIAGRAM_NODE); + + t.get('node').setContent(t.get('id')); + + b += PAD + PAD + 't: ' + tdn.get('name') + ' (s: ' + t.get('id') + ')' + BR; + }); + + a.get('sources').each(function(s) { + var sdn = s.get(DIAGRAM_NODE); + + s.get('node').setContent(s.get('id')); + + b += PAD + PAD + 's: ' + sdn.get('name') + ' (t: ' + s.get('id') + ')' + BR; + }); + }); + + log.setContent(b); + }); +}; +// END. var DiagramBuilder = A.Component.create({ - NAME: DIAGRAM_BUILDER, + NAME: DIAGRAM_BUILDER_NAME, ATTRS: { fieldsDragConfig: { value: null, setter: '_setFieldsDragConfig', validator: isObject + }, + + tmpConnector: { + setter: '_setTmpConnector', + value: {}, + validator: isObject } }, @@ -77,12 +161,18 @@ var DiagramBuilder = A.Component.create({ instance.on({ cancel: instance._onCancel, + 'drag:drag': instance._onDrag, 'drag:end': instance._onDragEnd, 'drop:hit': instance._onDropHit, save: instance._onSave }); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); + + instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); instance.dropContainer.delegate(DBLCLICK, A.bind(instance._onNodeEdit, instance), _DOT+CSS_DIAGRAM_NODE); + instance.dropContainer.delegate(MOUSEENTER, A.bind(instance._onMouseenterAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); + instance.dropContainer.delegate(MOUSELEAVE, A.bind(instance._onMouseleaveAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); }, syncUI: function() { @@ -91,12 +181,17 @@ var DiagramBuilder = A.Component.create({ A.DiagramBuilder.superclass.syncUI.apply(this, arguments); instance._setupFieldsDrag(); + + instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, createField: function(val) { var instance = this; if (!isDiagramNode(val)) { + // val.bubbleTargets = instance; + val.builder = instance; + val.viewport = instance.get(VIEWPORT); val = new (instance.getFieldClass(val.type || NODE))(val); } @@ -126,21 +221,31 @@ var DiagramBuilder = A.Component.create({ return (drag === fieldsDrag.dd); }, - plotFields: function() { + plotField: function(field) { var instance = this; - var fields = instance.get(FIELDS); - fields.each(function(field) { - instance.plotField(field); - }); + if (!field.get(RENDERED)) { + field.render(instance.dropContainer); + } }, - plotField: function(field) { + unselectAll: function() { var instance = this; + var selectedNode = instance.selectedNode; - if (!field.get(RENDERED)) { - field.render(instance.dropContainer); + if (selectedNode) { + selectedNode.set(SELECTED, false); } + + instance.selectedNode = null; + }, + + select: function(diagramNode) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, startEditingNode: function(diagramNode) { @@ -151,8 +256,6 @@ var DiagramBuilder = A.Component.create({ instance.tabView.selectTab(A.DiagramBuilder.SETTINGS_TAB); - // instance._renderPropertyList(); - instance.propertyList.set(RECORDSET, diagramNode.getProperties()); diagramNode.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE_EDITING); @@ -174,12 +277,42 @@ var DiagramBuilder = A.Component.create({ } }, + _afterKeyEvent: function(event) { + var instance = this; + + if (!instance.selectedNode || event.hasModifier() || !event.isKeyInSet(ESC, DELETE)) { + return; + } + + if (event.isKey(ESC)) { + instance._onEscKey(event); + } + else if (event.isKey(DELETE)) { + instance._onDeleteKey(event); + } + + event.halt(); + }, + _onCancel: function(event) { var instance = this; instance.stopEditingNode(); }, + _onDrag: function(event) { + var instance = this; + var drag = event.target; + + if (instance.isFieldsDrag(drag)) { + var diagramNode = A.Widget.getByNode(drag.get(DRAG_NODE)); + + diagramNode.get(FIELDS).each(function(anchor) { + anchor.alignConnectors(); + }); + } + }, + _onDragEnd: function(event) { var instance = this; var drag = event.target; @@ -198,15 +331,56 @@ var DiagramBuilder = A.Component.create({ if (instance.isAvailableFieldsDrag(drag)) { var availableField = drag.get(NODE).getData(AVAILABLE_FIELD); - instance.addField({ + var newField = instance.addField({ xy: getLeftTop(drag.lastXY, instance.dropContainer), - type: availableField.get(TYPE) + type: availableField.get(TYPE), + fields: [{}] }); + + instance.select(newField); } }, + _onDeleteKey: function(event) { + var instance = this; + + instance.selectedNode.close(); + }, + + _onEscKey: function(event) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + }, + + _onMouseenterAnchors: function(event) { + var instance = this; + + event.currentTarget.addClass(CSS_DB_ANCHOR_HOVER); + }, + + _onMouseleaveAnchors: function(event) { + var instance = this; + + event.currentTarget.removeClass(CSS_DB_ANCHOR_HOVER); + }, + + _onNodeClick: function(event) { + var instance = this; + var diagramNode = A.Widget.getByNode(event.currentTarget); + + instance.select(diagramNode); + }, + _onNodeEdit: function(event) { var instance = this; + + // Only enable editing if the double clicked node is inside the node contentBox. + if (!event.target.ancestor(_DOT+CSS_DIAGRAM_NODE_CONTENT, true)) { + return; + } + var diagramNode = A.Widget.getByNode(event.currentTarget); if (diagramNode) { @@ -230,6 +404,18 @@ var DiagramBuilder = A.Component.create({ } }, + _setTmpConnector: function(val) { + var instance = this; + + return A.merge( + { + lazyDraw: true, + viewport: instance.viewport + }, + val + ); + }, + _setFieldsDragConfig: function(val) { var instance = this; var dropContainer = instance.dropContainer; @@ -274,11 +460,32 @@ A.DiagramBuilder = DiagramBuilder; A.DiagramBuilder.types = {}; +var DiagramNodeOverlay = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + EXTENDS: A.Overlay, + + // A.FieldSupport augment the class with "fields" attribute and util methods + // such as: addField, removeField. Although the attribute is called "fields" due to + // the augmentation, those fields are the anchors. TODO: Allow A.FieldSupport to + // customize the name of the attribute and method sufixes. + AUGMENTS: [A.FieldSupport] +}); + var DiagramNode = A.Component.create({ - NAME: DIAGRAM_NODE, + NAME: DIAGRAM_NODE_NAME, + + UI_ATTRS: [FIELDS, NAME, SELECTED], ATTRS: { + anchorsDragConfig: { + value: null, + setter: '_setAnchorsDragConfig', + validator: isObject + }, + builder: { + setter: '_setBuilder', validator: isDiagramBuilder }, @@ -288,7 +495,7 @@ var DiagramNode = A.Component.create({ }, height: { - value: 100 + value: 90 }, name: { @@ -300,8 +507,14 @@ var DiagramNode = A.Component.create({ validator: isString }, + selected: { + value: false, + validator: isBoolean + }, + strings: { value: { + deleteMessage: 'Are you sure you want to delete?', description: 'Description', name: 'Name', type: 'Type' @@ -313,14 +526,114 @@ var DiagramNode = A.Component.create({ validator: isString }, + controlsToolbar: { + setter: '_setControlsToolbar', + validator: isObject, + value: null + }, + width: { - value: 200 + value: 90 + }, + + zIndex: { + value: 100 + }, + + tabIndex: { + value: 1 } }, - EXTENDS: A.Overlay, + EXTENDS: DiagramNodeOverlay, + + buildNodeId: function(id) { + return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + }, prototype: { + ANCHOR_WRAPPER_TEMPLATE: '
                ', + CONTROLS_TEMPLATE: '
                ', + + initializer: function() { + var instance = this; + + instance._renderNodes(); + instance._setupAnchorsDrag(); + + instance.after({ + render: instance._afterRender + }); + + instance.on({ + 'drag:drag': instance._onAnchorDrag, + 'drag:end': instance._onAnchorDragEnd, + 'drag:start': instance._onAnchorDragStart, + 'drop:hit': instance._onAnchorDropHit + }); + + instance.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE+_DASH+instance.get(TYPE)); + + // REMOVE THIS! + instance.set('bodyContent', instance.get(NAME)); + }, + + alignAnchors: function() { + var instance = this; + var anchors = instance.get(FIELDS); + + var cRegion = instance.get(BOUNDING_BOX).get(REGION), + dAngle = Math.floor(360/anchors.size()), + a = cRegion.width/2, + b = cRegion.height/2, + centerX = cRegion.left + cRegion.width/2, + centerY = cRegion.top + cRegion.height/2; + + anchors.each(function(anchor, index) { + var anchorNode = anchor.get(NODE); + var aRegion = anchorNode.get(REGION); + var exy = instance._getEllipseXY(a, b, centerX, centerY, index*dAngle); + + anchorNode.setXY([ exy[0] - aRegion.width/2, exy[1] - aRegion.height/2 ]); + + anchor.alignConnectors(); + }); + + return instance; + }, + + close: function() { + var instance = this; + var strings = instance.getStrings(); + + if (confirm(strings[DELETE_MESSAGE])) { + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + + instance.destroy(); + } + + __dump(); + + return instance; + }, + + createField: function(val) { + var instance = this; + + if (!isAnchor(val)) { + var builder = instance.get(BUILDER); + + val.diagramNode = instance; + val.viewport = (builder ? builder.get(VIEWPORT) : null); + + val = new A.Anchor(val); + } + + return val; + }, + getLeftTop: function() { var instance = this; @@ -369,12 +682,225 @@ var DiagramNode = A.Component.create({ ]; }, + _afterRender: function(event) { + var instance = this; + + instance.alignAnchors(); + + instance._renderControls(); + }, + _getContainer: function() { var instance = this; return (instance.get(BUILDER).dropContainer || instance.get(BOUNDING_BOX).get(PARENT_NODE)); }, + _getEllipseXY: function(a, b, centerX, centerY, angle) { + var t = angle*Math.PI/180; + + return [ centerX + a*Math.cos(t), centerY - b*Math.sin(t) ]; + }, + + _handleAddAnchorEvent: function(event) { + var instance = this; + + instance.addField({}); + + // event.halt(); + }, + + _handleAddTaskEvent: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + var diagramNode = new A.DiagramNode({ + type: NODE, + xy: [100, 100] // TODO - find best position? + }); + + builder.addField(diagramNode); + + var source = instance.addField({}); + var target = diagramNode.addField({}); + source.connect(target); + }, + + _handleCloseEvent: function(event) { + var instance = this; + + instance.close(); + }, + + _onAnchorDrag: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P2, event.target.get(DRAG_NODE).getCenterXY()); + }, + + _onAnchorDragEnd: function(event) { + var instance = this; + var shape = instance.get(BUILDER).tmpConnector.shape; + + shape.clear(); + shape.end(); + }, + + _onAnchorDragStart: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P1, event.target.get(NODE).getCenterXY()); + }, + + _onAnchorDropHit: function(event) { + var instance = this; + var source = A.Anchor.getAnchorByNode(event.drag.get(NODE)); + var target = A.Anchor.getAnchorByNode(event.drop.get(NODE)); + + source.connect(target); + + __dump(); + }, + + _renderControls: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.controlsNode = A.Node.create(instance.CONTROLS_TEMPLATE).appendTo(boundingBox); + }, + + _renderNodes: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.anchorWrapper = A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE).appendTo(boundingBox); + }, + + _renderControlsToolbar: function(event) { + var instance = this; + + instance.controlsToolbar = new A.Toolbar( + instance.get(CONTROLS_TOOLBAR) + ) + .render(instance.controlsNode); + }, + + _setBuilder: function(val) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + anchor.set(VIEWPORT, val.get(VIEWPORT)); + }); + + return val; + }, + + _setAnchorsDragConfig: function(val) { + var instance = this; + var builder = instance.get(BUILDER); + + return A.merge( + { + bubbleTargets: instance, + container: instance.anchorWrapper, + dragConfig: { + groups: [ANCHORS], + plugins: [ + { + cfg: { + constrain: (builder ? builder.get(VIEWPORT) : null) + }, + fn: A.Plugin.DDConstrained + }, + { + cfg: { + scrollDelay: 150 + }, + fn: A.Plugin.DDWinScroll + }, + { + cfg: { + moveOnEnd: false + }, + fn: A.Plugin.DDProxy + } + ] + }, + nodes: _DOT+CSS_DB_ANCHOR_NODE, + target: true + }, + val || {} + ); + }, + + _setupAnchorsDrag: function() { + var instance = this; + + instance.anchorsDrag = new A.DD.Delegate( + instance.get(ANCHORS_DRAG_CONFIG) + ); + }, + + _setControlsToolbar: function(val) { + var instance = this; + + return A.merge( + { + activeState: false, + children: [ + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK + }, + { + handler: A.bind(instance._handleAddTaskEvent, instance), + icon: SHUFFLE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL + } + ] + }, + val + ); + }, + + _uiSetFields: function(val) { + var instance = this; + + if (instance.get(RENDERED)) { + instance.alignAnchors(); + + setTimeout(function() { + instance.anchorsDrag.syncTargets(); + }, 50); + } + }, + + _uiSetName: function(val) { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetSelected: function(val) { + var instance = this; + + instance.get(BOUNDING_BOX).toggleClass(CSS_DIAGRAM_NODE_SELECTED, val); + + if (val && !instance.controlsToolbar) { + instance._renderControlsToolbar(); + } + + // if (instance.get(RENDERED)) { + // instance.alignAnchors(); + // } + }, + _uiSetXY : function(val) { var instance = this; var containerXY = instance._getContainer().getXY(); @@ -384,12 +910,32 @@ var DiagramNode = A.Component.create({ } }); -DiagramNode.buildNodeId = function(id) { - return DIAGRAM_NODE + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.DiagramNode = DiagramNode; -A.DiagramBuilder.types['node'] = A.DiagramNode; +A.DiagramBuilder.types[NODE] = A.DiagramNode; + +A.DiagramNodeTask = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: TASK + } + }, + + EXTENDS: A.DiagramNode +}); + +A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; + +// TODO deletar anchors OK +// TODO deletar connections (delete) OK +// TODO Adicionar overlay de controles OK +// TODO syncTargets dd delegate + + +// TODO gerar XML +// TODO reposicionar setas? +// TODO Adicionar groups/validation for connection }, '@VERSION@' ,{requires:['aui-diagram-builder-base','overlay'], skinnable:true}); diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index 2b0885e231d..b99565609b2 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,3 +1,5 @@ -AUI.add("aui-diagram-builder-base",function(ab){var R=ab.Lang,d=R.isArray,ao=R.isBoolean,K=R.isNumber,z=R.isObject,ar=R.isString,H=function(A){return(A instanceof ab.ArrayList);},P=function(A){return(A instanceof ab.Node);},C=function(A){return(A instanceof ab.AvailableField);},aC=ab.Array,T="add",k="addNode",aB="auto",L="availableField",O="availableFields",ay="availableFieldsDragConfig",al="base",s="boundingBox",av="builder",X="cancel",ap="clearfix",a="container",Z="content",u="contentBox",e="contentContainer",N="contentNode",D="createDocumentFragment",y="diagram",E="diagram-builder-base",Y="disk",o="draggable",ax="drop",ai="dropConfig",V="dropContainer",an="field",t="fields",n="fieldsContainer",am="height",p="helper",U="icon",v="iconClass",ah="id",ad="label",af="list",r="node",x="nodeSettings",aa="propertyList",aw="rendered",aj="save",q="settings",M="tab",b="tabs",f="tabview",F="tabView",J="toolbar",j="toolbarContainer",w=ab.getClassName,aA=" ",h=".",G="$",aD=w(y,av,al,ax,a),ak=w(y,av,al,Z,a),B=w(y,av,al,an),g=w(y,av,al,t,a),ae=w(y,av,al,an,o),c=w(y,av,al,an,U),S=w(y,av,al,an,ad),m=w(y,av,al,b,a),W=w(y,av,al,b,a,Z),ag=w(y,av,al,M,T),I=w(y,av,al,M,q),at=w(y,av,al,J,a),ac=w(p,ap),l=w(U),au=w(f,Z),az=w(f,af);var i=ab.Component.create({NAME:L,ATTRS:{draggable:{value:true,validator:ao},label:{validator:ar},iconClass:{validator:ar},id:{value:ab.guid(),setter:"_setId",validator:ar},node:{valueFn:function(aE){var A=this;if(!P(aE)){aE=ab.Node.create(ab.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aE.setData(L,A);}return aE;},validator:P,writeOnce:true},type:{value:r,validator:ar}},EXTENDS:ab.Base,prototype:{FIELD_ITEM_TEMPLATE:'
              • '+''+''+"
              • ",initializer:function(){var A=this;var aE=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aE.one(h+S);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(ah));A._uiSetLabel(A.get(ad));},_afterDraggableChange:function(aE){var A=this;A._uiSetDraggable(aE.newVal);},_afterIdChange:function(aE){var A=this;A._uiSetId(aE.newVal);},_afterLabelChange:function(aE){var A=this;A._uiSetLabel(aE.newVal);},_setId:function(A){return ab.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aE){var A=this;A.get(r).toggleClass(ae,aE);},_uiSetLabel:function(aE){var A=this;A.labelNode.setContent(aE);},_uiSetId:function(aE){var A=this;A.get(r).set(ah,aE);}}});i.buildNodeId=function(A){return O+G+an+G+A;};ab.AvailableField=i;var Q=function(){};Q.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||H(A);}}};ab.mix(Q.prototype,{createFields:function(aF){var aE=this;var A=[];aC.each(aF,function(aG){A.push(aE.createField(aG));});return new ab.ArrayList(A);},addField:function(aE){var A=this;A._updateFields(A.get(t).add(A.createField(aE)));},removeField:function(aE){var A=this;A._updateFields(A.get(t).remove(aE));},_updateFields:function(aE){var A=this;A.set(t,aE);},_setFields:function(aE){var A=this;if(H(aE)){return aE;}else{return A.createFields(aE);}},createField:function(A){return A;}});ab.FieldSupport=Q;var aq=ab.Component.create({NAME:E,ATTRS:{availableFields:{setter:"_setAvailableFields",validator:d},contentContainer:{valueFn:function(){return ab.Node.create(this.CONTENT_CONTAINER_TEMPLATE);}},dropContainer:{valueFn:function(){return ab.Node.create(this.DROP_CONTAINER_TEMPLATE);}},dropConfig:{value:null,setter:"_setDropConfig",validator:z},availableFieldsDragConfig:{value:null,setter:"_setAvailableFieldsDragConfig",validator:z},fieldsContainer:{valueFn:function(){return ab.Node.create(this.FIELDS_CONTAINER_TEMPLATE);}},propertyList:{setter:"_setPropertyList",validator:z,value:null},strings:{value:{addNode:"Add node",cancel:"Cancel",nodeSettings:"Node settings",propertyName:"Property Name",save:"Save",value:"Value"}},tabView:{setter:"_setTabView",validator:z,value:null,writeOnce:true},toolbar:{setter:"_setToolbar",validator:z,value:null},toolbarContainer:{valueFn:function(){return ab.Node.create(this.TOOLBAR_CONTAINER_TEMPLATE);}}},HTML_PARSER:{contentContainer:h+ak,dropContainer:h+aD,fieldsContainer:h+g,toolbarContainer:h+at},UI_ATTRS:[O,t],AUGMENTS:[ab.FieldSupport],prototype:{CONTENT_CONTAINER_TEMPLATE:'
                ',DROP_CONTAINER_TEMPLATE:'
                ',TOOLBAR_CONTAINER_TEMPLATE:'
                ',FIELDS_CONTAINER_TEMPLATE:'
                  ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.contentContainer=A.get(e);A.dropContainer=A.get(V);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aF){var A=this;var aE=A.availableFieldsDrag;return(aF===aE.dd);},plotFields:function(A){},renderUI:function(){var A=this;A._renderTabs();A._renderContentContainer();A._uiSetAvailableFields(A.get(O));},syncUI:function(){var A=this;var aE=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aE.addClass(ac);},_afterActiveTabChange:function(aF){var A=this;var aE=aF.newVal.get(N);if(A.get(aw)&&(aE===A.settingsNode)){A._renderSettings();}},_afterRender:function(aE){var A=this;A.plotFields();},_afterUiSetHeight:function(aE){var A=this;A.dropContainer.setStyle(am,K(aE)?aE+A.DEF_UNIT:aE);},_defCancelFn:function(aE){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(X);},_handleSaveEvent:function(){var A=this;A.fire(aj);},_renderContentContainer:function(){var A=this;var aE=A.get(u);var aF=A.contentContainer;aF.appendChild(A.dropContainer);aE.appendChild(aF);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ab.PropertyList(A.get(aa)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar(); -},_renderTabs:function(){var A=this;if(!A.tabView){var aE=new ab.TabView(A.get(F));A.tabView=aE;A.fieldsNode=aE.getTab(0).get(N);A.settingsNode=aE.getTab(1).get(N);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ab.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ab.DD.Drop(A.get(ai));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ab.DD.Delegate(A.get(ay));},_setAvailableFields:function(aF){var aE=this;var A=[];aC.each(aF,function(aH,aG){A.push(C(aH)?aH:new ab.AvailableField(aH));});return A;},_setDropConfig:function(aE){var A=this;return ab.merge({bubbleTargets:A,node:A.dropContainer},aE||{});},_setAvailableFieldsDragConfig:function(aE){var A=this;return ab.merge({bubbleTargets:A,container:A.get(s),dragConfig:{plugins:[{cfg:{moveOnEnd:false},fn:ab.Plugin.DDProxy}]},nodes:h+ae},aE||{});},_setPropertyList:function(aE){var A=this;return ab.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aB}},aE);},_setTabView:function(aH){var aE=this;var aG=aE.get(s);var aI=aG.one(h+az);var aF={after:{activeTabChange:ab.bind(aE._afterActiveTabChange,aE)},boundingBox:aG.one(h+m),contentBox:aG.one(h+W),bubbleTargets:aE,contentNode:aG.one(h+au),cssClass:m,listNode:aI,render:aE.get(u)};if(!aI){var A=aE.getStrings();aF.items=[{cssClass:ag,label:A[k]},{cssClass:I,label:A[x]}];}return ab.merge(aF,aH);},_setToolbar:function(aF){var aE=this;var A=aE.getStrings();return ab.merge({activeState:false,bubbleTargets:aE,children:[{handler:ab.bind(aE._handleSaveEvent,aE),label:A[aj],icon:Y},{handler:ab.bind(aE._handleCancelEvent,aE),label:A[X]}]},aF);},_uiSetAvailableFields:function(aG){var A=this;var aF=A.fieldsNode;if(aF){var aE=ab.getDoc().invoke(D);aC.each(aG,function(aH){aE.appendChild(aH.get(r));});aF.setContent(A.fieldsContainer.setContent(aE));}},_uiSetFields:function(aE){var A=this;if(A.get(aw)){A.plotFields();}}}});ab.DiagramBuilderBase=aq;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(h){var K=h.Lang,u=K.isArray,E=K.isObject,e=K.isString,o=h.Array,y=function(A){return(A instanceof h.DiagramBuilderBase);},p=function(A){return(A instanceof h.DiagramNode);},n=function(A,N){var M=u(N)?N:N.getXY();var O=u(A)?A:A.getXY();return o.map(O,function(Q,P){return Math.max(0,Q-M[P]);});},B="availableField",I="boundingBox",L="builder",g="data",t="dblclick",a="description",C="diagram",d="diagram-builder",v="diagram-node",c="dragNode",b="editing",x="fields",s="fieldsDragConfig",z="name",J="node",f="parentNode",i="records",D="recordset",G="rendered",j="type",k="xy",r=".",q="",w=h.getClassName,l=w(C,J,b),F=w(C,J);var m=h.Component.create({NAME:d,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:E}},EXTENDS:h.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.dropContainer.delegate(t,h.bind(A._onNodeEdit,A),r+F);},syncUI:function(){var A=this;h.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();},createField:function(M){var A=this;if(!p(M)){M=new (A.getFieldClass(M.type||J))(M);}M.set(L,A);return M;},getFieldClass:function(N){var A=this;var M=h.DiagramBuilder.types[N];if(M){return M;}else{h.log("The field type: ["+N+"] couldn't be found.");return null;}},isFieldsDrag:function(N){var A=this;var M=A.fieldsDrag;return(N===M.dd);},plotFields:function(){var M=this;var A=M.get(x);A.each(function(N){M.plotField(N);});},plotField:function(M){var A=this;if(!M.get(G)){M.render(A.dropContainer);}},startEditingNode:function(M){var A=this;if(M){A.stopEditingNode();A.tabView.selectTab(h.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(D,M.getProperties());M.get(I).addClass(l);A.editNode=M;}},stopEditingNode:function(N){var A=this;var M=N||A.editNode;if(M){A.tabView.selectTab(h.DiagramBuilder.FIELDS_TAB);M.get(I).removeClass(l);A.editNode=null;}},_onCancel:function(M){var A=this;A.stopEditingNode();},_onDragEnd:function(N){var A=this;var M=N.target;if(A.isFieldsDrag(M)){var O=h.Widget.getByNode(M.get(c));O.set(k,O.getLeftTop());}},_onDropHit:function(N){var A=this;var M=N.drag;if(A.isAvailableFieldsDrag(M)){var O=M.get(J).getData(B);A.addField({xy:n(M.lastXY,A.dropContainer),type:O.get(j)});}},_onNodeEdit:function(M){var A=this;var N=h.Widget.getByNode(M.currentTarget);if(N){A.startEditingNode(N);}},_onSave:function(N){var A=this;var M=A.editNode;var O=A.propertyList.get(D);if(M){o.each(O.get(i),function(P){var Q=P.get(g);M.set(Q.attributeName,Q.value);});A.stopEditingNode(M);}},_setFieldsDragConfig:function(N){var A=this;var M=A.dropContainer;return h.merge({bubbleTargets:A,container:M,dragConfig:{plugins:[{cfg:{constrain:M},fn:h.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:h.Plugin.DDWinScroll}]},nodes:r+F},N||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new h.DD.Delegate(A.get(s));}}});h.DiagramBuilder=m;h.DiagramBuilder.types={};var H=h.Component.create({NAME:v,ATTRS:{builder:{validator:y},description:{value:q,validator:e},height:{value:100},name:{valueFn:function(){var A=this;return A.get(j)+(++h.Env._uidx);},validator:e},strings:{value:{description:"Description",name:"Name",type:"Type"}},type:{value:J,validator:e},width:{value:200}},EXTENDS:h.Overlay,prototype:{getLeftTop:function(){var A=this;return n(A.get(I),A._getContainer());},getProperties:function(){var A=this;var M=A.getPropertyModel();o.each(M,function(N){N.value=A.get(N.attributeName);});return M;},getPropertyModel:function(){var M=this;var A=M.getStrings();return[{attributeName:a,editor:new h.TextAreaCellEditor(),name:A[a]},{attributeName:z,editor:new h.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[z]},{attributeName:j,editor:false,name:A[j]}];},_getContainer:function(){var A=this;return(A.get(L).dropContainer||A.get(I).get(f));},_uiSetXY:function(N){var A=this;var M=A._getContainer().getXY(); -this._posNode.setXY([N[0]+M[0],N[1]+M[1]]);}}});H.buildNodeId=function(A){return v+_DOLLAR+FIELD+_DOLLAR+A;};h.DiagramNode=H;h.DiagramBuilder.types["node"]=h.DiagramNode;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(ad){var T=ad.Lang,d=T.isArray,ap=T.isBoolean,M=T.isNumber,B=T.isObject,at=T.isString,I=function(A){return(A instanceof ad.ArrayList);},R=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,V="add",k="addNode",aC="auto",N="availableField",Q="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Z="cancel",aq="clearfix",a="container",ab="content",u="contentBox",J="viewport",P="contentNode",E="createDocumentFragment",z="diagram",F="diagram-builder-base",aa="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",W="icon",v="iconClass",aj="id",af="label",ai="list",r="node",y="nodeSettings",ac="propertyList",ax="rendered",al="save",q="settings",O="tab",b="tabs",e="tabview",G="tabView",L="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",H="$",h="#",aE=w(z,aw,am,ay,a),x=w(z,aw,am,J),C=w(z,aw,am,ao),f=w(z,aw,am,t,a),ag=w(z,aw,am,ao,o),c=w(z,aw,am,ao,W),U=w(z,aw,am,ao,af),m=w(z,aw,am,b,a),Y=w(z,aw,am,b,a,ab),ah=w(z,aw,am,O,V),K=w(z,aw,am,O,q),au=w(z,aw,am,L,a),ae=w(p,aq),l=w(W),av=w(e,ab),aA=w(e,ai);var i=ad.Component.create({NAME:N,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!R(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(N,A);}return aF;},validator:R,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return Q+H+ao+H+A;},getAvailableFieldByNode:function(A){return ad.one(A).getData(N);},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},prototype:{FIELD_ITEM_TEMPLATE:'
                • '+''+''+"
                • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+U);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);}}});ad.AvailableField=i;var S=function(){};S.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||I(A);}}};ad.mix(S.prototype,{createFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aH){A.push(aF.createField(aH));});return new ad.ArrayList(A);},addField:function(aF){var A=this;var aG=A.createField(aF);A._updateFields(A.get(t).add(aG));return aG;},removeField:function(aF){var A=this;A._updateFields(A.get(t).remove(aF));},_updateFields:function(aF){var A=this;A.set(t,aF);},_setFields:function(aF){var A=this;if(I(aF)){return aF;}else{return A.createFields(aF);}},createField:function(A){return A;}});ad.FieldSupport=S;var ar=ad.Component.create({NAME:F,ATTRS:{availableFields:{setter:"_setAvailableFields",validator:d},viewport:{valueFn:function(){return ad.Node.create(this.VIEWPORT_TEMPLATE);}},dropContainer:{valueFn:function(){return ad.Node.create(this.DROP_CONTAINER_TEMPLATE);}},dropConfig:{value:null,setter:"_setDropConfig",validator:B},availableFieldsDragConfig:{value:null,setter:"_setAvailableFieldsDragConfig",validator:B},fieldsContainer:{valueFn:function(){return ad.Node.create(this.FIELDS_CONTAINER_TEMPLATE);}},propertyList:{setter:"_setPropertyList",validator:B,value:null},strings:{value:{addNode:"Add node",cancel:"Cancel",nodeSettings:"Node settings",propertyName:"Property Name",save:"Save",value:"Value"}},tabView:{setter:"_setTabView",validator:B,value:null,writeOnce:true},toolbar:{setter:"_setToolbar",validator:B,value:null},toolbarContainer:{valueFn:function(){return ad.Node.create(this.TOOLBAR_CONTAINER_TEMPLATE);}}},HTML_PARSER:{dropContainer:g+aE,fieldsContainer:g+f,toolbarContainer:g+au,viewport:g+x},UI_ATTRS:[Q,t],AUGMENTS:[ad.FieldSupport],prototype:{DROP_CONTAINER_TEMPLATE:'
                  ',TOOLBAR_CONTAINER_TEMPLATE:'
                  ',FIELDS_CONTAINER_TEMPLATE:'
                    ',VIEWPORT_TEMPLATE:'
                    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.viewport=A.get(J);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderViewport();A._uiSetAvailableFields(A.get(Q));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(P);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,M(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Z);},_handleSaveEvent:function(){var A=this;A.fire(al);},_renderViewport:function(){var aF=this;var aG=aF.get(u);var A=aF.viewport;A.appendChild(aF.dropContainer);aG.appendChild(A);},_renderPropertyList:function(){var A=this; +if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(P);A.settingsNode=aF.getTab(1).get(P);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(L)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[Q],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[Q],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+Y),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ah,label:A[k]},{cssClass:K,label:A[y]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:aa},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Z]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(W){var L=W.Lang,c=L.isArray,w=L.isObject,ar=L.isString,ao=L.isBoolean,ay=W.Array,J=function(A){return(A instanceof W.DiagramBuilderBase);},ap=function(A){return(A instanceof W.DiagramNode);},S=function(A){return(A instanceof W.Anchor);},ab=function(A,aB){var aA=c(aB)?aB:aB.getXY();var aC=c(A)?A:A.getXY();return ay.map(aC,function(aE,aD){return Math.max(0,aE-aA[aD]);});},ad="anchor",X="anchors",R="anchorsDragConfig",F="availableField",k="boundingBox",au="builder",P="cancel",ai="click",U="content",y="controls",ah="controlsToolbar",ag="data",Q="dblclick",I="delete",Y="deleteMessage",al="description",v="diagram",T="diagram-builder",ac="diagramNode",s="diagram-node",am="dragNode",D="editing",a="esc",an="field",m="fields",aa="fieldsDragConfig",l="hover",E="keydown",V="link",n="mouseenter",K="mouseleave",i="name",j="node",af="p1",ae="p2",d="parentNode",O="records",h="recordset",g="region",av="rendered",aq="selected",x="shuffle",t="task",B="tmpConnector",e="type",C="viewport",at="wrapper",q="xy",f=".",z="$",G="",ax="-",p=W.getClassName,Z=p(v,au,ad,l),aj=p(v,au,ad,j),u=p(v,au,ad,j,at),o=p(v,au,y),M=p(v,j),b=p(v,j,U),ak=p(v,j,D),aw=p(v,j,aq);var N=function(){var aA="        ",A="
                    ";W.all(".aui-diagram-node").each(function(aG){var aB=G,aD=W.Widget.getByNode(aG),aC=aD.get("name"),aF=aD.get("boundingBox"),aE=aF.one(".log")||W.Node.create("
                    ").appendTo(aF);aB+=aC+A;aD.get(m).each(function(aH){aB+=aA+"a: "+aH.get("id")+A;aH.get("targets").each(function(aI){var aJ=aI.get(ac);aI.get("node").setContent(aI.get("id"));aB+=aA+aA+"t: "+aJ.get("name")+" (s: "+aI.get("id")+")"+A;});aH.get("sources").each(function(aJ){var aI=aJ.get(ac);aJ.get("node").setContent(aJ.get("id"));aB+=aA+aA+"s: "+aI.get("name")+" (t: "+aJ.get("id")+")"+A;});});aE.setContent(aB);});};var r=W.Component.create({NAME:T,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:w},tmpConnector:{setter:"_setTmpConnector",value:{},validator:w}},EXTENDS:W.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=W.getDoc().on(E,W.bind(A._afterKeyEvent,A));A.dropContainer.delegate(ai,W.bind(A._onNodeClick,A),f+M);A.dropContainer.delegate(Q,W.bind(A._onNodeEdit,A),f+M);A.dropContainer.delegate(n,W.bind(A._onMouseenterAnchors,A),f+aj);A.dropContainer.delegate(K,W.bind(A._onMouseleaveAnchors,A),f+aj);},syncUI:function(){var A=this;W.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new W.Connector(A.get(B));},createField:function(aA){var A=this;if(!ap(aA)){aA.builder=A;aA.viewport=A.get(C);aA=new (A.getFieldClass(aA.type||j))(aA);}aA.set(au,A);return aA;},getFieldClass:function(aB){var A=this;var aA=W.DiagramBuilder.types[aB];if(aA){return aA;}else{W.log("The field type: ["+aB+"] couldn't be found.");return null;}},isFieldsDrag:function(aB){var A=this;var aA=A.fieldsDrag;return(aB===aA.dd);},plotField:function(aA){var A=this;if(!aA.get(av)){aA.render(A.dropContainer);}},unselectAll:function(){var A=this;var aA=A.selectedNode;if(aA){aA.set(aq,false);}A.selectedNode=null;},select:function(aA){var A=this;A.unselectAll();A.stopEditingNode();A.selectedNode=aA.set(aq,true).focus();},startEditingNode:function(aA){var A=this;if(aA){A.stopEditingNode();A.tabView.selectTab(W.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(h,aA.getProperties());aA.get(k).addClass(ak);A.editNode=aA;}},stopEditingNode:function(aB){var A=this;var aA=aB||A.editNode;if(aA){A.tabView.selectTab(W.DiagramBuilder.FIELDS_TAB); +aA.get(k).removeClass(ak);A.editNode=null;}},_afterKeyEvent:function(aA){var A=this;if(!A.selectedNode||aA.hasModifier()||!aA.isKeyInSet(a,I)){return;}if(aA.isKey(a)){A._onEscKey(aA);}else{if(aA.isKey(I)){A._onDeleteKey(aA);}}aA.halt();},_onCancel:function(aA){var A=this;A.stopEditingNode();},_onDrag:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.get(m).each(function(aD){aD.alignConnectors();});}},_onDragEnd:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.set(q,aC.getLeftTop());}},_onDropHit:function(aB){var A=this;var aA=aB.drag;if(A.isAvailableFieldsDrag(aA)){var aD=aA.get(j).getData(F);var aC=A.addField({xy:ab(aA.lastXY,A.dropContainer),type:aD.get(e),fields:[{}]});A.select(aC);}},_onDeleteKey:function(aA){var A=this;A.selectedNode.close();},_onEscKey:function(aA){var A=this;A.unselectAll();A.stopEditingNode();},_onMouseenterAnchors:function(aA){var A=this;aA.currentTarget.addClass(Z);},_onMouseleaveAnchors:function(aA){var A=this;aA.currentTarget.removeClass(Z);},_onNodeClick:function(aA){var A=this;var aB=W.Widget.getByNode(aA.currentTarget);A.select(aB);},_onNodeEdit:function(aA){var A=this;if(!aA.target.ancestor(f+b,true)){return;}var aB=W.Widget.getByNode(aA.currentTarget);if(aB){A.startEditingNode(aB);}},_onSave:function(aB){var A=this;var aA=A.editNode;var aC=A.propertyList.get(h);if(aA){ay.each(aC.get(O),function(aD){var aE=aD.get(ag);aA.set(aE.attributeName,aE.value);});A.stopEditingNode(aA);}},_setTmpConnector:function(aA){var A=this;return W.merge({lazyDraw:true,viewport:A.viewport},aA);},_setFieldsDragConfig:function(aB){var A=this;var aA=A.dropContainer;return W.merge({bubbleTargets:A,container:aA,dragConfig:{plugins:[{cfg:{constrain:aA},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll}]},nodes:f+M},aB||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new W.DD.Delegate(A.get(aa));}}});W.DiagramBuilder=r;W.DiagramBuilder.types={};var H=W.Component.create({NAME:s,EXTENDS:W.Overlay,AUGMENTS:[W.FieldSupport]});var az=W.Component.create({NAME:s,UI_ATTRS:[m,i,aq],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:w},builder:{setter:"_setBuilder",validator:J},description:{value:G,validator:ar},height:{value:90},name:{valueFn:function(){var A=this;return A.get(e)+(++W.Env._uidx);},validator:ar},selected:{value:false,validator:ao},strings:{value:{deleteMessage:"Are you sure you want to delete?",description:"Description",name:"Name",type:"Type"}},type:{value:j,validator:ar},controlsToolbar:{setter:"_setControlsToolbar",validator:w,value:null},width:{value:90},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:H,buildNodeId:function(A){return s+z+an+z+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                    ',CONTROLS_TEMPLATE:'
                    ',initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(k).addClass(M+ax+A.get(e));A.set("bodyContent",A.get(i));},alignAnchors:function(){var aA=this;var aE=aA.get(m);var aC=aA.get(k).get(g),aD=Math.floor(360/aE.size()),aB=aC.width/2,A=aC.height/2,aG=aC.left+aC.width/2,aF=aC.top+aC.height/2;aE.each(function(aK,aJ){var aI=aK.get(j);var aL=aI.get(g);var aH=aA._getEllipseXY(aB,A,aG,aF,aJ*aD);aI.setXY([aH[0]-aL.width/2,aH[1]-aL.height/2]);aK.alignConnectors();});return aA;},close:function(){var aA=this;var A=aA.getStrings();if(confirm(A[Y])){aA.get(m).each(function(aB){aB.destroy();});aA.destroy();}N();return aA;},createField:function(aB){var A=this;if(!S(aB)){var aA=A.get(au);aB.diagramNode=A;aB.viewport=(aA?aA.get(C):null);aB=new W.Anchor(aB);}return aB;},getLeftTop:function(){var A=this;return ab(A.get(k),A._getContainer());},getProperties:function(){var A=this;var aA=A.getPropertyModel();ay.each(aA,function(aB){aB.value=A.get(aB.attributeName);});return aA;},getPropertyModel:function(){var aA=this;var A=aA.getStrings();return[{attributeName:al,editor:new W.TextAreaCellEditor(),name:A[al]},{attributeName:i,editor:new W.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[i]},{attributeName:e,editor:false,name:A[e]}];},_afterRender:function(aA){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(au).dropContainer||A.get(k).get(d));},_getEllipseXY:function(aA,A,aD,aC,aE){var aB=aE*Math.PI/180;return[aD+aA*Math.cos(aB),aC-A*Math.sin(aB)];},_handleAddAnchorEvent:function(aA){var A=this;A.addField({});},_handleAddTaskEvent:function(aB){var A=this;var aA=A.get(au);var aE=new W.DiagramNode({type:j,xy:[100,100]});aA.addField(aE);var aC=A.addField({});var aD=aE.addField({});aC.connect(aD);},_handleCloseEvent:function(aA){var A=this;A.close();},_onAnchorDrag:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(ae,aB.target.get(am).getCenterXY());},_onAnchorDragEnd:function(aB){var A=this;var aA=A.get(au).tmpConnector.shape;aA.clear();aA.end();},_onAnchorDragStart:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(af,aB.target.get(j).getCenterXY());},_onAnchorDropHit:function(aA){var A=this;var aB=W.Anchor.getAnchorByNode(aA.drag.get(j));var aC=W.Anchor.getAnchorByNode(aA.drop.get(j));aB.connect(aC);N();},_renderControls:function(){var A=this;var aA=A.get(k);A.controlsNode=W.Node.create(A.CONTROLS_TEMPLATE).appendTo(aA);},_renderNodes:function(){var A=this;var aA=A.get(k);A.anchorWrapper=W.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(aA);},_renderControlsToolbar:function(aA){var A=this;A.controlsToolbar=new W.Toolbar(A.get(ah)).render(A.controlsNode);},_setBuilder:function(aA){var A=this;A.get(m).each(function(aB){aB.set(C,aA.get(C));});return aA;},_setAnchorsDragConfig:function(aB){var A=this;var aA=A.get(au);return W.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[X],plugins:[{cfg:{constrain:(aA?aA.get(C):null)},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:W.Plugin.DDProxy}]},nodes:f+aj,target:true},aB||{}); +},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new W.DD.Delegate(A.get(R));},_setControlsToolbar:function(aA){var A=this;return W.merge({activeState:false,children:[{handler:W.bind(A._handleAddAnchorEvent,A),icon:V},{handler:W.bind(A._handleAddTaskEvent,A),icon:x},{handler:W.bind(A._handleCloseEvent,A),icon:P}]},aA);},_uiSetFields:function(aA){var A=this;if(A.get(av)){A.alignAnchors();setTimeout(function(){A.anchorsDrag.syncTargets();},50);}},_uiSetName:function(aB){var A=this;var aA=A.get(k);aA.setAttribute(i,W.DiagramNode.buildNodeId(aB));},_uiSetSelected:function(aA){var A=this;A.get(k).toggleClass(aw,aA);if(aA&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(aB){var A=this;var aA=A._getContainer().getXY();this._posNode.setXY([aB[0]+aA[0],aB[1]+aA[1]]);}}});W.DiagramNode=az;W.DiagramBuilder.types[j]=W.DiagramNode;W.DiagramNodeTask=W.Component.create({NAME:s,ATTRS:{type:{value:t}},EXTENDS:W.DiagramNode});W.DiagramBuilder.types[t]=W.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(k){var M=k.Lang,r=M.isArray,v=M.isBoolean,L=M.isNumber,z=M.isObject,h=M.isString,D=k.Array,b=function(A){return(A instanceof k.Anchor);},E=function(A){return(A instanceof k.ArrayList);},y="anchor",F="arrowPoints",C="body",G="boundingBox",N="builder",w="color",n="connector",a="dataAnchor",x="diagram",s="diagramNode",u="height",p="id",I="lazyDraw",j="maxSources",i="maxTargets",J="node",m="p1",l="p2",e="path",q="shape",g="sources",f="targets",B="viewport",c="width",K="wrapper",o=".",t=k.getClassName,d=t(x,N,y,J,K),H=t(x,N,y,J);k.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(T,O,V,A,U,R){var W=this;T.moveTo(O,V);T.lineTo(A,U);var P=Math.atan2(U-V,A-O),S=(A+O)/2,Q=(U+V)/2;W.drawPolygon(T,W.translatePoints(W.rotatePoints(R||W.ARROW_POINTS,P),S,Q));},drawPolygon:function(O,P){var A=this;O.moveTo(P[0][0],P[0][1]);D.each(P,function(R,Q){if(Q>0){O.lineTo(P[Q][0],P[Q][1]);}});O.lineTo(P[0][0],P[0][1]);O.end();},translatePoints:function(P,O,R){var A=this;var Q=[];D.each(P,function(T,S){Q.push([P[S][0]+O,P[S][1]+R]);});return Q;},rotatePoints:function(O,Q){var A=this;var P=[];D.each(O,function(S,R){P.push(A.rotatePoint(Q,O[R][0],O[R][1]));});return P;},rotatePoint:function(O,A,P){return[(A*Math.cos(O))-(P*Math.sin(O)),(A*Math.sin(O))+(P*Math.cos(O))];}};k.Connector=k.Base.create("line",k.Base,[],{graphics:null,shape:null,initializer:function(O){var A=this;A.after({p1Change:A.draw,p2Change:A.draw});A._initGraphics();A._initShapes();if(!A.get(I)){A.draw();}},destroy:function(){var A=this;A.graphics.destroy();},draw:function(){var A=this;var O=A.shape;var Q=A.getCoordinate(A.get(m));var P=A.getCoordinate(A.get(l));O.clear();k.PolygonUtil.drawLineArrow(O,Q[0],Q[1],P[0],P[1],A.get(F));},getCoordinate:function(P){var A=this;var O=A.get(B).getXY();return[P[0]-O[0],P[1]-O[1]];},_initGraphics:function(){var A=this;var O=new k.Graphic({width:A.get(c),height:A.get(u),render:A.get(B)});A.graphics=O;},_initShapes:function(){var A=this;A.shape=A.graphics.getShape(A.get(q));},_setShape:function(O){var A=this;return k.merge({type:e,stroke:{color:A.get(w),weight:2},fill:{color:A.get(w)}},O);}},{ATTRS:{color:{value:"#666",validator:h},lazyDraw:{value:false,validator:v},viewport:{setter:k.one,value:C},shape:{value:null,setter:"_setShape"},arrowPoints:{value:k.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:r},p2:{value:[0,0],validator:r}}});k.Anchor=k.Base.create("anchor",k.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                    ',NODE_TEMPLATE:'
                    ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({targetsChange:A._afterTargetsChange});},addSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O).add(O));},addTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O).add(O));},alignConnectors:function(){var A=this;A.get(f).each(function(O){var P=A.getConnector(O);if(P){P.set(m,A.getCenterXY());P.set(l,O.getCenterXY());}});A.get(g).each(function(O){var P=O.getConnector(A);if(P){P.set(m,O.getCenterXY());P.set(l,A.getCenterXY());}});return A;},destroy:function(){var A=this;A.disconnectTargets();A.disconnectSources();A.get(J).remove();},connect:function(O){var A=this;A.addTarget(O);if(!A.isConnected(O)){var P=O.get(n);P.p1=A.getCenterXY();P.p2=O.getCenterXY();A.connectors[O.get(p)]=new k.Connector(P);}return A;},connectTargets:function(){var A=this;A.get(f).each(k.bind(A.connect,A));return A;},disconnect:function(O){var A=this;A.getConnector(O).destroy();A.removeTarget(O);O.removeSource(A);},disconnectTargets:function(){var A=this;A.get(f).each(function(O){A.disconnect(O);});return A;},disconnectSources:function(){var A=this;A.get(g).each(function(O){O.disconnect(A);});return A;},getCenterXY:function(){var A=this;return A.get(J).getCenterXY();},getConnector:function(O){var A=this;return A.connectors[O.get(p)];},isConnected:function(O){var A=this;return A.connectors.hasOwnProperty(O.get(p));},updateSources:function(O){var A=this;A.set(g,O);return A;},updateTargets:function(O){var A=this;A.set(f,O);return A;},removeSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O));},removeTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O));},_afterActiveChange:function(O){var A=this;A._uiSetActive(O.newVal);},_afterTargetsChange:function(O){var A=this;O.prevVal.each(function(P){P.removeSource(A);});O.newVal.each(function(P){P.addSource(A);});},_renderNode:function(){var A=this;var P=A.get(s);var O=P.get(G);A.wrapper=O.one(o+d)||k.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(O).appendChild(A.get(J));},_setConnector:function(O){var A=this;return k.merge({viewport:A.get(B)},O);},_setSources:function(O){var A=this;return A._setAnchors(O);},_setTargets:function(O){var A=this;O=A._setAnchors(O);O.each(function(P){P.addSource(A);});return O;},_setAnchors:function(P){var A=this; +if(!E(P)){var O=[];k.Array.each(P,function(Q){if(h(Q)){Q=k.Anchor.getAnchorByNode(Q);}O.push(b(Q)?Q:new k.Anchor(Q));});P=new k.ArrayList(O);}return P;},_setNode:function(O){var A=this;var P=A.get(p);return k.one(O).set(p,P).setData(a,A);}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:z},id:{readOnly:true,valueFn:function(){return k.guid();}},maxSources:{value:Infinity,validator:L},maxTargets:{value:Infinity,validator:L},node:{setter:"_setNode",valueFn:function(){var A=this;return k.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return r(A)||E(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return r(A)||E(A);}},viewport:{setter:k.one,value:C}},getAnchorByNode:function(A){return k.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index fbc2659c074..42d2ebf15d9 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -34,7 +34,7 @@ var Lang = A.Lang, CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', - CONTENT_CONTAINER = 'contentContainer', + VIEWPORT = 'viewport', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -72,9 +72,10 @@ var Lang = A.Lang, _SPACE = ' ', _DOT = '.', _DOLLAR = '$', + _HASH = '#', CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_BASE_VIEWPORT = AgetClassName(DIAGRAM, BUILDER, BASE, VIEWPORT), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -144,6 +145,18 @@ var AvailableField = A.Component.create({ EXTENDS: A.Base, + buildNodeId: function(id) { + return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; + }, + + getAvailableFieldByNode: function(node) { + return A.one(node).getData(AVAILABLE_FIELD); + }, + + getAvailableFieldById: function(id) { + return A.AvailableField.getAvailableFieldByNode(_HASH+A.AvailableField.buildNodeId(id)); + }, + prototype: { FIELD_ITEM_TEMPLATE: '
                  • ' + '' + @@ -223,10 +236,6 @@ var AvailableField = A.Component.create({ } }); -AvailableField.buildNodeId = function(id) { - return AVAILABLE_FIELDS + _DOLLAR + FIELD + _DOLLAR + id; -}; - A.AvailableField = AvailableField; var FieldSupport = function() { @@ -256,12 +265,13 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; + var newField = instance.createField(field); instance._updateFields( - instance.get(FIELDS).add( - instance.createField(field) - ) + instance.get(FIELDS).add(newField) ); + + return newField; }, removeField: function(field) { @@ -317,9 +327,9 @@ var DiagramBuilderBase = A.Component.create( validator: isArray }, - contentContainer: { + viewport: { valueFn: function() { - return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + return A.Node.create(this.VIEWPORT_TEMPLATE); } }, @@ -385,10 +395,10 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, + viewport: _DOT+CSS_DIAGRAM_BUILDER_BASE_VIEWPORT }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -396,10 +406,10 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
                    ', DROP_CONTAINER_TEMPLATE: '
                    ', TOOLBAR_CONTAINER_TEMPLATE: '
                    ', FIELDS_CONTAINER_TEMPLATE: '
                      ', + VIEWPORT_TEMPLATE: '
                      ', fieldsNode: null, propertyList: null, @@ -422,7 +432,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); - instance.contentContainer = instance.get(CONTENT_CONTAINER); + instance.viewport = instance.get(VIEWPORT); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -435,14 +445,20 @@ var DiagramBuilderBase = A.Component.create( return (drag === availableFieldsDrag.dd); }, - plotFields: function(fields) { + plotFields: function() { + var instance = this; + var fields = instance.get(FIELDS); + + fields.each(function(field) { + instance.plotField(field); + }); }, renderUI: function() { var instance = this; instance._renderTabs(); - instance._renderContentContainer(); + instance._renderViewport(); instance._uiSetAvailableFields( instance.get(AVAILABLE_FIELDS) @@ -498,13 +514,13 @@ var DiagramBuilderBase = A.Component.create( instance.fire(SAVE); }, - _renderContentContainer: function() { + _renderViewport: function() { var instance = this; var contentBox = instance.get(CONTENT_BOX); - var contentContainer = instance.contentContainer; + var viewport = instance.viewport; - contentContainer.appendChild(instance.dropContainer); - contentBox.appendChild(contentContainer); + viewport.appendChild(instance.dropContainer); + contentBox.appendChild(viewport); }, _renderPropertyList: function() { @@ -588,6 +604,7 @@ var DiagramBuilderBase = A.Component.create( return A.merge( { bubbleTargets: instance, + groups: [AVAILABLE_FIELDS], node: instance.dropContainer }, val || {} @@ -602,6 +619,7 @@ var DiagramBuilderBase = A.Component.create( bubbleTargets: instance, container: instance.get(BOUNDING_BOX), dragConfig: { + groups: [AVAILABLE_FIELDS], plugins: [ { cfg: { @@ -723,6 +741,7 @@ var Lang = A.Lang, isArray = Lang.isArray, isObject = Lang.isObject, isString = Lang.isString, + isBoolean = Lang.isBoolean, AArray = A.Array, @@ -734,6 +753,10 @@ var Lang = A.Lang, return (val instanceof A.DiagramNode); }, + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + getLeftTop = function(container, node) { var nodeXY = isArray(node) ? node : node.getXY(); var containerXY = isArray(container) ? container : container.getXY(); @@ -743,44 +766,123 @@ var Lang = A.Lang, }); }, + ANCHOR = 'anchor', + ANCHORS = 'anchors', + ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', + CANCEL = 'cancel', + CLICK = 'click', + CONTENT = 'content', + CONTROLS = 'controls', + CONTROLS_TOOLBAR = 'controlsToolbar', DATA = 'data', DBLCLICK = 'dblclick', + DELETE = 'delete', + DELETE_MESSAGE = 'deleteMessage', DESCRIPTION = 'description', DIAGRAM = 'diagram', - DIAGRAM_BUILDER = 'diagram-builder', - DIAGRAM_NODE = 'diagram-node', + DIAGRAM_BUILDER_NAME = 'diagram-builder', + DIAGRAM_NODE = 'diagramNode', + DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + ESC = 'esc', + FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', + HOVER = 'hover', + KEYDOWN = 'keydown', + LINK = 'link', + MOUSEENTER = 'mouseenter', + MOUSELEAVE = 'mouseleave', NAME = 'name', NODE = 'node', + P1 = 'p1', + P2 = 'p2', PARENT_NODE = 'parentNode', RECORDS = 'records', RECORDSET = 'recordset', + REGION = 'region', RENDERED = 'rendered', + SELECTED = 'selected', + SHUFFLE = 'shuffle', + TASK = 'task', + TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', + VIEWPORT = 'viewport', + WRAPPER = 'wrapper', XY = 'xy', _DOT = '.', + _DOLLAR = '$', _EMPTY_STR = '', + _DASH = '-', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_CONTROLS = AgetClassName(DIAGRAM, BUILDER, CONTROLS), + CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE), + CSS_DIAGRAM_NODE_CONTENT = AgetClassName(DIAGRAM, NODE, CONTENT), CSS_DIAGRAM_NODE_EDITING = AgetClassName(DIAGRAM, NODE, EDITING), - CSS_DIAGRAM_NODE = AgetClassName(DIAGRAM, NODE); + CSS_DIAGRAM_NODE_SELECTED = AgetClassName(DIAGRAM, NODE, SELECTED); + +// REMOVE THIS! +var __dump = function() { + var PAD = '        ', BR = '
                      '; + + A.all('.aui-diagram-node').each(function(n) { + var b = _EMPTY_STR, + dn = A.Widget.getByNode(n), + dnName = dn.get('name'), + dnBB = dn.get('boundingBox'), + log = dnBB.one('.log') || A.Node.create('
                      ').appendTo(dnBB); + + b += dnName + BR; + + dn.get(FIELDS).each(function(a) { + b += PAD + 'a: ' + a.get('id') + BR; + + a.get('targets').each(function(t) { + var tdn = t.get(DIAGRAM_NODE); + + t.get('node').setContent(t.get('id')); + + b += PAD + PAD + 't: ' + tdn.get('name') + ' (s: ' + t.get('id') + ')' + BR; + }); + + a.get('sources').each(function(s) { + var sdn = s.get(DIAGRAM_NODE); + + s.get('node').setContent(s.get('id')); + + b += PAD + PAD + 's: ' + sdn.get('name') + ' (t: ' + s.get('id') + ')' + BR; + }); + }); + + log.setContent(b); + }); +}; +// END. var DiagramBuilder = A.Component.create({ - NAME: DIAGRAM_BUILDER, + NAME: DIAGRAM_BUILDER_NAME, ATTRS: { fieldsDragConfig: { value: null, setter: '_setFieldsDragConfig', validator: isObject + }, + + tmpConnector: { + setter: '_setTmpConnector', + value: {}, + validator: isObject } }, @@ -797,12 +899,18 @@ var DiagramBuilder = A.Component.create({ instance.on({ cancel: instance._onCancel, + 'drag:drag': instance._onDrag, 'drag:end': instance._onDragEnd, 'drop:hit': instance._onDropHit, save: instance._onSave }); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); + + instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); instance.dropContainer.delegate(DBLCLICK, A.bind(instance._onNodeEdit, instance), _DOT+CSS_DIAGRAM_NODE); + instance.dropContainer.delegate(MOUSEENTER, A.bind(instance._onMouseenterAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); + instance.dropContainer.delegate(MOUSELEAVE, A.bind(instance._onMouseleaveAnchors, instance), _DOT+CSS_DB_ANCHOR_NODE); }, syncUI: function() { @@ -811,12 +919,17 @@ var DiagramBuilder = A.Component.create({ A.DiagramBuilder.superclass.syncUI.apply(this, arguments); instance._setupFieldsDrag(); + + instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, createField: function(val) { var instance = this; if (!isDiagramNode(val)) { + // val.bubbleTargets = instance; + val.builder = instance; + val.viewport = instance.get(VIEWPORT); val = new (instance.getFieldClass(val.type || NODE))(val); } @@ -846,21 +959,31 @@ var DiagramBuilder = A.Component.create({ return (drag === fieldsDrag.dd); }, - plotFields: function() { + plotField: function(field) { var instance = this; - var fields = instance.get(FIELDS); - fields.each(function(field) { - instance.plotField(field); - }); + if (!field.get(RENDERED)) { + field.render(instance.dropContainer); + } }, - plotField: function(field) { + unselectAll: function() { var instance = this; + var selectedNode = instance.selectedNode; - if (!field.get(RENDERED)) { - field.render(instance.dropContainer); + if (selectedNode) { + selectedNode.set(SELECTED, false); } + + instance.selectedNode = null; + }, + + select: function(diagramNode) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, startEditingNode: function(diagramNode) { @@ -871,8 +994,6 @@ var DiagramBuilder = A.Component.create({ instance.tabView.selectTab(A.DiagramBuilder.SETTINGS_TAB); - // instance._renderPropertyList(); - instance.propertyList.set(RECORDSET, diagramNode.getProperties()); diagramNode.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE_EDITING); @@ -894,12 +1015,42 @@ var DiagramBuilder = A.Component.create({ } }, + _afterKeyEvent: function(event) { + var instance = this; + + if (!instance.selectedNode || event.hasModifier() || !event.isKeyInSet(ESC, DELETE)) { + return; + } + + if (event.isKey(ESC)) { + instance._onEscKey(event); + } + else if (event.isKey(DELETE)) { + instance._onDeleteKey(event); + } + + event.halt(); + }, + _onCancel: function(event) { var instance = this; instance.stopEditingNode(); }, + _onDrag: function(event) { + var instance = this; + var drag = event.target; + + if (instance.isFieldsDrag(drag)) { + var diagramNode = A.Widget.getByNode(drag.get(DRAG_NODE)); + + diagramNode.get(FIELDS).each(function(anchor) { + anchor.alignConnectors(); + }); + } + }, + _onDragEnd: function(event) { var instance = this; var drag = event.target; @@ -918,15 +1069,56 @@ var DiagramBuilder = A.Component.create({ if (instance.isAvailableFieldsDrag(drag)) { var availableField = drag.get(NODE).getData(AVAILABLE_FIELD); - instance.addField({ + var newField = instance.addField({ xy: getLeftTop(drag.lastXY, instance.dropContainer), - type: availableField.get(TYPE) + type: availableField.get(TYPE), + fields: [{}] }); + + instance.select(newField); } }, + _onDeleteKey: function(event) { + var instance = this; + + instance.selectedNode.close(); + }, + + _onEscKey: function(event) { + var instance = this; + + instance.unselectAll(); + instance.stopEditingNode(); + }, + + _onMouseenterAnchors: function(event) { + var instance = this; + + event.currentTarget.addClass(CSS_DB_ANCHOR_HOVER); + }, + + _onMouseleaveAnchors: function(event) { + var instance = this; + + event.currentTarget.removeClass(CSS_DB_ANCHOR_HOVER); + }, + + _onNodeClick: function(event) { + var instance = this; + var diagramNode = A.Widget.getByNode(event.currentTarget); + + instance.select(diagramNode); + }, + _onNodeEdit: function(event) { var instance = this; + + // Only enable editing if the double clicked node is inside the node contentBox. + if (!event.target.ancestor(_DOT+CSS_DIAGRAM_NODE_CONTENT, true)) { + return; + } + var diagramNode = A.Widget.getByNode(event.currentTarget); if (diagramNode) { @@ -950,6 +1142,18 @@ var DiagramBuilder = A.Component.create({ } }, + _setTmpConnector: function(val) { + var instance = this; + + return A.merge( + { + lazyDraw: true, + viewport: instance.viewport + }, + val + ); + }, + _setFieldsDragConfig: function(val) { var instance = this; var dropContainer = instance.dropContainer; @@ -994,11 +1198,32 @@ A.DiagramBuilder = DiagramBuilder; A.DiagramBuilder.types = {}; +var DiagramNodeOverlay = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + EXTENDS: A.Overlay, + + // A.FieldSupport augment the class with "fields" attribute and util methods + // such as: addField, removeField. Although the attribute is called "fields" due to + // the augmentation, those fields are the anchors. TODO: Allow A.FieldSupport to + // customize the name of the attribute and method sufixes. + AUGMENTS: [A.FieldSupport] +}); + var DiagramNode = A.Component.create({ - NAME: DIAGRAM_NODE, + NAME: DIAGRAM_NODE_NAME, + + UI_ATTRS: [FIELDS, NAME, SELECTED], ATTRS: { + anchorsDragConfig: { + value: null, + setter: '_setAnchorsDragConfig', + validator: isObject + }, + builder: { + setter: '_setBuilder', validator: isDiagramBuilder }, @@ -1008,7 +1233,7 @@ var DiagramNode = A.Component.create({ }, height: { - value: 100 + value: 90 }, name: { @@ -1020,8 +1245,14 @@ var DiagramNode = A.Component.create({ validator: isString }, + selected: { + value: false, + validator: isBoolean + }, + strings: { value: { + deleteMessage: 'Are you sure you want to delete?', description: 'Description', name: 'Name', type: 'Type' @@ -1033,14 +1264,114 @@ var DiagramNode = A.Component.create({ validator: isString }, + controlsToolbar: { + setter: '_setControlsToolbar', + validator: isObject, + value: null + }, + width: { - value: 200 + value: 90 + }, + + zIndex: { + value: 100 + }, + + tabIndex: { + value: 1 } }, - EXTENDS: A.Overlay, + EXTENDS: DiagramNodeOverlay, + + buildNodeId: function(id) { + return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + }, prototype: { + ANCHOR_WRAPPER_TEMPLATE: '
                      ', + CONTROLS_TEMPLATE: '
                      ', + + initializer: function() { + var instance = this; + + instance._renderNodes(); + instance._setupAnchorsDrag(); + + instance.after({ + render: instance._afterRender + }); + + instance.on({ + 'drag:drag': instance._onAnchorDrag, + 'drag:end': instance._onAnchorDragEnd, + 'drag:start': instance._onAnchorDragStart, + 'drop:hit': instance._onAnchorDropHit + }); + + instance.get(BOUNDING_BOX).addClass(CSS_DIAGRAM_NODE+_DASH+instance.get(TYPE)); + + // REMOVE THIS! + instance.set('bodyContent', instance.get(NAME)); + }, + + alignAnchors: function() { + var instance = this; + var anchors = instance.get(FIELDS); + + var cRegion = instance.get(BOUNDING_BOX).get(REGION), + dAngle = Math.floor(360/anchors.size()), + a = cRegion.width/2, + b = cRegion.height/2, + centerX = cRegion.left + cRegion.width/2, + centerY = cRegion.top + cRegion.height/2; + + anchors.each(function(anchor, index) { + var anchorNode = anchor.get(NODE); + var aRegion = anchorNode.get(REGION); + var exy = instance._getEllipseXY(a, b, centerX, centerY, index*dAngle); + + anchorNode.setXY([ exy[0] - aRegion.width/2, exy[1] - aRegion.height/2 ]); + + anchor.alignConnectors(); + }); + + return instance; + }, + + close: function() { + var instance = this; + var strings = instance.getStrings(); + + if (confirm(strings[DELETE_MESSAGE])) { + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + + instance.destroy(); + } + + __dump(); + + return instance; + }, + + createField: function(val) { + var instance = this; + + if (!isAnchor(val)) { + var builder = instance.get(BUILDER); + + val.diagramNode = instance; + val.viewport = (builder ? builder.get(VIEWPORT) : null); + + val = new A.Anchor(val); + } + + return val; + }, + getLeftTop: function() { var instance = this; @@ -1089,31 +1420,829 @@ var DiagramNode = A.Component.create({ ]; }, + _afterRender: function(event) { + var instance = this; + + instance.alignAnchors(); + + instance._renderControls(); + }, + _getContainer: function() { var instance = this; return (instance.get(BUILDER).dropContainer || instance.get(BOUNDING_BOX).get(PARENT_NODE)); }, - _uiSetXY : function(val) { + _getEllipseXY: function(a, b, centerX, centerY, angle) { + var t = angle*Math.PI/180; + + return [ centerX + a*Math.cos(t), centerY - b*Math.sin(t) ]; + }, + + _handleAddAnchorEvent: function(event) { var instance = this; - var containerXY = instance._getContainer().getXY(); - this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); - } - } -}); + instance.addField({}); -DiagramNode.buildNodeId = function(id) { - return DIAGRAM_NODE + _DOLLAR + FIELD + _DOLLAR + id; -}; + // event.halt(); + }, -A.DiagramNode = DiagramNode; + _handleAddTaskEvent: function(event) { + var instance = this; + var builder = instance.get(BUILDER); -A.DiagramBuilder.types['node'] = A.DiagramNode; + var diagramNode = new A.DiagramNode({ + type: NODE, + xy: [100, 100] // TODO - find best position? + }); -}, '@VERSION@' ,{requires:['aui-diagram-builder-base','overlay'], skinnable:true}); + builder.addField(diagramNode); + + var source = instance.addField({}); + var target = diagramNode.addField({}); + source.connect(target); + }, + + _handleCloseEvent: function(event) { + var instance = this; + + instance.close(); + }, + + _onAnchorDrag: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P2, event.target.get(DRAG_NODE).getCenterXY()); + }, + + _onAnchorDragEnd: function(event) { + var instance = this; + var shape = instance.get(BUILDER).tmpConnector.shape; + + shape.clear(); + shape.end(); + }, + + _onAnchorDragStart: function(event) { + var instance = this; + var builder = instance.get(BUILDER); + + builder.tmpConnector.set(P1, event.target.get(NODE).getCenterXY()); + }, + + _onAnchorDropHit: function(event) { + var instance = this; + var source = A.Anchor.getAnchorByNode(event.drag.get(NODE)); + var target = A.Anchor.getAnchorByNode(event.drop.get(NODE)); + + source.connect(target); + + __dump(); + }, + + _renderControls: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.controlsNode = A.Node.create(instance.CONTROLS_TEMPLATE).appendTo(boundingBox); + }, + + _renderNodes: function() { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + instance.anchorWrapper = A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE).appendTo(boundingBox); + }, + + _renderControlsToolbar: function(event) { + var instance = this; + + instance.controlsToolbar = new A.Toolbar( + instance.get(CONTROLS_TOOLBAR) + ) + .render(instance.controlsNode); + }, + + _setBuilder: function(val) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + anchor.set(VIEWPORT, val.get(VIEWPORT)); + }); + + return val; + }, + + _setAnchorsDragConfig: function(val) { + var instance = this; + var builder = instance.get(BUILDER); + + return A.merge( + { + bubbleTargets: instance, + container: instance.anchorWrapper, + dragConfig: { + groups: [ANCHORS], + plugins: [ + { + cfg: { + constrain: (builder ? builder.get(VIEWPORT) : null) + }, + fn: A.Plugin.DDConstrained + }, + { + cfg: { + scrollDelay: 150 + }, + fn: A.Plugin.DDWinScroll + }, + { + cfg: { + moveOnEnd: false + }, + fn: A.Plugin.DDProxy + } + ] + }, + nodes: _DOT+CSS_DB_ANCHOR_NODE, + target: true + }, + val || {} + ); + }, + + _setupAnchorsDrag: function() { + var instance = this; + + instance.anchorsDrag = new A.DD.Delegate( + instance.get(ANCHORS_DRAG_CONFIG) + ); + }, + + _setControlsToolbar: function(val) { + var instance = this; + + return A.merge( + { + activeState: false, + children: [ + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK + }, + { + handler: A.bind(instance._handleAddTaskEvent, instance), + icon: SHUFFLE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL + } + ] + }, + val + ); + }, + + _uiSetFields: function(val) { + var instance = this; + + if (instance.get(RENDERED)) { + instance.alignAnchors(); + + setTimeout(function() { + instance.anchorsDrag.syncTargets(); + }, 50); + } + }, + + _uiSetName: function(val) { + var instance = this; + var boundingBox = instance.get(BOUNDING_BOX); + + boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetSelected: function(val) { + var instance = this; + + instance.get(BOUNDING_BOX).toggleClass(CSS_DIAGRAM_NODE_SELECTED, val); + + if (val && !instance.controlsToolbar) { + instance._renderControlsToolbar(); + } + + // if (instance.get(RENDERED)) { + // instance.alignAnchors(); + // } + }, + + _uiSetXY : function(val) { + var instance = this; + var containerXY = instance._getContainer().getXY(); + + this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); + } + } +}); + +A.DiagramNode = DiagramNode; + +A.DiagramBuilder.types[NODE] = A.DiagramNode; + +A.DiagramNodeTask = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: TASK + } + }, + + EXTENDS: A.DiagramNode +}); + +A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; + +// TODO deletar anchors OK +// TODO deletar connections (delete) OK +// TODO Adicionar overlay de controles OK +// TODO syncTargets dd delegate + + +// TODO gerar XML +// TODO reposicionar setas? +// TODO Adicionar groups/validation for connection + +}, '@VERSION@' ,{requires:['aui-diagram-builder-base','overlay'], skinnable:true}); +AUI.add('aui-diagram-builder-connector', function(A) { +var Lang = A.Lang, + isArray = Lang.isArray, + isBoolean = Lang.isBoolean, + isNumber = Lang.isNumber, + isObject = Lang.isObject, + isString = Lang.isString, + + YArray = A.Array, + + isAnchor = function(val) { + return (val instanceof A.Anchor); + }, + + isArrayList = function(val) { + return (val instanceof A.ArrayList); + }, + + ANCHOR = 'anchor', + ARROW_POINTS = 'arrowPoints', + BODY = 'body', + BOUNDING_BOX = 'boundingBox', + BUILDER = 'builder', + COLOR = 'color', + CONNECTOR = 'connector', + DATA_ANCHOR = 'dataAnchor', + DIAGRAM = 'diagram', + DIAGRAM_NODE = 'diagramNode', + HEIGHT = 'height', + ID = 'id', + LAZY_DRAW = 'lazyDraw', + MAX_SOURCES = 'maxSources', + MAX_TARGETS = 'maxTargets', + NODE = 'node', + P1 = 'p1', + P2 = 'p2', + PATH = 'path', + SHAPE = 'shape', + SOURCES = 'sources', + TARGETS = 'targets', + VIEWPORT = 'viewport', + WIDTH = 'width', + WRAPPER = 'wrapper', + + _DOT = '.', + + AgetClassName = A.getClassName, + + CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), + CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); + +A.PolygonUtil = { + ARROW_POINTS: [ + [ -12, -6 ], + [ -8, 0 ], + [ -12, 6 ], + [ 6, 0 ] + ], + + drawLineArrow: function(shape, x1, y1, x2, y2, arrowPoints) { + var instance = this; + + shape.moveTo(x1, y1); + shape.lineTo(x2, y2); + + var angle = Math.atan2(y2-y1, x2-x1), centerX = (x2+x1)/2, centerY = (y2+y1)/2; + + instance.drawPolygon( + shape, + instance.translatePoints(instance.rotatePoints(arrowPoints || instance.ARROW_POINTS, angle), centerX, centerY) + ); + }, + + drawPolygon: function(shape, points) { + var instance = this; + + shape.moveTo(points[0][0], points[0][1]); + + YArray.each(points, function(p, i) { + if (i > 0) { + shape.lineTo(points[i][0], points[i][1]); + } + }); + + shape.lineTo(points[0][0], points[0][1]); + shape.end(); + }, + + translatePoints: function(points, x, y) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push([ points[i][0] + x, points[i][1] + y ]); + }); + + return xy; + }, + + rotatePoints: function(points, angle) { + var instance = this; + var xy = []; + + YArray.each(points, function(p, i) { + xy.push(instance.rotatePoint(angle, points[i][0], points[i][1])); + }); + + return xy; + }, + + rotatePoint: function(angle, x, y) { + return [ + (x * Math.cos(angle)) - (y * Math.sin(angle)), + (x * Math.sin(angle)) + (y * Math.cos(angle)) + ]; + } +}; + +A.Connector = A.Base.create('line', A.Base, [], { + graphics: null, + shape: null, + + initializer: function(config) { + var instance = this; + + instance.after({ + p1Change: instance.draw, + p2Change: instance.draw + }); + + instance._initGraphics(); + instance._initShapes(); + + if (!instance.get(LAZY_DRAW)) { + instance.draw(); + } + }, + + destroy: function() { + var instance = this; + + instance.graphics.destroy(); + }, + + draw: function() { + var instance = this; + var shape = instance.shape; + + var c1 = instance.getCoordinate(instance.get(P1)); + var c2 = instance.getCoordinate(instance.get(P2)); + + shape.clear(); + + A.PolygonUtil.drawLineArrow(shape, c1[0], c1[1], c2[0], c2[1], instance.get(ARROW_POINTS)); + }, + + getCoordinate: function(p) { + var instance = this; + var xy = instance.get(VIEWPORT).getXY(); + + return [ p[0] - xy[0], p[1] - xy[1] ]; + }, + + _initGraphics: function() { + var instance = this; + + var graphics = new A.Graphic({ + width: instance.get(WIDTH), + height: instance.get(HEIGHT), + render: instance.get(VIEWPORT) + }); + + instance.graphics = graphics; + }, + + _initShapes: function() { + var instance = this; + + instance.shape = instance.graphics.getShape( + instance.get(SHAPE) + ); + }, + + _setShape: function(val) { + var instance = this; + + return A.merge( + { + type: PATH, + stroke: { + color: instance.get(COLOR), + weight: 2 + }, + fill: { + color: instance.get(COLOR) + } + }, + val + ); + } +},{ + ATTRS: { + color: { + value: '#666', + validator: isString + }, + + lazyDraw: { + value: false, + validator: isBoolean + }, + + viewport: { + setter: A.one, + value: BODY + }, + + shape: { + value: null, + setter: '_setShape' + }, + + arrowPoints: { + value: A.PolygonUtil.ARROW_POINTS + }, + + p1: { + value: [0, 0], + validator: isArray + }, + + p2: { + value: [0, 0], + validator: isArray + } + } +}); + +A.Anchor = A.Base.create('anchor', A.Base, [], { + ANCHOR_WRAPPER_TEMPLATE: '
                      ', + NODE_TEMPLATE: '
                      ', + + connectors: null, + + initializer: function() { + var instance = this; + + instance.connectors = {}; + + instance._renderNode(); + + instance.connectTargets(); + + instance.after({ + targetsChange: instance._afterTargetsChange + }); + }, + + addSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source).add(source) + ); + }, + + addTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target).add(target) + ); + }, + + alignConnectors: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + var tConnector = instance.getConnector(target); + + if (tConnector) { + tConnector.set(P1, instance.getCenterXY()); + tConnector.set(P2, target.getCenterXY()); + } + }); + + instance.get(SOURCES).each(function(source) { + var sConnector = source.getConnector(instance); + + if (sConnector) { + sConnector.set(P1, source.getCenterXY()); + sConnector.set(P2, instance.getCenterXY()); + } + }); + + return instance; + }, + + destroy: function() { + var instance = this; + + instance.disconnectTargets(); + instance.disconnectSources(); + + instance.get(NODE).remove(); + }, + + connect: function(target) { + var instance = this; + + instance.addTarget(target); + + if (!instance.isConnected(target)) { + var tConnector = target.get(CONNECTOR); + + tConnector.p1 = instance.getCenterXY(); + tConnector.p2 = target.getCenterXY(); + + instance.connectors[target.get(ID)] = new A.Connector(tConnector); + } + + return instance; + }, + + connectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(A.bind(instance.connect, instance)); + + return instance; + }, + + disconnect: function(target) { + var instance = this; + + instance.getConnector(target).destroy(); + + instance.removeTarget(target); + target.removeSource(instance); + }, + + disconnectTargets: function() { + var instance = this; + + instance.get(TARGETS).each(function(target) { + instance.disconnect(target); + }); + + return instance; + }, + + disconnectSources: function() { + var instance = this; + + instance.get(SOURCES).each(function(source) { + source.disconnect(instance); + }); + + return instance; + }, + + getCenterXY: function() { + var instance = this; + + return instance.get(NODE).getCenterXY(); + }, + + getConnector: function(target) { + var instance = this; + + return instance.connectors[target.get(ID)]; + }, + + isConnected: function(target) { + var instance = this; + + return instance.connectors.hasOwnProperty(target.get(ID)); + }, + + updateSources: function(sources) { + var instance = this; + + instance.set(SOURCES, sources); + + return instance; + }, + + updateTargets: function(targets) { + var instance = this; + + instance.set(TARGETS, targets); + + return instance; + }, + + removeSource: function(source) { + var instance = this; + + return instance.updateSources( + instance.get(SOURCES).remove(source) + ); + }, + + removeTarget: function(target) { + var instance = this; + + return instance.updateTargets( + instance.get(TARGETS).remove(target) + ); + }, + + _afterActiveChange: function(event) { + var instance = this; + + instance._uiSetActive(event.newVal); + }, + + _afterTargetsChange: function(event) { + var instance = this; + + // TODO - event.prevVal is always equal to event.newVal, review this + // logic below, references between anchors needs to be cleaned up otherwise + // will store the wrong relationship between nodes. + + event.prevVal.each(function(anchor) { + anchor.removeSource(instance); + }); + + event.newVal.each(function(anchor) { + anchor.addSource(instance); + }); + }, + + _renderNode: function() { + var instance = this; + var diagramNode = instance.get(DIAGRAM_NODE); + var container = diagramNode.get(BOUNDING_BOX); + + instance.wrapper = container.one(_DOT+CSS_DB_ANCHOR_NODE_WRAPPER) || + A.Node.create(instance.ANCHOR_WRAPPER_TEMPLATE); + + instance.wrapper.appendTo(container).appendChild(instance.get(NODE)); + }, + + _setConnector: function(val) { + var instance = this; + + return A.merge( + { + viewport: instance.get(VIEWPORT) + }, + val + ); + }, + + _setSources: function(val) { + var instance = this; + + return instance._setAnchors(val); + }, + + _setTargets: function(val) { + var instance = this; + + val = instance._setAnchors(val); + + val.each(function(anchor) { + anchor.addSource(instance); + }); + + return val; + }, + + _setAnchors: function(val) { + var instance = this; + + if (!isArrayList(val)) { + var targets = []; + + A.Array.each(val, function(target) { + if (isString(target)) { + // TODO - need this? + target = A.Anchor.getAnchorByNode(target); + } + + targets.push( isAnchor(target) ? target : new A.Anchor(target) ); + }); + + val = new A.ArrayList(targets); + } + + return val; + }, + + _setNode: function(val) { + var instance = this; + var id = instance.get(ID); + + return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + } +},{ + ATTRS: { + diagramNode: { + }, + + connector: { + setter: '_setConnector', + value: {}, + validator: isObject + }, + + id: { + readOnly: true, + valueFn: function() { + return A.guid(); + } + }, + + maxSources: { + value: Infinity, + validator: isNumber + }, + + maxTargets: { + value: Infinity, + validator: isNumber + }, + + node: { + setter: '_setNode', + valueFn: function() { + var instance = this; + + return A.Node.create(instance.NODE_TEMPLATE); + } + }, + + sources: { + value: [], + setter: '_setSources', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + targets: { + value: [], + setter: '_setTargets', + validator: function(val) { + return isArray(val) || isArrayList(val); + } + }, + + viewport: { + setter: A.one, + value: BODY + } + }, + + getAnchorByNode: function(node) { + return A.one(node).getData(DATA_ANCHOR); + } +}); + +}, '@VERSION@' ,{requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd'], skinnable:true}); -AUI.add('aui-diagram-builder', function(A){}, '@VERSION@' ,{use:['aui-diagram-builder-base','aui-diagram-builder-impl'], skinnable:true}); +AUI.add('aui-diagram-builder', function(A){}, '@VERSION@' ,{use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}); diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index b6ca77c4cf0..f35aa52dadc 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,5 +10,5 @@ if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=ar if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","5",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","6",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","7",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","8",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d;},"trigger":"selector"});a("load","9",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]}); YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(e){var h=e.Lang,i=h.isArray,c=h.isFunction,b=h.isString,d=e.Array,n=e.namespace("Lang.String"),j=d.indexOf,l="",g=e.config.doc,m="firstChild",f="innerHTML",a="nodeValue",k="normalize";e.mix(n,{contains:function(p,o){return p.indexOf(o)!=-1;},endsWith:function(q,p){var o=(q.length-p.length);return((o>=0)&&(q.indexOf(p,o)==o));},escapeRegEx:function(o){return o.replace(/([.*+?^$(){}|[\]\/\\])/g,"\\$1");},repeat:function(o,p){return new Array(p+1).join(o);},padNumber:function(q,r,o){var s=o?Number(q).toFixed(o):String(q);var p=s.indexOf(".");if(p==-1){p=s.length;}return n.repeat("0",Math.max(0,r-p))+s;},remove:function(r,o,q){var p=new RegExp(n.escapeRegEx(o),q?"g":"");return r.replace(p,"");},removeAll:function(p,o){return n.remove(p,o,true);},startsWith:function(p,o){return(p.lastIndexOf(o,0)==0);},trim:h.trim,unescapeEntities:function(o){if(n.contains(o,"&")){if(g&&!n.contains(o,"<")){o=n._unescapeEntitiesUsingDom(o);}else{o=n._unescapeXmlEntities(o);}}return o;},_unescapeEntitiesUsingDom:function(p){var o=n._unescapeNode;o[f]=p;if(o[k]){o[k]();}p=o.firstChild.nodeValue;o[f]=l;return p;},_unescapeXmlEntities:function(o){return o.replace(/&([^;]+);/g,function(q,p){switch(p){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:if(p.charAt(0)=="#"){var r=Number("0"+p.substr(1));if(!isNaN(r)){return String.fromCharCode(r);}}return q;}});},_unescapeNode:g.createElement("a")});e.mix(d,{remove:function(o,r,q){var p=o.slice((q||r)+1||o.length);o.length=(r<0)?(o.length+r):r;return o.push.apply(o,p);},removeItem:function(o,q){var p=j(o,q);return d.remove(o,p);}});e.mix(h,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(p){var o=this;return String(p).indexOf(e.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); diff --git a/build/aui/aui.js b/build/aui/aui.js index 24f8bf123c9..0eebac24774 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4661,7 +4661,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-datepicker': {submodules: {'aui-datepicker-select': {skinnable:true, requires:['aui-datepicker-base','aui-button-item']}, 'aui-datepicker-base': {skinnable:true, requires:['aui-calendar','aui-overlay-context']} }, use:['aui-datepicker-base','aui-datepicker-select'], skinnable:true}, 'aui-debounce': {skinnable:false}, 'aui-delayed-task': {skinnable:false}, - 'aui-diagram-builder': {submodules: {'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl'], skinnable:true}, + 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, From 2d5016c6970e58f246c8352ea43a4517df214e8a Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 26 Jul 2011 00:20:49 -0300 Subject: [PATCH 005/132] AUI-461 Update anchor css classes when reach maxTargets/maxSources; Add diagram builder connect/connectAll methods; Add diagram node required attribute; Prevent deleting required nodes; Change A.DiagramNode.buildNodeId to use underline; Add diagram node findAvailableAnchor method; Add diagram node syncDragTargets/syncDropTargets methods. --- demos/diagram-builder/index.html | 558 ++++++++++++++++-- .../js/aui-diagram-builder-base.js | 29 +- .../js/aui-diagram-builder-connector.js | 151 +++-- .../js/aui-diagram-builder-impl.js | 278 +++++++-- 4 files changed, 845 insertions(+), 171 deletions(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index 74a04f74c9a..acf5c077b96 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -50,6 +50,11 @@ z-index: 1; } + .aui-basecelleditor { + z-index: 1000 !important; + } + + .aui-diagram-builder-anchor-node { width: 15px; height: 15px; @@ -60,6 +65,10 @@ border-radius: 12px; } + .aui-diagram-builder-anchor-node-max-targets { + cursor: auto; + } + .aui-diagram-builder-anchor-hover { background: green; } @@ -176,25 +185,407 @@

                      Alloy - diagram-builder-base Demo

                      AUI().use('aui-diagram-builder', function(A) { - var availableFields = [ - { - type: 'node', - label: 'Node', - iconClass: 'node-icon' + var Lang = A.Lang, + isBoolean = Lang.isBoolean, + + AArray = A.Array, + + ACTIONS = 'actions', + ADD_ANCHOR = 'addAnchor', + ADD_ANCHOR_MESSAGE = 'addAnchorMessage', + ADD_NODE = 'addNode', + ASSIGNMENTS = 'assignments', + CONDITION = 'condition', + DIAGRAM_NODE_NAME = 'diagram-node', + EDIT_EVENT = 'editEvent', + EDIT_MESSAGE = 'editMessage', + END = 'end', + FORK = 'fork', + INITIAL = 'initial', + JOIN = 'join', + LINK = 'link', + NOTIFICATIONS = 'notifications', + PENCIL = 'pencil', + SHUFFLE = 'shuffle', + START = 'start', + STATE = 'state', + TASK = 'task'; + + + // Liferay Workflow Nodes - MOVE THIS CODE! + + A.DiagramNodeState = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + initial: { + value: false, + validation: isBoolean + }, + + notifications: { + // value: { + // name: 'string', + // description: 'string', + // template: 'string', + // 'template-type': 'string', + // 'notification-type': 'string', + // recipients: { + // address: 'string', + // + // role: { + // roleId: 1234, + // roleType: 'string', + // name: 'string', + // autoCreate: true + // }, + // + // user: { + // 'user-id': 1234, + // 'screen-name': 'string', + // 'email-address': 'string' + // } + // } + // } + }, + + actions: { + // value: { + // name: 'string', + // description: 'string', + // script: 'string', + // 'script-language': 'string', + // priority: 0 + // } + }, + + timers:{ + }, + + strings: { + value: { + actions: 'Actions', + addAnchorMessage: 'Add Anchor', + assignments: 'Assignments', + closeMessage: 'Close', + deleteMessage: 'Are you sure you want to delete?', + description: 'Description', + editMessage: 'Edit', + initial: 'Initial', + name: 'Name', + notifications: 'Notifications', + type: 'Type' + } + }, + + type: { + value: STATE + } + }, + + EXTENDS: A.DiagramNode, + + prototype: { + getConnectionNode: function() { + return new A.DiagramNodeTask({ + xy: [100, 100] // TODO - find best position? + }); + }, + + getPropertyModel: function() { + var instance = this; + var strings = instance.getStrings(); + var parentModel = A.DiagramNodeState.superclass.getPropertyModel.apply(this, arguments); + + return AArray(parentModel).concat([ + { + attributeName: ACTIONS, + editor: new A.TextAreaCellEditor(), + name: strings[ACTIONS] + }, + + { + attributeName: NOTIFICATIONS, + editor: new A.TextAreaCellEditor(), + name: strings[NOTIFICATIONS] + }, + + { + attributeName: INITIAL, + editor: false, + name: strings[INITIAL] + } + ]); + } + } + }); + + A.DiagramBuilder.types[STATE] = A.DiagramNodeState; + + A.DiagramNodeCondition = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: CONDITION + } + }, + + EXTENDS: A.DiagramNodeState + }); + + A.DiagramBuilder.types[CONDITION] = A.DiagramNodeCondition; + + A.DiagramNodeStart = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + initial: { + value: true + }, + + maxFields: { + value: 1 + }, + + required: { + value: true + }, + + type: { + value: START + } + }, + + EXTENDS: A.DiagramNodeState, + + prototype: { + getConnectionNode: function() { + return new A.DiagramNodeCondition({ + xy: [100, 100] // TODO - find best position? + }); + }, + + _valueControlsToolbar: function(val) { + var instance = this; + var strings = instance.getStrings(); + + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + }, + { + handler: A.bind(instance._handleAddNodeEvent, instance), + icon: SHUFFLE, + id: ADD_NODE + } + ] + }; + } + } + }); + + A.DiagramBuilder.types[START] = A.DiagramNodeStart; + + A.DiagramNodeEnd = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + required: { + value: true + }, + + type: { + value: END + } }, + + EXTENDS: A.DiagramNodeState, + + prototype: { + _handleAddAnchorEvent: function(event) { + var instance = this; + + instance.addField({ + maxTargets: 0 + }); + }, + + _valueControlsToolbar: function(val) { + var instance = this; + var strings = instance.getStrings(); + + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + } + ] + }; + } + } + }); + + A.DiagramBuilder.types[END] = A.DiagramNodeEnd; + + A.DiagramNodeJoin = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: JOIN + } + }, + + EXTENDS: A.DiagramNodeState + }); + + A.DiagramBuilder.types[JOIN] = A.DiagramNodeJoin; + + A.DiagramNodeFork = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + type: { + value: FORK + } + }, + + EXTENDS: A.DiagramNodeState + }); + + A.DiagramBuilder.types[FORK] = A.DiagramNodeFork; + + A.DiagramNodeTask = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, + + ATTRS: { + assignments: { + value: { + // roles: [ + // { + // role: { + // roleId: 1234, + // roleType: 'string', + // name: 'string', + // autoCreate: true + // } + // } + // ] + + // 'resource-actions': { + // 'resource-action': 'string' + // } + + // 'scripted-assignment': { + // script: 'string', + // 'script-language': 'string' + // } + + // user: { + // 'user-id': 1234, + // 'screen-name': 'string', + // 'email-address': 'string' + // } + } + }, + + type: { + value: TASK + } + }, + + EXTENDS: A.DiagramNodeState, + + prototype: { + getPropertyModel: function() { + var instance = this; + var strings = instance.getStrings(); + var parentModel = A.DiagramNodeTask.superclass.getPropertyModel.apply(this, arguments); + + return AArray(parentModel).concat([ + { + attributeName: ASSIGNMENTS, + editor: new A.TextAreaCellEditor(), + name: strings[ASSIGNMENTS] + } + ]); + } + } + }); + + A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; + + // End of Liferay Workflow Nodes. + + + + + + +// console.log(A.DiagramNode.buildNodeId('Task1')); + + // A.on('available', function() { console.log('OKK'); }, '#' + A.DiagramNode.buildNodeId('Task1')); + + var availableFields = [ { type: 'task', label: 'Task', iconClass: 'task-icon' + }, + { + type: 'join', + label: 'Join', + iconClass: 'join-icon' + }, + { + type: 'fork', + label: 'Fork', + iconClass: 'fork-icon' + }, + + { + type: 'start', + label: 'Start', + iconClass: 'start-icon' + }, + { + type: 'end', + label: 'End', + iconClass: 'end-icon' + }, + { + type: 'condition', + label: 'Condition', + iconClass: 'condition-icon' } ]; - node = new A.DiagramNode({ - bodyContent: 'Node', - xy: [400, 200], + task0 = new A.DiagramNodeTask({ + name: 'Task0', + xy: [900, 200], fields: [ - {}, - {} ] }); @@ -205,82 +596,119 @@

                      Alloy - diagram-builder-base Demo

                      // height: 600, availableFields: availableFields, fields: [ - node, + task0, { - bodyContent: 'Node1', - xy: [200, 200], + name: 'StartNode', + type: 'start', + xy: [1200, 50], fields: [ - {}, {} ] }, { - bodyContent: 'Node2', + name: 'EndNode', + type: 'end', + xy: [50, 50], fields: [ - {}, - {} ] }, { + name: 'Task1', + type: 'task', xy: [600, 200], - bodyContent: 'Node3', - fields: [ - {}, - {}, - {}, - {} - ] + // fields: [ + // { + // } + // ] + }, + { + name: 'Task2', + type: 'task', + xy: [300, 200], + // fields: [ + // {}, + // {} + // ] } ] } ).render(); - diagramBuilder2 = new A.DiagramBuilder( + // diagramBuilder1.connect('StartNode', 'Task1'); + + // diagramBuilder1.connect('StartNode', 'Task0'); + // diagramBuilder1.connect('Task0', 'Task1'); + // diagramBuilder1.connect('Task1', 'Task2'); + // diagramBuilder1.connect('Task2', 'EndNode'); + + diagramBuilder1.connectAll([ { - after: { - cancel: function(event) { - console.log('cancel', event); - }, + source: 'StartNode', + target: 'Task0' + }, - save: function(event) { - console.log('save', event); - }, + { + source: task0, + target: 'Task1' + }, - addField: function(event) { - // console.log('addField', event); - } - }, - availableFields: availableFields, + { + source: 'Task1', + target: 'Task2' + }, - fields: [ - { - bodyContent: 'Node1', - xy: [200, 200] - }, - { - bodyContent: 'Node2' - } - ], - // fields: new A.ArrayList([{a:1}, {a:2}]), - - // propertyList: { - // recordset: [ - // { - // name: 'Text1', - // value: 'Text value' - // }, - // { - // name: 'Text2', - // value: 'Text value' - // }, - // { - // name: 'Text3', - // value: 'Text value' - // } - // ] - // } + { + source: 'Task2', + target: 'EndNode' } - ).render('#diagramBuilder2'); + ]); + + // diagramBuilder2 = new A.DiagramBuilder( + // { + // after: { + // cancel: function(event) { + // console.log('cancel', event); + // }, + // + // save: function(event) { + // console.log('save', event); + // }, + // + // addField: function(event) { + // // console.log('addField', event); + // } + // }, + // availableFields: availableFields, + // + // fields: [ + // { + // bodyContent: 'Node1', + // xy: [200, 200] + // }, + // { + // bodyContent: 'Node2' + // } + // ], + // // fields: new A.ArrayList([{a:1}, {a:2}]), + // + // // propertyList: { + // // recordset: [ + // // { + // // name: 'Text1', + // // value: 'Text value' + // // }, + // // { + // // name: 'Text2', + // // value: 'Text value' + // // }, + // // { + // // name: 'Text3', + // // value: 'Text value' + // // } + // // ] + // // } + // } + // ).render('#diagramBuilder2'); // diagramBuilder2.set('height', 1000); // diagramBuilder2.set('fields', [1,2]); diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-base.js b/src/aui-diagram-builder/js/aui-diagram-builder-base.js index d5ce666e095..3b8a780266c 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-base.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-base.js @@ -19,6 +19,7 @@ var Lang = A.Lang, AArray = A.Array, + MAX_FIELDS = 'maxFields', ADD = 'add', ADD_NODE = 'addNode', AUTO = 'auto', @@ -247,6 +248,11 @@ FieldSupport.ATTRS = { validator: function(val) { return isArray(val) || isArrayList(val); } + }, + + maxFields: { + value: Infinity, + validator: isNumber } }; @@ -255,8 +261,10 @@ A.mix(FieldSupport.prototype, { var instance = this; var fields = []; - AArray.each(val, function(field) { - fields.push(instance.createField(field)); + AArray.each(val, function(field, index) { + if (index < instance.get(MAX_FIELDS)) { + fields.push(instance.createField(field)); + } }); return new A.ArrayList(fields); @@ -264,13 +272,20 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; - var newField = instance.createField(field); - instance._updateFields( - instance.get(FIELDS).add(newField) - ); + if (instance.get(FIELDS).size() < instance.get(MAX_FIELDS)) { + var newField = instance.createField(field); + + if (newField) { + instance._updateFields( + instance.get(FIELDS).add(newField) + ); + } + + return newField; + } - return newField; + return null; }, removeField: function(field) { diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-connector.js b/src/aui-diagram-builder/js/aui-diagram-builder-connector.js index a21ab0e71b4..72bc3a574f4 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-connector.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-connector.js @@ -15,6 +15,10 @@ var Lang = A.Lang, return (val instanceof A.ArrayList); }, + isDiagramNode = function(val) { + return (val instanceof A.DiagramNode); + }, + ANCHOR = 'anchor', ARROW_POINTS = 'arrowPoints', BODY = 'body', @@ -28,6 +32,7 @@ var Lang = A.Lang, HEIGHT = 'height', ID = 'id', LAZY_DRAW = 'lazyDraw', + MAX = 'max', MAX_SOURCES = 'maxSources', MAX_TARGETS = 'maxTargets', NODE = 'node', @@ -45,6 +50,8 @@ var Lang = A.Lang, AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); @@ -251,24 +258,39 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectTargets(); instance.after({ + sourcesChange: instance._afterSourcesChange, targetsChange: instance._afterTargetsChange }); + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); }, addSource: function(source) { var instance = this; - return instance.updateSources( - instance.get(SOURCES).remove(source).add(source) - ); + if (instance.get(SOURCES).size() < instance.get(MAX_SOURCES)) { + instance.set( + SOURCES, + instance.get(SOURCES).remove(source).add(source) + ); + } + + return instance; }, addTarget: function(target) { var instance = this; - return instance.updateTargets( - instance.get(TARGETS).remove(target).add(target) - ); + if (instance.get(TARGETS).size() < instance.get(MAX_TARGETS)) { + instance.set( + TARGETS, + instance.get(TARGETS).remove(target).add(target) + ); + } + + return instance; }, alignConnectors: function() { @@ -307,7 +329,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { connect: function(target) { var instance = this; + if (isDiagramNode(target)) { + target = target.findAvailableAnchor(); + } + instance.addTarget(target); + target.addSource(instance); if (!instance.isConnected(target)) { var tConnector = target.get(CONNECTOR); @@ -318,6 +345,10 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectors[target.get(ID)] = new A.Connector(tConnector); } + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); + return instance; }, @@ -333,9 +364,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { var instance = this; instance.getConnector(target).destroy(); - instance.removeTarget(target); target.removeSource(instance); + + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); }, disconnectTargets: function() { @@ -370,48 +404,44 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return instance.connectors[target.get(ID)]; }, - isConnected: function(target) { - var instance = this; - - return instance.connectors.hasOwnProperty(target.get(ID)); - }, - - updateSources: function(sources) { + hasConnection: function() { var instance = this; - instance.set(SOURCES, sources); - - return instance; + return ((instance.get(TARGETS).size() > 0) || (instance.get(SOURCES).size() > 0)); }, - updateTargets: function(targets) { + isConnected: function(target) { var instance = this; - instance.set(TARGETS, targets); - - return instance; + return instance.connectors.hasOwnProperty(target.get(ID)); }, removeSource: function(source) { var instance = this; - return instance.updateSources( + instance.set( + SOURCES, instance.get(SOURCES).remove(source) ); + + return instance; }, removeTarget: function(target) { var instance = this; - return instance.updateTargets( + instance.set( + TARGETS, instance.get(TARGETS).remove(target) ); + + return instance; }, - _afterActiveChange: function(event) { + _afterSourcesChange: function(event) { var instance = this; - instance._uiSetActive(event.newVal); + instance._uiSetSources(event.newVal); }, _afterTargetsChange: function(event) { @@ -428,6 +458,8 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { event.newVal.each(function(anchor) { anchor.addSource(instance); }); + + instance._uiSetTargets(event.newVal); }, _renderNode: function() { @@ -461,7 +493,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { _setTargets: function(val) { var instance = this; - val = instance._setAnchors(val); + val = instance._setAnchors(val, true); val.each(function(anchor) { anchor.addSource(instance); @@ -470,16 +502,15 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, - _setAnchors: function(val) { + _setAnchors: function(val, target) { var instance = this; if (!isArrayList(val)) { var targets = []; - A.Array.each(val, function(target) { - if (isString(target)) { - // TODO - need this? - target = A.Anchor.getAnchorByNode(target); + A.Array.some(val, function(target, index) { + if (index >= instance.get(target ? MAX_TARGETS : MAX_SOURCES)) { + return true; } targets.push( isAnchor(target) ? target : new A.Anchor(target) ); @@ -491,11 +522,61 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, + _setMaxSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + + return val; + }, + + _setMaxTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); + + return val; + }, + _setNode: function(val) { var instance = this; var id = instance.get(ID); return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + }, + + _uiSetSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + }, + + _uiSetMaxSources: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_SOURCES, (instance.get(SOURCES).size() === val)); + }, + + _uiSetMaxTargets: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_TARGETS, (instance.get(TARGETS).size() === val)); + }, + + _uiSetTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); } },{ ATTRS: { @@ -516,12 +597,14 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, maxSources: { - value: Infinity, + setter: '_setMaxSources', + value: 1, validator: isNumber }, maxTargets: { - value: Infinity, + setter: '_setMaxTargets', + value: 1, validator: isNumber }, @@ -557,6 +640,6 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, getAnchorByNode: function(node) { - return A.one(node).getData(DATA_ANCHOR); + return isAnchor(node) ? node : A.one(node).getData(DATA_ANCHOR); } }); \ No newline at end of file diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js index 0a02c774f34..81f49f99aba 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js @@ -27,14 +27,20 @@ var Lang = A.Lang, }); }, + ADD_ANCHOR = 'addAnchor', + ADD_ANCHOR_MESSAGE = 'addAnchorMessage', + ADD_NODE = 'addNode', ANCHOR = 'anchor', ANCHORS = 'anchors', ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', + BOOLEAN = 'boolean', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', CLICK = 'click', + CLOSE_EVENT = 'closeEvent', + CLOSE_MESSAGE = 'closeMessage', CONTENT = 'content', CONTROLS = 'controls', CONTROLS_TOOLBAR = 'controlsToolbar', @@ -49,13 +55,18 @@ var Lang = A.Lang, DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + EDIT_EVENT = 'editEvent', + EDIT_MESSAGE = 'editMessage', ESC = 'esc', FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', HOVER = 'hover', + ID = 'id', KEYDOWN = 'keydown', LINK = 'link', + MAX = 'max', + MAX_SOURCES = 'maxSources', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', @@ -63,26 +74,35 @@ var Lang = A.Lang, P1 = 'p1', P2 = 'p2', PARENT_NODE = 'parentNode', + PENCIL = 'pencil', RECORDS = 'records', RECORDSET = 'recordset', REGION = 'region', RENDERED = 'rendered', + REQUIRED = 'required', SELECTED = 'selected', SHUFFLE = 'shuffle', - TASK = 'task', + SOURCE = 'source', + SOURCES = 'sources', + STRING = 'string', + TARGET = 'target', + TARGETS = 'targets', TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', VIEWPORT = 'viewport', WRAPPER = 'wrapper', XY = 'xy', + _DASH = '-', _DOT = '.', - _DOLLAR = '$', _EMPTY_STR = '', - _DASH = '-', + _HASH = '#', + _UNDERLINE = '_', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + // CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), @@ -184,6 +204,41 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + connect: function(diagramNode1, diagramNode2) { + var instance = this; + + if (isString(diagramNode1)) { + diagramNode1 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode1)); + } + + if (isString(diagramNode2)) { + diagramNode2 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode2)); + } + + if (diagramNode1 && diagramNode2) { + var a1 = diagramNode1.findAvailableAnchor(); + var a2 = diagramNode2.findAvailableAnchor(); + + if (a1 && a2) { + a1.connect(a2); + } + } + + return instance; + }, + + connectAll: function(nodes) { + var instance = this; + + AArray.each(nodes, function(node) { + if (node.hasOwnProperty(SOURCE) && node.hasOwnProperty(TARGET)) { + instance.connect(node.source, node.target); + } + }); + + return instance; + }, + createField: function(val) { var instance = this; @@ -243,7 +298,7 @@ var DiagramBuilder = A.Component.create({ var instance = this; instance.unselectAll(); - instance.stopEditingNode(); + // instance.stopEditingNode(); instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, @@ -342,8 +397,11 @@ var DiagramBuilder = A.Component.create({ _onDeleteKey: function(event) { var instance = this; + var selectedNode = instance.selectedNode; - instance.selectedNode.close(); + if (!selectedNode.get(REQUIRED)) { + selectedNode.close(); + } }, _onEscKey: function(event) { @@ -474,7 +532,7 @@ var DiagramNodeOverlay = A.Component.create({ var DiagramNode = A.Component.create({ NAME: DIAGRAM_NODE_NAME, - UI_ATTRS: [FIELDS, NAME, SELECTED], + UI_ATTRS: [FIELDS, NAME, REQUIRED, SELECTED], ATTRS: { anchorsDragConfig: { @@ -488,6 +546,11 @@ var DiagramNode = A.Component.create({ validator: isDiagramBuilder }, + required: { + value: false, + validator: isBoolean + }, + description: { value: _EMPTY_STR, validator: isString @@ -513,8 +576,11 @@ var DiagramNode = A.Component.create({ strings: { value: { + addAnchorMessage: 'Add Anchor', + closeMessage: 'Close', deleteMessage: 'Are you sure you want to delete?', description: 'Description', + editMessage: 'Edit', name: 'Name', type: 'Type' } @@ -526,9 +592,8 @@ var DiagramNode = A.Component.create({ }, controlsToolbar: { - setter: '_setControlsToolbar', validator: isObject, - value: null + valueFn: '_valueControlsToolbar' }, width: { @@ -547,7 +612,7 @@ var DiagramNode = A.Component.create({ EXTENDS: DiagramNodeOverlay, buildNodeId: function(id) { - return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + return DIAGRAM_NODE + _UNDERLINE + FIELD + _UNDERLINE + id; }, prototype: { @@ -633,6 +698,33 @@ var DiagramNode = A.Component.create({ return val; }, + findAvailableAnchor: function() { + var instance = this; + var available = null; + + instance.get(FIELDS).some(function(anchor) { + if (!anchor.hasConnection()) { + available = anchor; + + return true; + } + }); + + if (!available) { + available = instance.addField({}); + } + + return available; + }, + + getConnectionNode: function() { + var instance = this; + + return new A.DiagramNode({ + xy: [100, 100] // TODO - find best position? + }); + }, + getLeftTop: function() { var instance = this; @@ -644,7 +736,13 @@ var DiagramNode = A.Component.create({ var propertyModel = instance.getPropertyModel(); AArray.each(propertyModel, function(property) { - property.value = instance.get(property.attributeName); + var value = instance.get(property.attributeName), type = Lang.type(value); + + if (type === BOOLEAN || type === STRING) { + value = String(value); + } + + property.value = value; }); return propertyModel; @@ -681,6 +779,29 @@ var DiagramNode = A.Component.create({ ]; }, + syncDragTargets: function() { + var instance = this; + + instance.anchorsDrag.syncTargets(); + }, + + syncDropTargets: function(anchor) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + var drop = A.DD.DDM.getDrop(anchor.get(NODE)); + + if (drop) { + if (anchor.get(SOURCES).size() === anchor.get(MAX_SOURCES)) { + drop.removeFromGroup(ANCHORS); + } + else { + drop.addToGroup(ANCHORS); + } + } + }); + }, + _afterRender: function(event) { var instance = this; @@ -705,30 +826,33 @@ var DiagramNode = A.Component.create({ var instance = this; instance.addField({}); - - // event.halt(); }, - _handleAddTaskEvent: function(event) { + _handleAddNodeEvent: function(event) { var instance = this; var builder = instance.get(BUILDER); + var source = instance.findAvailableAnchor(); - var diagramNode = new A.DiagramNode({ - type: NODE, - xy: [100, 100] // TODO - find best position? - }); + if (source) { + var diagramNode = instance.getConnectionNode(); - builder.addField(diagramNode); + builder.addField(diagramNode); + source.connect(diagramNode.addField({})); + } + }, - var source = instance.addField({}); - var target = diagramNode.addField({}); - source.connect(target); + _handleEditEvent: function(event) { + var instance = this; + + instance.get(BUILDER).startEditingNode(instance); }, _handleCloseEvent: function(event) { var instance = this; - instance.close(); + if (!instance.get(REQUIRED)) { + instance.close(); + } }, _onAnchorDrag: function(event) { @@ -784,6 +908,10 @@ var DiagramNode = A.Component.create({ instance.get(CONTROLS_TOOLBAR) ) .render(instance.controlsNode); + + instance._uiSetRequired( + instance.get(REQUIRED) + ); }, _setBuilder: function(val) { @@ -840,31 +968,10 @@ var DiagramNode = A.Component.create({ instance.anchorsDrag = new A.DD.Delegate( instance.get(ANCHORS_DRAG_CONFIG) ); - }, - - _setControlsToolbar: function(val) { - var instance = this; - return A.merge( - { - activeState: false, - children: [ - { - handler: A.bind(instance._handleAddAnchorEvent, instance), - icon: LINK - }, - { - handler: A.bind(instance._handleAddTaskEvent, instance), - icon: SHUFFLE - }, - { - handler: A.bind(instance._handleCloseEvent, instance), - icon: CANCEL - } - ] - }, - val - ); + instance.anchorsDrag.dd + .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_TARGETS); + // .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_SOURCES); }, _uiSetFields: function(val) { @@ -873,9 +980,10 @@ var DiagramNode = A.Component.create({ if (instance.get(RENDERED)) { instance.alignAnchors(); - setTimeout(function() { - instance.anchorsDrag.syncTargets(); - }, 50); + // setTimeout(function() { + instance.syncDragTargets(); + instance.syncDropTargets(); + // }, 50); } }, @@ -883,7 +991,27 @@ var DiagramNode = A.Component.create({ var instance = this; var boundingBox = instance.get(BOUNDING_BOX); - boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + boundingBox.set(ID, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetRequired: function(val) { + var instance = this; + var strings = instance.getStrings(); + var controlsToolbar = instance.controlsToolbar; + + if (controlsToolbar) { + if (val) { + controlsToolbar.remove(CLOSE_EVENT); + } + else { + controlsToolbar.add({ + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + }); + } + } }, _uiSetSelected: function(val) { @@ -905,7 +1033,41 @@ var DiagramNode = A.Component.create({ var containerXY = instance._getContainer().getXY(); this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); - } + }, + + _valueControlsToolbar: function(val) { + var instance = this; + var strings = instance.getStrings(); + + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + }, + { + handler: A.bind(instance._handleAddNodeEvent, instance), + icon: SHUFFLE, + id: ADD_NODE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + } + ] + }; + } } }); @@ -913,20 +1075,6 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeTask = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - - ATTRS: { - type: { - value: TASK - } - }, - - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; - // TODO deletar anchors OK // TODO deletar connections (delete) OK // TODO Adicionar overlay de controles OK From 0a4a0b793c6b836e4415d97ba72d796aadcdacc9 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 26 Jul 2011 00:20:56 -0300 Subject: [PATCH 006/132] Build files --- .../aui-diagram-builder-base-debug.js | 29 +- .../aui-diagram-builder-base-min.js | 4 +- .../aui-diagram-builder-base.js | 29 +- .../aui-diagram-builder-connector-debug.js | 151 ++++-- .../aui-diagram-builder-connector-min.js | 3 +- .../aui-diagram-builder-connector.js | 151 ++++-- .../aui-diagram-builder-debug.js | 458 ++++++++++++++---- .../aui-diagram-builder-impl-debug.js | 278 ++++++++--- .../aui-diagram-builder-impl-min.js | 5 +- .../aui-diagram-builder-impl.js | 278 ++++++++--- .../aui-diagram-builder-min.js | 10 +- .../aui-diagram-builder.js | 458 ++++++++++++++---- 12 files changed, 1420 insertions(+), 434 deletions(-) diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js index be9cb6f4650..2cb7217820e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js @@ -20,6 +20,7 @@ var Lang = A.Lang, AArray = A.Array, + MAX_FIELDS = 'maxFields', ADD = 'add', ADD_NODE = 'addNode', AUTO = 'auto', @@ -248,6 +249,11 @@ FieldSupport.ATTRS = { validator: function(val) { return isArray(val) || isArrayList(val); } + }, + + maxFields: { + value: Infinity, + validator: isNumber } }; @@ -256,8 +262,10 @@ A.mix(FieldSupport.prototype, { var instance = this; var fields = []; - AArray.each(val, function(field) { - fields.push(instance.createField(field)); + AArray.each(val, function(field, index) { + if (index < instance.get(MAX_FIELDS)) { + fields.push(instance.createField(field)); + } }); return new A.ArrayList(fields); @@ -265,13 +273,20 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; - var newField = instance.createField(field); - instance._updateFields( - instance.get(FIELDS).add(newField) - ); + if (instance.get(FIELDS).size() < instance.get(MAX_FIELDS)) { + var newField = instance.createField(field); + + if (newField) { + instance._updateFields( + instance.get(FIELDS).add(newField) + ); + } + + return newField; + } - return newField; + return null; }, removeField: function(field) { diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-min.js b/build/aui-diagram-builder/aui-diagram-builder-base-min.js index 03a1704328a..a6cadadf290 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-diagram-builder-base",function(ad){var T=ad.Lang,d=T.isArray,ap=T.isBoolean,M=T.isNumber,B=T.isObject,at=T.isString,I=function(A){return(A instanceof ad.ArrayList);},R=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,V="add",k="addNode",aC="auto",N="availableField",Q="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Z="cancel",aq="clearfix",a="container",ab="content",u="contentBox",J="viewport",P="contentNode",E="createDocumentFragment",z="diagram",F="diagram-builder-base",aa="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",W="icon",v="iconClass",aj="id",af="label",ai="list",r="node",y="nodeSettings",ac="propertyList",ax="rendered",al="save",q="settings",O="tab",b="tabs",e="tabview",G="tabView",L="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",H="$",h="#",aE=w(z,aw,am,ay,a),x=w(z,aw,am,J),C=w(z,aw,am,ao),f=w(z,aw,am,t,a),ag=w(z,aw,am,ao,o),c=w(z,aw,am,ao,W),U=w(z,aw,am,ao,af),m=w(z,aw,am,b,a),Y=w(z,aw,am,b,a,ab),ah=w(z,aw,am,O,V),K=w(z,aw,am,O,q),au=w(z,aw,am,L,a),ae=w(p,aq),l=w(W),av=w(e,ab),aA=w(e,ai);var i=ad.Component.create({NAME:N,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!R(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(N,A);}return aF;},validator:R,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return Q+H+ao+H+A;},getAvailableFieldByNode:function(A){return ad.one(A).getData(N);},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},prototype:{FIELD_ITEM_TEMPLATE:'
                    • '+''+''+"
                    • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+U);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);}}});ad.AvailableField=i;var S=function(){};S.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||I(A);}}};ad.mix(S.prototype,{createFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aH){A.push(aF.createField(aH));});return new ad.ArrayList(A);},addField:function(aF){var A=this;var aG=A.createField(aF);A._updateFields(A.get(t).add(aG));return aG;},removeField:function(aF){var A=this;A._updateFields(A.get(t).remove(aF));},_updateFields:function(aF){var A=this;A.set(t,aF);},_setFields:function(aF){var A=this;if(I(aF)){return aF;}else{return A.createFields(aF);}},createField:function(A){return A;}});ad.FieldSupport=S;var ar=ad.Component.create({NAME:F,ATTRS:{availableFields:{setter:"_setAvailableFields",validator:d},viewport:{valueFn:function(){return ad.Node.create(this.VIEWPORT_TEMPLATE);}},dropContainer:{valueFn:function(){return ad.Node.create(this.DROP_CONTAINER_TEMPLATE);}},dropConfig:{value:null,setter:"_setDropConfig",validator:B},availableFieldsDragConfig:{value:null,setter:"_setAvailableFieldsDragConfig",validator:B},fieldsContainer:{valueFn:function(){return ad.Node.create(this.FIELDS_CONTAINER_TEMPLATE);}},propertyList:{setter:"_setPropertyList",validator:B,value:null},strings:{value:{addNode:"Add node",cancel:"Cancel",nodeSettings:"Node settings",propertyName:"Property Name",save:"Save",value:"Value"}},tabView:{setter:"_setTabView",validator:B,value:null,writeOnce:true},toolbar:{setter:"_setToolbar",validator:B,value:null},toolbarContainer:{valueFn:function(){return ad.Node.create(this.TOOLBAR_CONTAINER_TEMPLATE);}}},HTML_PARSER:{dropContainer:g+aE,fieldsContainer:g+f,toolbarContainer:g+au,viewport:g+x},UI_ATTRS:[Q,t],AUGMENTS:[ad.FieldSupport],prototype:{DROP_CONTAINER_TEMPLATE:'
                      ',TOOLBAR_CONTAINER_TEMPLATE:'
                      ',FIELDS_CONTAINER_TEMPLATE:'
                        ',VIEWPORT_TEMPLATE:'
                        ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.viewport=A.get(J);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderViewport();A._uiSetAvailableFields(A.get(Q));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(P);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,M(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Z);},_handleSaveEvent:function(){var A=this;A.fire(al);},_renderViewport:function(){var aF=this;var aG=aF.get(u);var A=aF.viewport;A.appendChild(aF.dropContainer);aG.appendChild(A);},_renderPropertyList:function(){var A=this; -if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(P);A.settingsNode=aF.getTab(1).get(P);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(L)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[Q],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[Q],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+Y),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ah,label:A[k]},{cssClass:K,label:A[y]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:aa},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Z]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(ae){var U=ae.Lang,d=U.isArray,aq=U.isBoolean,M=U.isNumber,B=U.isObject,au=U.isString,I=function(A){return(A instanceof ae.ArrayList);},S=function(A){return(A instanceof ae.Node);},D=function(A){return(A instanceof ae.AvailableField);},aE=ae.Array,P="maxFields",W="add",k="addNode",aD="auto",N="availableField",R="availableFields",aA="availableFieldsDragConfig",an="base",s="boundingBox",ax="builder",aa="cancel",ar="clearfix",a="container",ac="content",u="contentBox",J="viewport",Q="contentNode",E="createDocumentFragment",z="diagram",F="diagram-builder-base",ab="disk",o="draggable",az="drop",al="dropConfig",Z="dropContainer",ap="field",t="fields",n="fieldsContainer",ao="height",p="helper",X="icon",v="iconClass",ak="id",ag="label",aj="list",r="node",y="nodeSettings",ad="propertyList",ay="rendered",am="save",q="settings",O="tab",b="tabs",e="tabview",G="tabView",L="toolbar",j="toolbarContainer",w=ae.getClassName,aC=" ",g=".",H="$",h="#",aF=w(z,ax,an,az,a),x=w(z,ax,an,J),C=w(z,ax,an,ap),f=w(z,ax,an,t,a),ah=w(z,ax,an,ap,o),c=w(z,ax,an,ap,X),V=w(z,ax,an,ap,ag),m=w(z,ax,an,b,a),Y=w(z,ax,an,b,a,ac),ai=w(z,ax,an,O,W),K=w(z,ax,an,O,q),av=w(z,ax,an,L,a),af=w(p,ar),l=w(X),aw=w(e,ac),aB=w(e,aj);var i=ae.Component.create({NAME:N,ATTRS:{draggable:{value:true,validator:aq},label:{validator:au},iconClass:{validator:au},id:{value:ae.guid(),setter:"_setId",validator:au},node:{valueFn:function(aG){var A=this;if(!S(aG)){aG=ae.Node.create(ae.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aG.setData(N,A);}return aG;},validator:S,writeOnce:true},type:{value:r,validator:au}},EXTENDS:ae.Base,buildNodeId:function(A){return R+H+ap+H+A;},getAvailableFieldByNode:function(A){return ae.one(A).getData(N);},getAvailableFieldById:function(A){return ae.AvailableField.getAvailableFieldByNode(h+ae.AvailableField.buildNodeId(A));},prototype:{FIELD_ITEM_TEMPLATE:'
                      • '+''+''+"
                      • ",initializer:function(){var A=this;var aG=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aG.one(g+V);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(ak));A._uiSetLabel(A.get(ag));},_afterDraggableChange:function(aG){var A=this;A._uiSetDraggable(aG.newVal);},_afterIdChange:function(aG){var A=this;A._uiSetId(aG.newVal);},_afterLabelChange:function(aG){var A=this;A._uiSetLabel(aG.newVal);},_setId:function(A){return ae.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aG){var A=this;A.get(r).toggleClass(ah,aG);},_uiSetLabel:function(aG){var A=this;A.labelNode.setContent(aG);},_uiSetId:function(aG){var A=this;A.get(r).set(ak,aG);}}});ae.AvailableField=i;var T=function(){};T.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||I(A);}},maxFields:{value:Infinity,validator:M}};ae.mix(T.prototype,{createFields:function(aH){var aG=this;var A=[];aE.each(aH,function(aJ,aI){if(aI
                        ',TOOLBAR_CONTAINER_TEMPLATE:'
                        ',FIELDS_CONTAINER_TEMPLATE:'
                          ',VIEWPORT_TEMPLATE:'
                          ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.viewport=A.get(J);A.dropContainer=A.get(Z);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aH){var A=this;var aG=A.availableFieldsDrag;return(aH===aG.dd);},plotFields:function(){var aG=this;var A=aG.get(t);A.each(function(aH){aG.plotField(aH);});},renderUI:function(){var A=this;A._renderTabs();A._renderViewport();A._uiSetAvailableFields(A.get(R));},syncUI:function(){var A=this;var aG=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aG.addClass(af);},_afterActiveTabChange:function(aH){var A=this;var aG=aH.newVal.get(Q);if(A.get(ay)&&(aG===A.settingsNode)){A._renderSettings();}},_afterRender:function(aG){var A=this;A.plotFields();},_afterUiSetHeight:function(aG){var A=this;A.dropContainer.setStyle(ao,M(aG)?aG+A.DEF_UNIT:aG);},_defCancelFn:function(aG){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(aa);},_handleSaveEvent:function(){var A=this;A.fire(am);},_renderViewport:function(){var aG=this; +var aH=aG.get(u);var A=aG.viewport;A.appendChild(aG.dropContainer);aH.appendChild(A);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ae.PropertyList(A.get(ad)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aG=new ae.TabView(A.get(G));A.tabView=aG;A.fieldsNode=aG.getTab(0).get(Q);A.settingsNode=aG.getTab(1).get(Q);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ae.Toolbar(A.get(L)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ae.DD.Drop(A.get(al));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ae.DD.Delegate(A.get(aA));},_setAvailableFields:function(aH){var aG=this;var A=[];aE.each(aH,function(aJ,aI){A.push(D(aJ)?aJ:new ae.AvailableField(aJ));});return A;},_setDropConfig:function(aG){var A=this;return ae.merge({bubbleTargets:A,groups:[R],node:A.dropContainer},aG||{});},_setAvailableFieldsDragConfig:function(aG){var A=this;return ae.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[R],plugins:[{cfg:{moveOnEnd:false},fn:ae.Plugin.DDProxy}]},nodes:g+ah},aG||{});},_setPropertyList:function(aG){var A=this;return ae.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aD}},aG);},_setTabView:function(aJ){var aG=this;var aI=aG.get(s);var aK=aI.one(g+aB);var aH={after:{activeTabChange:ae.bind(aG._afterActiveTabChange,aG)},boundingBox:aI.one(g+m),contentBox:aI.one(g+Y),bubbleTargets:aG,contentNode:aI.one(g+aw),cssClass:m,listNode:aK,render:aG.get(u)};if(!aK){var A=aG.getStrings();aH.items=[{cssClass:ai,label:A[k]},{cssClass:K,label:A[y]}];}return ae.merge(aH,aJ);},_setToolbar:function(aH){var aG=this;var A=aG.getStrings();return ae.merge({activeState:false,bubbleTargets:aG,children:[{handler:ae.bind(aG._handleSaveEvent,aG),label:A[am],icon:ab},{handler:ae.bind(aG._handleCancelEvent,aG),label:A[aa]}]},aH);},_uiSetAvailableFields:function(aI){var A=this;var aH=A.fieldsNode;if(aH){var aG=ae.getDoc().invoke(E);aE.each(aI,function(aJ){aG.appendChild(aJ.get(r));});aH.setContent(A.fieldsContainer.setContent(aG));}},_uiSetFields:function(aG){var A=this;if(A.get(ay)){A.plotFields();}}}});ae.DiagramBuilderBase=at;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-base.js b/build/aui-diagram-builder/aui-diagram-builder-base.js index be9cb6f4650..2cb7217820e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base.js @@ -20,6 +20,7 @@ var Lang = A.Lang, AArray = A.Array, + MAX_FIELDS = 'maxFields', ADD = 'add', ADD_NODE = 'addNode', AUTO = 'auto', @@ -248,6 +249,11 @@ FieldSupport.ATTRS = { validator: function(val) { return isArray(val) || isArrayList(val); } + }, + + maxFields: { + value: Infinity, + validator: isNumber } }; @@ -256,8 +262,10 @@ A.mix(FieldSupport.prototype, { var instance = this; var fields = []; - AArray.each(val, function(field) { - fields.push(instance.createField(field)); + AArray.each(val, function(field, index) { + if (index < instance.get(MAX_FIELDS)) { + fields.push(instance.createField(field)); + } }); return new A.ArrayList(fields); @@ -265,13 +273,20 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; - var newField = instance.createField(field); - instance._updateFields( - instance.get(FIELDS).add(newField) - ); + if (instance.get(FIELDS).size() < instance.get(MAX_FIELDS)) { + var newField = instance.createField(field); + + if (newField) { + instance._updateFields( + instance.get(FIELDS).add(newField) + ); + } + + return newField; + } - return newField; + return null; }, removeField: function(field) { diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js b/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js index e48234c19d4..7072ce4b6af 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js @@ -16,6 +16,10 @@ var Lang = A.Lang, return (val instanceof A.ArrayList); }, + isDiagramNode = function(val) { + return (val instanceof A.DiagramNode); + }, + ANCHOR = 'anchor', ARROW_POINTS = 'arrowPoints', BODY = 'body', @@ -29,6 +33,7 @@ var Lang = A.Lang, HEIGHT = 'height', ID = 'id', LAZY_DRAW = 'lazyDraw', + MAX = 'max', MAX_SOURCES = 'maxSources', MAX_TARGETS = 'maxTargets', NODE = 'node', @@ -46,6 +51,8 @@ var Lang = A.Lang, AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); @@ -252,24 +259,39 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectTargets(); instance.after({ + sourcesChange: instance._afterSourcesChange, targetsChange: instance._afterTargetsChange }); + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); }, addSource: function(source) { var instance = this; - return instance.updateSources( - instance.get(SOURCES).remove(source).add(source) - ); + if (instance.get(SOURCES).size() < instance.get(MAX_SOURCES)) { + instance.set( + SOURCES, + instance.get(SOURCES).remove(source).add(source) + ); + } + + return instance; }, addTarget: function(target) { var instance = this; - return instance.updateTargets( - instance.get(TARGETS).remove(target).add(target) - ); + if (instance.get(TARGETS).size() < instance.get(MAX_TARGETS)) { + instance.set( + TARGETS, + instance.get(TARGETS).remove(target).add(target) + ); + } + + return instance; }, alignConnectors: function() { @@ -308,7 +330,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { connect: function(target) { var instance = this; + if (isDiagramNode(target)) { + target = target.findAvailableAnchor(); + } + instance.addTarget(target); + target.addSource(instance); if (!instance.isConnected(target)) { var tConnector = target.get(CONNECTOR); @@ -319,6 +346,10 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectors[target.get(ID)] = new A.Connector(tConnector); } + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); + return instance; }, @@ -334,9 +365,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { var instance = this; instance.getConnector(target).destroy(); - instance.removeTarget(target); target.removeSource(instance); + + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); }, disconnectTargets: function() { @@ -371,48 +405,44 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return instance.connectors[target.get(ID)]; }, - isConnected: function(target) { - var instance = this; - - return instance.connectors.hasOwnProperty(target.get(ID)); - }, - - updateSources: function(sources) { + hasConnection: function() { var instance = this; - instance.set(SOURCES, sources); - - return instance; + return ((instance.get(TARGETS).size() > 0) || (instance.get(SOURCES).size() > 0)); }, - updateTargets: function(targets) { + isConnected: function(target) { var instance = this; - instance.set(TARGETS, targets); - - return instance; + return instance.connectors.hasOwnProperty(target.get(ID)); }, removeSource: function(source) { var instance = this; - return instance.updateSources( + instance.set( + SOURCES, instance.get(SOURCES).remove(source) ); + + return instance; }, removeTarget: function(target) { var instance = this; - return instance.updateTargets( + instance.set( + TARGETS, instance.get(TARGETS).remove(target) ); + + return instance; }, - _afterActiveChange: function(event) { + _afterSourcesChange: function(event) { var instance = this; - instance._uiSetActive(event.newVal); + instance._uiSetSources(event.newVal); }, _afterTargetsChange: function(event) { @@ -429,6 +459,8 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { event.newVal.each(function(anchor) { anchor.addSource(instance); }); + + instance._uiSetTargets(event.newVal); }, _renderNode: function() { @@ -462,7 +494,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { _setTargets: function(val) { var instance = this; - val = instance._setAnchors(val); + val = instance._setAnchors(val, true); val.each(function(anchor) { anchor.addSource(instance); @@ -471,16 +503,15 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, - _setAnchors: function(val) { + _setAnchors: function(val, target) { var instance = this; if (!isArrayList(val)) { var targets = []; - A.Array.each(val, function(target) { - if (isString(target)) { - // TODO - need this? - target = A.Anchor.getAnchorByNode(target); + A.Array.some(val, function(target, index) { + if (index >= instance.get(target ? MAX_TARGETS : MAX_SOURCES)) { + return true; } targets.push( isAnchor(target) ? target : new A.Anchor(target) ); @@ -492,11 +523,61 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, + _setMaxSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + + return val; + }, + + _setMaxTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); + + return val; + }, + _setNode: function(val) { var instance = this; var id = instance.get(ID); return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + }, + + _uiSetSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + }, + + _uiSetMaxSources: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_SOURCES, (instance.get(SOURCES).size() === val)); + }, + + _uiSetMaxTargets: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_TARGETS, (instance.get(TARGETS).size() === val)); + }, + + _uiSetTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); } },{ ATTRS: { @@ -517,12 +598,14 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, maxSources: { - value: Infinity, + setter: '_setMaxSources', + value: 1, validator: isNumber }, maxTargets: { - value: Infinity, + setter: '_setMaxTargets', + value: 1, validator: isNumber }, @@ -558,7 +641,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, getAnchorByNode: function(node) { - return A.one(node).getData(DATA_ANCHOR); + return isAnchor(node) ? node : A.one(node).getData(DATA_ANCHOR); } }); diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector-min.js b/build/aui-diagram-builder/aui-diagram-builder-connector-min.js index 35a0ebce02c..1a5dd4af85b 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-connector-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-connector-min.js @@ -1 +1,2 @@ -AUI.add("aui-diagram-builder-connector",function(k){var M=k.Lang,r=M.isArray,v=M.isBoolean,L=M.isNumber,z=M.isObject,h=M.isString,D=k.Array,b=function(A){return(A instanceof k.Anchor);},E=function(A){return(A instanceof k.ArrayList);},y="anchor",F="arrowPoints",C="body",G="boundingBox",N="builder",w="color",n="connector",a="dataAnchor",x="diagram",s="diagramNode",u="height",p="id",I="lazyDraw",j="maxSources",i="maxTargets",J="node",m="p1",l="p2",e="path",q="shape",g="sources",f="targets",B="viewport",c="width",K="wrapper",o=".",t=k.getClassName,d=t(x,N,y,J,K),H=t(x,N,y,J);k.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(T,O,V,A,U,R){var W=this;T.moveTo(O,V);T.lineTo(A,U);var P=Math.atan2(U-V,A-O),S=(A+O)/2,Q=(U+V)/2;W.drawPolygon(T,W.translatePoints(W.rotatePoints(R||W.ARROW_POINTS,P),S,Q));},drawPolygon:function(O,P){var A=this;O.moveTo(P[0][0],P[0][1]);D.each(P,function(R,Q){if(Q>0){O.lineTo(P[Q][0],P[Q][1]);}});O.lineTo(P[0][0],P[0][1]);O.end();},translatePoints:function(P,O,R){var A=this;var Q=[];D.each(P,function(T,S){Q.push([P[S][0]+O,P[S][1]+R]);});return Q;},rotatePoints:function(O,Q){var A=this;var P=[];D.each(O,function(S,R){P.push(A.rotatePoint(Q,O[R][0],O[R][1]));});return P;},rotatePoint:function(O,A,P){return[(A*Math.cos(O))-(P*Math.sin(O)),(A*Math.sin(O))+(P*Math.cos(O))];}};k.Connector=k.Base.create("line",k.Base,[],{graphics:null,shape:null,initializer:function(O){var A=this;A.after({p1Change:A.draw,p2Change:A.draw});A._initGraphics();A._initShapes();if(!A.get(I)){A.draw();}},destroy:function(){var A=this;A.graphics.destroy();},draw:function(){var A=this;var O=A.shape;var Q=A.getCoordinate(A.get(m));var P=A.getCoordinate(A.get(l));O.clear();k.PolygonUtil.drawLineArrow(O,Q[0],Q[1],P[0],P[1],A.get(F));},getCoordinate:function(P){var A=this;var O=A.get(B).getXY();return[P[0]-O[0],P[1]-O[1]];},_initGraphics:function(){var A=this;var O=new k.Graphic({width:A.get(c),height:A.get(u),render:A.get(B)});A.graphics=O;},_initShapes:function(){var A=this;A.shape=A.graphics.getShape(A.get(q));},_setShape:function(O){var A=this;return k.merge({type:e,stroke:{color:A.get(w),weight:2},fill:{color:A.get(w)}},O);}},{ATTRS:{color:{value:"#666",validator:h},lazyDraw:{value:false,validator:v},viewport:{setter:k.one,value:C},shape:{value:null,setter:"_setShape"},arrowPoints:{value:k.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:r},p2:{value:[0,0],validator:r}}});k.Anchor=k.Base.create("anchor",k.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                          ',NODE_TEMPLATE:'
                          ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({targetsChange:A._afterTargetsChange});},addSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O).add(O));},addTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O).add(O));},alignConnectors:function(){var A=this;A.get(f).each(function(O){var P=A.getConnector(O);if(P){P.set(m,A.getCenterXY());P.set(l,O.getCenterXY());}});A.get(g).each(function(O){var P=O.getConnector(A);if(P){P.set(m,O.getCenterXY());P.set(l,A.getCenterXY());}});return A;},destroy:function(){var A=this;A.disconnectTargets();A.disconnectSources();A.get(J).remove();},connect:function(O){var A=this;A.addTarget(O);if(!A.isConnected(O)){var P=O.get(n);P.p1=A.getCenterXY();P.p2=O.getCenterXY();A.connectors[O.get(p)]=new k.Connector(P);}return A;},connectTargets:function(){var A=this;A.get(f).each(k.bind(A.connect,A));return A;},disconnect:function(O){var A=this;A.getConnector(O).destroy();A.removeTarget(O);O.removeSource(A);},disconnectTargets:function(){var A=this;A.get(f).each(function(O){A.disconnect(O);});return A;},disconnectSources:function(){var A=this;A.get(g).each(function(O){O.disconnect(A);});return A;},getCenterXY:function(){var A=this;return A.get(J).getCenterXY();},getConnector:function(O){var A=this;return A.connectors[O.get(p)];},isConnected:function(O){var A=this;return A.connectors.hasOwnProperty(O.get(p));},updateSources:function(O){var A=this;A.set(g,O);return A;},updateTargets:function(O){var A=this;A.set(f,O);return A;},removeSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O));},removeTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O));},_afterActiveChange:function(O){var A=this;A._uiSetActive(O.newVal);},_afterTargetsChange:function(O){var A=this;O.prevVal.each(function(P){P.removeSource(A);});O.newVal.each(function(P){P.addSource(A);});},_renderNode:function(){var A=this;var P=A.get(s);var O=P.get(G);A.wrapper=O.one(o+d)||k.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(O).appendChild(A.get(J));},_setConnector:function(O){var A=this;return k.merge({viewport:A.get(B)},O);},_setSources:function(O){var A=this;return A._setAnchors(O);},_setTargets:function(O){var A=this;O=A._setAnchors(O);O.each(function(P){P.addSource(A);});return O;},_setAnchors:function(P){var A=this;if(!E(P)){var O=[];k.Array.each(P,function(Q){if(h(Q)){Q=k.Anchor.getAnchorByNode(Q);}O.push(b(Q)?Q:new k.Anchor(Q));});P=new k.ArrayList(O);}return P;},_setNode:function(O){var A=this;var P=A.get(p);return k.one(O).set(p,P).setData(a,A);}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:z},id:{readOnly:true,valueFn:function(){return k.guid();}},maxSources:{value:Infinity,validator:L},maxTargets:{value:Infinity,validator:L},node:{setter:"_setNode",valueFn:function(){var A=this;return k.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return r(A)||E(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return r(A)||E(A);}},viewport:{setter:k.one,value:C}},getAnchorByNode:function(A){return k.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-connector",function(m){var Q=m.Lang,u=Q.isArray,y=Q.isBoolean,P=Q.isNumber,D=Q.isObject,j=Q.isString,G=m.Array,d=function(A){return(A instanceof m.Anchor);},H=function(A){return(A instanceof m.ArrayList);},p=function(A){return(A instanceof m.DiagramNode);},C="anchor",I="arrowPoints",F="body",J="boundingBox",R="builder",z="color",q="connector",a="dataAnchor",B="diagram",v="diagramNode",x="height",s="id",L="lazyDraw",M="max",l="maxSources",k="maxTargets",O="node",o="p1",n="p2",g="path",t="shape",i="sources",h="targets",E="viewport",c="width",N="wrapper",r=".",w=m.getClassName,b=w(B,R,C,O,M,h),f=w(B,R,C,O,M,i),e=w(B,R,C,O,N),K=w(B,R,C,O);m.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(X,S,Z,A,Y,V){var aa=this;X.moveTo(S,Z);X.lineTo(A,Y);var T=Math.atan2(Y-Z,A-S),W=(A+S)/2,U=(Y+Z)/2;aa.drawPolygon(X,aa.translatePoints(aa.rotatePoints(V||aa.ARROW_POINTS,T),W,U));},drawPolygon:function(S,T){var A=this;S.moveTo(T[0][0],T[0][1]);G.each(T,function(V,U){if(U>0){S.lineTo(T[U][0],T[U][1]);}});S.lineTo(T[0][0],T[0][1]);S.end();},translatePoints:function(T,S,V){var A=this;var U=[];G.each(T,function(X,W){U.push([T[W][0]+S,T[W][1]+V]);});return U;},rotatePoints:function(S,U){var A=this;var T=[];G.each(S,function(W,V){T.push(A.rotatePoint(U,S[V][0],S[V][1]));});return T;},rotatePoint:function(S,A,T){return[(A*Math.cos(S))-(T*Math.sin(S)),(A*Math.sin(S))+(T*Math.cos(S))];}};m.Connector=m.Base.create("line",m.Base,[],{graphics:null,shape:null,initializer:function(S){var A=this;A.after({p1Change:A.draw,p2Change:A.draw});A._initGraphics();A._initShapes();if(!A.get(L)){A.draw();}},destroy:function(){var A=this;A.graphics.destroy();},draw:function(){var A=this;var S=A.shape;var U=A.getCoordinate(A.get(o));var T=A.getCoordinate(A.get(n));S.clear();m.PolygonUtil.drawLineArrow(S,U[0],U[1],T[0],T[1],A.get(I));},getCoordinate:function(T){var A=this;var S=A.get(E).getXY();return[T[0]-S[0],T[1]-S[1]];},_initGraphics:function(){var A=this;var S=new m.Graphic({width:A.get(c),height:A.get(x),render:A.get(E)});A.graphics=S;},_initShapes:function(){var A=this;A.shape=A.graphics.getShape(A.get(t));},_setShape:function(S){var A=this;return m.merge({type:g,stroke:{color:A.get(z),weight:2},fill:{color:A.get(z)}},S);}},{ATTRS:{color:{value:"#666",validator:j},lazyDraw:{value:false,validator:y},viewport:{setter:m.one,value:F},shape:{value:null,setter:"_setShape"},arrowPoints:{value:m.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:u},p2:{value:[0,0],validator:u}}});m.Anchor=m.Base.create("anchor",m.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                          ',NODE_TEMPLATE:'
                          ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(k));},addSource:function(S){var A=this;if(A.get(i).size()0)||(A.get(i).size()>0));},isConnected:function(S){var A=this;return A.connectors.hasOwnProperty(S.get(s));},removeSource:function(S){var A=this;A.set(i,A.get(i).remove(S));return A;},removeTarget:function(S){var A=this;A.set(h,A.get(h).remove(S));return A;},_afterSourcesChange:function(S){var A=this;A._uiSetSources(S.newVal);},_afterTargetsChange:function(S){var A=this;S.prevVal.each(function(T){T.removeSource(A);});S.newVal.each(function(T){T.addSource(A);});A._uiSetTargets(S.newVal);},_renderNode:function(){var A=this;var T=A.get(v);var S=T.get(J);A.wrapper=S.one(r+e)||m.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(S).appendChild(A.get(O));},_setConnector:function(S){var A=this;return m.merge({viewport:A.get(E)},S);},_setSources:function(S){var A=this;return A._setAnchors(S);},_setTargets:function(S){var A=this;S=A._setAnchors(S,true);S.each(function(T){T.addSource(A);});return S;},_setAnchors:function(U,T){var A=this;if(!H(U)){var S=[];m.Array.some(U,function(W,V){if(V>=A.get(W?k:l)){return true;}S.push(d(W)?W:new m.Anchor(W));});U=new m.ArrayList(S);}return U;},_setMaxSources:function(S){var A=this;A._uiSetMaxSources(A.get(l));return S;},_setMaxTargets:function(S){var A=this;A._uiSetMaxTargets(A.get(k));return S;},_setNode:function(S){var A=this;var T=A.get(s);return m.one(S).set(s,T).setData(a,A);},_uiSetSources:function(S){var A=this;A._uiSetMaxSources(A.get(l));},_uiSetMaxSources:function(T){var A=this;var S=A.get(O);S.toggleClass(f,(A.get(i).size()===T));},_uiSetMaxTargets:function(T){var A=this;var S=A.get(O);S.toggleClass(b,(A.get(h).size()===T));},_uiSetTargets:function(S){var A=this; +A._uiSetMaxTargets(A.get(k));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:D},id:{readOnly:true,valueFn:function(){return m.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:P},maxTargets:{setter:"_setMaxTargets",value:1,validator:P},node:{setter:"_setNode",valueFn:function(){var A=this;return m.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return u(A)||H(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return u(A)||H(A);}},viewport:{setter:m.one,value:F}},getAnchorByNode:function(A){return d(A)?A:m.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector.js b/build/aui-diagram-builder/aui-diagram-builder-connector.js index e48234c19d4..7072ce4b6af 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-connector.js +++ b/build/aui-diagram-builder/aui-diagram-builder-connector.js @@ -16,6 +16,10 @@ var Lang = A.Lang, return (val instanceof A.ArrayList); }, + isDiagramNode = function(val) { + return (val instanceof A.DiagramNode); + }, + ANCHOR = 'anchor', ARROW_POINTS = 'arrowPoints', BODY = 'body', @@ -29,6 +33,7 @@ var Lang = A.Lang, HEIGHT = 'height', ID = 'id', LAZY_DRAW = 'lazyDraw', + MAX = 'max', MAX_SOURCES = 'maxSources', MAX_TARGETS = 'maxTargets', NODE = 'node', @@ -46,6 +51,8 @@ var Lang = A.Lang, AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); @@ -252,24 +259,39 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectTargets(); instance.after({ + sourcesChange: instance._afterSourcesChange, targetsChange: instance._afterTargetsChange }); + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); }, addSource: function(source) { var instance = this; - return instance.updateSources( - instance.get(SOURCES).remove(source).add(source) - ); + if (instance.get(SOURCES).size() < instance.get(MAX_SOURCES)) { + instance.set( + SOURCES, + instance.get(SOURCES).remove(source).add(source) + ); + } + + return instance; }, addTarget: function(target) { var instance = this; - return instance.updateTargets( - instance.get(TARGETS).remove(target).add(target) - ); + if (instance.get(TARGETS).size() < instance.get(MAX_TARGETS)) { + instance.set( + TARGETS, + instance.get(TARGETS).remove(target).add(target) + ); + } + + return instance; }, alignConnectors: function() { @@ -308,7 +330,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { connect: function(target) { var instance = this; + if (isDiagramNode(target)) { + target = target.findAvailableAnchor(); + } + instance.addTarget(target); + target.addSource(instance); if (!instance.isConnected(target)) { var tConnector = target.get(CONNECTOR); @@ -319,6 +346,10 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectors[target.get(ID)] = new A.Connector(tConnector); } + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); + return instance; }, @@ -334,9 +365,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { var instance = this; instance.getConnector(target).destroy(); - instance.removeTarget(target); target.removeSource(instance); + + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); }, disconnectTargets: function() { @@ -371,48 +405,44 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return instance.connectors[target.get(ID)]; }, - isConnected: function(target) { - var instance = this; - - return instance.connectors.hasOwnProperty(target.get(ID)); - }, - - updateSources: function(sources) { + hasConnection: function() { var instance = this; - instance.set(SOURCES, sources); - - return instance; + return ((instance.get(TARGETS).size() > 0) || (instance.get(SOURCES).size() > 0)); }, - updateTargets: function(targets) { + isConnected: function(target) { var instance = this; - instance.set(TARGETS, targets); - - return instance; + return instance.connectors.hasOwnProperty(target.get(ID)); }, removeSource: function(source) { var instance = this; - return instance.updateSources( + instance.set( + SOURCES, instance.get(SOURCES).remove(source) ); + + return instance; }, removeTarget: function(target) { var instance = this; - return instance.updateTargets( + instance.set( + TARGETS, instance.get(TARGETS).remove(target) ); + + return instance; }, - _afterActiveChange: function(event) { + _afterSourcesChange: function(event) { var instance = this; - instance._uiSetActive(event.newVal); + instance._uiSetSources(event.newVal); }, _afterTargetsChange: function(event) { @@ -429,6 +459,8 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { event.newVal.each(function(anchor) { anchor.addSource(instance); }); + + instance._uiSetTargets(event.newVal); }, _renderNode: function() { @@ -462,7 +494,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { _setTargets: function(val) { var instance = this; - val = instance._setAnchors(val); + val = instance._setAnchors(val, true); val.each(function(anchor) { anchor.addSource(instance); @@ -471,16 +503,15 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, - _setAnchors: function(val) { + _setAnchors: function(val, target) { var instance = this; if (!isArrayList(val)) { var targets = []; - A.Array.each(val, function(target) { - if (isString(target)) { - // TODO - need this? - target = A.Anchor.getAnchorByNode(target); + A.Array.some(val, function(target, index) { + if (index >= instance.get(target ? MAX_TARGETS : MAX_SOURCES)) { + return true; } targets.push( isAnchor(target) ? target : new A.Anchor(target) ); @@ -492,11 +523,61 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, + _setMaxSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + + return val; + }, + + _setMaxTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); + + return val; + }, + _setNode: function(val) { var instance = this; var id = instance.get(ID); return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + }, + + _uiSetSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + }, + + _uiSetMaxSources: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_SOURCES, (instance.get(SOURCES).size() === val)); + }, + + _uiSetMaxTargets: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_TARGETS, (instance.get(TARGETS).size() === val)); + }, + + _uiSetTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); } },{ ATTRS: { @@ -517,12 +598,14 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, maxSources: { - value: Infinity, + setter: '_setMaxSources', + value: 1, validator: isNumber }, maxTargets: { - value: Infinity, + setter: '_setMaxTargets', + value: 1, validator: isNumber }, @@ -558,7 +641,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, getAnchorByNode: function(node) { - return A.one(node).getData(DATA_ANCHOR); + return isAnchor(node) ? node : A.one(node).getData(DATA_ANCHOR); } }); diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 42d2ebf15d9..dec8553b460 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -20,6 +20,7 @@ var Lang = A.Lang, AArray = A.Array, + MAX_FIELDS = 'maxFields', ADD = 'add', ADD_NODE = 'addNode', AUTO = 'auto', @@ -248,6 +249,11 @@ FieldSupport.ATTRS = { validator: function(val) { return isArray(val) || isArrayList(val); } + }, + + maxFields: { + value: Infinity, + validator: isNumber } }; @@ -256,8 +262,10 @@ A.mix(FieldSupport.prototype, { var instance = this; var fields = []; - AArray.each(val, function(field) { - fields.push(instance.createField(field)); + AArray.each(val, function(field, index) { + if (index < instance.get(MAX_FIELDS)) { + fields.push(instance.createField(field)); + } }); return new A.ArrayList(fields); @@ -265,13 +273,20 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; - var newField = instance.createField(field); - instance._updateFields( - instance.get(FIELDS).add(newField) - ); + if (instance.get(FIELDS).size() < instance.get(MAX_FIELDS)) { + var newField = instance.createField(field); - return newField; + if (newField) { + instance._updateFields( + instance.get(FIELDS).add(newField) + ); + } + + return newField; + } + + return null; }, removeField: function(field) { @@ -766,14 +781,20 @@ var Lang = A.Lang, }); }, + ADD_ANCHOR = 'addAnchor', + ADD_ANCHOR_MESSAGE = 'addAnchorMessage', + ADD_NODE = 'addNode', ANCHOR = 'anchor', ANCHORS = 'anchors', ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', + BOOLEAN = 'boolean', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', CLICK = 'click', + CLOSE_EVENT = 'closeEvent', + CLOSE_MESSAGE = 'closeMessage', CONTENT = 'content', CONTROLS = 'controls', CONTROLS_TOOLBAR = 'controlsToolbar', @@ -788,13 +809,18 @@ var Lang = A.Lang, DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + EDIT_EVENT = 'editEvent', + EDIT_MESSAGE = 'editMessage', ESC = 'esc', FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', HOVER = 'hover', + ID = 'id', KEYDOWN = 'keydown', LINK = 'link', + MAX = 'max', + MAX_SOURCES = 'maxSources', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', @@ -802,26 +828,35 @@ var Lang = A.Lang, P1 = 'p1', P2 = 'p2', PARENT_NODE = 'parentNode', + PENCIL = 'pencil', RECORDS = 'records', RECORDSET = 'recordset', REGION = 'region', RENDERED = 'rendered', + REQUIRED = 'required', SELECTED = 'selected', SHUFFLE = 'shuffle', - TASK = 'task', + SOURCE = 'source', + SOURCES = 'sources', + STRING = 'string', + TARGET = 'target', + TARGETS = 'targets', TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', VIEWPORT = 'viewport', WRAPPER = 'wrapper', XY = 'xy', + _DASH = '-', _DOT = '.', - _DOLLAR = '$', _EMPTY_STR = '', - _DASH = '-', + _HASH = '#', + _UNDERLINE = '_', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + // CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), @@ -923,6 +958,41 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + connect: function(diagramNode1, diagramNode2) { + var instance = this; + + if (isString(diagramNode1)) { + diagramNode1 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode1)); + } + + if (isString(diagramNode2)) { + diagramNode2 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode2)); + } + + if (diagramNode1 && diagramNode2) { + var a1 = diagramNode1.findAvailableAnchor(); + var a2 = diagramNode2.findAvailableAnchor(); + + if (a1 && a2) { + a1.connect(a2); + } + } + + return instance; + }, + + connectAll: function(nodes) { + var instance = this; + + AArray.each(nodes, function(node) { + if (node.hasOwnProperty(SOURCE) && node.hasOwnProperty(TARGET)) { + instance.connect(node.source, node.target); + } + }); + + return instance; + }, + createField: function(val) { var instance = this; @@ -982,7 +1052,7 @@ var DiagramBuilder = A.Component.create({ var instance = this; instance.unselectAll(); - instance.stopEditingNode(); + // instance.stopEditingNode(); instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, @@ -1081,8 +1151,11 @@ var DiagramBuilder = A.Component.create({ _onDeleteKey: function(event) { var instance = this; + var selectedNode = instance.selectedNode; - instance.selectedNode.close(); + if (!selectedNode.get(REQUIRED)) { + selectedNode.close(); + } }, _onEscKey: function(event) { @@ -1213,7 +1286,7 @@ var DiagramNodeOverlay = A.Component.create({ var DiagramNode = A.Component.create({ NAME: DIAGRAM_NODE_NAME, - UI_ATTRS: [FIELDS, NAME, SELECTED], + UI_ATTRS: [FIELDS, NAME, REQUIRED, SELECTED], ATTRS: { anchorsDragConfig: { @@ -1227,6 +1300,11 @@ var DiagramNode = A.Component.create({ validator: isDiagramBuilder }, + required: { + value: false, + validator: isBoolean + }, + description: { value: _EMPTY_STR, validator: isString @@ -1252,8 +1330,11 @@ var DiagramNode = A.Component.create({ strings: { value: { + addAnchorMessage: 'Add Anchor', + closeMessage: 'Close', deleteMessage: 'Are you sure you want to delete?', description: 'Description', + editMessage: 'Edit', name: 'Name', type: 'Type' } @@ -1265,9 +1346,8 @@ var DiagramNode = A.Component.create({ }, controlsToolbar: { - setter: '_setControlsToolbar', validator: isObject, - value: null + valueFn: '_valueControlsToolbar' }, width: { @@ -1286,7 +1366,7 @@ var DiagramNode = A.Component.create({ EXTENDS: DiagramNodeOverlay, buildNodeId: function(id) { - return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + return DIAGRAM_NODE + _UNDERLINE + FIELD + _UNDERLINE + id; }, prototype: { @@ -1372,6 +1452,33 @@ var DiagramNode = A.Component.create({ return val; }, + findAvailableAnchor: function() { + var instance = this; + var available = null; + + instance.get(FIELDS).some(function(anchor) { + if (!anchor.hasConnection()) { + available = anchor; + + return true; + } + }); + + if (!available) { + available = instance.addField({}); + } + + return available; + }, + + getConnectionNode: function() { + var instance = this; + + return new A.DiagramNode({ + xy: [100, 100] // TODO - find best position? + }); + }, + getLeftTop: function() { var instance = this; @@ -1383,7 +1490,13 @@ var DiagramNode = A.Component.create({ var propertyModel = instance.getPropertyModel(); AArray.each(propertyModel, function(property) { - property.value = instance.get(property.attributeName); + var value = instance.get(property.attributeName), type = Lang.type(value); + + if (type === BOOLEAN || type === STRING) { + value = String(value); + } + + property.value = value; }); return propertyModel; @@ -1420,6 +1533,29 @@ var DiagramNode = A.Component.create({ ]; }, + syncDragTargets: function() { + var instance = this; + + instance.anchorsDrag.syncTargets(); + }, + + syncDropTargets: function(anchor) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + var drop = A.DD.DDM.getDrop(anchor.get(NODE)); + + if (drop) { + if (anchor.get(SOURCES).size() === anchor.get(MAX_SOURCES)) { + drop.removeFromGroup(ANCHORS); + } + else { + drop.addToGroup(ANCHORS); + } + } + }); + }, + _afterRender: function(event) { var instance = this; @@ -1444,30 +1580,33 @@ var DiagramNode = A.Component.create({ var instance = this; instance.addField({}); - - // event.halt(); }, - _handleAddTaskEvent: function(event) { + _handleAddNodeEvent: function(event) { var instance = this; var builder = instance.get(BUILDER); + var source = instance.findAvailableAnchor(); - var diagramNode = new A.DiagramNode({ - type: NODE, - xy: [100, 100] // TODO - find best position? - }); + if (source) { + var diagramNode = instance.getConnectionNode(); - builder.addField(diagramNode); + builder.addField(diagramNode); + source.connect(diagramNode.addField({})); + } + }, - var source = instance.addField({}); - var target = diagramNode.addField({}); - source.connect(target); + _handleEditEvent: function(event) { + var instance = this; + + instance.get(BUILDER).startEditingNode(instance); }, _handleCloseEvent: function(event) { var instance = this; - instance.close(); + if (!instance.get(REQUIRED)) { + instance.close(); + } }, _onAnchorDrag: function(event) { @@ -1523,6 +1662,10 @@ var DiagramNode = A.Component.create({ instance.get(CONTROLS_TOOLBAR) ) .render(instance.controlsNode); + + instance._uiSetRequired( + instance.get(REQUIRED) + ); }, _setBuilder: function(val) { @@ -1579,31 +1722,10 @@ var DiagramNode = A.Component.create({ instance.anchorsDrag = new A.DD.Delegate( instance.get(ANCHORS_DRAG_CONFIG) ); - }, - - _setControlsToolbar: function(val) { - var instance = this; - return A.merge( - { - activeState: false, - children: [ - { - handler: A.bind(instance._handleAddAnchorEvent, instance), - icon: LINK - }, - { - handler: A.bind(instance._handleAddTaskEvent, instance), - icon: SHUFFLE - }, - { - handler: A.bind(instance._handleCloseEvent, instance), - icon: CANCEL - } - ] - }, - val - ); + instance.anchorsDrag.dd + .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_TARGETS); + // .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_SOURCES); }, _uiSetFields: function(val) { @@ -1612,9 +1734,10 @@ var DiagramNode = A.Component.create({ if (instance.get(RENDERED)) { instance.alignAnchors(); - setTimeout(function() { - instance.anchorsDrag.syncTargets(); - }, 50); + // setTimeout(function() { + instance.syncDragTargets(); + instance.syncDropTargets(); + // }, 50); } }, @@ -1622,7 +1745,27 @@ var DiagramNode = A.Component.create({ var instance = this; var boundingBox = instance.get(BOUNDING_BOX); - boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + boundingBox.set(ID, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetRequired: function(val) { + var instance = this; + var strings = instance.getStrings(); + var controlsToolbar = instance.controlsToolbar; + + if (controlsToolbar) { + if (val) { + controlsToolbar.remove(CLOSE_EVENT); + } + else { + controlsToolbar.add({ + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + }); + } + } }, _uiSetSelected: function(val) { @@ -1644,7 +1787,41 @@ var DiagramNode = A.Component.create({ var containerXY = instance._getContainer().getXY(); this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); - } + }, + + _valueControlsToolbar: function(val) { + var instance = this; + var strings = instance.getStrings(); + + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + }, + { + handler: A.bind(instance._handleAddNodeEvent, instance), + icon: SHUFFLE, + id: ADD_NODE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + } + ] + }; + } } }); @@ -1652,20 +1829,6 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeTask = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - - ATTRS: { - type: { - value: TASK - } - }, - - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; - // TODO deletar anchors OK // TODO deletar connections (delete) OK // TODO Adicionar overlay de controles OK @@ -1695,6 +1858,10 @@ var Lang = A.Lang, return (val instanceof A.ArrayList); }, + isDiagramNode = function(val) { + return (val instanceof A.DiagramNode); + }, + ANCHOR = 'anchor', ARROW_POINTS = 'arrowPoints', BODY = 'body', @@ -1708,6 +1875,7 @@ var Lang = A.Lang, HEIGHT = 'height', ID = 'id', LAZY_DRAW = 'lazyDraw', + MAX = 'max', MAX_SOURCES = 'maxSources', MAX_TARGETS = 'maxTargets', NODE = 'node', @@ -1725,6 +1893,8 @@ var Lang = A.Lang, AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); @@ -1931,24 +2101,39 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectTargets(); instance.after({ + sourcesChange: instance._afterSourcesChange, targetsChange: instance._afterTargetsChange }); + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); }, addSource: function(source) { var instance = this; - return instance.updateSources( - instance.get(SOURCES).remove(source).add(source) - ); + if (instance.get(SOURCES).size() < instance.get(MAX_SOURCES)) { + instance.set( + SOURCES, + instance.get(SOURCES).remove(source).add(source) + ); + } + + return instance; }, addTarget: function(target) { var instance = this; - return instance.updateTargets( - instance.get(TARGETS).remove(target).add(target) - ); + if (instance.get(TARGETS).size() < instance.get(MAX_TARGETS)) { + instance.set( + TARGETS, + instance.get(TARGETS).remove(target).add(target) + ); + } + + return instance; }, alignConnectors: function() { @@ -1987,7 +2172,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { connect: function(target) { var instance = this; + if (isDiagramNode(target)) { + target = target.findAvailableAnchor(); + } + instance.addTarget(target); + target.addSource(instance); if (!instance.isConnected(target)) { var tConnector = target.get(CONNECTOR); @@ -1998,6 +2188,10 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectors[target.get(ID)] = new A.Connector(tConnector); } + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); + return instance; }, @@ -2013,9 +2207,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { var instance = this; instance.getConnector(target).destroy(); - instance.removeTarget(target); target.removeSource(instance); + + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); }, disconnectTargets: function() { @@ -2050,48 +2247,44 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return instance.connectors[target.get(ID)]; }, - isConnected: function(target) { + hasConnection: function() { var instance = this; - return instance.connectors.hasOwnProperty(target.get(ID)); + return ((instance.get(TARGETS).size() > 0) || (instance.get(SOURCES).size() > 0)); }, - updateSources: function(sources) { - var instance = this; - - instance.set(SOURCES, sources); - - return instance; - }, - - updateTargets: function(targets) { + isConnected: function(target) { var instance = this; - instance.set(TARGETS, targets); - - return instance; + return instance.connectors.hasOwnProperty(target.get(ID)); }, removeSource: function(source) { var instance = this; - return instance.updateSources( + instance.set( + SOURCES, instance.get(SOURCES).remove(source) ); + + return instance; }, removeTarget: function(target) { var instance = this; - return instance.updateTargets( + instance.set( + TARGETS, instance.get(TARGETS).remove(target) ); + + return instance; }, - _afterActiveChange: function(event) { + _afterSourcesChange: function(event) { var instance = this; - instance._uiSetActive(event.newVal); + instance._uiSetSources(event.newVal); }, _afterTargetsChange: function(event) { @@ -2108,6 +2301,8 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { event.newVal.each(function(anchor) { anchor.addSource(instance); }); + + instance._uiSetTargets(event.newVal); }, _renderNode: function() { @@ -2141,7 +2336,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { _setTargets: function(val) { var instance = this; - val = instance._setAnchors(val); + val = instance._setAnchors(val, true); val.each(function(anchor) { anchor.addSource(instance); @@ -2150,16 +2345,15 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, - _setAnchors: function(val) { + _setAnchors: function(val, target) { var instance = this; if (!isArrayList(val)) { var targets = []; - A.Array.each(val, function(target) { - if (isString(target)) { - // TODO - need this? - target = A.Anchor.getAnchorByNode(target); + A.Array.some(val, function(target, index) { + if (index >= instance.get(target ? MAX_TARGETS : MAX_SOURCES)) { + return true; } targets.push( isAnchor(target) ? target : new A.Anchor(target) ); @@ -2171,11 +2365,61 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, + _setMaxSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + + return val; + }, + + _setMaxTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); + + return val; + }, + _setNode: function(val) { var instance = this; var id = instance.get(ID); return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + }, + + _uiSetSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + }, + + _uiSetMaxSources: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_SOURCES, (instance.get(SOURCES).size() === val)); + }, + + _uiSetMaxTargets: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_TARGETS, (instance.get(TARGETS).size() === val)); + }, + + _uiSetTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); } },{ ATTRS: { @@ -2196,12 +2440,14 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, maxSources: { - value: Infinity, + setter: '_setMaxSources', + value: 1, validator: isNumber }, maxTargets: { - value: Infinity, + setter: '_setMaxTargets', + value: 1, validator: isNumber }, @@ -2237,7 +2483,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, getAnchorByNode: function(node) { - return A.one(node).getData(DATA_ANCHOR); + return isAnchor(node) ? node : A.one(node).getData(DATA_ANCHOR); } }); diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js index 47d1c299466..73cdda06816 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js @@ -28,14 +28,20 @@ var Lang = A.Lang, }); }, + ADD_ANCHOR = 'addAnchor', + ADD_ANCHOR_MESSAGE = 'addAnchorMessage', + ADD_NODE = 'addNode', ANCHOR = 'anchor', ANCHORS = 'anchors', ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', + BOOLEAN = 'boolean', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', CLICK = 'click', + CLOSE_EVENT = 'closeEvent', + CLOSE_MESSAGE = 'closeMessage', CONTENT = 'content', CONTROLS = 'controls', CONTROLS_TOOLBAR = 'controlsToolbar', @@ -50,13 +56,18 @@ var Lang = A.Lang, DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + EDIT_EVENT = 'editEvent', + EDIT_MESSAGE = 'editMessage', ESC = 'esc', FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', HOVER = 'hover', + ID = 'id', KEYDOWN = 'keydown', LINK = 'link', + MAX = 'max', + MAX_SOURCES = 'maxSources', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', @@ -64,26 +75,35 @@ var Lang = A.Lang, P1 = 'p1', P2 = 'p2', PARENT_NODE = 'parentNode', + PENCIL = 'pencil', RECORDS = 'records', RECORDSET = 'recordset', REGION = 'region', RENDERED = 'rendered', + REQUIRED = 'required', SELECTED = 'selected', SHUFFLE = 'shuffle', - TASK = 'task', + SOURCE = 'source', + SOURCES = 'sources', + STRING = 'string', + TARGET = 'target', + TARGETS = 'targets', TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', VIEWPORT = 'viewport', WRAPPER = 'wrapper', XY = 'xy', + _DASH = '-', _DOT = '.', - _DOLLAR = '$', _EMPTY_STR = '', - _DASH = '-', + _HASH = '#', + _UNDERLINE = '_', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + // CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), @@ -185,6 +205,41 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + connect: function(diagramNode1, diagramNode2) { + var instance = this; + + if (isString(diagramNode1)) { + diagramNode1 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode1)); + } + + if (isString(diagramNode2)) { + diagramNode2 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode2)); + } + + if (diagramNode1 && diagramNode2) { + var a1 = diagramNode1.findAvailableAnchor(); + var a2 = diagramNode2.findAvailableAnchor(); + + if (a1 && a2) { + a1.connect(a2); + } + } + + return instance; + }, + + connectAll: function(nodes) { + var instance = this; + + AArray.each(nodes, function(node) { + if (node.hasOwnProperty(SOURCE) && node.hasOwnProperty(TARGET)) { + instance.connect(node.source, node.target); + } + }); + + return instance; + }, + createField: function(val) { var instance = this; @@ -244,7 +299,7 @@ var DiagramBuilder = A.Component.create({ var instance = this; instance.unselectAll(); - instance.stopEditingNode(); + // instance.stopEditingNode(); instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, @@ -343,8 +398,11 @@ var DiagramBuilder = A.Component.create({ _onDeleteKey: function(event) { var instance = this; + var selectedNode = instance.selectedNode; - instance.selectedNode.close(); + if (!selectedNode.get(REQUIRED)) { + selectedNode.close(); + } }, _onEscKey: function(event) { @@ -475,7 +533,7 @@ var DiagramNodeOverlay = A.Component.create({ var DiagramNode = A.Component.create({ NAME: DIAGRAM_NODE_NAME, - UI_ATTRS: [FIELDS, NAME, SELECTED], + UI_ATTRS: [FIELDS, NAME, REQUIRED, SELECTED], ATTRS: { anchorsDragConfig: { @@ -489,6 +547,11 @@ var DiagramNode = A.Component.create({ validator: isDiagramBuilder }, + required: { + value: false, + validator: isBoolean + }, + description: { value: _EMPTY_STR, validator: isString @@ -514,8 +577,11 @@ var DiagramNode = A.Component.create({ strings: { value: { + addAnchorMessage: 'Add Anchor', + closeMessage: 'Close', deleteMessage: 'Are you sure you want to delete?', description: 'Description', + editMessage: 'Edit', name: 'Name', type: 'Type' } @@ -527,9 +593,8 @@ var DiagramNode = A.Component.create({ }, controlsToolbar: { - setter: '_setControlsToolbar', validator: isObject, - value: null + valueFn: '_valueControlsToolbar' }, width: { @@ -548,7 +613,7 @@ var DiagramNode = A.Component.create({ EXTENDS: DiagramNodeOverlay, buildNodeId: function(id) { - return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + return DIAGRAM_NODE + _UNDERLINE + FIELD + _UNDERLINE + id; }, prototype: { @@ -634,6 +699,33 @@ var DiagramNode = A.Component.create({ return val; }, + findAvailableAnchor: function() { + var instance = this; + var available = null; + + instance.get(FIELDS).some(function(anchor) { + if (!anchor.hasConnection()) { + available = anchor; + + return true; + } + }); + + if (!available) { + available = instance.addField({}); + } + + return available; + }, + + getConnectionNode: function() { + var instance = this; + + return new A.DiagramNode({ + xy: [100, 100] // TODO - find best position? + }); + }, + getLeftTop: function() { var instance = this; @@ -645,7 +737,13 @@ var DiagramNode = A.Component.create({ var propertyModel = instance.getPropertyModel(); AArray.each(propertyModel, function(property) { - property.value = instance.get(property.attributeName); + var value = instance.get(property.attributeName), type = Lang.type(value); + + if (type === BOOLEAN || type === STRING) { + value = String(value); + } + + property.value = value; }); return propertyModel; @@ -682,6 +780,29 @@ var DiagramNode = A.Component.create({ ]; }, + syncDragTargets: function() { + var instance = this; + + instance.anchorsDrag.syncTargets(); + }, + + syncDropTargets: function(anchor) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + var drop = A.DD.DDM.getDrop(anchor.get(NODE)); + + if (drop) { + if (anchor.get(SOURCES).size() === anchor.get(MAX_SOURCES)) { + drop.removeFromGroup(ANCHORS); + } + else { + drop.addToGroup(ANCHORS); + } + } + }); + }, + _afterRender: function(event) { var instance = this; @@ -706,30 +827,33 @@ var DiagramNode = A.Component.create({ var instance = this; instance.addField({}); - - // event.halt(); }, - _handleAddTaskEvent: function(event) { + _handleAddNodeEvent: function(event) { var instance = this; var builder = instance.get(BUILDER); + var source = instance.findAvailableAnchor(); - var diagramNode = new A.DiagramNode({ - type: NODE, - xy: [100, 100] // TODO - find best position? - }); + if (source) { + var diagramNode = instance.getConnectionNode(); - builder.addField(diagramNode); + builder.addField(diagramNode); + source.connect(diagramNode.addField({})); + } + }, - var source = instance.addField({}); - var target = diagramNode.addField({}); - source.connect(target); + _handleEditEvent: function(event) { + var instance = this; + + instance.get(BUILDER).startEditingNode(instance); }, _handleCloseEvent: function(event) { var instance = this; - instance.close(); + if (!instance.get(REQUIRED)) { + instance.close(); + } }, _onAnchorDrag: function(event) { @@ -785,6 +909,10 @@ var DiagramNode = A.Component.create({ instance.get(CONTROLS_TOOLBAR) ) .render(instance.controlsNode); + + instance._uiSetRequired( + instance.get(REQUIRED) + ); }, _setBuilder: function(val) { @@ -841,31 +969,10 @@ var DiagramNode = A.Component.create({ instance.anchorsDrag = new A.DD.Delegate( instance.get(ANCHORS_DRAG_CONFIG) ); - }, - - _setControlsToolbar: function(val) { - var instance = this; - return A.merge( - { - activeState: false, - children: [ - { - handler: A.bind(instance._handleAddAnchorEvent, instance), - icon: LINK - }, - { - handler: A.bind(instance._handleAddTaskEvent, instance), - icon: SHUFFLE - }, - { - handler: A.bind(instance._handleCloseEvent, instance), - icon: CANCEL - } - ] - }, - val - ); + instance.anchorsDrag.dd + .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_TARGETS); + // .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_SOURCES); }, _uiSetFields: function(val) { @@ -874,9 +981,10 @@ var DiagramNode = A.Component.create({ if (instance.get(RENDERED)) { instance.alignAnchors(); - setTimeout(function() { - instance.anchorsDrag.syncTargets(); - }, 50); + // setTimeout(function() { + instance.syncDragTargets(); + instance.syncDropTargets(); + // }, 50); } }, @@ -884,7 +992,27 @@ var DiagramNode = A.Component.create({ var instance = this; var boundingBox = instance.get(BOUNDING_BOX); - boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + boundingBox.set(ID, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetRequired: function(val) { + var instance = this; + var strings = instance.getStrings(); + var controlsToolbar = instance.controlsToolbar; + + if (controlsToolbar) { + if (val) { + controlsToolbar.remove(CLOSE_EVENT); + } + else { + controlsToolbar.add({ + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + }); + } + } }, _uiSetSelected: function(val) { @@ -906,7 +1034,41 @@ var DiagramNode = A.Component.create({ var containerXY = instance._getContainer().getXY(); this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); - } + }, + + _valueControlsToolbar: function(val) { + var instance = this; + var strings = instance.getStrings(); + + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + }, + { + handler: A.bind(instance._handleAddNodeEvent, instance), + icon: SHUFFLE, + id: ADD_NODE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + } + ] + }; + } } }); @@ -914,20 +1076,6 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeTask = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - - ATTRS: { - type: { - value: TASK - } - }, - - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; - // TODO deletar anchors OK // TODO deletar connections (delete) OK // TODO Adicionar overlay de controles OK diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js index 89a00c8e6a2..03405528776 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js @@ -1,2 +1,3 @@ -AUI.add("aui-diagram-builder-impl",function(W){var L=W.Lang,c=L.isArray,w=L.isObject,ar=L.isString,ao=L.isBoolean,ay=W.Array,J=function(A){return(A instanceof W.DiagramBuilderBase);},ap=function(A){return(A instanceof W.DiagramNode);},S=function(A){return(A instanceof W.Anchor);},ab=function(A,aB){var aA=c(aB)?aB:aB.getXY();var aC=c(A)?A:A.getXY();return ay.map(aC,function(aE,aD){return Math.max(0,aE-aA[aD]);});},ad="anchor",X="anchors",R="anchorsDragConfig",F="availableField",k="boundingBox",au="builder",P="cancel",ai="click",U="content",y="controls",ah="controlsToolbar",ag="data",Q="dblclick",I="delete",Y="deleteMessage",al="description",v="diagram",T="diagram-builder",ac="diagramNode",s="diagram-node",am="dragNode",D="editing",a="esc",an="field",m="fields",aa="fieldsDragConfig",l="hover",E="keydown",V="link",n="mouseenter",K="mouseleave",i="name",j="node",af="p1",ae="p2",d="parentNode",O="records",h="recordset",g="region",av="rendered",aq="selected",x="shuffle",t="task",B="tmpConnector",e="type",C="viewport",at="wrapper",q="xy",f=".",z="$",G="",ax="-",p=W.getClassName,Z=p(v,au,ad,l),aj=p(v,au,ad,j),u=p(v,au,ad,j,at),o=p(v,au,y),M=p(v,j),b=p(v,j,U),ak=p(v,j,D),aw=p(v,j,aq);var N=function(){var aA="        ",A="
                          ";W.all(".aui-diagram-node").each(function(aG){var aB=G,aD=W.Widget.getByNode(aG),aC=aD.get("name"),aF=aD.get("boundingBox"),aE=aF.one(".log")||W.Node.create("
                          ").appendTo(aF);aB+=aC+A;aD.get(m).each(function(aH){aB+=aA+"a: "+aH.get("id")+A;aH.get("targets").each(function(aI){var aJ=aI.get(ac);aI.get("node").setContent(aI.get("id"));aB+=aA+aA+"t: "+aJ.get("name")+" (s: "+aI.get("id")+")"+A;});aH.get("sources").each(function(aJ){var aI=aJ.get(ac);aJ.get("node").setContent(aJ.get("id"));aB+=aA+aA+"s: "+aI.get("name")+" (t: "+aJ.get("id")+")"+A;});});aE.setContent(aB);});};var r=W.Component.create({NAME:T,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:w},tmpConnector:{setter:"_setTmpConnector",value:{},validator:w}},EXTENDS:W.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=W.getDoc().on(E,W.bind(A._afterKeyEvent,A));A.dropContainer.delegate(ai,W.bind(A._onNodeClick,A),f+M);A.dropContainer.delegate(Q,W.bind(A._onNodeEdit,A),f+M);A.dropContainer.delegate(n,W.bind(A._onMouseenterAnchors,A),f+aj);A.dropContainer.delegate(K,W.bind(A._onMouseleaveAnchors,A),f+aj);},syncUI:function(){var A=this;W.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new W.Connector(A.get(B));},createField:function(aA){var A=this;if(!ap(aA)){aA.builder=A;aA.viewport=A.get(C);aA=new (A.getFieldClass(aA.type||j))(aA);}aA.set(au,A);return aA;},getFieldClass:function(aB){var A=this;var aA=W.DiagramBuilder.types[aB];if(aA){return aA;}else{W.log("The field type: ["+aB+"] couldn't be found.");return null;}},isFieldsDrag:function(aB){var A=this;var aA=A.fieldsDrag;return(aB===aA.dd);},plotField:function(aA){var A=this;if(!aA.get(av)){aA.render(A.dropContainer);}},unselectAll:function(){var A=this;var aA=A.selectedNode;if(aA){aA.set(aq,false);}A.selectedNode=null;},select:function(aA){var A=this;A.unselectAll();A.stopEditingNode();A.selectedNode=aA.set(aq,true).focus();},startEditingNode:function(aA){var A=this;if(aA){A.stopEditingNode();A.tabView.selectTab(W.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(h,aA.getProperties());aA.get(k).addClass(ak);A.editNode=aA;}},stopEditingNode:function(aB){var A=this;var aA=aB||A.editNode;if(aA){A.tabView.selectTab(W.DiagramBuilder.FIELDS_TAB);aA.get(k).removeClass(ak);A.editNode=null;}},_afterKeyEvent:function(aA){var A=this;if(!A.selectedNode||aA.hasModifier()||!aA.isKeyInSet(a,I)){return;}if(aA.isKey(a)){A._onEscKey(aA);}else{if(aA.isKey(I)){A._onDeleteKey(aA);}}aA.halt();},_onCancel:function(aA){var A=this;A.stopEditingNode();},_onDrag:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.get(m).each(function(aD){aD.alignConnectors();});}},_onDragEnd:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.set(q,aC.getLeftTop());}},_onDropHit:function(aB){var A=this;var aA=aB.drag;if(A.isAvailableFieldsDrag(aA)){var aD=aA.get(j).getData(F);var aC=A.addField({xy:ab(aA.lastXY,A.dropContainer),type:aD.get(e),fields:[{}]});A.select(aC);}},_onDeleteKey:function(aA){var A=this;A.selectedNode.close();},_onEscKey:function(aA){var A=this;A.unselectAll();A.stopEditingNode();},_onMouseenterAnchors:function(aA){var A=this;aA.currentTarget.addClass(Z);},_onMouseleaveAnchors:function(aA){var A=this;aA.currentTarget.removeClass(Z);},_onNodeClick:function(aA){var A=this;var aB=W.Widget.getByNode(aA.currentTarget);A.select(aB);},_onNodeEdit:function(aA){var A=this;if(!aA.target.ancestor(f+b,true)){return;}var aB=W.Widget.getByNode(aA.currentTarget);if(aB){A.startEditingNode(aB);}},_onSave:function(aB){var A=this;var aA=A.editNode;var aC=A.propertyList.get(h);if(aA){ay.each(aC.get(O),function(aD){var aE=aD.get(ag);aA.set(aE.attributeName,aE.value);});A.stopEditingNode(aA);}},_setTmpConnector:function(aA){var A=this;return W.merge({lazyDraw:true,viewport:A.viewport},aA);},_setFieldsDragConfig:function(aB){var A=this;var aA=A.dropContainer;return W.merge({bubbleTargets:A,container:aA,dragConfig:{plugins:[{cfg:{constrain:aA},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll}]},nodes:f+M},aB||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new W.DD.Delegate(A.get(aa));}}});W.DiagramBuilder=r;W.DiagramBuilder.types={};var H=W.Component.create({NAME:s,EXTENDS:W.Overlay,AUGMENTS:[W.FieldSupport]});var az=W.Component.create({NAME:s,UI_ATTRS:[m,i,aq],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:w},builder:{setter:"_setBuilder",validator:J},description:{value:G,validator:ar},height:{value:90},name:{valueFn:function(){var A=this; -return A.get(e)+(++W.Env._uidx);},validator:ar},selected:{value:false,validator:ao},strings:{value:{deleteMessage:"Are you sure you want to delete?",description:"Description",name:"Name",type:"Type"}},type:{value:j,validator:ar},controlsToolbar:{setter:"_setControlsToolbar",validator:w,value:null},width:{value:90},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:H,buildNodeId:function(A){return s+z+an+z+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                          ',CONTROLS_TEMPLATE:'
                          ',initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(k).addClass(M+ax+A.get(e));A.set("bodyContent",A.get(i));},alignAnchors:function(){var aA=this;var aE=aA.get(m);var aC=aA.get(k).get(g),aD=Math.floor(360/aE.size()),aB=aC.width/2,A=aC.height/2,aG=aC.left+aC.width/2,aF=aC.top+aC.height/2;aE.each(function(aK,aJ){var aI=aK.get(j);var aL=aI.get(g);var aH=aA._getEllipseXY(aB,A,aG,aF,aJ*aD);aI.setXY([aH[0]-aL.width/2,aH[1]-aL.height/2]);aK.alignConnectors();});return aA;},close:function(){var aA=this;var A=aA.getStrings();if(confirm(A[Y])){aA.get(m).each(function(aB){aB.destroy();});aA.destroy();}N();return aA;},createField:function(aB){var A=this;if(!S(aB)){var aA=A.get(au);aB.diagramNode=A;aB.viewport=(aA?aA.get(C):null);aB=new W.Anchor(aB);}return aB;},getLeftTop:function(){var A=this;return ab(A.get(k),A._getContainer());},getProperties:function(){var A=this;var aA=A.getPropertyModel();ay.each(aA,function(aB){aB.value=A.get(aB.attributeName);});return aA;},getPropertyModel:function(){var aA=this;var A=aA.getStrings();return[{attributeName:al,editor:new W.TextAreaCellEditor(),name:A[al]},{attributeName:i,editor:new W.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[i]},{attributeName:e,editor:false,name:A[e]}];},_afterRender:function(aA){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(au).dropContainer||A.get(k).get(d));},_getEllipseXY:function(aA,A,aD,aC,aE){var aB=aE*Math.PI/180;return[aD+aA*Math.cos(aB),aC-A*Math.sin(aB)];},_handleAddAnchorEvent:function(aA){var A=this;A.addField({});},_handleAddTaskEvent:function(aB){var A=this;var aA=A.get(au);var aE=new W.DiagramNode({type:j,xy:[100,100]});aA.addField(aE);var aC=A.addField({});var aD=aE.addField({});aC.connect(aD);},_handleCloseEvent:function(aA){var A=this;A.close();},_onAnchorDrag:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(ae,aB.target.get(am).getCenterXY());},_onAnchorDragEnd:function(aB){var A=this;var aA=A.get(au).tmpConnector.shape;aA.clear();aA.end();},_onAnchorDragStart:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(af,aB.target.get(j).getCenterXY());},_onAnchorDropHit:function(aA){var A=this;var aB=W.Anchor.getAnchorByNode(aA.drag.get(j));var aC=W.Anchor.getAnchorByNode(aA.drop.get(j));aB.connect(aC);N();},_renderControls:function(){var A=this;var aA=A.get(k);A.controlsNode=W.Node.create(A.CONTROLS_TEMPLATE).appendTo(aA);},_renderNodes:function(){var A=this;var aA=A.get(k);A.anchorWrapper=W.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(aA);},_renderControlsToolbar:function(aA){var A=this;A.controlsToolbar=new W.Toolbar(A.get(ah)).render(A.controlsNode);},_setBuilder:function(aA){var A=this;A.get(m).each(function(aB){aB.set(C,aA.get(C));});return aA;},_setAnchorsDragConfig:function(aB){var A=this;var aA=A.get(au);return W.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[X],plugins:[{cfg:{constrain:(aA?aA.get(C):null)},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:W.Plugin.DDProxy}]},nodes:f+aj,target:true},aB||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new W.DD.Delegate(A.get(R));},_setControlsToolbar:function(aA){var A=this;return W.merge({activeState:false,children:[{handler:W.bind(A._handleAddAnchorEvent,A),icon:V},{handler:W.bind(A._handleAddTaskEvent,A),icon:x},{handler:W.bind(A._handleCloseEvent,A),icon:P}]},aA);},_uiSetFields:function(aA){var A=this;if(A.get(av)){A.alignAnchors();setTimeout(function(){A.anchorsDrag.syncTargets();},50);}},_uiSetName:function(aB){var A=this;var aA=A.get(k);aA.setAttribute(i,W.DiagramNode.buildNodeId(aB));},_uiSetSelected:function(aA){var A=this;A.get(k).toggleClass(aw,aA);if(aA&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(aB){var A=this;var aA=A._getContainer().getXY();this._posNode.setXY([aB[0]+aA[0],aB[1]+aA[1]]);}}});W.DiagramNode=az;W.DiagramBuilder.types[j]=W.DiagramNode;W.DiagramNodeTask=W.Component.create({NAME:s,ATTRS:{type:{value:t}},EXTENDS:W.DiagramNode});W.DiagramBuilder.types[t]=W.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-impl",function(aj){var Y=aj.Lang,c=Y.isArray,E=Y.isObject,aJ=Y.isString,aE=Y.isBoolean,aR=aj.Array,U=function(A){return(A instanceof aj.DiagramBuilderBase);},aF=function(A){return(A instanceof aj.DiagramNode);},af=function(A){return(A instanceof aj.Anchor);},ap=function(A,aU){var aT=c(aU)?aU:aU.getXY();var aV=c(A)?A:A.getXY();return aR.map(aV,function(aX,aW){return Math.max(0,aX-aT[aW]);});},an="addAnchor",aM="addAnchorMessage",j="addNode",ar="anchor",ak="anchors",ae="anchorsDragConfig",Q="availableField",V="boolean",o="boundingBox",aN="builder",ac="cancel",ay="click",aK="closeEvent",B="closeMessage",ah="content",J="controls",aw="controlsToolbar",av="data",ad="dblclick",T="delete",al="deleteMessage",aB="description",C="diagram",ag="diagram-builder",aq="diagramNode",x="diagram-node",aC="dragNode",M="editing",y="editEvent",H="editMessage",a="esc",aD="field",q="fields",ao="fieldsDragConfig",p="hover",ax="id",N="keydown",ai="link",aa="max",t="maxSources",r="mouseenter",W="mouseleave",m="name",n="node",au="p1",at="p2",d="parentNode",l="pencil",ab="records",k="recordset",h="region",aO="rendered",F="required",aG="selected",G="shuffle",O="source",aH="sources",aI="string",i="target",I="targets",K="tmpConnector",e="type",L="viewport",aL="wrapper",v="xy",aQ="-",g=".",P="",f="#",D="_",u=aj.getClassName,R=u(C,aN,ar,n,aa,I),am=u(C,aN,ar,p),aA=u(C,aN,ar,n),z=u(C,aN,ar,n,aL),s=u(C,aN,J),X=u(C,n),b=u(C,n,ah),az=u(C,n,M),aP=u(C,n,aG);var Z=function(){var aT="        ",A="
                          ";aj.all(".aui-diagram-node").each(function(aZ){var aU=P,aW=aj.Widget.getByNode(aZ),aV=aW.get("name"),aY=aW.get("boundingBox"),aX=aY.one(".log")||aj.Node.create("
                          ").appendTo(aY);aU+=aV+A;aW.get(q).each(function(a0){aU+=aT+"a: "+a0.get("id")+A;a0.get("targets").each(function(a1){var a2=a1.get(aq);a1.get("node").setContent(a1.get("id"));aU+=aT+aT+"t: "+a2.get("name")+" (s: "+a1.get("id")+")"+A;});a0.get("sources").each(function(a2){var a1=a2.get(aq);a2.get("node").setContent(a2.get("id"));aU+=aT+aT+"s: "+a1.get("name")+" (t: "+a2.get("id")+")"+A;});});aX.setContent(aU);});};var w=aj.Component.create({NAME:ag,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:E},tmpConnector:{setter:"_setTmpConnector",value:{},validator:E}},EXTENDS:aj.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=aj.getDoc().on(N,aj.bind(A._afterKeyEvent,A));A.dropContainer.delegate(ay,aj.bind(A._onNodeClick,A),g+X);A.dropContainer.delegate(ad,aj.bind(A._onNodeEdit,A),g+X);A.dropContainer.delegate(r,aj.bind(A._onMouseenterAnchors,A),g+aA);A.dropContainer.delegate(W,aj.bind(A._onMouseleaveAnchors,A),g+aA);},syncUI:function(){var A=this;aj.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new aj.Connector(A.get(K));},connect:function(aU,aW){var aT=this;if(aJ(aU)){aU=aj.Widget.getByNode(f+aj.DiagramNode.buildNodeId(aU));}if(aJ(aW)){aW=aj.Widget.getByNode(f+aj.DiagramNode.buildNodeId(aW));}if(aU&&aW){var aV=aU.findAvailableAnchor();var A=aW.findAvailableAnchor();if(aV&&A){aV.connect(A);}}return aT;},connectAll:function(aT){var A=this;aR.each(aT,function(aU){if(aU.hasOwnProperty(O)&&aU.hasOwnProperty(i)){A.connect(aU.source,aU.target);}});return A;},createField:function(aT){var A=this;if(!aF(aT)){aT.builder=A;aT.viewport=A.get(L);aT=new (A.getFieldClass(aT.type||n))(aT);}aT.set(aN,A);return aT;},getFieldClass:function(aU){var A=this;var aT=aj.DiagramBuilder.types[aU];if(aT){return aT;}else{aj.log("The field type: ["+aU+"] couldn't be found.");return null;}},isFieldsDrag:function(aU){var A=this;var aT=A.fieldsDrag;return(aU===aT.dd);},plotField:function(aT){var A=this;if(!aT.get(aO)){aT.render(A.dropContainer);}},unselectAll:function(){var A=this;var aT=A.selectedNode;if(aT){aT.set(aG,false);}A.selectedNode=null;},select:function(aT){var A=this;A.unselectAll();A.selectedNode=aT.set(aG,true).focus();},startEditingNode:function(aT){var A=this;if(aT){A.stopEditingNode();A.tabView.selectTab(aj.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,aT.getProperties());aT.get(o).addClass(az);A.editNode=aT;}},stopEditingNode:function(aU){var A=this;var aT=aU||A.editNode;if(aT){A.tabView.selectTab(aj.DiagramBuilder.FIELDS_TAB);aT.get(o).removeClass(az);A.editNode=null;}},_afterKeyEvent:function(aT){var A=this;if(!A.selectedNode||aT.hasModifier()||!aT.isKeyInSet(a,T)){return;}if(aT.isKey(a)){A._onEscKey(aT);}else{if(aT.isKey(T)){A._onDeleteKey(aT);}}aT.halt();},_onCancel:function(aT){var A=this;A.stopEditingNode();},_onDrag:function(aU){var A=this;var aT=aU.target;if(A.isFieldsDrag(aT)){var aV=aj.Widget.getByNode(aT.get(aC));aV.get(q).each(function(aW){aW.alignConnectors();});}},_onDragEnd:function(aU){var A=this;var aT=aU.target;if(A.isFieldsDrag(aT)){var aV=aj.Widget.getByNode(aT.get(aC));aV.set(v,aV.getLeftTop());}},_onDropHit:function(aU){var A=this;var aT=aU.drag;if(A.isAvailableFieldsDrag(aT)){var aW=aT.get(n).getData(Q);var aV=A.addField({xy:ap(aT.lastXY,A.dropContainer),type:aW.get(e),fields:[{}]});A.select(aV);}},_onDeleteKey:function(aT){var A=this;var aU=A.selectedNode;if(!aU.get(F)){aU.close();}},_onEscKey:function(aT){var A=this;A.unselectAll();A.stopEditingNode();},_onMouseenterAnchors:function(aT){var A=this;aT.currentTarget.addClass(am);},_onMouseleaveAnchors:function(aT){var A=this;aT.currentTarget.removeClass(am);},_onNodeClick:function(aT){var A=this;var aU=aj.Widget.getByNode(aT.currentTarget);A.select(aU);},_onNodeEdit:function(aT){var A=this;if(!aT.target.ancestor(g+b,true)){return;}var aU=aj.Widget.getByNode(aT.currentTarget);if(aU){A.startEditingNode(aU);}},_onSave:function(aU){var A=this;var aT=A.editNode;var aV=A.propertyList.get(k);if(aT){aR.each(aV.get(ab),function(aW){var aX=aW.get(av);aT.set(aX.attributeName,aX.value);});A.stopEditingNode(aT); +}},_setTmpConnector:function(aT){var A=this;return aj.merge({lazyDraw:true,viewport:A.viewport},aT);},_setFieldsDragConfig:function(aU){var A=this;var aT=A.dropContainer;return aj.merge({bubbleTargets:A,container:aT,dragConfig:{plugins:[{cfg:{constrain:aT},fn:aj.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:aj.Plugin.DDWinScroll}]},nodes:g+X},aU||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new aj.DD.Delegate(A.get(ao));}}});aj.DiagramBuilder=w;aj.DiagramBuilder.types={};var S=aj.Component.create({NAME:x,EXTENDS:aj.Overlay,AUGMENTS:[aj.FieldSupport]});var aS=aj.Component.create({NAME:x,UI_ATTRS:[q,m,F,aG],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:E},builder:{setter:"_setBuilder",validator:U},required:{value:false,validator:aE},description:{value:P,validator:aJ},height:{value:90},name:{valueFn:function(){var A=this;return A.get(e)+(++aj.Env._uidx);},validator:aJ},selected:{value:false,validator:aE},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteMessage:"Are you sure you want to delete?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:n,validator:aJ},controlsToolbar:{validator:E,valueFn:"_valueControlsToolbar"},width:{value:90},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:S,buildNodeId:function(A){return aq+D+aD+D+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                          ',CONTROLS_TEMPLATE:'
                          ',initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(o).addClass(X+aQ+A.get(e));A.set("bodyContent",A.get(m));},alignAnchors:function(){var aT=this;var aX=aT.get(q);var aV=aT.get(o).get(h),aW=Math.floor(360/aX.size()),aU=aV.width/2,A=aV.height/2,aZ=aV.left+aV.width/2,aY=aV.top+aV.height/2;aX.each(function(a3,a2){var a1=a3.get(n);var a4=a1.get(h);var a0=aT._getEllipseXY(aU,A,aZ,aY,a2*aW);a1.setXY([a0[0]-a4.width/2,a0[1]-a4.height/2]);a3.alignConnectors();});return aT;},close:function(){var aT=this;var A=aT.getStrings();if(confirm(A[al])){aT.get(q).each(function(aU){aU.destroy();});aT.destroy();}Z();return aT;},createField:function(aU){var A=this;if(!af(aU)){var aT=A.get(aN);aU.diagramNode=A;aU.viewport=(aT?aT.get(L):null);aU=new aj.Anchor(aU);}return aU;},findAvailableAnchor:function(){var A=this;var aT=null;A.get(q).some(function(aU){if(!aU.hasConnection()){aT=aU;return true;}});if(!aT){aT=A.addField({});}return aT;},getConnectionNode:function(){var A=this;return new aj.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return ap(A.get(o),A._getContainer());},getProperties:function(){var A=this;var aT=A.getPropertyModel();aR.each(aT,function(aW){var aV=A.get(aW.attributeName),aU=Y.type(aV);if(aU===V||aU===aI){aV=String(aV);}aW.value=aV;});return aT;},getPropertyModel:function(){var aT=this;var A=aT.getStrings();return[{attributeName:aB,editor:new aj.TextAreaCellEditor(),name:A[aB]},{attributeName:m,editor:new aj.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(aT){var A=this;A.get(q).each(function(aV){var aU=aj.DD.DDM.getDrop(aV.get(n));if(aU){if(aV.get(aH).size()===aV.get(t)){aU.removeFromGroup(ak);}else{aU.addToGroup(ak);}}});},_afterRender:function(aT){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(aN).dropContainer||A.get(o).get(d));},_getEllipseXY:function(aT,A,aW,aV,aX){var aU=aX*Math.PI/180;return[aW+aT*Math.cos(aU),aV-A*Math.sin(aU)];},_handleAddAnchorEvent:function(aT){var A=this;A.addField({});},_handleAddNodeEvent:function(aU){var A=this;var aT=A.get(aN);var aV=A.findAvailableAnchor();if(aV){var aW=A.getConnectionNode();aT.addField(aW);aV.connect(aW.addField({}));}},_handleEditEvent:function(aT){var A=this;A.get(aN).startEditingNode(A);},_handleCloseEvent:function(aT){var A=this;if(!A.get(F)){A.close();}},_onAnchorDrag:function(aU){var A=this;var aT=A.get(aN);aT.tmpConnector.set(at,aU.target.get(aC).getCenterXY());},_onAnchorDragEnd:function(aU){var A=this;var aT=A.get(aN).tmpConnector.shape;aT.clear();aT.end();},_onAnchorDragStart:function(aU){var A=this;var aT=A.get(aN);aT.tmpConnector.set(au,aU.target.get(n).getCenterXY());},_onAnchorDropHit:function(aT){var A=this;var aU=aj.Anchor.getAnchorByNode(aT.drag.get(n));var aV=aj.Anchor.getAnchorByNode(aT.drop.get(n));aU.connect(aV);Z();},_renderControls:function(){var A=this;var aT=A.get(o);A.controlsNode=aj.Node.create(A.CONTROLS_TEMPLATE).appendTo(aT);},_renderNodes:function(){var A=this;var aT=A.get(o);A.anchorWrapper=aj.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(aT);},_renderControlsToolbar:function(aT){var A=this;A.controlsToolbar=new aj.Toolbar(A.get(aw)).render(A.controlsNode);A._uiSetRequired(A.get(F));},_setBuilder:function(aT){var A=this;A.get(q).each(function(aU){aU.set(L,aT.get(L));});return aT;},_setAnchorsDragConfig:function(aU){var A=this;var aT=A.get(aN);return aj.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[ak],plugins:[{cfg:{constrain:(aT?aT.get(L):null)},fn:aj.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:aj.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:aj.Plugin.DDProxy}]},nodes:g+aA,target:true},aU||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new aj.DD.Delegate(A.get(ae));A.anchorsDrag.dd.addInvalid(g+R);},_uiSetFields:function(aT){var A=this;if(A.get(aO)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(aU){var A=this;var aT=A.get(o);aT.set(ax,aj.DiagramNode.buildNodeId(aU));},_uiSetRequired:function(aV){var aU=this;var aT=aU.getStrings();var A=aU.controlsToolbar;if(A){if(aV){A.remove(aK);}else{A.add({handler:aj.bind(aU._handleCloseEvent,aU),icon:ac,id:aK,title:aT[B]});}}},_uiSetSelected:function(aT){var A=this; +A.get(o).toggleClass(aP,aT);if(aT&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(aU){var A=this;var aT=A._getContainer().getXY();this._posNode.setXY([aU[0]+aT[0],aU[1]+aT[1]]);},_valueControlsToolbar:function(aU){var aT=this;var A=aT.getStrings();return{activeState:false,children:[{handler:aj.bind(aT._handleEditEvent,aT),icon:l,id:y,title:A[H]},{handler:aj.bind(aT._handleAddAnchorEvent,aT),icon:ai,id:an,title:A[aM]},{handler:aj.bind(aT._handleAddNodeEvent,aT),icon:G,id:j},{handler:aj.bind(aT._handleCloseEvent,aT),icon:ac,id:aK,title:A[B]}]};}}});aj.DiagramNode=aS;aj.DiagramBuilder.types[n]=aj.DiagramNode;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl.js b/build/aui-diagram-builder/aui-diagram-builder-impl.js index 47d1c299466..73cdda06816 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl.js @@ -28,14 +28,20 @@ var Lang = A.Lang, }); }, + ADD_ANCHOR = 'addAnchor', + ADD_ANCHOR_MESSAGE = 'addAnchorMessage', + ADD_NODE = 'addNode', ANCHOR = 'anchor', ANCHORS = 'anchors', ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', + BOOLEAN = 'boolean', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', CLICK = 'click', + CLOSE_EVENT = 'closeEvent', + CLOSE_MESSAGE = 'closeMessage', CONTENT = 'content', CONTROLS = 'controls', CONTROLS_TOOLBAR = 'controlsToolbar', @@ -50,13 +56,18 @@ var Lang = A.Lang, DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + EDIT_EVENT = 'editEvent', + EDIT_MESSAGE = 'editMessage', ESC = 'esc', FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', HOVER = 'hover', + ID = 'id', KEYDOWN = 'keydown', LINK = 'link', + MAX = 'max', + MAX_SOURCES = 'maxSources', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', @@ -64,26 +75,35 @@ var Lang = A.Lang, P1 = 'p1', P2 = 'p2', PARENT_NODE = 'parentNode', + PENCIL = 'pencil', RECORDS = 'records', RECORDSET = 'recordset', REGION = 'region', RENDERED = 'rendered', + REQUIRED = 'required', SELECTED = 'selected', SHUFFLE = 'shuffle', - TASK = 'task', + SOURCE = 'source', + SOURCES = 'sources', + STRING = 'string', + TARGET = 'target', + TARGETS = 'targets', TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', VIEWPORT = 'viewport', WRAPPER = 'wrapper', XY = 'xy', + _DASH = '-', _DOT = '.', - _DOLLAR = '$', _EMPTY_STR = '', - _DASH = '-', + _HASH = '#', + _UNDERLINE = '_', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + // CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), @@ -185,6 +205,41 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + connect: function(diagramNode1, diagramNode2) { + var instance = this; + + if (isString(diagramNode1)) { + diagramNode1 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode1)); + } + + if (isString(diagramNode2)) { + diagramNode2 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode2)); + } + + if (diagramNode1 && diagramNode2) { + var a1 = diagramNode1.findAvailableAnchor(); + var a2 = diagramNode2.findAvailableAnchor(); + + if (a1 && a2) { + a1.connect(a2); + } + } + + return instance; + }, + + connectAll: function(nodes) { + var instance = this; + + AArray.each(nodes, function(node) { + if (node.hasOwnProperty(SOURCE) && node.hasOwnProperty(TARGET)) { + instance.connect(node.source, node.target); + } + }); + + return instance; + }, + createField: function(val) { var instance = this; @@ -244,7 +299,7 @@ var DiagramBuilder = A.Component.create({ var instance = this; instance.unselectAll(); - instance.stopEditingNode(); + // instance.stopEditingNode(); instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, @@ -343,8 +398,11 @@ var DiagramBuilder = A.Component.create({ _onDeleteKey: function(event) { var instance = this; + var selectedNode = instance.selectedNode; - instance.selectedNode.close(); + if (!selectedNode.get(REQUIRED)) { + selectedNode.close(); + } }, _onEscKey: function(event) { @@ -475,7 +533,7 @@ var DiagramNodeOverlay = A.Component.create({ var DiagramNode = A.Component.create({ NAME: DIAGRAM_NODE_NAME, - UI_ATTRS: [FIELDS, NAME, SELECTED], + UI_ATTRS: [FIELDS, NAME, REQUIRED, SELECTED], ATTRS: { anchorsDragConfig: { @@ -489,6 +547,11 @@ var DiagramNode = A.Component.create({ validator: isDiagramBuilder }, + required: { + value: false, + validator: isBoolean + }, + description: { value: _EMPTY_STR, validator: isString @@ -514,8 +577,11 @@ var DiagramNode = A.Component.create({ strings: { value: { + addAnchorMessage: 'Add Anchor', + closeMessage: 'Close', deleteMessage: 'Are you sure you want to delete?', description: 'Description', + editMessage: 'Edit', name: 'Name', type: 'Type' } @@ -527,9 +593,8 @@ var DiagramNode = A.Component.create({ }, controlsToolbar: { - setter: '_setControlsToolbar', validator: isObject, - value: null + valueFn: '_valueControlsToolbar' }, width: { @@ -548,7 +613,7 @@ var DiagramNode = A.Component.create({ EXTENDS: DiagramNodeOverlay, buildNodeId: function(id) { - return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + return DIAGRAM_NODE + _UNDERLINE + FIELD + _UNDERLINE + id; }, prototype: { @@ -634,6 +699,33 @@ var DiagramNode = A.Component.create({ return val; }, + findAvailableAnchor: function() { + var instance = this; + var available = null; + + instance.get(FIELDS).some(function(anchor) { + if (!anchor.hasConnection()) { + available = anchor; + + return true; + } + }); + + if (!available) { + available = instance.addField({}); + } + + return available; + }, + + getConnectionNode: function() { + var instance = this; + + return new A.DiagramNode({ + xy: [100, 100] // TODO - find best position? + }); + }, + getLeftTop: function() { var instance = this; @@ -645,7 +737,13 @@ var DiagramNode = A.Component.create({ var propertyModel = instance.getPropertyModel(); AArray.each(propertyModel, function(property) { - property.value = instance.get(property.attributeName); + var value = instance.get(property.attributeName), type = Lang.type(value); + + if (type === BOOLEAN || type === STRING) { + value = String(value); + } + + property.value = value; }); return propertyModel; @@ -682,6 +780,29 @@ var DiagramNode = A.Component.create({ ]; }, + syncDragTargets: function() { + var instance = this; + + instance.anchorsDrag.syncTargets(); + }, + + syncDropTargets: function(anchor) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + var drop = A.DD.DDM.getDrop(anchor.get(NODE)); + + if (drop) { + if (anchor.get(SOURCES).size() === anchor.get(MAX_SOURCES)) { + drop.removeFromGroup(ANCHORS); + } + else { + drop.addToGroup(ANCHORS); + } + } + }); + }, + _afterRender: function(event) { var instance = this; @@ -706,30 +827,33 @@ var DiagramNode = A.Component.create({ var instance = this; instance.addField({}); - - // event.halt(); }, - _handleAddTaskEvent: function(event) { + _handleAddNodeEvent: function(event) { var instance = this; var builder = instance.get(BUILDER); + var source = instance.findAvailableAnchor(); - var diagramNode = new A.DiagramNode({ - type: NODE, - xy: [100, 100] // TODO - find best position? - }); + if (source) { + var diagramNode = instance.getConnectionNode(); - builder.addField(diagramNode); + builder.addField(diagramNode); + source.connect(diagramNode.addField({})); + } + }, - var source = instance.addField({}); - var target = diagramNode.addField({}); - source.connect(target); + _handleEditEvent: function(event) { + var instance = this; + + instance.get(BUILDER).startEditingNode(instance); }, _handleCloseEvent: function(event) { var instance = this; - instance.close(); + if (!instance.get(REQUIRED)) { + instance.close(); + } }, _onAnchorDrag: function(event) { @@ -785,6 +909,10 @@ var DiagramNode = A.Component.create({ instance.get(CONTROLS_TOOLBAR) ) .render(instance.controlsNode); + + instance._uiSetRequired( + instance.get(REQUIRED) + ); }, _setBuilder: function(val) { @@ -841,31 +969,10 @@ var DiagramNode = A.Component.create({ instance.anchorsDrag = new A.DD.Delegate( instance.get(ANCHORS_DRAG_CONFIG) ); - }, - - _setControlsToolbar: function(val) { - var instance = this; - return A.merge( - { - activeState: false, - children: [ - { - handler: A.bind(instance._handleAddAnchorEvent, instance), - icon: LINK - }, - { - handler: A.bind(instance._handleAddTaskEvent, instance), - icon: SHUFFLE - }, - { - handler: A.bind(instance._handleCloseEvent, instance), - icon: CANCEL - } - ] - }, - val - ); + instance.anchorsDrag.dd + .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_TARGETS); + // .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_SOURCES); }, _uiSetFields: function(val) { @@ -874,9 +981,10 @@ var DiagramNode = A.Component.create({ if (instance.get(RENDERED)) { instance.alignAnchors(); - setTimeout(function() { - instance.anchorsDrag.syncTargets(); - }, 50); + // setTimeout(function() { + instance.syncDragTargets(); + instance.syncDropTargets(); + // }, 50); } }, @@ -884,7 +992,27 @@ var DiagramNode = A.Component.create({ var instance = this; var boundingBox = instance.get(BOUNDING_BOX); - boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + boundingBox.set(ID, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetRequired: function(val) { + var instance = this; + var strings = instance.getStrings(); + var controlsToolbar = instance.controlsToolbar; + + if (controlsToolbar) { + if (val) { + controlsToolbar.remove(CLOSE_EVENT); + } + else { + controlsToolbar.add({ + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + }); + } + } }, _uiSetSelected: function(val) { @@ -906,7 +1034,41 @@ var DiagramNode = A.Component.create({ var containerXY = instance._getContainer().getXY(); this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); - } + }, + + _valueControlsToolbar: function(val) { + var instance = this; + var strings = instance.getStrings(); + + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + }, + { + handler: A.bind(instance._handleAddNodeEvent, instance), + icon: SHUFFLE, + id: ADD_NODE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + } + ] + }; + } } }); @@ -914,20 +1076,6 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeTask = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - - ATTRS: { - type: { - value: TASK - } - }, - - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; - // TODO deletar anchors OK // TODO deletar connections (delete) OK // TODO Adicionar overlay de controles OK diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index b99565609b2..4bbe548178a 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,5 +1,5 @@ -AUI.add("aui-diagram-builder-base",function(ad){var T=ad.Lang,d=T.isArray,ap=T.isBoolean,M=T.isNumber,B=T.isObject,at=T.isString,I=function(A){return(A instanceof ad.ArrayList);},R=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,V="add",k="addNode",aC="auto",N="availableField",Q="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Z="cancel",aq="clearfix",a="container",ab="content",u="contentBox",J="viewport",P="contentNode",E="createDocumentFragment",z="diagram",F="diagram-builder-base",aa="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",W="icon",v="iconClass",aj="id",af="label",ai="list",r="node",y="nodeSettings",ac="propertyList",ax="rendered",al="save",q="settings",O="tab",b="tabs",e="tabview",G="tabView",L="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",H="$",h="#",aE=w(z,aw,am,ay,a),x=w(z,aw,am,J),C=w(z,aw,am,ao),f=w(z,aw,am,t,a),ag=w(z,aw,am,ao,o),c=w(z,aw,am,ao,W),U=w(z,aw,am,ao,af),m=w(z,aw,am,b,a),Y=w(z,aw,am,b,a,ab),ah=w(z,aw,am,O,V),K=w(z,aw,am,O,q),au=w(z,aw,am,L,a),ae=w(p,aq),l=w(W),av=w(e,ab),aA=w(e,ai);var i=ad.Component.create({NAME:N,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!R(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(N,A);}return aF;},validator:R,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return Q+H+ao+H+A;},getAvailableFieldByNode:function(A){return ad.one(A).getData(N);},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},prototype:{FIELD_ITEM_TEMPLATE:'
                        • '+''+''+"
                        • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+U);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);}}});ad.AvailableField=i;var S=function(){};S.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||I(A);}}};ad.mix(S.prototype,{createFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aH){A.push(aF.createField(aH));});return new ad.ArrayList(A);},addField:function(aF){var A=this;var aG=A.createField(aF);A._updateFields(A.get(t).add(aG));return aG;},removeField:function(aF){var A=this;A._updateFields(A.get(t).remove(aF));},_updateFields:function(aF){var A=this;A.set(t,aF);},_setFields:function(aF){var A=this;if(I(aF)){return aF;}else{return A.createFields(aF);}},createField:function(A){return A;}});ad.FieldSupport=S;var ar=ad.Component.create({NAME:F,ATTRS:{availableFields:{setter:"_setAvailableFields",validator:d},viewport:{valueFn:function(){return ad.Node.create(this.VIEWPORT_TEMPLATE);}},dropContainer:{valueFn:function(){return ad.Node.create(this.DROP_CONTAINER_TEMPLATE);}},dropConfig:{value:null,setter:"_setDropConfig",validator:B},availableFieldsDragConfig:{value:null,setter:"_setAvailableFieldsDragConfig",validator:B},fieldsContainer:{valueFn:function(){return ad.Node.create(this.FIELDS_CONTAINER_TEMPLATE);}},propertyList:{setter:"_setPropertyList",validator:B,value:null},strings:{value:{addNode:"Add node",cancel:"Cancel",nodeSettings:"Node settings",propertyName:"Property Name",save:"Save",value:"Value"}},tabView:{setter:"_setTabView",validator:B,value:null,writeOnce:true},toolbar:{setter:"_setToolbar",validator:B,value:null},toolbarContainer:{valueFn:function(){return ad.Node.create(this.TOOLBAR_CONTAINER_TEMPLATE);}}},HTML_PARSER:{dropContainer:g+aE,fieldsContainer:g+f,toolbarContainer:g+au,viewport:g+x},UI_ATTRS:[Q,t],AUGMENTS:[ad.FieldSupport],prototype:{DROP_CONTAINER_TEMPLATE:'
                          ',TOOLBAR_CONTAINER_TEMPLATE:'
                          ',FIELDS_CONTAINER_TEMPLATE:'
                            ',VIEWPORT_TEMPLATE:'
                            ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.viewport=A.get(J);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderViewport();A._uiSetAvailableFields(A.get(Q));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(P);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,M(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Z);},_handleSaveEvent:function(){var A=this;A.fire(al);},_renderViewport:function(){var aF=this;var aG=aF.get(u);var A=aF.viewport;A.appendChild(aF.dropContainer);aG.appendChild(A);},_renderPropertyList:function(){var A=this; -if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(P);A.settingsNode=aF.getTab(1).get(P);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(L)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[Q],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[Q],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+Y),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ah,label:A[k]},{cssClass:K,label:A[y]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:aa},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Z]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(W){var L=W.Lang,c=L.isArray,w=L.isObject,ar=L.isString,ao=L.isBoolean,ay=W.Array,J=function(A){return(A instanceof W.DiagramBuilderBase);},ap=function(A){return(A instanceof W.DiagramNode);},S=function(A){return(A instanceof W.Anchor);},ab=function(A,aB){var aA=c(aB)?aB:aB.getXY();var aC=c(A)?A:A.getXY();return ay.map(aC,function(aE,aD){return Math.max(0,aE-aA[aD]);});},ad="anchor",X="anchors",R="anchorsDragConfig",F="availableField",k="boundingBox",au="builder",P="cancel",ai="click",U="content",y="controls",ah="controlsToolbar",ag="data",Q="dblclick",I="delete",Y="deleteMessage",al="description",v="diagram",T="diagram-builder",ac="diagramNode",s="diagram-node",am="dragNode",D="editing",a="esc",an="field",m="fields",aa="fieldsDragConfig",l="hover",E="keydown",V="link",n="mouseenter",K="mouseleave",i="name",j="node",af="p1",ae="p2",d="parentNode",O="records",h="recordset",g="region",av="rendered",aq="selected",x="shuffle",t="task",B="tmpConnector",e="type",C="viewport",at="wrapper",q="xy",f=".",z="$",G="",ax="-",p=W.getClassName,Z=p(v,au,ad,l),aj=p(v,au,ad,j),u=p(v,au,ad,j,at),o=p(v,au,y),M=p(v,j),b=p(v,j,U),ak=p(v,j,D),aw=p(v,j,aq);var N=function(){var aA="        ",A="
                            ";W.all(".aui-diagram-node").each(function(aG){var aB=G,aD=W.Widget.getByNode(aG),aC=aD.get("name"),aF=aD.get("boundingBox"),aE=aF.one(".log")||W.Node.create("
                            ").appendTo(aF);aB+=aC+A;aD.get(m).each(function(aH){aB+=aA+"a: "+aH.get("id")+A;aH.get("targets").each(function(aI){var aJ=aI.get(ac);aI.get("node").setContent(aI.get("id"));aB+=aA+aA+"t: "+aJ.get("name")+" (s: "+aI.get("id")+")"+A;});aH.get("sources").each(function(aJ){var aI=aJ.get(ac);aJ.get("node").setContent(aJ.get("id"));aB+=aA+aA+"s: "+aI.get("name")+" (t: "+aJ.get("id")+")"+A;});});aE.setContent(aB);});};var r=W.Component.create({NAME:T,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:w},tmpConnector:{setter:"_setTmpConnector",value:{},validator:w}},EXTENDS:W.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=W.getDoc().on(E,W.bind(A._afterKeyEvent,A));A.dropContainer.delegate(ai,W.bind(A._onNodeClick,A),f+M);A.dropContainer.delegate(Q,W.bind(A._onNodeEdit,A),f+M);A.dropContainer.delegate(n,W.bind(A._onMouseenterAnchors,A),f+aj);A.dropContainer.delegate(K,W.bind(A._onMouseleaveAnchors,A),f+aj);},syncUI:function(){var A=this;W.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new W.Connector(A.get(B));},createField:function(aA){var A=this;if(!ap(aA)){aA.builder=A;aA.viewport=A.get(C);aA=new (A.getFieldClass(aA.type||j))(aA);}aA.set(au,A);return aA;},getFieldClass:function(aB){var A=this;var aA=W.DiagramBuilder.types[aB];if(aA){return aA;}else{W.log("The field type: ["+aB+"] couldn't be found.");return null;}},isFieldsDrag:function(aB){var A=this;var aA=A.fieldsDrag;return(aB===aA.dd);},plotField:function(aA){var A=this;if(!aA.get(av)){aA.render(A.dropContainer);}},unselectAll:function(){var A=this;var aA=A.selectedNode;if(aA){aA.set(aq,false);}A.selectedNode=null;},select:function(aA){var A=this;A.unselectAll();A.stopEditingNode();A.selectedNode=aA.set(aq,true).focus();},startEditingNode:function(aA){var A=this;if(aA){A.stopEditingNode();A.tabView.selectTab(W.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(h,aA.getProperties());aA.get(k).addClass(ak);A.editNode=aA;}},stopEditingNode:function(aB){var A=this;var aA=aB||A.editNode;if(aA){A.tabView.selectTab(W.DiagramBuilder.FIELDS_TAB); -aA.get(k).removeClass(ak);A.editNode=null;}},_afterKeyEvent:function(aA){var A=this;if(!A.selectedNode||aA.hasModifier()||!aA.isKeyInSet(a,I)){return;}if(aA.isKey(a)){A._onEscKey(aA);}else{if(aA.isKey(I)){A._onDeleteKey(aA);}}aA.halt();},_onCancel:function(aA){var A=this;A.stopEditingNode();},_onDrag:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.get(m).each(function(aD){aD.alignConnectors();});}},_onDragEnd:function(aB){var A=this;var aA=aB.target;if(A.isFieldsDrag(aA)){var aC=W.Widget.getByNode(aA.get(am));aC.set(q,aC.getLeftTop());}},_onDropHit:function(aB){var A=this;var aA=aB.drag;if(A.isAvailableFieldsDrag(aA)){var aD=aA.get(j).getData(F);var aC=A.addField({xy:ab(aA.lastXY,A.dropContainer),type:aD.get(e),fields:[{}]});A.select(aC);}},_onDeleteKey:function(aA){var A=this;A.selectedNode.close();},_onEscKey:function(aA){var A=this;A.unselectAll();A.stopEditingNode();},_onMouseenterAnchors:function(aA){var A=this;aA.currentTarget.addClass(Z);},_onMouseleaveAnchors:function(aA){var A=this;aA.currentTarget.removeClass(Z);},_onNodeClick:function(aA){var A=this;var aB=W.Widget.getByNode(aA.currentTarget);A.select(aB);},_onNodeEdit:function(aA){var A=this;if(!aA.target.ancestor(f+b,true)){return;}var aB=W.Widget.getByNode(aA.currentTarget);if(aB){A.startEditingNode(aB);}},_onSave:function(aB){var A=this;var aA=A.editNode;var aC=A.propertyList.get(h);if(aA){ay.each(aC.get(O),function(aD){var aE=aD.get(ag);aA.set(aE.attributeName,aE.value);});A.stopEditingNode(aA);}},_setTmpConnector:function(aA){var A=this;return W.merge({lazyDraw:true,viewport:A.viewport},aA);},_setFieldsDragConfig:function(aB){var A=this;var aA=A.dropContainer;return W.merge({bubbleTargets:A,container:aA,dragConfig:{plugins:[{cfg:{constrain:aA},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll}]},nodes:f+M},aB||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new W.DD.Delegate(A.get(aa));}}});W.DiagramBuilder=r;W.DiagramBuilder.types={};var H=W.Component.create({NAME:s,EXTENDS:W.Overlay,AUGMENTS:[W.FieldSupport]});var az=W.Component.create({NAME:s,UI_ATTRS:[m,i,aq],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:w},builder:{setter:"_setBuilder",validator:J},description:{value:G,validator:ar},height:{value:90},name:{valueFn:function(){var A=this;return A.get(e)+(++W.Env._uidx);},validator:ar},selected:{value:false,validator:ao},strings:{value:{deleteMessage:"Are you sure you want to delete?",description:"Description",name:"Name",type:"Type"}},type:{value:j,validator:ar},controlsToolbar:{setter:"_setControlsToolbar",validator:w,value:null},width:{value:90},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:H,buildNodeId:function(A){return s+z+an+z+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                            ',CONTROLS_TEMPLATE:'
                            ',initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(k).addClass(M+ax+A.get(e));A.set("bodyContent",A.get(i));},alignAnchors:function(){var aA=this;var aE=aA.get(m);var aC=aA.get(k).get(g),aD=Math.floor(360/aE.size()),aB=aC.width/2,A=aC.height/2,aG=aC.left+aC.width/2,aF=aC.top+aC.height/2;aE.each(function(aK,aJ){var aI=aK.get(j);var aL=aI.get(g);var aH=aA._getEllipseXY(aB,A,aG,aF,aJ*aD);aI.setXY([aH[0]-aL.width/2,aH[1]-aL.height/2]);aK.alignConnectors();});return aA;},close:function(){var aA=this;var A=aA.getStrings();if(confirm(A[Y])){aA.get(m).each(function(aB){aB.destroy();});aA.destroy();}N();return aA;},createField:function(aB){var A=this;if(!S(aB)){var aA=A.get(au);aB.diagramNode=A;aB.viewport=(aA?aA.get(C):null);aB=new W.Anchor(aB);}return aB;},getLeftTop:function(){var A=this;return ab(A.get(k),A._getContainer());},getProperties:function(){var A=this;var aA=A.getPropertyModel();ay.each(aA,function(aB){aB.value=A.get(aB.attributeName);});return aA;},getPropertyModel:function(){var aA=this;var A=aA.getStrings();return[{attributeName:al,editor:new W.TextAreaCellEditor(),name:A[al]},{attributeName:i,editor:new W.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[i]},{attributeName:e,editor:false,name:A[e]}];},_afterRender:function(aA){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(au).dropContainer||A.get(k).get(d));},_getEllipseXY:function(aA,A,aD,aC,aE){var aB=aE*Math.PI/180;return[aD+aA*Math.cos(aB),aC-A*Math.sin(aB)];},_handleAddAnchorEvent:function(aA){var A=this;A.addField({});},_handleAddTaskEvent:function(aB){var A=this;var aA=A.get(au);var aE=new W.DiagramNode({type:j,xy:[100,100]});aA.addField(aE);var aC=A.addField({});var aD=aE.addField({});aC.connect(aD);},_handleCloseEvent:function(aA){var A=this;A.close();},_onAnchorDrag:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(ae,aB.target.get(am).getCenterXY());},_onAnchorDragEnd:function(aB){var A=this;var aA=A.get(au).tmpConnector.shape;aA.clear();aA.end();},_onAnchorDragStart:function(aB){var A=this;var aA=A.get(au);aA.tmpConnector.set(af,aB.target.get(j).getCenterXY());},_onAnchorDropHit:function(aA){var A=this;var aB=W.Anchor.getAnchorByNode(aA.drag.get(j));var aC=W.Anchor.getAnchorByNode(aA.drop.get(j));aB.connect(aC);N();},_renderControls:function(){var A=this;var aA=A.get(k);A.controlsNode=W.Node.create(A.CONTROLS_TEMPLATE).appendTo(aA);},_renderNodes:function(){var A=this;var aA=A.get(k);A.anchorWrapper=W.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(aA);},_renderControlsToolbar:function(aA){var A=this;A.controlsToolbar=new W.Toolbar(A.get(ah)).render(A.controlsNode);},_setBuilder:function(aA){var A=this;A.get(m).each(function(aB){aB.set(C,aA.get(C));});return aA;},_setAnchorsDragConfig:function(aB){var A=this;var aA=A.get(au);return W.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[X],plugins:[{cfg:{constrain:(aA?aA.get(C):null)},fn:W.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:W.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:W.Plugin.DDProxy}]},nodes:f+aj,target:true},aB||{}); -},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new W.DD.Delegate(A.get(R));},_setControlsToolbar:function(aA){var A=this;return W.merge({activeState:false,children:[{handler:W.bind(A._handleAddAnchorEvent,A),icon:V},{handler:W.bind(A._handleAddTaskEvent,A),icon:x},{handler:W.bind(A._handleCloseEvent,A),icon:P}]},aA);},_uiSetFields:function(aA){var A=this;if(A.get(av)){A.alignAnchors();setTimeout(function(){A.anchorsDrag.syncTargets();},50);}},_uiSetName:function(aB){var A=this;var aA=A.get(k);aA.setAttribute(i,W.DiagramNode.buildNodeId(aB));},_uiSetSelected:function(aA){var A=this;A.get(k).toggleClass(aw,aA);if(aA&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(aB){var A=this;var aA=A._getContainer().getXY();this._posNode.setXY([aB[0]+aA[0],aB[1]+aA[1]]);}}});W.DiagramNode=az;W.DiagramBuilder.types[j]=W.DiagramNode;W.DiagramNodeTask=W.Component.create({NAME:s,ATTRS:{type:{value:t}},EXTENDS:W.DiagramNode});W.DiagramBuilder.types[t]=W.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(k){var M=k.Lang,r=M.isArray,v=M.isBoolean,L=M.isNumber,z=M.isObject,h=M.isString,D=k.Array,b=function(A){return(A instanceof k.Anchor);},E=function(A){return(A instanceof k.ArrayList);},y="anchor",F="arrowPoints",C="body",G="boundingBox",N="builder",w="color",n="connector",a="dataAnchor",x="diagram",s="diagramNode",u="height",p="id",I="lazyDraw",j="maxSources",i="maxTargets",J="node",m="p1",l="p2",e="path",q="shape",g="sources",f="targets",B="viewport",c="width",K="wrapper",o=".",t=k.getClassName,d=t(x,N,y,J,K),H=t(x,N,y,J);k.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(T,O,V,A,U,R){var W=this;T.moveTo(O,V);T.lineTo(A,U);var P=Math.atan2(U-V,A-O),S=(A+O)/2,Q=(U+V)/2;W.drawPolygon(T,W.translatePoints(W.rotatePoints(R||W.ARROW_POINTS,P),S,Q));},drawPolygon:function(O,P){var A=this;O.moveTo(P[0][0],P[0][1]);D.each(P,function(R,Q){if(Q>0){O.lineTo(P[Q][0],P[Q][1]);}});O.lineTo(P[0][0],P[0][1]);O.end();},translatePoints:function(P,O,R){var A=this;var Q=[];D.each(P,function(T,S){Q.push([P[S][0]+O,P[S][1]+R]);});return Q;},rotatePoints:function(O,Q){var A=this;var P=[];D.each(O,function(S,R){P.push(A.rotatePoint(Q,O[R][0],O[R][1]));});return P;},rotatePoint:function(O,A,P){return[(A*Math.cos(O))-(P*Math.sin(O)),(A*Math.sin(O))+(P*Math.cos(O))];}};k.Connector=k.Base.create("line",k.Base,[],{graphics:null,shape:null,initializer:function(O){var A=this;A.after({p1Change:A.draw,p2Change:A.draw});A._initGraphics();A._initShapes();if(!A.get(I)){A.draw();}},destroy:function(){var A=this;A.graphics.destroy();},draw:function(){var A=this;var O=A.shape;var Q=A.getCoordinate(A.get(m));var P=A.getCoordinate(A.get(l));O.clear();k.PolygonUtil.drawLineArrow(O,Q[0],Q[1],P[0],P[1],A.get(F));},getCoordinate:function(P){var A=this;var O=A.get(B).getXY();return[P[0]-O[0],P[1]-O[1]];},_initGraphics:function(){var A=this;var O=new k.Graphic({width:A.get(c),height:A.get(u),render:A.get(B)});A.graphics=O;},_initShapes:function(){var A=this;A.shape=A.graphics.getShape(A.get(q));},_setShape:function(O){var A=this;return k.merge({type:e,stroke:{color:A.get(w),weight:2},fill:{color:A.get(w)}},O);}},{ATTRS:{color:{value:"#666",validator:h},lazyDraw:{value:false,validator:v},viewport:{setter:k.one,value:C},shape:{value:null,setter:"_setShape"},arrowPoints:{value:k.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:r},p2:{value:[0,0],validator:r}}});k.Anchor=k.Base.create("anchor",k.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                            ',NODE_TEMPLATE:'
                            ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({targetsChange:A._afterTargetsChange});},addSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O).add(O));},addTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O).add(O));},alignConnectors:function(){var A=this;A.get(f).each(function(O){var P=A.getConnector(O);if(P){P.set(m,A.getCenterXY());P.set(l,O.getCenterXY());}});A.get(g).each(function(O){var P=O.getConnector(A);if(P){P.set(m,O.getCenterXY());P.set(l,A.getCenterXY());}});return A;},destroy:function(){var A=this;A.disconnectTargets();A.disconnectSources();A.get(J).remove();},connect:function(O){var A=this;A.addTarget(O);if(!A.isConnected(O)){var P=O.get(n);P.p1=A.getCenterXY();P.p2=O.getCenterXY();A.connectors[O.get(p)]=new k.Connector(P);}return A;},connectTargets:function(){var A=this;A.get(f).each(k.bind(A.connect,A));return A;},disconnect:function(O){var A=this;A.getConnector(O).destroy();A.removeTarget(O);O.removeSource(A);},disconnectTargets:function(){var A=this;A.get(f).each(function(O){A.disconnect(O);});return A;},disconnectSources:function(){var A=this;A.get(g).each(function(O){O.disconnect(A);});return A;},getCenterXY:function(){var A=this;return A.get(J).getCenterXY();},getConnector:function(O){var A=this;return A.connectors[O.get(p)];},isConnected:function(O){var A=this;return A.connectors.hasOwnProperty(O.get(p));},updateSources:function(O){var A=this;A.set(g,O);return A;},updateTargets:function(O){var A=this;A.set(f,O);return A;},removeSource:function(O){var A=this;return A.updateSources(A.get(g).remove(O));},removeTarget:function(O){var A=this;return A.updateTargets(A.get(f).remove(O));},_afterActiveChange:function(O){var A=this;A._uiSetActive(O.newVal);},_afterTargetsChange:function(O){var A=this;O.prevVal.each(function(P){P.removeSource(A);});O.newVal.each(function(P){P.addSource(A);});},_renderNode:function(){var A=this;var P=A.get(s);var O=P.get(G);A.wrapper=O.one(o+d)||k.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(O).appendChild(A.get(J));},_setConnector:function(O){var A=this;return k.merge({viewport:A.get(B)},O);},_setSources:function(O){var A=this;return A._setAnchors(O);},_setTargets:function(O){var A=this;O=A._setAnchors(O);O.each(function(P){P.addSource(A);});return O;},_setAnchors:function(P){var A=this; -if(!E(P)){var O=[];k.Array.each(P,function(Q){if(h(Q)){Q=k.Anchor.getAnchorByNode(Q);}O.push(b(Q)?Q:new k.Anchor(Q));});P=new k.ArrayList(O);}return P;},_setNode:function(O){var A=this;var P=A.get(p);return k.one(O).set(p,P).setData(a,A);}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:z},id:{readOnly:true,valueFn:function(){return k.guid();}},maxSources:{value:Infinity,validator:L},maxTargets:{value:Infinity,validator:L},node:{setter:"_setNode",valueFn:function(){var A=this;return k.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return r(A)||E(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return r(A)||E(A);}},viewport:{setter:k.one,value:C}},getAnchorByNode:function(A){return k.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(ae){var U=ae.Lang,d=U.isArray,aq=U.isBoolean,M=U.isNumber,B=U.isObject,au=U.isString,I=function(A){return(A instanceof ae.ArrayList);},S=function(A){return(A instanceof ae.Node);},D=function(A){return(A instanceof ae.AvailableField);},aE=ae.Array,P="maxFields",W="add",k="addNode",aD="auto",N="availableField",R="availableFields",aA="availableFieldsDragConfig",an="base",s="boundingBox",ax="builder",aa="cancel",ar="clearfix",a="container",ac="content",u="contentBox",J="viewport",Q="contentNode",E="createDocumentFragment",z="diagram",F="diagram-builder-base",ab="disk",o="draggable",az="drop",al="dropConfig",Z="dropContainer",ap="field",t="fields",n="fieldsContainer",ao="height",p="helper",X="icon",v="iconClass",ak="id",ag="label",aj="list",r="node",y="nodeSettings",ad="propertyList",ay="rendered",am="save",q="settings",O="tab",b="tabs",e="tabview",G="tabView",L="toolbar",j="toolbarContainer",w=ae.getClassName,aC=" ",g=".",H="$",h="#",aF=w(z,ax,an,az,a),x=w(z,ax,an,J),C=w(z,ax,an,ap),f=w(z,ax,an,t,a),ah=w(z,ax,an,ap,o),c=w(z,ax,an,ap,X),V=w(z,ax,an,ap,ag),m=w(z,ax,an,b,a),Y=w(z,ax,an,b,a,ac),ai=w(z,ax,an,O,W),K=w(z,ax,an,O,q),av=w(z,ax,an,L,a),af=w(p,ar),l=w(X),aw=w(e,ac),aB=w(e,aj);var i=ae.Component.create({NAME:N,ATTRS:{draggable:{value:true,validator:aq},label:{validator:au},iconClass:{validator:au},id:{value:ae.guid(),setter:"_setId",validator:au},node:{valueFn:function(aG){var A=this;if(!S(aG)){aG=ae.Node.create(ae.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aG.setData(N,A);}return aG;},validator:S,writeOnce:true},type:{value:r,validator:au}},EXTENDS:ae.Base,buildNodeId:function(A){return R+H+ap+H+A;},getAvailableFieldByNode:function(A){return ae.one(A).getData(N);},getAvailableFieldById:function(A){return ae.AvailableField.getAvailableFieldByNode(h+ae.AvailableField.buildNodeId(A));},prototype:{FIELD_ITEM_TEMPLATE:'
                          • '+''+''+"
                          • ",initializer:function(){var A=this;var aG=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aG.one(g+V);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(ak));A._uiSetLabel(A.get(ag));},_afterDraggableChange:function(aG){var A=this;A._uiSetDraggable(aG.newVal);},_afterIdChange:function(aG){var A=this;A._uiSetId(aG.newVal);},_afterLabelChange:function(aG){var A=this;A._uiSetLabel(aG.newVal);},_setId:function(A){return ae.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aG){var A=this;A.get(r).toggleClass(ah,aG);},_uiSetLabel:function(aG){var A=this;A.labelNode.setContent(aG);},_uiSetId:function(aG){var A=this;A.get(r).set(ak,aG);}}});ae.AvailableField=i;var T=function(){};T.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||I(A);}},maxFields:{value:Infinity,validator:M}};ae.mix(T.prototype,{createFields:function(aH){var aG=this;var A=[];aE.each(aH,function(aJ,aI){if(aI
                            ',TOOLBAR_CONTAINER_TEMPLATE:'
                            ',FIELDS_CONTAINER_TEMPLATE:'
                              ',VIEWPORT_TEMPLATE:'
                              ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.viewport=A.get(J);A.dropContainer=A.get(Z);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aH){var A=this;var aG=A.availableFieldsDrag;return(aH===aG.dd);},plotFields:function(){var aG=this;var A=aG.get(t);A.each(function(aH){aG.plotField(aH);});},renderUI:function(){var A=this;A._renderTabs();A._renderViewport();A._uiSetAvailableFields(A.get(R));},syncUI:function(){var A=this;var aG=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aG.addClass(af);},_afterActiveTabChange:function(aH){var A=this;var aG=aH.newVal.get(Q);if(A.get(ay)&&(aG===A.settingsNode)){A._renderSettings();}},_afterRender:function(aG){var A=this;A.plotFields();},_afterUiSetHeight:function(aG){var A=this;A.dropContainer.setStyle(ao,M(aG)?aG+A.DEF_UNIT:aG);},_defCancelFn:function(aG){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(aa);},_handleSaveEvent:function(){var A=this;A.fire(am);},_renderViewport:function(){var aG=this; +var aH=aG.get(u);var A=aG.viewport;A.appendChild(aG.dropContainer);aH.appendChild(A);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ae.PropertyList(A.get(ad)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aG=new ae.TabView(A.get(G));A.tabView=aG;A.fieldsNode=aG.getTab(0).get(Q);A.settingsNode=aG.getTab(1).get(Q);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ae.Toolbar(A.get(L)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ae.DD.Drop(A.get(al));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ae.DD.Delegate(A.get(aA));},_setAvailableFields:function(aH){var aG=this;var A=[];aE.each(aH,function(aJ,aI){A.push(D(aJ)?aJ:new ae.AvailableField(aJ));});return A;},_setDropConfig:function(aG){var A=this;return ae.merge({bubbleTargets:A,groups:[R],node:A.dropContainer},aG||{});},_setAvailableFieldsDragConfig:function(aG){var A=this;return ae.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[R],plugins:[{cfg:{moveOnEnd:false},fn:ae.Plugin.DDProxy}]},nodes:g+ah},aG||{});},_setPropertyList:function(aG){var A=this;return ae.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aD}},aG);},_setTabView:function(aJ){var aG=this;var aI=aG.get(s);var aK=aI.one(g+aB);var aH={after:{activeTabChange:ae.bind(aG._afterActiveTabChange,aG)},boundingBox:aI.one(g+m),contentBox:aI.one(g+Y),bubbleTargets:aG,contentNode:aI.one(g+aw),cssClass:m,listNode:aK,render:aG.get(u)};if(!aK){var A=aG.getStrings();aH.items=[{cssClass:ai,label:A[k]},{cssClass:K,label:A[y]}];}return ae.merge(aH,aJ);},_setToolbar:function(aH){var aG=this;var A=aG.getStrings();return ae.merge({activeState:false,bubbleTargets:aG,children:[{handler:ae.bind(aG._handleSaveEvent,aG),label:A[am],icon:ab},{handler:ae.bind(aG._handleCancelEvent,aG),label:A[aa]}]},aH);},_uiSetAvailableFields:function(aI){var A=this;var aH=A.fieldsNode;if(aH){var aG=ae.getDoc().invoke(E);aE.each(aI,function(aJ){aG.appendChild(aJ.get(r));});aH.setContent(A.fieldsContainer.setContent(aG));}},_uiSetFields:function(aG){var A=this;if(A.get(ay)){A.plotFields();}}}});ae.DiagramBuilderBase=at;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(aj){var Y=aj.Lang,c=Y.isArray,E=Y.isObject,aJ=Y.isString,aE=Y.isBoolean,aR=aj.Array,U=function(A){return(A instanceof aj.DiagramBuilderBase);},aF=function(A){return(A instanceof aj.DiagramNode);},af=function(A){return(A instanceof aj.Anchor);},ap=function(A,aU){var aT=c(aU)?aU:aU.getXY();var aV=c(A)?A:A.getXY();return aR.map(aV,function(aX,aW){return Math.max(0,aX-aT[aW]);});},an="addAnchor",aM="addAnchorMessage",j="addNode",ar="anchor",ak="anchors",ae="anchorsDragConfig",Q="availableField",V="boolean",o="boundingBox",aN="builder",ac="cancel",ay="click",aK="closeEvent",B="closeMessage",ah="content",J="controls",aw="controlsToolbar",av="data",ad="dblclick",T="delete",al="deleteMessage",aB="description",C="diagram",ag="diagram-builder",aq="diagramNode",x="diagram-node",aC="dragNode",M="editing",y="editEvent",H="editMessage",a="esc",aD="field",q="fields",ao="fieldsDragConfig",p="hover",ax="id",N="keydown",ai="link",aa="max",t="maxSources",r="mouseenter",W="mouseleave",m="name",n="node",au="p1",at="p2",d="parentNode",l="pencil",ab="records",k="recordset",h="region",aO="rendered",F="required",aG="selected",G="shuffle",O="source",aH="sources",aI="string",i="target",I="targets",K="tmpConnector",e="type",L="viewport",aL="wrapper",v="xy",aQ="-",g=".",P="",f="#",D="_",u=aj.getClassName,R=u(C,aN,ar,n,aa,I),am=u(C,aN,ar,p),aA=u(C,aN,ar,n),z=u(C,aN,ar,n,aL),s=u(C,aN,J),X=u(C,n),b=u(C,n,ah),az=u(C,n,M),aP=u(C,n,aG);var Z=function(){var aT="        ",A="
                              ";aj.all(".aui-diagram-node").each(function(aZ){var aU=P,aW=aj.Widget.getByNode(aZ),aV=aW.get("name"),aY=aW.get("boundingBox"),aX=aY.one(".log")||aj.Node.create("
                              ").appendTo(aY);aU+=aV+A;aW.get(q).each(function(a0){aU+=aT+"a: "+a0.get("id")+A;a0.get("targets").each(function(a1){var a2=a1.get(aq);a1.get("node").setContent(a1.get("id"));aU+=aT+aT+"t: "+a2.get("name")+" (s: "+a1.get("id")+")"+A;});a0.get("sources").each(function(a2){var a1=a2.get(aq);a2.get("node").setContent(a2.get("id"));aU+=aT+aT+"s: "+a1.get("name")+" (t: "+a2.get("id")+")"+A;});});aX.setContent(aU);});};var w=aj.Component.create({NAME:ag,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:E},tmpConnector:{setter:"_setTmpConnector",value:{},validator:E}},EXTENDS:aj.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{editNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=aj.getDoc().on(N,aj.bind(A._afterKeyEvent,A));A.dropContainer.delegate(ay,aj.bind(A._onNodeClick,A),g+X);A.dropContainer.delegate(ad,aj.bind(A._onNodeEdit,A),g+X);A.dropContainer.delegate(r,aj.bind(A._onMouseenterAnchors,A),g+aA);A.dropContainer.delegate(W,aj.bind(A._onMouseleaveAnchors,A),g+aA);},syncUI:function(){var A=this;aj.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new aj.Connector(A.get(K));},connect:function(aU,aW){var aT=this;if(aJ(aU)){aU=aj.Widget.getByNode(f+aj.DiagramNode.buildNodeId(aU));}if(aJ(aW)){aW=aj.Widget.getByNode(f+aj.DiagramNode.buildNodeId(aW));}if(aU&&aW){var aV=aU.findAvailableAnchor();var A=aW.findAvailableAnchor();if(aV&&A){aV.connect(A);}}return aT;},connectAll:function(aT){var A=this;aR.each(aT,function(aU){if(aU.hasOwnProperty(O)&&aU.hasOwnProperty(i)){A.connect(aU.source,aU.target);}});return A;},createField:function(aT){var A=this;if(!aF(aT)){aT.builder=A;aT.viewport=A.get(L);aT=new (A.getFieldClass(aT.type||n))(aT);}aT.set(aN,A);return aT; +},getFieldClass:function(aU){var A=this;var aT=aj.DiagramBuilder.types[aU];if(aT){return aT;}else{aj.log("The field type: ["+aU+"] couldn't be found.");return null;}},isFieldsDrag:function(aU){var A=this;var aT=A.fieldsDrag;return(aU===aT.dd);},plotField:function(aT){var A=this;if(!aT.get(aO)){aT.render(A.dropContainer);}},unselectAll:function(){var A=this;var aT=A.selectedNode;if(aT){aT.set(aG,false);}A.selectedNode=null;},select:function(aT){var A=this;A.unselectAll();A.selectedNode=aT.set(aG,true).focus();},startEditingNode:function(aT){var A=this;if(aT){A.stopEditingNode();A.tabView.selectTab(aj.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,aT.getProperties());aT.get(o).addClass(az);A.editNode=aT;}},stopEditingNode:function(aU){var A=this;var aT=aU||A.editNode;if(aT){A.tabView.selectTab(aj.DiagramBuilder.FIELDS_TAB);aT.get(o).removeClass(az);A.editNode=null;}},_afterKeyEvent:function(aT){var A=this;if(!A.selectedNode||aT.hasModifier()||!aT.isKeyInSet(a,T)){return;}if(aT.isKey(a)){A._onEscKey(aT);}else{if(aT.isKey(T)){A._onDeleteKey(aT);}}aT.halt();},_onCancel:function(aT){var A=this;A.stopEditingNode();},_onDrag:function(aU){var A=this;var aT=aU.target;if(A.isFieldsDrag(aT)){var aV=aj.Widget.getByNode(aT.get(aC));aV.get(q).each(function(aW){aW.alignConnectors();});}},_onDragEnd:function(aU){var A=this;var aT=aU.target;if(A.isFieldsDrag(aT)){var aV=aj.Widget.getByNode(aT.get(aC));aV.set(v,aV.getLeftTop());}},_onDropHit:function(aU){var A=this;var aT=aU.drag;if(A.isAvailableFieldsDrag(aT)){var aW=aT.get(n).getData(Q);var aV=A.addField({xy:ap(aT.lastXY,A.dropContainer),type:aW.get(e),fields:[{}]});A.select(aV);}},_onDeleteKey:function(aT){var A=this;var aU=A.selectedNode;if(!aU.get(F)){aU.close();}},_onEscKey:function(aT){var A=this;A.unselectAll();A.stopEditingNode();},_onMouseenterAnchors:function(aT){var A=this;aT.currentTarget.addClass(am);},_onMouseleaveAnchors:function(aT){var A=this;aT.currentTarget.removeClass(am);},_onNodeClick:function(aT){var A=this;var aU=aj.Widget.getByNode(aT.currentTarget);A.select(aU);},_onNodeEdit:function(aT){var A=this;if(!aT.target.ancestor(g+b,true)){return;}var aU=aj.Widget.getByNode(aT.currentTarget);if(aU){A.startEditingNode(aU);}},_onSave:function(aU){var A=this;var aT=A.editNode;var aV=A.propertyList.get(k);if(aT){aR.each(aV.get(ab),function(aW){var aX=aW.get(av);aT.set(aX.attributeName,aX.value);});A.stopEditingNode(aT);}},_setTmpConnector:function(aT){var A=this;return aj.merge({lazyDraw:true,viewport:A.viewport},aT);},_setFieldsDragConfig:function(aU){var A=this;var aT=A.dropContainer;return aj.merge({bubbleTargets:A,container:aT,dragConfig:{plugins:[{cfg:{constrain:aT},fn:aj.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:aj.Plugin.DDWinScroll}]},nodes:g+X},aU||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new aj.DD.Delegate(A.get(ao));}}});aj.DiagramBuilder=w;aj.DiagramBuilder.types={};var S=aj.Component.create({NAME:x,EXTENDS:aj.Overlay,AUGMENTS:[aj.FieldSupport]});var aS=aj.Component.create({NAME:x,UI_ATTRS:[q,m,F,aG],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:E},builder:{setter:"_setBuilder",validator:U},required:{value:false,validator:aE},description:{value:P,validator:aJ},height:{value:90},name:{valueFn:function(){var A=this;return A.get(e)+(++aj.Env._uidx);},validator:aJ},selected:{value:false,validator:aE},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteMessage:"Are you sure you want to delete?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:n,validator:aJ},controlsToolbar:{validator:E,valueFn:"_valueControlsToolbar"},width:{value:90},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:S,buildNodeId:function(A){return aq+D+aD+D+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                              ',CONTROLS_TEMPLATE:'
                              ',initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(o).addClass(X+aQ+A.get(e));A.set("bodyContent",A.get(m));},alignAnchors:function(){var aT=this;var aX=aT.get(q);var aV=aT.get(o).get(h),aW=Math.floor(360/aX.size()),aU=aV.width/2,A=aV.height/2,aZ=aV.left+aV.width/2,aY=aV.top+aV.height/2;aX.each(function(a3,a2){var a1=a3.get(n);var a4=a1.get(h);var a0=aT._getEllipseXY(aU,A,aZ,aY,a2*aW);a1.setXY([a0[0]-a4.width/2,a0[1]-a4.height/2]);a3.alignConnectors();});return aT;},close:function(){var aT=this;var A=aT.getStrings();if(confirm(A[al])){aT.get(q).each(function(aU){aU.destroy();});aT.destroy();}Z();return aT;},createField:function(aU){var A=this;if(!af(aU)){var aT=A.get(aN);aU.diagramNode=A;aU.viewport=(aT?aT.get(L):null);aU=new aj.Anchor(aU);}return aU;},findAvailableAnchor:function(){var A=this;var aT=null;A.get(q).some(function(aU){if(!aU.hasConnection()){aT=aU;return true;}});if(!aT){aT=A.addField({});}return aT;},getConnectionNode:function(){var A=this;return new aj.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return ap(A.get(o),A._getContainer());},getProperties:function(){var A=this;var aT=A.getPropertyModel();aR.each(aT,function(aW){var aV=A.get(aW.attributeName),aU=Y.type(aV);if(aU===V||aU===aI){aV=String(aV);}aW.value=aV;});return aT;},getPropertyModel:function(){var aT=this;var A=aT.getStrings();return[{attributeName:aB,editor:new aj.TextAreaCellEditor(),name:A[aB]},{attributeName:m,editor:new aj.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(aT){var A=this;A.get(q).each(function(aV){var aU=aj.DD.DDM.getDrop(aV.get(n));if(aU){if(aV.get(aH).size()===aV.get(t)){aU.removeFromGroup(ak);}else{aU.addToGroup(ak);}}});},_afterRender:function(aT){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(aN).dropContainer||A.get(o).get(d)); +},_getEllipseXY:function(aT,A,aW,aV,aX){var aU=aX*Math.PI/180;return[aW+aT*Math.cos(aU),aV-A*Math.sin(aU)];},_handleAddAnchorEvent:function(aT){var A=this;A.addField({});},_handleAddNodeEvent:function(aU){var A=this;var aT=A.get(aN);var aV=A.findAvailableAnchor();if(aV){var aW=A.getConnectionNode();aT.addField(aW);aV.connect(aW.addField({}));}},_handleEditEvent:function(aT){var A=this;A.get(aN).startEditingNode(A);},_handleCloseEvent:function(aT){var A=this;if(!A.get(F)){A.close();}},_onAnchorDrag:function(aU){var A=this;var aT=A.get(aN);aT.tmpConnector.set(at,aU.target.get(aC).getCenterXY());},_onAnchorDragEnd:function(aU){var A=this;var aT=A.get(aN).tmpConnector.shape;aT.clear();aT.end();},_onAnchorDragStart:function(aU){var A=this;var aT=A.get(aN);aT.tmpConnector.set(au,aU.target.get(n).getCenterXY());},_onAnchorDropHit:function(aT){var A=this;var aU=aj.Anchor.getAnchorByNode(aT.drag.get(n));var aV=aj.Anchor.getAnchorByNode(aT.drop.get(n));aU.connect(aV);Z();},_renderControls:function(){var A=this;var aT=A.get(o);A.controlsNode=aj.Node.create(A.CONTROLS_TEMPLATE).appendTo(aT);},_renderNodes:function(){var A=this;var aT=A.get(o);A.anchorWrapper=aj.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(aT);},_renderControlsToolbar:function(aT){var A=this;A.controlsToolbar=new aj.Toolbar(A.get(aw)).render(A.controlsNode);A._uiSetRequired(A.get(F));},_setBuilder:function(aT){var A=this;A.get(q).each(function(aU){aU.set(L,aT.get(L));});return aT;},_setAnchorsDragConfig:function(aU){var A=this;var aT=A.get(aN);return aj.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[ak],plugins:[{cfg:{constrain:(aT?aT.get(L):null)},fn:aj.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:aj.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:aj.Plugin.DDProxy}]},nodes:g+aA,target:true},aU||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new aj.DD.Delegate(A.get(ae));A.anchorsDrag.dd.addInvalid(g+R);},_uiSetFields:function(aT){var A=this;if(A.get(aO)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(aU){var A=this;var aT=A.get(o);aT.set(ax,aj.DiagramNode.buildNodeId(aU));},_uiSetRequired:function(aV){var aU=this;var aT=aU.getStrings();var A=aU.controlsToolbar;if(A){if(aV){A.remove(aK);}else{A.add({handler:aj.bind(aU._handleCloseEvent,aU),icon:ac,id:aK,title:aT[B]});}}},_uiSetSelected:function(aT){var A=this;A.get(o).toggleClass(aP,aT);if(aT&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(aU){var A=this;var aT=A._getContainer().getXY();this._posNode.setXY([aU[0]+aT[0],aU[1]+aT[1]]);},_valueControlsToolbar:function(aU){var aT=this;var A=aT.getStrings();return{activeState:false,children:[{handler:aj.bind(aT._handleEditEvent,aT),icon:l,id:y,title:A[H]},{handler:aj.bind(aT._handleAddAnchorEvent,aT),icon:ai,id:an,title:A[aM]},{handler:aj.bind(aT._handleAddNodeEvent,aT),icon:G,id:j},{handler:aj.bind(aT._handleCloseEvent,aT),icon:ac,id:aK,title:A[B]}]};}}});aj.DiagramNode=aS;aj.DiagramBuilder.types[n]=aj.DiagramNode;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(m){var Q=m.Lang,u=Q.isArray,y=Q.isBoolean,P=Q.isNumber,D=Q.isObject,j=Q.isString,G=m.Array,d=function(A){return(A instanceof m.Anchor);},H=function(A){return(A instanceof m.ArrayList);},p=function(A){return(A instanceof m.DiagramNode);},C="anchor",I="arrowPoints",F="body",J="boundingBox",R="builder",z="color",q="connector",a="dataAnchor",B="diagram",v="diagramNode",x="height",s="id",L="lazyDraw",M="max",l="maxSources",k="maxTargets",O="node",o="p1",n="p2",g="path",t="shape",i="sources",h="targets",E="viewport",c="width",N="wrapper",r=".",w=m.getClassName,b=w(B,R,C,O,M,h),f=w(B,R,C,O,M,i),e=w(B,R,C,O,N),K=w(B,R,C,O);m.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(X,S,Z,A,Y,V){var aa=this;X.moveTo(S,Z);X.lineTo(A,Y);var T=Math.atan2(Y-Z,A-S),W=(A+S)/2,U=(Y+Z)/2;aa.drawPolygon(X,aa.translatePoints(aa.rotatePoints(V||aa.ARROW_POINTS,T),W,U));},drawPolygon:function(S,T){var A=this;S.moveTo(T[0][0],T[0][1]);G.each(T,function(V,U){if(U>0){S.lineTo(T[U][0],T[U][1]);}});S.lineTo(T[0][0],T[0][1]);S.end();},translatePoints:function(T,S,V){var A=this;var U=[];G.each(T,function(X,W){U.push([T[W][0]+S,T[W][1]+V]);});return U;},rotatePoints:function(S,U){var A=this;var T=[];G.each(S,function(W,V){T.push(A.rotatePoint(U,S[V][0],S[V][1]));});return T;},rotatePoint:function(S,A,T){return[(A*Math.cos(S))-(T*Math.sin(S)),(A*Math.sin(S))+(T*Math.cos(S))];}};m.Connector=m.Base.create("line",m.Base,[],{graphics:null,shape:null,initializer:function(S){var A=this;A.after({p1Change:A.draw,p2Change:A.draw});A._initGraphics();A._initShapes();if(!A.get(L)){A.draw();}},destroy:function(){var A=this;A.graphics.destroy();},draw:function(){var A=this;var S=A.shape;var U=A.getCoordinate(A.get(o));var T=A.getCoordinate(A.get(n));S.clear();m.PolygonUtil.drawLineArrow(S,U[0],U[1],T[0],T[1],A.get(I));},getCoordinate:function(T){var A=this;var S=A.get(E).getXY();return[T[0]-S[0],T[1]-S[1]];},_initGraphics:function(){var A=this;var S=new m.Graphic({width:A.get(c),height:A.get(x),render:A.get(E)});A.graphics=S;},_initShapes:function(){var A=this;A.shape=A.graphics.getShape(A.get(t));},_setShape:function(S){var A=this;return m.merge({type:g,stroke:{color:A.get(z),weight:2},fill:{color:A.get(z)}},S);}},{ATTRS:{color:{value:"#666",validator:j},lazyDraw:{value:false,validator:y},viewport:{setter:m.one,value:F},shape:{value:null,setter:"_setShape"},arrowPoints:{value:m.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:u},p2:{value:[0,0],validator:u}}});m.Anchor=m.Base.create("anchor",m.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                              ',NODE_TEMPLATE:'
                              ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(k));},addSource:function(S){var A=this; +if(A.get(i).size()0)||(A.get(i).size()>0));},isConnected:function(S){var A=this;return A.connectors.hasOwnProperty(S.get(s));},removeSource:function(S){var A=this;A.set(i,A.get(i).remove(S));return A;},removeTarget:function(S){var A=this;A.set(h,A.get(h).remove(S));return A;},_afterSourcesChange:function(S){var A=this;A._uiSetSources(S.newVal);},_afterTargetsChange:function(S){var A=this;S.prevVal.each(function(T){T.removeSource(A);});S.newVal.each(function(T){T.addSource(A);});A._uiSetTargets(S.newVal);},_renderNode:function(){var A=this;var T=A.get(v);var S=T.get(J);A.wrapper=S.one(r+e)||m.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(S).appendChild(A.get(O));},_setConnector:function(S){var A=this;return m.merge({viewport:A.get(E)},S);},_setSources:function(S){var A=this;return A._setAnchors(S);},_setTargets:function(S){var A=this;S=A._setAnchors(S,true);S.each(function(T){T.addSource(A);});return S;},_setAnchors:function(U,T){var A=this;if(!H(U)){var S=[];m.Array.some(U,function(W,V){if(V>=A.get(W?k:l)){return true;}S.push(d(W)?W:new m.Anchor(W));});U=new m.ArrayList(S);}return U;},_setMaxSources:function(S){var A=this;A._uiSetMaxSources(A.get(l));return S;},_setMaxTargets:function(S){var A=this;A._uiSetMaxTargets(A.get(k));return S;},_setNode:function(S){var A=this;var T=A.get(s);return m.one(S).set(s,T).setData(a,A);},_uiSetSources:function(S){var A=this;A._uiSetMaxSources(A.get(l));},_uiSetMaxSources:function(T){var A=this;var S=A.get(O);S.toggleClass(f,(A.get(i).size()===T));},_uiSetMaxTargets:function(T){var A=this;var S=A.get(O);S.toggleClass(b,(A.get(h).size()===T));},_uiSetTargets:function(S){var A=this;A._uiSetMaxTargets(A.get(k));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:D},id:{readOnly:true,valueFn:function(){return m.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:P},maxTargets:{setter:"_setMaxTargets",value:1,validator:P},node:{setter:"_setNode",valueFn:function(){var A=this;return m.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return u(A)||H(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return u(A)||H(A);}},viewport:{setter:m.one,value:F}},getAnchorByNode:function(A){return d(A)?A:m.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index 42d2ebf15d9..dec8553b460 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -20,6 +20,7 @@ var Lang = A.Lang, AArray = A.Array, + MAX_FIELDS = 'maxFields', ADD = 'add', ADD_NODE = 'addNode', AUTO = 'auto', @@ -248,6 +249,11 @@ FieldSupport.ATTRS = { validator: function(val) { return isArray(val) || isArrayList(val); } + }, + + maxFields: { + value: Infinity, + validator: isNumber } }; @@ -256,8 +262,10 @@ A.mix(FieldSupport.prototype, { var instance = this; var fields = []; - AArray.each(val, function(field) { - fields.push(instance.createField(field)); + AArray.each(val, function(field, index) { + if (index < instance.get(MAX_FIELDS)) { + fields.push(instance.createField(field)); + } }); return new A.ArrayList(fields); @@ -265,13 +273,20 @@ A.mix(FieldSupport.prototype, { addField: function(field) { var instance = this; - var newField = instance.createField(field); - instance._updateFields( - instance.get(FIELDS).add(newField) - ); + if (instance.get(FIELDS).size() < instance.get(MAX_FIELDS)) { + var newField = instance.createField(field); - return newField; + if (newField) { + instance._updateFields( + instance.get(FIELDS).add(newField) + ); + } + + return newField; + } + + return null; }, removeField: function(field) { @@ -766,14 +781,20 @@ var Lang = A.Lang, }); }, + ADD_ANCHOR = 'addAnchor', + ADD_ANCHOR_MESSAGE = 'addAnchorMessage', + ADD_NODE = 'addNode', ANCHOR = 'anchor', ANCHORS = 'anchors', ANCHORS_DRAG_CONFIG = 'anchorsDragConfig', AVAILABLE_FIELD = 'availableField', + BOOLEAN = 'boolean', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', CLICK = 'click', + CLOSE_EVENT = 'closeEvent', + CLOSE_MESSAGE = 'closeMessage', CONTENT = 'content', CONTROLS = 'controls', CONTROLS_TOOLBAR = 'controlsToolbar', @@ -788,13 +809,18 @@ var Lang = A.Lang, DIAGRAM_NODE_NAME = 'diagram-node', DRAG_NODE = 'dragNode', EDITING = 'editing', + EDIT_EVENT = 'editEvent', + EDIT_MESSAGE = 'editMessage', ESC = 'esc', FIELD = 'field', FIELDS = 'fields', FIELDS_DRAG_CONFIG = 'fieldsDragConfig', HOVER = 'hover', + ID = 'id', KEYDOWN = 'keydown', LINK = 'link', + MAX = 'max', + MAX_SOURCES = 'maxSources', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', @@ -802,26 +828,35 @@ var Lang = A.Lang, P1 = 'p1', P2 = 'p2', PARENT_NODE = 'parentNode', + PENCIL = 'pencil', RECORDS = 'records', RECORDSET = 'recordset', REGION = 'region', RENDERED = 'rendered', + REQUIRED = 'required', SELECTED = 'selected', SHUFFLE = 'shuffle', - TASK = 'task', + SOURCE = 'source', + SOURCES = 'sources', + STRING = 'string', + TARGET = 'target', + TARGETS = 'targets', TMP_CONNECTOR = 'tmpConnector', TYPE = 'type', VIEWPORT = 'viewport', WRAPPER = 'wrapper', XY = 'xy', + _DASH = '-', _DOT = '.', - _DOLLAR = '$', _EMPTY_STR = '', - _DASH = '-', + _HASH = '#', + _UNDERLINE = '_', AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + // CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_HOVER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, HOVER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), @@ -923,6 +958,41 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + connect: function(diagramNode1, diagramNode2) { + var instance = this; + + if (isString(diagramNode1)) { + diagramNode1 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode1)); + } + + if (isString(diagramNode2)) { + diagramNode2 = A.Widget.getByNode(_HASH+A.DiagramNode.buildNodeId(diagramNode2)); + } + + if (diagramNode1 && diagramNode2) { + var a1 = diagramNode1.findAvailableAnchor(); + var a2 = diagramNode2.findAvailableAnchor(); + + if (a1 && a2) { + a1.connect(a2); + } + } + + return instance; + }, + + connectAll: function(nodes) { + var instance = this; + + AArray.each(nodes, function(node) { + if (node.hasOwnProperty(SOURCE) && node.hasOwnProperty(TARGET)) { + instance.connect(node.source, node.target); + } + }); + + return instance; + }, + createField: function(val) { var instance = this; @@ -982,7 +1052,7 @@ var DiagramBuilder = A.Component.create({ var instance = this; instance.unselectAll(); - instance.stopEditingNode(); + // instance.stopEditingNode(); instance.selectedNode = diagramNode.set(SELECTED, true).focus(); }, @@ -1081,8 +1151,11 @@ var DiagramBuilder = A.Component.create({ _onDeleteKey: function(event) { var instance = this; + var selectedNode = instance.selectedNode; - instance.selectedNode.close(); + if (!selectedNode.get(REQUIRED)) { + selectedNode.close(); + } }, _onEscKey: function(event) { @@ -1213,7 +1286,7 @@ var DiagramNodeOverlay = A.Component.create({ var DiagramNode = A.Component.create({ NAME: DIAGRAM_NODE_NAME, - UI_ATTRS: [FIELDS, NAME, SELECTED], + UI_ATTRS: [FIELDS, NAME, REQUIRED, SELECTED], ATTRS: { anchorsDragConfig: { @@ -1227,6 +1300,11 @@ var DiagramNode = A.Component.create({ validator: isDiagramBuilder }, + required: { + value: false, + validator: isBoolean + }, + description: { value: _EMPTY_STR, validator: isString @@ -1252,8 +1330,11 @@ var DiagramNode = A.Component.create({ strings: { value: { + addAnchorMessage: 'Add Anchor', + closeMessage: 'Close', deleteMessage: 'Are you sure you want to delete?', description: 'Description', + editMessage: 'Edit', name: 'Name', type: 'Type' } @@ -1265,9 +1346,8 @@ var DiagramNode = A.Component.create({ }, controlsToolbar: { - setter: '_setControlsToolbar', validator: isObject, - value: null + valueFn: '_valueControlsToolbar' }, width: { @@ -1286,7 +1366,7 @@ var DiagramNode = A.Component.create({ EXTENDS: DiagramNodeOverlay, buildNodeId: function(id) { - return DIAGRAM_NODE_NAME + _DOLLAR + FIELD + _DOLLAR + id; + return DIAGRAM_NODE + _UNDERLINE + FIELD + _UNDERLINE + id; }, prototype: { @@ -1372,6 +1452,33 @@ var DiagramNode = A.Component.create({ return val; }, + findAvailableAnchor: function() { + var instance = this; + var available = null; + + instance.get(FIELDS).some(function(anchor) { + if (!anchor.hasConnection()) { + available = anchor; + + return true; + } + }); + + if (!available) { + available = instance.addField({}); + } + + return available; + }, + + getConnectionNode: function() { + var instance = this; + + return new A.DiagramNode({ + xy: [100, 100] // TODO - find best position? + }); + }, + getLeftTop: function() { var instance = this; @@ -1383,7 +1490,13 @@ var DiagramNode = A.Component.create({ var propertyModel = instance.getPropertyModel(); AArray.each(propertyModel, function(property) { - property.value = instance.get(property.attributeName); + var value = instance.get(property.attributeName), type = Lang.type(value); + + if (type === BOOLEAN || type === STRING) { + value = String(value); + } + + property.value = value; }); return propertyModel; @@ -1420,6 +1533,29 @@ var DiagramNode = A.Component.create({ ]; }, + syncDragTargets: function() { + var instance = this; + + instance.anchorsDrag.syncTargets(); + }, + + syncDropTargets: function(anchor) { + var instance = this; + + instance.get(FIELDS).each(function(anchor) { + var drop = A.DD.DDM.getDrop(anchor.get(NODE)); + + if (drop) { + if (anchor.get(SOURCES).size() === anchor.get(MAX_SOURCES)) { + drop.removeFromGroup(ANCHORS); + } + else { + drop.addToGroup(ANCHORS); + } + } + }); + }, + _afterRender: function(event) { var instance = this; @@ -1444,30 +1580,33 @@ var DiagramNode = A.Component.create({ var instance = this; instance.addField({}); - - // event.halt(); }, - _handleAddTaskEvent: function(event) { + _handleAddNodeEvent: function(event) { var instance = this; var builder = instance.get(BUILDER); + var source = instance.findAvailableAnchor(); - var diagramNode = new A.DiagramNode({ - type: NODE, - xy: [100, 100] // TODO - find best position? - }); + if (source) { + var diagramNode = instance.getConnectionNode(); - builder.addField(diagramNode); + builder.addField(diagramNode); + source.connect(diagramNode.addField({})); + } + }, - var source = instance.addField({}); - var target = diagramNode.addField({}); - source.connect(target); + _handleEditEvent: function(event) { + var instance = this; + + instance.get(BUILDER).startEditingNode(instance); }, _handleCloseEvent: function(event) { var instance = this; - instance.close(); + if (!instance.get(REQUIRED)) { + instance.close(); + } }, _onAnchorDrag: function(event) { @@ -1523,6 +1662,10 @@ var DiagramNode = A.Component.create({ instance.get(CONTROLS_TOOLBAR) ) .render(instance.controlsNode); + + instance._uiSetRequired( + instance.get(REQUIRED) + ); }, _setBuilder: function(val) { @@ -1579,31 +1722,10 @@ var DiagramNode = A.Component.create({ instance.anchorsDrag = new A.DD.Delegate( instance.get(ANCHORS_DRAG_CONFIG) ); - }, - - _setControlsToolbar: function(val) { - var instance = this; - return A.merge( - { - activeState: false, - children: [ - { - handler: A.bind(instance._handleAddAnchorEvent, instance), - icon: LINK - }, - { - handler: A.bind(instance._handleAddTaskEvent, instance), - icon: SHUFFLE - }, - { - handler: A.bind(instance._handleCloseEvent, instance), - icon: CANCEL - } - ] - }, - val - ); + instance.anchorsDrag.dd + .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_TARGETS); + // .addInvalid(_DOT+CSS_DB_ANCHOR_NODE_MAX_SOURCES); }, _uiSetFields: function(val) { @@ -1612,9 +1734,10 @@ var DiagramNode = A.Component.create({ if (instance.get(RENDERED)) { instance.alignAnchors(); - setTimeout(function() { - instance.anchorsDrag.syncTargets(); - }, 50); + // setTimeout(function() { + instance.syncDragTargets(); + instance.syncDropTargets(); + // }, 50); } }, @@ -1622,7 +1745,27 @@ var DiagramNode = A.Component.create({ var instance = this; var boundingBox = instance.get(BOUNDING_BOX); - boundingBox.setAttribute(NAME, A.DiagramNode.buildNodeId(val)); + boundingBox.set(ID, A.DiagramNode.buildNodeId(val)); + }, + + _uiSetRequired: function(val) { + var instance = this; + var strings = instance.getStrings(); + var controlsToolbar = instance.controlsToolbar; + + if (controlsToolbar) { + if (val) { + controlsToolbar.remove(CLOSE_EVENT); + } + else { + controlsToolbar.add({ + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + }); + } + } }, _uiSetSelected: function(val) { @@ -1644,7 +1787,41 @@ var DiagramNode = A.Component.create({ var containerXY = instance._getContainer().getXY(); this._posNode.setXY([ val[0] + containerXY[0], val[1] + containerXY[1] ]); - } + }, + + _valueControlsToolbar: function(val) { + var instance = this; + var strings = instance.getStrings(); + + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + }, + { + handler: A.bind(instance._handleAddNodeEvent, instance), + icon: SHUFFLE, + id: ADD_NODE + }, + { + handler: A.bind(instance._handleCloseEvent, instance), + icon: CANCEL, + id: CLOSE_EVENT, + title: strings[CLOSE_MESSAGE] + } + ] + }; + } } }); @@ -1652,20 +1829,6 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeTask = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - - ATTRS: { - type: { - value: TASK - } - }, - - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[TASK] = A.DiagramNodeTask; - // TODO deletar anchors OK // TODO deletar connections (delete) OK // TODO Adicionar overlay de controles OK @@ -1695,6 +1858,10 @@ var Lang = A.Lang, return (val instanceof A.ArrayList); }, + isDiagramNode = function(val) { + return (val instanceof A.DiagramNode); + }, + ANCHOR = 'anchor', ARROW_POINTS = 'arrowPoints', BODY = 'body', @@ -1708,6 +1875,7 @@ var Lang = A.Lang, HEIGHT = 'height', ID = 'id', LAZY_DRAW = 'lazyDraw', + MAX = 'max', MAX_SOURCES = 'maxSources', MAX_TARGETS = 'maxTargets', NODE = 'node', @@ -1725,6 +1893,8 @@ var Lang = A.Lang, AgetClassName = A.getClassName, + CSS_DB_ANCHOR_NODE_MAX_TARGETS = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, TARGETS), + CSS_DB_ANCHOR_NODE_MAX_SOURCES = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, MAX, SOURCES), CSS_DB_ANCHOR_NODE_WRAPPER = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE, WRAPPER), CSS_DB_ANCHOR_NODE = AgetClassName(DIAGRAM, BUILDER, ANCHOR, NODE); @@ -1931,24 +2101,39 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectTargets(); instance.after({ + sourcesChange: instance._afterSourcesChange, targetsChange: instance._afterTargetsChange }); + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); }, addSource: function(source) { var instance = this; - return instance.updateSources( - instance.get(SOURCES).remove(source).add(source) - ); + if (instance.get(SOURCES).size() < instance.get(MAX_SOURCES)) { + instance.set( + SOURCES, + instance.get(SOURCES).remove(source).add(source) + ); + } + + return instance; }, addTarget: function(target) { var instance = this; - return instance.updateTargets( - instance.get(TARGETS).remove(target).add(target) - ); + if (instance.get(TARGETS).size() < instance.get(MAX_TARGETS)) { + instance.set( + TARGETS, + instance.get(TARGETS).remove(target).add(target) + ); + } + + return instance; }, alignConnectors: function() { @@ -1987,7 +2172,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { connect: function(target) { var instance = this; + if (isDiagramNode(target)) { + target = target.findAvailableAnchor(); + } + instance.addTarget(target); + target.addSource(instance); if (!instance.isConnected(target)) { var tConnector = target.get(CONNECTOR); @@ -1998,6 +2188,10 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { instance.connectors[target.get(ID)] = new A.Connector(tConnector); } + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); + return instance; }, @@ -2013,9 +2207,12 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { var instance = this; instance.getConnector(target).destroy(); - instance.removeTarget(target); target.removeSource(instance); + + setTimeout(function() { + target.get(DIAGRAM_NODE).syncDropTargets(); + }, 50); }, disconnectTargets: function() { @@ -2050,48 +2247,44 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return instance.connectors[target.get(ID)]; }, - isConnected: function(target) { + hasConnection: function() { var instance = this; - return instance.connectors.hasOwnProperty(target.get(ID)); + return ((instance.get(TARGETS).size() > 0) || (instance.get(SOURCES).size() > 0)); }, - updateSources: function(sources) { - var instance = this; - - instance.set(SOURCES, sources); - - return instance; - }, - - updateTargets: function(targets) { + isConnected: function(target) { var instance = this; - instance.set(TARGETS, targets); - - return instance; + return instance.connectors.hasOwnProperty(target.get(ID)); }, removeSource: function(source) { var instance = this; - return instance.updateSources( + instance.set( + SOURCES, instance.get(SOURCES).remove(source) ); + + return instance; }, removeTarget: function(target) { var instance = this; - return instance.updateTargets( + instance.set( + TARGETS, instance.get(TARGETS).remove(target) ); + + return instance; }, - _afterActiveChange: function(event) { + _afterSourcesChange: function(event) { var instance = this; - instance._uiSetActive(event.newVal); + instance._uiSetSources(event.newVal); }, _afterTargetsChange: function(event) { @@ -2108,6 +2301,8 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { event.newVal.each(function(anchor) { anchor.addSource(instance); }); + + instance._uiSetTargets(event.newVal); }, _renderNode: function() { @@ -2141,7 +2336,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { _setTargets: function(val) { var instance = this; - val = instance._setAnchors(val); + val = instance._setAnchors(val, true); val.each(function(anchor) { anchor.addSource(instance); @@ -2150,16 +2345,15 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, - _setAnchors: function(val) { + _setAnchors: function(val, target) { var instance = this; if (!isArrayList(val)) { var targets = []; - A.Array.each(val, function(target) { - if (isString(target)) { - // TODO - need this? - target = A.Anchor.getAnchorByNode(target); + A.Array.some(val, function(target, index) { + if (index >= instance.get(target ? MAX_TARGETS : MAX_SOURCES)) { + return true; } targets.push( isAnchor(target) ? target : new A.Anchor(target) ); @@ -2171,11 +2365,61 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { return val; }, + _setMaxSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + + return val; + }, + + _setMaxTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); + + return val; + }, + _setNode: function(val) { var instance = this; var id = instance.get(ID); return A.one(val).set(ID, id).setData(DATA_ANCHOR, instance); + }, + + _uiSetSources: function(val) { + var instance = this; + + instance._uiSetMaxSources( + instance.get(MAX_SOURCES) + ); + }, + + _uiSetMaxSources: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_SOURCES, (instance.get(SOURCES).size() === val)); + }, + + _uiSetMaxTargets: function(val) { + var instance = this; + var node = instance.get(NODE); + + node.toggleClass(CSS_DB_ANCHOR_NODE_MAX_TARGETS, (instance.get(TARGETS).size() === val)); + }, + + _uiSetTargets: function(val) { + var instance = this; + + instance._uiSetMaxTargets( + instance.get(MAX_TARGETS) + ); } },{ ATTRS: { @@ -2196,12 +2440,14 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, maxSources: { - value: Infinity, + setter: '_setMaxSources', + value: 1, validator: isNumber }, maxTargets: { - value: Infinity, + setter: '_setMaxTargets', + value: 1, validator: isNumber }, @@ -2237,7 +2483,7 @@ A.Anchor = A.Base.create('anchor', A.Base, [], { }, getAnchorByNode: function(node) { - return A.one(node).getData(DATA_ANCHOR); + return isAnchor(node) ? node : A.one(node).getData(DATA_ANCHOR); } }); From 88fb5929258e4e4f552d46a6ce949d4fb29a3af4 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 26 Jul 2011 02:03:23 -0300 Subject: [PATCH 007/132] AUI-461 Use only one A.Graphic instance for all A.Connector shapes; Rename A.DiagramBuilderBase viewport attribute to canvas; --- demos/diagram-builder/index.html | 18 +++++- .../js/aui-diagram-builder-base.js | 24 +++---- .../js/aui-diagram-builder-connector.js | 63 ++++++++++--------- .../js/aui-diagram-builder-impl.js | 47 +++++++++----- 4 files changed, 91 insertions(+), 61 deletions(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index acf5c077b96..fad43f85bfc 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -24,7 +24,7 @@ background-color: lightyellow !important; } - .aui-diagram-builder-base-viewport { + .aui-diagram-builder-base-canvas { position: relative; background-image: url("checker-bg.png"); outline: 0; @@ -165,7 +165,7 @@

                              Alloy - diagram-builder-base Demo

                              -
                              +
                              @@ -183,6 +183,20 @@

                              Alloy - diagram-builder-base Demo

                              ', 'script'); + } +}); - return; +if (!testFeature('innerhtml', 'table')) { + // TODO: thead/tfoot with nested tbody + // IE adds TBODY when creating TABLE elements (which may share this impl) + creators.tbody = function(html, doc) { + var frag = Y_DOM.create(TABLE_OPEN + html + TABLE_CLOSE, doc), + tb = frag.children.tags('tbody')[0]; - } else { - self._combineComplete[type] = true; - } + if (frag.children.length > 1 && tb && !re_tbody.test(html)) { + tb.parentNode.removeChild(tb); // strip extraneous tbody } + return frag; + }; +} - if (mname) { +if (!testFeature('innerhtml-div', 'script')) { + creators.script = function(html, doc) { + var frag = doc.createElement('div'); - // if the module that was just loaded isn't what we were expecting, - // continue to wait - if (mname !== self._loading) { - return; - } + frag.innerHTML = '-' + html; + frag.removeChild(frag.firstChild); + return frag; + } -// Y.log("loadNext executing, just loaded " + mname + ", " + -// Y.id, "info", "loader"); + creators.link = creators.style = creators.script; +} - // The global handler that is called when each module is loaded - // will pass that module name to this function. Storing this - // data to avoid loading the same module multiple times - // centralize this in the callback - self.inserted[mname] = true; - // self.loaded[mname] = true; +if (!testFeature('innerhtml-div', 'tr')) { + Y.mix(creators, { + option: function(html, doc) { + return Y_DOM.create('', doc); + }, - // provided = self.getProvides(mname); - // Y.mix(self.loaded, provided); - // Y.mix(self.inserted, provided); + tr: function(html, doc) { + return Y_DOM.create('' + html + '', doc); + }, - if (self.onProgress) { - self.onProgress.call(self.context, { - name: mname, - data: self.data - }); - } - } + td: function(html, doc) { + return Y_DOM.create('' + html + '', doc); + }, - s = self.sorted; - len = s.length; + col: function(html, doc) { + return Y_DOM.create('' + html + '', doc); + }, - for (i = 0; i < len; i = i + 1) { - // this.inserted keeps track of what the loader has loaded. - // move on if this item is done. - if (s[i] in self.inserted) { - continue; - } + tbody: 'table' + }); - // Because rollups will cause multiple load notifications - // from Y, loadNext may be called multiple times for - // the same module when loading a rollup. We can safely - // skip the subsequent requests - if (s[i] === self._loading) { - Y.log('still loading ' + s[i] + ', waiting', 'info', 'loader'); - return; - } + Y.mix(creators, { + legend: 'fieldset', + th: creators.td, + thead: creators.tbody, + tfoot: creators.tbody, + caption: creators.tbody, + colgroup: creators.tbody, + optgroup: creators.option + }); +} - // log("inserting " + s[i]); - m = self.getModule(s[i]); +Y_DOM.creators = creators; +Y.mix(Y.DOM, { + /** + * Sets the width of the element to the given size, regardless + * of box model, border, padding, etc. + * @method setWidth + * @param {HTMLElement} element The DOM element. + * @param {String|Int} size The pixel height to size to + */ - if (!m) { - if (!self.skipped[s[i]]) { - msg = 'Undefined module ' + s[i] + ' skipped'; - Y.log(msg, 'warn', 'loader'); - // self.inserted[s[i]] = true; - self.skipped[s[i]] = true; - } - continue; + setWidth: function(node, size) { + Y.DOM._setSize(node, 'width', size); + }, - } + /** + * Sets the height of the element to the given size, regardless + * of box model, border, padding, etc. + * @method setHeight + * @param {HTMLElement} element The DOM element. + * @param {String|Int} size The pixel height to size to + */ - group = (m.group && self.groups[m.group]) || NOT_FOUND; + setHeight: function(node, size) { + Y.DOM._setSize(node, 'height', size); + }, - // The load type is stored to offer the possibility to load - // the css separately from the script. - if (!type || type === m.type) { - self._loading = s[i]; -Y.log('attempting to load ' + s[i] + ', ' + self.base, 'info', 'loader'); + _setSize: function(node, prop, val) { + val = (val > 0) ? val : 0; + var size = 0; - if (m.type === CSS) { - fn = Y.Get.css; - attr = self.cssAttributes; - } else { - fn = Y.Get.script; - attr = self.jsAttributes; - } + node.style[prop] = val + 'px'; + size = (prop === 'height') ? node.offsetHeight : node.offsetWidth; - url = (m.fullpath) ? self._filter(m.fullpath, s[i]) : - self._url(m.path, s[i], group.base || m.base); - - fn(url, { - data: s[i], - onSuccess: handleSuccess, - insertBefore: self.insertBefore, - charset: self.charset, - attributes: attr, - onFailure: self._onFailure, - onTimeout: self._onTimeout, - timeout: self.timeout, - autopurge: false, - context: self - }); + if (size > val) { + val = val - (size - val); - return; + if (val < 0) { + val = 0; } + + node.style[prop] = val + 'px'; } + } +}); - // we are finished - self._loading = null; - fn = self._internalCallback; +}, '3.4.0' ,{requires:['dom-core']}); +YUI.add('dom-style', function(Y) { - // internal callback for loading css first - if (fn) { - // Y.log('loader internal'); - self._internalCallback = null; - fn.call(self); - } else { - // Y.log('loader complete'); - self._onSuccess(); +(function(Y) { +/** + * Add style management functionality to DOM. + * @module dom + * @submodule dom-style + * @for DOM + */ + +var DOCUMENT_ELEMENT = 'documentElement', + DEFAULT_VIEW = 'defaultView', + OWNER_DOCUMENT = 'ownerDocument', + STYLE = 'style', + FLOAT = 'float', + CSS_FLOAT = 'cssFloat', + STYLE_FLOAT = 'styleFloat', + TRANSPARENT = 'transparent', + GET_COMPUTED_STYLE = 'getComputedStyle', + GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', + + WINDOW = Y.config.win, + DOCUMENT = Y.config.doc, + UNDEFINED = undefined, + + Y_DOM = Y.DOM, + + TRANSFORM = 'transform', + VENDOR_TRANSFORM = [ + 'WebkitTransform', + 'MozTransform', + 'OTransform' + ], + + re_color = /color$/i, + re_unit = /width|height|top|left|right|bottom|margin|padding/i; + +Y.Array.each(VENDOR_TRANSFORM, function(val) { + if (val in DOCUMENT[DOCUMENT_ELEMENT].style) { + TRANSFORM = val; + } +}); + +Y.mix(Y_DOM, { + DEFAULT_UNIT: 'px', + + CUSTOM_STYLES: { + }, + + + /** + * Sets a style property for a given element. + * @method setStyle + * @param {HTMLElement} An HTMLElement to apply the style to. + * @param {String} att The style property to set. + * @param {String|Number} val The value. + */ + setStyle: function(node, att, val, style) { + style = style || node.style; + var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES; + + if (style) { + if (val === null || val === '') { // normalize unsetting + val = ''; + } else if (!isNaN(new Number(val)) && re_unit.test(att)) { // number values may need a unit + val += Y_DOM.DEFAULT_UNIT; + } + + if (att in CUSTOM_STYLES) { + if (CUSTOM_STYLES[att].set) { + CUSTOM_STYLES[att].set(node, val, style); + return; // NOTE: return + } else if (typeof CUSTOM_STYLES[att] === 'string') { + att = CUSTOM_STYLES[att]; + } + } else if (att === '') { // unset inline styles + att = 'cssText'; + val = ''; + } + style[att] = val; } }, /** - * Apply filter defined for this instance to a url/path - * method _filter - * @param {string} u the string to filter. - * @param {string} name the name of the module, if we are processing - * a single module as opposed to a combined url. - * @return {string} the filtered string. - * @private + * Returns the current style value for the given property. + * @method getStyle + * @param {HTMLElement} An HTMLElement to get the style from. + * @param {String} att The style property to get. */ - _filter: function(u, name) { - var f = this.filter, - hasFilter = name && (name in this.filters), - modFilter = hasFilter && this.filters[name]; + getStyle: function(node, att, style) { + style = style || node.style; + var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES, + val = ''; - if (u) { - if (hasFilter) { - f = (L.isString(modFilter)) ? - this.FILTER_DEFS[modFilter.toUpperCase()] || null : - modFilter; + if (style) { + if (att in CUSTOM_STYLES) { + if (CUSTOM_STYLES[att].get) { + return CUSTOM_STYLES[att].get(node, att, style); // NOTE: return + } else if (typeof CUSTOM_STYLES[att] === 'string') { + att = CUSTOM_STYLES[att]; + } } - if (f) { - u = u.replace(new RegExp(f.searchExp, 'g'), f.replaceStr); + val = style[att]; + if (val === '') { // TODO: is empty string sufficient? + val = Y_DOM[GET_COMPUTED_STYLE](node, att); } } - return u; + return val; }, /** - * Generates the full url for a module - * method _url - * @param {string} path the path fragment. - * @return {string} the full url. - * @private + * Sets multiple style properties. + * @method setStyles + * @param {HTMLElement} node An HTMLElement to apply the styles to. + * @param {Object} hash An object literal of property:value pairs. */ - _url: function(path, name, base) { - return this._filter((base || this.base || '') + path, name); - } -}; + setStyles: function(node, hash) { + var style = node.style; + Y.each(hash, function(v, n) { + Y_DOM.setStyle(node, n, v, style); + }, Y_DOM); + }, + /** + * Returns the computed style for the given node. + * @method getComputedStyle + * @param {HTMLElement} An HTMLElement to get the style from. + * @param {String} att The style property to get. + * @return {String} The computed value of the style property. + */ + getComputedStyle: function(node, att) { + var val = '', + doc = node[OWNER_DOCUMENT]; + if (node[STYLE] && doc[DEFAULT_VIEW] && doc[DEFAULT_VIEW][GET_COMPUTED_STYLE]) { + val = doc[DEFAULT_VIEW][GET_COMPUTED_STYLE](node, null)[att]; + } + return val; + } +}); -}, '3.4.0' ,{requires:['get']}); -YUI.add('loader-rollup', function(Y) { +// normalize reserved word float alternatives ("cssFloat" or "styleFloat") +if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][CSS_FLOAT] !== UNDEFINED) { + Y_DOM.CUSTOM_STYLES[FLOAT] = CSS_FLOAT; +} else if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][STYLE_FLOAT] !== UNDEFINED) { + Y_DOM.CUSTOM_STYLES[FLOAT] = STYLE_FLOAT; +} -/** - * Optional automatic rollup logic for reducing http connections - * when not using a combo service. - * @module loader - * @submodule rollup - */ +// fix opera computedStyle default color unit (convert to rgb) +if (Y.UA.opera) { + Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { + var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], + val = view[GET_COMPUTED_STYLE](node, '')[att]; -/** - * Look for rollup packages to determine if all of the modules a - * rollup supersedes are required. If so, include the rollup to - * help reduce the total number of connections required. Called - * by calculate(). This is an optional feature, and requires the - * appropriate submodule to function. - * @method _rollup - * @for Loader - * @private - */ -Y.Loader.prototype._rollup = function() { - var i, j, m, s, r = this.required, roll, - info = this.moduleInfo, rolled, c, smod; - - // find and cache rollup modules - if (this.dirty || !this.rollups) { - this.rollups = {}; - for (i in info) { - if (info.hasOwnProperty(i)) { - m = this.getModule(i); - // if (m && m.rollup && m.supersedes) { - if (m && m.rollup) { - this.rollups[i] = m; - } - } + if (re_color.test(att)) { + val = Y.Color.toRGB(val); } - this.forceMap = (this.force) ? Y.Array.hash(this.force) : {}; - } + return val; + }; - // make as many passes as needed to pick up rollup rollups - for (;;) { - rolled = false; - - // go through the rollup candidates - for (i in this.rollups) { - if (this.rollups.hasOwnProperty(i)) { - // there can be only one, unless forced - if (!r[i] && ((!this.loaded[i]) || this.forceMap[i])) { - m = this.getModule(i); - s = m.supersedes || []; - roll = false; - - // @TODO remove continue - if (!m.rollup) { - continue; - } +} - c = 0; +// safari converts transparent to rgba(), others use "transparent" +if (Y.UA.webkit) { + Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { + var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], + val = view[GET_COMPUTED_STYLE](node, '')[att]; - // check the threshold - for (j = 0; j < s.length; j++) { - smod = info[s[j]]; + if (val === 'rgba(0, 0, 0, 0)') { + val = TRANSPARENT; + } - // if the superseded module is loaded, we can't - // load the rollup unless it has been forced. - if (this.loaded[s[j]] && !this.forceMap[s[j]]) { - roll = false; - break; - // increment the counter if this module is required. - // if we are beyond the rollup threshold, we will - // use the rollup module - } else if (r[s[j]] && m.type == smod.type) { - c++; - // Y.log("adding to thresh: " + c + ", " + s[j]); - roll = (c >= m.rollup); - if (roll) { - // Y.log("over thresh " + c + ", " + s[j]); - break; - } - } - } + return val; + }; - if (roll) { - // Y.log("adding rollup: " + i); - // add the rollup - r[i] = true; - rolled = true; +} - // expand the rollup's dependencies - this.getRequires(m); - } - } - } - } +Y.DOM._getAttrOffset = function(node, attr) { + var val = Y.DOM[GET_COMPUTED_STYLE](node, attr), + offsetParent = node.offsetParent, + position, + parentOffset, + offset; - // if we made it here w/o rolling up something, we are done - if (!rolled) { - break; + if (val === 'auto') { + position = Y.DOM.getStyle(node, 'position'); + if (position === 'static' || position === 'relative') { + val = 0; + } else if (offsetParent && offsetParent[GET_BOUNDING_CLIENT_RECT]) { + parentOffset = offsetParent[GET_BOUNDING_CLIENT_RECT]()[attr]; + offset = node[GET_BOUNDING_CLIENT_RECT]()[attr]; + if (attr === 'left' || attr === 'top') { + val = offset - parentOffset; + } else { + val = parentOffset - node[GET_BOUNDING_CLIENT_RECT]()[attr]; + } } } -}; - -}, '3.4.0' ,{requires:['loader-base']}); -YUI.add('loader-yui3', function(Y) { + return val; +}; -/* This file is auto-generated by src/loader/meta_join.py */ +Y.DOM._getOffset = function(node) { + var pos, + xy = null; -/** - * YUI 3 module metadata - * @module loader - * @submodule yui3 - */ -YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { - "align-plugin": { - "requires": [ - "node-screen", - "node-pluginhost" - ] - }, - "anim": { - "use": [ - "anim-base", - "anim-color", - "anim-curve", - "anim-easing", - "anim-node-plugin", - "anim-scroll", - "anim-xy" - ] - }, - "anim-base": { - "requires": [ - "base-base", - "node-style" - ] - }, - "anim-color": { - "requires": [ - "anim-base" - ] - }, - "anim-curve": { - "requires": [ - "anim-xy" - ] - }, - "anim-easing": { - "requires": [ - "anim-base" - ] - }, - "anim-node-plugin": { - "requires": [ - "node-pluginhost", - "anim-base" - ] - }, - "anim-scroll": { - "requires": [ - "anim-base" - ] - }, - "anim-xy": { - "requires": [ - "anim-base", - "node-screen" - ] - }, - "app": { - "use": [ - "controller", - "model", - "model-list", - "view" - ] - }, - "array-extras": {}, - "array-invoke": {}, - "arraylist": {}, - "arraylist-add": { - "requires": [ - "arraylist" - ] - }, - "arraylist-filter": { - "requires": [ - "arraylist" - ] - }, - "arraysort": { - "requires": [ - "yui-base" - ] - }, - "async-queue": { - "requires": [ - "event-custom" - ] - }, - "attribute": { - "use": [ - "attribute-base", - "attribute-complex" - ] - }, - "attribute-base": { - "requires": [ - "event-custom" - ] - }, - "attribute-complex": { - "requires": [ - "attribute-base" - ] - }, - "autocomplete": { - "use": [ - "autocomplete-base", - "autocomplete-sources", - "autocomplete-list", - "autocomplete-plugin" - ] - }, - "autocomplete-base": { - "optional": [ - "autocomplete-sources" - ], - "requires": [ - "array-extras", - "base-build", - "escape", - "event-valuechange", - "node-base" - ] - }, - "autocomplete-filters": { - "requires": [ - "array-extras", - "text-wordbreak" - ] - }, - "autocomplete-filters-accentfold": { - "requires": [ - "array-extras", - "text-accentfold", - "text-wordbreak" - ] - }, - "autocomplete-highlighters": { - "requires": [ - "array-extras", - "highlight-base" - ] - }, - "autocomplete-highlighters-accentfold": { - "requires": [ - "array-extras", - "highlight-accentfold" - ] - }, - "autocomplete-list": { - "after": [ - "autocomplete-sources" - ], - "lang": [ - "en" - ], - "requires": [ - "autocomplete-base", - "event-resize", - "selector-css3", - "shim-plugin", - "widget", - "widget-position", - "widget-position-align" - ], - "skinnable": true - }, - "autocomplete-list-keys": { - "condition": { - "name": "autocomplete-list-keys", - "test": function (Y) { - // Only add keyboard support to autocomplete-list if this doesn't appear to - // be an iOS or Android-based mobile device. - // - // There's currently no feasible way to actually detect whether a device has - // a hardware keyboard, so this sniff will have to do. It can easily be - // overridden by manually loading the autocomplete-list-keys module. - // - // Worth noting: even though iOS supports bluetooth keyboards, Mobile Safari - // doesn't fire the keyboard events used by AutoCompleteList, so there's - // no point loading the -keys module even when a bluetooth keyboard may be - // available. - return !(Y.UA.ios || Y.UA.android); -}, - "trigger": "autocomplete-list" - }, - "requires": [ - "autocomplete-list", - "base-build" - ] - }, - "autocomplete-plugin": { - "requires": [ - "autocomplete-list", - "node-pluginhost" - ] - }, - "autocomplete-sources": { - "optional": [ - "io-base", - "json-parse", - "jsonp", - "yql" - ], - "requires": [ - "autocomplete-base" - ] - }, - "base": { - "use": [ - "base-base", - "base-pluginhost", - "base-build" - ] - }, - "base-base": { - "after": [ - "attribute-complex" - ], - "requires": [ - "attribute-base" - ] - }, - "base-build": { - "requires": [ - "base-base" - ] - }, - "base-pluginhost": { - "requires": [ - "base-base", - "pluginhost" - ] - }, - "cache": { - "use": [ - "cache-base", - "cache-offline", - "cache-plugin" - ] - }, - "cache-base": { - "requires": [ - "base" - ] - }, - "cache-offline": { - "requires": [ - "cache-base", - "json" - ] - }, - "cache-plugin": { - "requires": [ - "plugin", - "cache-base" - ] - }, - "charts": { - "requires": [ - "dom", - "datatype", - "event-custom", - "event-mouseenter", - "widget", - "widget-position", - "widget-stack" - ] - }, - "classnamemanager": { - "requires": [ - "yui-base" - ] - }, - "clickable-rail": { - "requires": [ - "slider-base" - ] - }, - "collection": { - "use": [ - "array-extras", - "arraylist", - "arraylist-add", - "arraylist-filter", - "array-invoke" - ] - }, - "compat": { - "requires": [ - "event-base", - "dom", - "dump", - "substitute" - ] - }, - "console": { - "lang": [ - "en", - "es" - ], - "requires": [ - "yui-log", - "widget", - "substitute" - ], - "skinnable": true - }, - "console-filters": { - "requires": [ - "plugin", - "console" - ], - "skinnable": true - }, - "controller": { - "optional": [ - "querystring-parse" - ], - "requires": [ - "array-extras", - "base-build", - "history" - ] - }, - "cookie": { - "requires": [ - "yui-base" - ] - }, - "createlink-base": { - "requires": [ - "editor-base" - ] - }, - "cssbase": { - "after": [ - "cssreset", - "cssfonts", - "cssgrids", - "cssreset-context", - "cssfonts-context", - "cssgrids-context" - ], - "type": "css" - }, - "cssbase-context": { - "after": [ - "cssreset", - "cssfonts", - "cssgrids", - "cssreset-context", - "cssfonts-context", - "cssgrids-context" - ], - "type": "css" - }, - "cssfonts": { - "type": "css" - }, - "cssfonts-context": { - "type": "css" - }, - "cssgrids": { - "optional": [ - "cssreset", - "cssfonts" - ], - "type": "css" - }, - "cssgrids-context-deprecated": { - "optional": [ - "cssreset-context" - ], - "requires": [ - "cssfonts-context" - ], - "type": "css" - }, - "cssgrids-deprecated": { - "optional": [ - "cssreset" - ], - "requires": [ - "cssfonts" - ], - "type": "css" - }, - "cssreset": { - "type": "css" - }, - "cssreset-context": { - "type": "css" - }, - "dataschema": { - "use": [ - "dataschema-base", - "dataschema-json", - "dataschema-xml", - "dataschema-array", - "dataschema-text" - ] - }, - "dataschema-array": { - "requires": [ - "dataschema-base" - ] - }, - "dataschema-base": { - "requires": [ - "base" - ] - }, - "dataschema-json": { - "requires": [ - "dataschema-base", - "json" - ] - }, - "dataschema-text": { - "requires": [ - "dataschema-base" - ] - }, - "dataschema-xml": { - "requires": [ - "dataschema-base" - ] - }, - "datasource": { - "use": [ - "datasource-local", - "datasource-io", - "datasource-get", - "datasource-function", - "datasource-cache", - "datasource-jsonschema", - "datasource-xmlschema", - "datasource-arrayschema", - "datasource-textschema", - "datasource-polling" - ] - }, - "datasource-arrayschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-array" - ] - }, - "datasource-cache": { - "requires": [ - "datasource-local", - "plugin", - "cache-base" - ] - }, - "datasource-function": { - "requires": [ - "datasource-local" - ] - }, - "datasource-get": { - "requires": [ - "datasource-local", - "get" - ] - }, - "datasource-io": { - "requires": [ - "datasource-local", - "io-base" - ] - }, - "datasource-jsonschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-json" - ] - }, - "datasource-local": { - "requires": [ - "base" - ] - }, - "datasource-polling": { - "requires": [ - "datasource-local" - ] - }, - "datasource-textschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-text" - ] - }, - "datasource-xmlschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-xml" - ] - }, - "datatable": { - "use": [ - "datatable-base", - "datatable-datasource", - "datatable-sort", - "datatable-scroll" - ] - }, - "datatable-base": { - "requires": [ - "recordset-base", - "widget", - "substitute", - "event-mouseenter" - ], - "skinnable": true - }, - "datatable-datasource": { - "requires": [ - "datatable-base", - "plugin", - "datasource-local" - ] - }, - "datatable-scroll": { - "requires": [ - "datatable-base", - "plugin", - "stylesheet" - ] - }, - "datatable-sort": { - "lang": [ - "en" - ], - "requires": [ - "datatable-base", - "plugin", - "recordset-sort" - ] - }, - "datatype": { - "use": [ - "datatype-number", - "datatype-date", - "datatype-xml" - ] - }, - "datatype-date": { - "lang": [ - "ar", - "ar-JO", - "ca", - "ca-ES", - "da", - "da-DK", - "de", - "de-AT", - "de-DE", - "el", - "el-GR", - "en", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-JO", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "es", - "es-AR", - "es-BO", - "es-CL", - "es-CO", - "es-EC", - "es-ES", - "es-MX", - "es-PE", - "es-PY", - "es-US", - "es-UY", - "es-VE", - "fi", - "fi-FI", - "fr", - "fr-BE", - "fr-CA", - "fr-FR", - "hi", - "hi-IN", - "id", - "id-ID", - "it", - "it-IT", - "ja", - "ja-JP", - "ko", - "ko-KR", - "ms", - "ms-MY", - "nb", - "nb-NO", - "nl", - "nl-BE", - "nl-NL", - "pl", - "pl-PL", - "pt", - "pt-BR", - "ro", - "ro-RO", - "ru", - "ru-RU", - "sv", - "sv-SE", - "th", - "th-TH", - "tr", - "tr-TR", - "vi", - "vi-VN", - "zh-Hans", - "zh-Hans-CN", - "zh-Hant", - "zh-Hant-HK", - "zh-Hant-TW" - ], - "supersedes": [ - "datatype-date-format" - ], - "use2": [ - "datatype-date-parse", - "datatype-date-format" - ] - }, - "datatype-date-format": {}, - "datatype-date-parse": {}, - "datatype-number": { - "use": [ - "datatype-number-parse", - "datatype-number-format" - ] - }, - "datatype-number-format": {}, - "datatype-number-parse": {}, - "datatype-xml": { - "use": [ - "datatype-xml-parse", - "datatype-xml-format" - ] - }, - "datatype-xml-format": {}, - "datatype-xml-parse": {}, - "dd": { - "use": [ - "dd-ddm-base", - "dd-ddm", - "dd-ddm-drop", - "dd-drag", - "dd-proxy", - "dd-constrain", - "dd-drop", - "dd-scroll", - "dd-delegate" - ] - }, - "dd-constrain": { - "requires": [ - "dd-drag" - ] - }, - "dd-ddm": { - "requires": [ - "dd-ddm-base", - "event-resize" - ] - }, - "dd-ddm-base": { - "requires": [ - "node", - "base", - "yui-throttle", - "classnamemanager" - ] - }, - "dd-ddm-drop": { - "requires": [ - "dd-ddm" - ] - }, - "dd-delegate": { - "requires": [ - "dd-drag", - "dd-drop-plugin", - "event-mouseenter" - ] - }, - "dd-drag": { - "requires": [ - "dd-ddm-base" - ] - }, - "dd-drop": { - "requires": [ - "dd-drag", - "dd-ddm-drop" - ] - }, - "dd-drop-plugin": { - "requires": [ - "dd-drop" - ] - }, - "dd-gestures": { - "condition": { - "name": "dd-gestures", - "test": function(Y) { - return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); -}, - "trigger": "dd-drag" - }, - "requires": [ - "dd-drag", - "event-synthetic", - "event-gestures" - ] - }, - "dd-plugin": { - "optional": [ - "dd-constrain", - "dd-proxy" - ], - "requires": [ - "dd-drag" - ] - }, - "dd-proxy": { - "requires": [ - "dd-drag" - ] - }, - "dd-scroll": { - "requires": [ - "dd-drag" - ] - }, - "dial": { - "lang": [ - "en", - "es" - ], - "requires": [ - "widget", - "dd-drag", - "substitute", - "event-mouseenter", - "event-move", - "transition", - "intl" - ], - "skinnable": true - }, - "dom": { - "use": [ - "dom-core", - "dom-base", - "dom-attrs", - "dom-create", - "dom-class", - "dom-size", - "dom-screen", - "dom-style", - "selector-native", - "selector" - ] - }, - "dom-attrs": { - "requires": [ - "dom-core" - ] - }, - "dom-base": { - "requires": [ - "dom-core", - "dom-attrs", - "dom-create", - "dom-class", - "dom-size" - ] - }, - "dom-class": { - "requires": [ - "dom-core" - ] - }, - "dom-core": { - "requires": [ - "oop", - "features" - ] - }, - "dom-create": { - "requires": [ - "dom-core" - ] - }, - "dom-deprecated": { - "requires": [ - "dom-core" - ] - }, - "dom-screen": { - "requires": [ - "dom-core", - "dom-style" - ] - }, - "dom-size": { - "requires": [ - "dom-core" - ] - }, - "dom-style": { - "requires": [ - "dom-core" - ] - }, - "dom-style-ie": { - "condition": { - "name": "dom-style-ie", - "test": function (Y) { - - var testFeature = Y.Features.test, - addFeature = Y.Features.add, - WINDOW = Y.config.win, - DOCUMENT = Y.config.doc, - DOCUMENT_ELEMENT = 'documentElement', - ret = false; + if (node) { + pos = Y_DOM.getStyle(node, 'position'); + xy = [ + parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'left'), 10), + parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'top'), 10) + ]; - addFeature('style', 'computedStyle', { - test: function() { - return WINDOW && 'getComputedStyle' in WINDOW; - } - }); + if ( isNaN(xy[0]) ) { // in case of 'auto' + xy[0] = parseInt(Y_DOM.getStyle(node, 'left'), 10); // try inline + if ( isNaN(xy[0]) ) { // default to offset value + xy[0] = (pos === 'relative') ? 0 : node.offsetLeft || 0; + } + } - addFeature('style', 'opacity', { - test: function() { - return DOCUMENT && 'opacity' in DOCUMENT[DOCUMENT_ELEMENT].style; - } - }); + if ( isNaN(xy[1]) ) { // in case of 'auto' + xy[1] = parseInt(Y_DOM.getStyle(node, 'top'), 10); // try inline + if ( isNaN(xy[1]) ) { // default to offset value + xy[1] = (pos === 'relative') ? 0 : node.offsetTop || 0; + } + } + } - ret = (!testFeature('style', 'opacity') && - !testFeature('style', 'computedStyle')); + return xy; - return ret; -}, - "trigger": "dom-style" - }, - "requires": [ - "dom-style" - ] - }, - "dump": {}, - "editor": { - "use": [ - "frame", - "selection", - "exec-command", - "editor-base", - "editor-para", - "editor-br", - "editor-bidi", - "editor-tab", - "createlink-base" - ] - }, - "editor-base": { - "requires": [ - "base", - "frame", - "node", - "exec-command", - "selection" - ] - }, - "editor-bidi": { - "requires": [ - "editor-base" - ] - }, - "editor-br": { - "requires": [ - "editor-base" - ] - }, - "editor-lists": { - "requires": [ - "editor-base" - ] - }, - "editor-para": { - "requires": [ - "editor-base" - ] - }, - "editor-tab": { - "requires": [ - "editor-base" - ] - }, - "escape": {}, - "event": { - "after": [ - "node-base" - ], - "use": [ - "event-base", - "event-delegate", - "event-synthetic", - "event-mousewheel", - "event-mouseenter", - "event-key", - "event-focus", - "event-resize", - "event-hover" - ] - }, - "event-base": { - "after": [ - "node-base" - ], - "requires": [ - "event-custom-base" - ] - }, - "event-base-ie": { - "after": [ - "event-base" - ], - "condition": { - "name": "event-base-ie", - "test": function(Y) { - var imp = Y.config.doc && Y.config.doc.implementation; - return (imp && (!imp.hasFeature('Events', '2.0'))); -}, - "trigger": "node-base" - }, - "requires": [ - "node-base" - ] - }, - "event-custom": { - "use": [ - "event-custom-base", - "event-custom-complex" - ] - }, - "event-custom-base": { - "requires": [ - "oop" - ] - }, - "event-custom-complex": { - "requires": [ - "event-custom-base" - ] - }, - "event-delegate": { - "requires": [ - "node-base" - ] - }, - "event-flick": { - "requires": [ - "node-base", - "event-touch", - "event-synthetic" - ] - }, - "event-focus": { - "requires": [ - "event-synthetic" - ] - }, - "event-gestures": { - "use": [ - "event-flick", - "event-move" - ] - }, - "event-hover": { - "requires": [ - "event-mouseenter" - ] - }, - "event-key": { - "requires": [ - "event-synthetic" - ] - }, - "event-mouseenter": { - "requires": [ - "event-synthetic" - ] - }, - "event-mousewheel": { - "requires": [ - "node-base" - ] - }, - "event-move": { - "requires": [ - "node-base", - "event-touch", - "event-synthetic" - ] - }, - "event-resize": { - "requires": [ - "node-base" - ] - }, - "event-simulate": { - "requires": [ - "event-base" - ] - }, - "event-synthetic": { - "requires": [ - "node-base", - "event-custom-complex" - ] - }, - "event-touch": { - "requires": [ - "node-base" - ] - }, - "event-valuechange": { - "requires": [ - "event-focus", - "event-synthetic" - ] - }, - "exec-command": { - "requires": [ - "frame" - ] - }, - "features": { - "requires": [ - "yui-base" - ] - }, - "frame": { - "requires": [ - "base", - "node", - "selector-css3", - "substitute", - "yui-throttle" - ] - }, - "get": { - "requires": [ - "yui-base" - ] - }, - "highlight": { - "use": [ - "highlight-base", - "highlight-accentfold" - ] - }, - "highlight-accentfold": { - "requires": [ - "highlight-base", - "text-accentfold" - ] - }, - "highlight-base": { - "requires": [ - "array-extras", - "escape", - "text-wordbreak" - ] - }, - "history": { - "use": [ - "history-base", - "history-hash", - "history-hash-ie", - "history-html5" - ] - }, - "history-base": { - "requires": [ - "event-custom-complex" - ] - }, - "history-hash": { - "after": [ - "history-html5" - ], - "requires": [ - "event-synthetic", - "history-base", - "yui-later" - ] - }, - "history-hash-ie": { - "condition": { - "name": "history-hash-ie", - "test": function (Y) { - var docMode = Y.config.doc && Y.config.doc.documentMode; +}; - return Y.UA.ie && (!('onhashchange' in Y.config.win) || - !docMode || docMode < 8); -}, - "trigger": "history-hash" - }, - "requires": [ - "history-hash", - "node-base" - ] - }, - "history-html5": { - "optional": [ - "json" - ], - "requires": [ - "event-base", - "history-base", - "node-base" - ] - }, - "imageloader": { - "requires": [ - "base-base", - "node-style", - "node-screen" - ] - }, - "intl": { - "requires": [ - "intl-base", - "event-custom" - ] - }, - "intl-base": { - "requires": [ - "yui-base" - ] - }, - "io": { - "use": [ - "io-base", - "io-xdr", - "io-form", - "io-upload-iframe", - "io-queue" - ] - }, - "io-base": { - "requires": [ - "event-custom-base", - "querystring-stringify-simple" - ] - }, - "io-form": { - "requires": [ - "io-base", - "node-base" - ] - }, - "io-queue": { - "requires": [ - "io-base", - "queue-promote" - ] - }, - "io-upload-iframe": { - "requires": [ - "io-base", - "node-base" - ] - }, - "io-xdr": { - "requires": [ - "io-base", - "datatype-xml" - ] - }, - "json": { - "use": [ - "json-parse", - "json-stringify" - ] - }, - "json-parse": {}, - "json-stringify": {}, - "jsonp": { - "requires": [ - "get", - "oop" - ] - }, - "jsonp-url": { - "requires": [ - "jsonp" - ] - }, - "loader": { - "use": [ - "loader-base", - "loader-rollup", - "loader-yui3" - ] - }, - "loader-base": { - "requires": [ - "get" - ] - }, - "loader-rollup": { - "requires": [ - "loader-base" - ] - }, - "loader-yui3": { - "requires": [ - "loader-base" - ] - }, - "model": { - "requires": [ - "base-build", - "escape", - "json-parse" - ] - }, - "model-list": { - "requires": [ - "array-extras", - "array-invoke", - "arraylist", - "base-build", - "json-parse", - "model" - ] - }, - "node": { - "use": [ - "node-base", - "node-event-delegate", - "node-pluginhost", - "node-screen", - "node-style" - ] - }, - "node-base": { - "requires": [ - "dom-base", - "selector-css2", - "event-base" - ] - }, - "node-deprecated": { - "requires": [ - "node-base" - ] - }, - "node-event-delegate": { - "requires": [ - "node-base", - "event-delegate" - ] - }, - "node-event-simulate": { - "requires": [ - "node-base", - "event-simulate" - ] - }, - "node-flick": { - "requires": [ - "classnamemanager", - "transition", - "event-flick", - "plugin" - ], - "skinnable": true - }, - "node-focusmanager": { - "requires": [ - "attribute", - "node", - "plugin", - "node-event-simulate", - "event-key", - "event-focus" - ] - }, - "node-load": { - "requires": [ - "node-base", - "io-base" - ] - }, - "node-menunav": { - "requires": [ - "node", - "classnamemanager", - "plugin", - "node-focusmanager" - ], - "skinnable": true - }, - "node-pluginhost": { - "requires": [ - "node-base", - "pluginhost" - ] - }, - "node-screen": { - "requires": [ - "dom-screen", - "node-base" - ] - }, - "node-style": { - "requires": [ - "dom-style", - "node-base" - ] - }, - "oop": { - "requires": [ - "yui-base" - ] - }, - "overlay": { - "requires": [ - "widget", - "widget-stdmod", - "widget-position", - "widget-position-align", - "widget-stack", - "widget-position-constrain" - ], - "skinnable": true - }, - "plugin": { - "requires": [ - "base-base" - ] - }, - "pluginattr": { - "requires": [ - "plugin" - ] - }, - "pluginhost": { - "use": [ - "pluginhost-base", - "pluginhost-config" - ] - }, - "pluginhost-base": { - "requires": [ - "yui-base" - ] - }, - "pluginhost-config": { - "requires": [ - "pluginhost-base" - ] - }, - "profiler": { - "requires": [ - "yui-base" - ] - }, - "querystring": { - "use": [ - "querystring-parse", - "querystring-stringify" - ] - }, - "querystring-parse": { - "requires": [ - "yui-base", - "array-extras" - ] - }, - "querystring-parse-simple": { - "requires": [ - "yui-base" - ] - }, - "querystring-stringify": { - "requires": [ - "yui-base" - ] - }, - "querystring-stringify-simple": { - "requires": [ - "yui-base" - ] - }, - "queue-promote": { - "requires": [ - "yui-base" - ] - }, - "range-slider": { - "requires": [ - "slider-base", - "slider-value-range", - "clickable-rail" - ] - }, - "recordset": { - "use": [ - "recordset-base", - "recordset-sort", - "recordset-filter", - "recordset-indexer" - ] - }, - "recordset-base": { - "requires": [ - "base", - "arraylist" - ] - }, - "recordset-filter": { - "requires": [ - "recordset-base", - "array-extras", - "plugin" - ] - }, - "recordset-indexer": { - "requires": [ - "recordset-base", - "plugin" - ] - }, - "recordset-sort": { - "requires": [ - "arraysort", - "recordset-base", - "plugin" - ] - }, - "resize": { - "use": [ - "resize-base", - "resize-proxy", - "resize-constrain" - ] - }, - "resize-base": { - "requires": [ - "base", - "widget", - "substitute", - "event", - "oop", - "dd-drag", - "dd-delegate", - "dd-drop" - ], - "skinnable": true - }, - "resize-constrain": { - "requires": [ - "plugin", - "resize-base" - ] - }, - "resize-plugin": { - "optional": [ - "resize-constrain" - ], - "requires": [ - "resize-base", - "plugin" - ] - }, - "resize-proxy": { - "requires": [ - "plugin", - "resize-base" - ] - }, - "rls": { - "requires": [ - "get", - "features" - ] - }, - "scrollview": { - "requires": [ - "scrollview-base", - "scrollview-scrollbars" - ] - }, - "scrollview-base": { - "requires": [ - "widget", - "event-gestures", - "transition" - ], - "skinnable": true - }, - "scrollview-base-ie": { - "condition": { - "name": "scrollview-base-ie", - "trigger": "scrollview-base", - "ua": "ie" - }, - "requires": [ - "scrollview-base" - ] - }, - "scrollview-paginator": { - "requires": [ - "plugin" - ] - }, - "scrollview-scrollbars": { - "requires": [ - "classnamemanager", - "transition", - "plugin" - ], - "skinnable": true - }, - "selection": { - "requires": [ - "node" - ] - }, - "selector": { - "requires": [ - "selector-native" - ] - }, - "selector-css2": { - "condition": { - "name": "selector-css2", - "test": function (Y) { - var DOCUMENT = Y.config.doc, - ret = DOCUMENT && !('querySelectorAll' in DOCUMENT); +Y_DOM.CUSTOM_STYLES.transform = { + set: function(node, val, style) { + style[TRANSFORM] = val; + }, - return ret; -}, - "trigger": "selector" - }, - "requires": [ - "selector-native" - ] - }, - "selector-css3": { - "requires": [ - "selector-native", - "selector-css2" - ] - }, - "selector-native": { - "requires": [ - "dom-core" - ] - }, - "shim-plugin": { - "requires": [ - "node-style", - "node-pluginhost" - ] - }, - "slider": { - "use": [ - "slider-base", - "slider-value-range", - "clickable-rail", - "range-slider" - ] - }, - "slider-base": { - "requires": [ - "widget", - "dd-constrain", - "substitute" - ], - "skinnable": true - }, - "slider-value-range": { - "requires": [ - "slider-base" - ] - }, - "sortable": { - "requires": [ - "dd-delegate", - "dd-drop-plugin", - "dd-proxy" - ] - }, - "sortable-scroll": { - "requires": [ - "dd-scroll", - "sortable" - ] - }, - "stylesheet": {}, - "substitute": { - "optional": [ - "dump" - ] - }, - "swf": { - "requires": [ - "event-custom", - "node", - "swfdetect" - ] - }, - "swfdetect": {}, - "tabview": { - "requires": [ - "widget", - "widget-parent", - "widget-child", - "tabview-base", - "node-pluginhost", - "node-focusmanager" - ], - "skinnable": true - }, - "tabview-base": { - "requires": [ - "node-event-delegate", - "classnamemanager", - "skin-sam-tabview" - ] - }, - "tabview-plugin": { - "requires": [ - "tabview-base" - ] - }, - "test": { - "requires": [ - "event-simulate", - "event-custom", - "substitute", - "json-stringify" - ], - "skinnable": true - }, - "text": { - "use": [ - "text-accentfold", - "text-wordbreak" - ] - }, - "text-accentfold": { - "requires": [ - "array-extras", - "text-data-accentfold" - ] - }, - "text-data-accentfold": {}, - "text-data-wordbreak": {}, - "text-wordbreak": { - "requires": [ - "array-extras", - "text-data-wordbreak" - ] - }, - "transition": { - "use": [ - "transition-native", - "transition-timer" - ] - }, - "transition-native": { - "requires": [ - "node-base" - ] - }, - "transition-timer": { - "requires": [ - "transition-native", - "node-style" - ] - }, - "uploader": { - "requires": [ - "event-custom", - "node", - "base", - "swf" - ] - }, - "view": { - "requires": [ - "base-build", - "node-event-delegate" - ] - }, - "widget": { - "skinnable": true, - "use": [ - "widget-base", - "widget-htmlparser", - "widget-uievents", - "widget-skin" - ] - }, - "widget-anim": { - "requires": [ - "plugin", - "anim-base", - "widget" - ] - }, - "widget-base": { - "requires": [ - "attribute", - "event-focus", - "base-base", - "base-pluginhost", - "node-base", - "node-style", - "classnamemanager" - ] - }, - "widget-base-ie": { - "condition": { - "name": "widget-base-ie", - "trigger": "widget-base", - "ua": "ie" - }, - "requires": [ - "widget-base" - ] - }, - "widget-child": { - "requires": [ - "base-build", - "widget" - ] - }, - "widget-htmlparser": { - "requires": [ - "widget-base" - ] - }, - "widget-locale": { - "requires": [ - "widget-base" - ] - }, - "widget-modality": { - "requires": [ - "widget", - "plugin", - "gallery-outside-events", - "base-build" - ], - "skinnable": false - }, - "widget-parent": { - "requires": [ - "base-build", - "arraylist", - "widget" - ] - }, - "widget-position": { - "requires": [ - "base-build", - "node-screen", - "widget" - ] - }, - "widget-position-align": { - "requires": [ - "widget-position" - ] - }, - "widget-position-constrain": { - "requires": [ - "widget-position" - ] - }, - "widget-skin": { - "requires": [ - "widget-base" - ] - }, - "widget-stack": { - "requires": [ - "base-build", - "widget" - ], - "skinnable": true - }, - "widget-stdmod": { - "requires": [ - "base-build", - "widget" - ] - }, - "widget-uievents": { - "requires": [ - "widget-base", - "node-event-delegate" - ] - }, - "yql": { - "requires": [ - "jsonp", - "jsonp-url" - ] - }, - "yui": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "yui-log", - "yui-later", - "loader-base", - "loader-rollup", - "loader-yui3" - ] - }, - "yui-base": {}, - "yui-later": { - "requires": [ - "yui-base" - ] - }, - "yui-log": { - "requires": [ - "yui-base" - ] - }, - "yui-rls": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "rls", - "yui-log", - "yui-later" - ] - }, - "yui-throttle": { - "requires": [ - "yui-base" - ] + get: function(node, style) { + return Y_DOM[GET_COMPUTED_STYLE](node, TRANSFORM); } }; -YUI.Env[Y.version].md5 = '8deea7d26f0f85ddcacf3aa4da9bfed6'; - -}, '3.4.0' ,{requires:['loader-base']}); +})(Y); +(function(Y) { +var PARSE_INT = parseInt, + RE = RegExp; -YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-base','yui-log','yui-later','loader-base', 'loader-rollup', 'loader-yui3' ]}); - -YUI.add('oop', function(Y) { +Y.Color = { + KEYWORDS: { + black: '000', + silver: 'c0c0c0', + gray: '808080', + white: 'fff', + maroon: '800000', + red: 'f00', + purple: '800080', + fuchsia: 'f0f', + green: '008000', + lime: '0f0', + olive: '808000', + yellow: 'ff0', + navy: '000080', + blue: '00f', + teal: '008080', + aqua: '0ff' + }, -/** -Supplies object inheritance and manipulation utilities. + re_RGB: /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i, + re_hex: /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i, + re_hex3: /([0-9A-F])/gi, -This adds additional functionaity to what is provided in `yui-base`, and the -methods are applied directly to the YUI instance. This module is required for -most YUI components. + toRGB: function(val) { + if (!Y.Color.re_RGB.test(val)) { + val = Y.Color.toHex(val); + } -@module oop -**/ + if(Y.Color.re_hex.exec(val)) { + val = 'rgb(' + [ + PARSE_INT(RE.$1, 16), + PARSE_INT(RE.$2, 16), + PARSE_INT(RE.$3, 16) + ].join(', ') + ')'; + } + return val; + }, -/** -These methods are added to the YUI instance by the `oop` module. + toHex: function(val) { + val = Y.Color.KEYWORDS[val] || val; + if (Y.Color.re_RGB.exec(val)) { + val = [ + Number(RE.$1).toString(16), + Number(RE.$2).toString(16), + Number(RE.$3).toString(16) + ]; -@class YUI~oop -**/ + for (var i = 0; i < val.length; i++) { + if (val[i].length < 2) { + val[i] = '0' + val[i]; + } + } -var L = Y.Lang, - A = Y.Array, - OP = Object.prototype, - CLONE_MARKER = '_~yuim~_', + val = val.join(''); + } - hasOwn = OP.hasOwnProperty, - toString = OP.toString; + if (val.length < 6) { + val = val.replace(Y.Color.re_hex3, '$1$1'); + } -function dispatch(o, f, c, proto, action) { - if (o && o[action] && o !== Y) { - return o[action].call(o, f, c); - } else { - switch (A.test(o)) { - case 1: - return A[action](o, f, c); - case 2: - return A[action](Y.Array(o, 0, true), f, c); - default: - return Y.Object[action](o, f, c, proto); + if (val !== 'transparent' && val.indexOf('#') < 0) { + val = '#' + val; } - } -} - /** - Augments the _receiver_ with prototype properties from the _supplier_. The - receiver may be a constructor function or an object. The supplier must be a - constructor function. - - If the _receiver_ is an object, then the _supplier_ constructor will be called - immediately after _receiver_ is augmented, with _receiver_ as the `this` object. - - If the _receiver_ is a constructor function, then all prototype methods of - _supplier_ that are copied to _receiver_ will be sequestered, and the - _supplier_ constructor will not be called immediately. The first time any - sequestered method is called on the _receiver_'s prototype, all sequestered - methods will be immediately copied to the _receiver_'s prototype, the - _supplier_'s constructor will be executed, and finally the newly unsequestered - method that was called will be executed. - - This sequestering logic sounds like a bunch of complicated voodoo, but it makes - it cheap to perform frequent augmentation by ensuring that suppliers' - constructors are only called if a supplied method is actually used. If none of - the supplied methods is ever used, then there's no need to take the performance - hit of calling the _supplier_'s constructor. - - @method augment - @param {Function|Object} receiver Object or function to be augmented. - @param {Function} supplier Function that supplies the prototype properties with - which to augment the _receiver_. - @param {Boolean} [overwrite=false] If `true`, properties already on the receiver - will be overwritten if found on the supplier's prototype. - @param {String[]} [whitelist] An array of property names. If specified, - only the whitelisted prototype properties will be applied to the receiver, and - all others will be ignored. - @param {Array|any} [args] Argument or array of arguments to pass to the - supplier's constructor when initializing. - @return {Function} Augmented object. - **/ - Y.augment = function (receiver, supplier, overwrite, whitelist, args) { - var rProto = receiver.prototype, - sequester = rProto && supplier, - sProto = supplier.prototype, - to = rProto || receiver, - - copy, - newPrototype, - replacements, - sequestered, - unsequester; - - args = args ? Y.Array(args) : []; - - if (sequester) { - newPrototype = {}; - replacements = {}; - sequestered = {}; - - copy = function (value, key) { - if (overwrite || !(key in rProto)) { - if (toString.call(value) === '[object Function]') { - sequestered[key] = value; - - newPrototype[key] = replacements[key] = function () { - return unsequester(this, value, arguments); - }; - } else { - newPrototype[key] = value; - } - } - }; + return val.toUpperCase(); + } +}; +})(Y); - unsequester = function (instance, fn, fnArgs) { - // Unsequester all sequestered functions. - for (var key in sequestered) { - if (hasOwn.call(sequestered, key) - && instance[key] === replacements[key]) { - instance[key] = sequestered[key]; - } - } - // Execute the supplier constructor. - supplier.apply(instance, args); +}, '3.4.0' ,{requires:['dom-base']}); +YUI.add('dom-style-ie', function(Y) { - // Finally, execute the original sequestered function. - return fn.apply(instance, fnArgs); - }; +(function(Y) { +var HAS_LAYOUT = 'hasLayout', + PX = 'px', + FILTER = 'filter', + FILTERS = 'filters', + OPACITY = 'opacity', + AUTO = 'auto', - if (whitelist) { - Y.Array.each(whitelist, function (name) { - if (name in sProto) { - copy(sProto[name], name); - } - }); - } else { - Y.Object.each(sProto, copy, null, true); - } - } + BORDER_WIDTH = 'borderWidth', + BORDER_TOP_WIDTH = 'borderTopWidth', + BORDER_RIGHT_WIDTH = 'borderRightWidth', + BORDER_BOTTOM_WIDTH = 'borderBottomWidth', + BORDER_LEFT_WIDTH = 'borderLeftWidth', + WIDTH = 'width', + HEIGHT = 'height', + TRANSPARENT = 'transparent', + VISIBLE = 'visible', + GET_COMPUTED_STYLE = 'getComputedStyle', + UNDEFINED = undefined, + documentElement = Y.config.doc.documentElement, - Y.mix(to, newPrototype || sProto, overwrite, whitelist); + testFeature = Y.Features.test, + addFeature = Y.Features.add, - if (!sequester) { - supplier.apply(to, args); - } + // TODO: unit-less lineHeight (e.g. 1.22) + re_unit = /^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i, - return receiver; - }; + isIE8 = (Y.UA.ie >= 8), -/** - * Applies object properties from the supplier to the receiver. If - * the target has the property, and the property is an object, the target - * object will be augmented with the supplier's value. If the property - * is an array, the suppliers value will be appended to the target. - * @method aggregate - * @param {function} r the object to receive the augmentation. - * @param {function} s the object that supplies the properties to augment. - * @param {boolean} ov if true, properties already on the receiver - * will be overwritten if found on the supplier. - * @param {string[]} wl a whitelist. If supplied, only properties in - * this list will be applied to the receiver. - * @return {object} the extended object. - */ -Y.aggregate = function(r, s, ov, wl) { - return Y.mix(r, s, ov, wl, 0, true); -}; + _getStyleObj = function(node) { + return node.currentStyle || node.style; + }, -/** - * Utility to set up the prototype, constructor and superclass properties to - * support an inheritance strategy that can chain constructors and methods. - * Static members will not be inherited. - * - * @method extend - * @param {function} r the object to modify. - * @param {function} s the object to inherit. - * @param {object} px prototype properties to add/override. - * @param {object} sx static properties to add/override. - * @return {object} the extended object. - */ -Y.extend = function(r, s, px, sx) { - if (!s || !r) { - Y.error('extend failed, verify dependencies'); - } + ComputedStyle = { + CUSTOM_STYLES: {}, - var sp = s.prototype, rp = Y.Object(sp); - r.prototype = rp; + get: function(el, property) { + var value = '', + current; - rp.constructor = r; - r.superclass = sp; - - // assign constructor property - if (s != Object && sp.constructor == OP.constructor) { - sp.constructor = s; - } + if (el) { + current = _getStyleObj(el)[property]; - // add prototype overrides - if (px) { - Y.mix(rp, px, true); - } + if (property === OPACITY && Y.DOM.CUSTOM_STYLES[OPACITY]) { + value = Y.DOM.CUSTOM_STYLES[OPACITY].get(el); + } else if (!current || (current.indexOf && current.indexOf(PX) > -1)) { // no need to convert + value = current; + } else if (Y.DOM.IE.COMPUTED[property]) { // use compute function + value = Y.DOM.IE.COMPUTED[property](el, property); + } else if (re_unit.test(current)) { // convert to pixel + value = ComputedStyle.getPixel(el, property) + PX; + } else { + value = current; + } + } - // add object overrides - if (sx) { - Y.mix(r, sx, true); - } + return value; + }, - return r; -}; + sizeOffsets: { + width: ['Left', 'Right'], + height: ['Top', 'Bottom'], + top: ['Top'], + bottom: ['Bottom'] + }, -/** - * Executes the supplied function for each item in - * a collection. Supports arrays, objects, and - * Y.NodeLists - * @method each - * @param {object} o the object to iterate. - * @param {function} f the function to execute. This function - * receives the value, key, and object as parameters. - * @param {object} c the execution context for the function. - * @param {boolean} proto if true, prototype properties are - * iterated on objects. - * @return {YUI} the YUI instance. - */ -Y.each = function(o, f, c, proto) { - return dispatch(o, f, c, proto, 'each'); -}; + getOffset: function(el, prop) { + var current = _getStyleObj(el)[prop], // value of "width", "top", etc. + capped = prop.charAt(0).toUpperCase() + prop.substr(1), // "Width", "Top", etc. + offset = 'offset' + capped, // "offsetWidth", "offsetTop", etc. + pixel = 'pixel' + capped, // "pixelWidth", "pixelTop", etc. + sizeOffsets = ComputedStyle.sizeOffsets[prop], + mode = el.ownerDocument.compatMode, + value = ''; -/** - * Executes the supplied function for each item in - * a collection. The operation stops if the function - * returns true. Supports arrays, objects, and - * Y.NodeLists. - * @method some - * @param {object} o the object to iterate. - * @param {function} f the function to execute. This function - * receives the value, key, and object as parameters. - * @param {object} c the execution context for the function. - * @param {boolean} proto if true, prototype properties are - * iterated on objects. - * @return {boolean} true if the function ever returns true, - * false otherwise. - */ -Y.some = function(o, f, c, proto) { - return dispatch(o, f, c, proto, 'some'); -}; + // IE pixelWidth incorrect for percent + // manually compute by subtracting padding and border from offset size + // NOTE: clientWidth/Height (size minus border) is 0 when current === AUTO so offsetHeight is used + // reverting to auto from auto causes position stacking issues (old impl) + if (current === AUTO || current.indexOf('%') > -1) { + value = el['offset' + capped]; -/** - * Deep obj/array copy. Function clones are actually - * wrappers around the original function. - * Array-like objects are treated as arrays. - * Primitives are returned untouched. Optionally, a - * function can be provided to handle other data types, - * filter keys, validate values, etc. - * - * @method clone - * @param {object} o what to clone. - * @param {boolean} safe if true, objects will not have prototype - * items from the source. If false, they will. In this case, the - * original is initially protected, but the clone is not completely - * immune from changes to the source object prototype. Also, cloned - * prototype items that are deleted from the clone will result - * in the value of the source prototype being exposed. If operating - * on a non-safe clone, items should be nulled out rather than deleted. - * @param {function} f optional function to apply to each item in a - * collection; it will be executed prior to applying the value to - * the new object. Return false to prevent the copy. - * @param {object} c optional execution context for f. - * @param {object} owner Owner object passed when clone is iterating - * an object. Used to set up context for cloned functions. - * @param {object} cloned hash of previously cloned objects to avoid - * multiple clones. - * @return {Array|Object} the cloned object. - */ -Y.clone = function(o, safe, f, c, owner, cloned) { + if (mode !== 'BackCompat') { + if (sizeOffsets[0]) { + value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[0]); + value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[0] + 'Width', 1); + } - if (!L.isObject(o)) { - return o; - } + if (sizeOffsets[1]) { + value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[1]); + value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[1] + 'Width', 1); + } + } - // @todo cloning YUI instances doesn't currently work - if (Y.instanceOf(o, YUI)) { - return o; - } + } else { // use style.pixelWidth, etc. to convert to pixels + // need to map style.width to currentStyle (no currentStyle.pixelWidth) + if (!el.style[pixel] && !el.style[prop]) { + el.style[prop] = current; + } + value = el.style[pixel]; + + } + return value + PX; + }, - var o2, marked = cloned || {}, stamp, - yeach = Y.each; + borderMap: { + thin: (isIE8) ? '1px' : '2px', + medium: (isIE8) ? '3px': '4px', + thick: (isIE8) ? '5px' : '6px' + }, - switch (L.type(o)) { - case 'date': - return new Date(o); - case 'regexp': - // if we do this we need to set the flags too - // return new RegExp(o.source); - return o; - case 'function': - // o2 = Y.bind(o, owner); - // break; - return o; - case 'array': - o2 = []; - break; - default: + getBorderWidth: function(el, property, omitUnit) { + var unit = omitUnit ? '' : PX, + current = el.currentStyle[property]; - // #2528250 only one clone of a given object should be created. - if (o[CLONE_MARKER]) { - return marked[o[CLONE_MARKER]]; + if (current.indexOf(PX) < 0) { // look up keywords if a border exists + if (ComputedStyle.borderMap[current] && + el.currentStyle.borderStyle !== 'none') { + current = ComputedStyle.borderMap[current]; + } else { // otherwise no border (default is "medium") + current = 0; + } } + return (omitUnit) ? parseFloat(current) : current; + }, - stamp = Y.guid(); + getPixel: function(node, att) { + // use pixelRight to convert to px + var val = null, + style = _getStyleObj(node), + styleRight = style.right, + current = style[att]; - o2 = (safe) ? {} : Y.Object(o); + node.style.right = current; + val = node.style.pixelRight; + node.style.right = styleRight; // revert - o[CLONE_MARKER] = stamp; - marked[stamp] = o; - } + return val; + }, - // #2528250 don't try to clone element properties - if (!o.addEventListener && !o.attachEvent) { - yeach(o, function(v, k) { -if ((k || k === 0) && (!f || (f.call(c || this, v, k, this, o) !== false))) { - if (k !== CLONE_MARKER) { - if (k == 'prototype') { - // skip the prototype - // } else if (o[k] === o) { - // this[k] = this; - } else { - this[k] = - Y.clone(v, safe, f, c, owner || o, marked); - } - } + getMargin: function(node, att) { + var val, + style = _getStyleObj(node); + + if (style[att] == AUTO) { + val = 0; + } else { + val = ComputedStyle.getPixel(node, att); } - }, o2); - } + return val + PX; + }, - if (!cloned) { - Y.Object.each(marked, function(v, k) { - if (v[CLONE_MARKER]) { - try { - delete v[CLONE_MARKER]; - } catch (e) { - v[CLONE_MARKER] = null; - } + getVisibility: function(node, att) { + var current; + while ( (current = node.currentStyle) && current[att] == 'inherit') { // NOTE: assignment in test + node = node.parentNode; } - }, this); - marked = null; - } + return (current) ? current[att] : VISIBLE; + }, - return o2; -}; + getColor: function(node, att) { + var current = _getStyleObj(node)[att]; + if (!current || current === TRANSPARENT) { + Y.DOM.elementByAxis(node, 'parentNode', null, function(parent) { + current = _getStyleObj(parent)[att]; + if (current && current !== TRANSPARENT) { + node = parent; + return true; + } + }); + } -/** - * Returns a function that will execute the supplied function in the - * supplied object's context, optionally adding any additional - * supplied parameters to the beginning of the arguments collection the - * supplied to the function. - * - * @method bind - * @param {Function|String} f the function to bind, or a function name - * to execute on the context object. - * @param {object} c the execution context. - * @param {any} args* 0..n arguments to include before the arguments the - * function is executed with. - * @return {function} the wrapped function. - */ -Y.bind = function(f, c) { - var xargs = arguments.length > 2 ? - Y.Array(arguments, 2, true) : null; - return function() { - var fn = L.isString(f) ? c[f] : f, - args = (xargs) ? - xargs.concat(Y.Array(arguments, 0, true)) : arguments; - return fn.apply(c || fn, args); - }; -}; - -/** - * Returns a function that will execute the supplied function in the - * supplied object's context, optionally adding any additional - * supplied parameters to the end of the arguments the function - * is executed with. - * - * @method rbind - * @param {Function|String} f the function to bind, or a function name - * to execute on the context object. - * @param {object} c the execution context. - * @param {any} args* 0..n arguments to append to the end of - * arguments collection supplied to the function. - * @return {function} the wrapped function. - */ -Y.rbind = function(f, c) { - var xargs = arguments.length > 2 ? Y.Array(arguments, 2, true) : null; - return function() { - var fn = L.isString(f) ? c[f] : f, - args = (xargs) ? - Y.Array(arguments, 0, true).concat(xargs) : arguments; - return fn.apply(c || fn, args); - }; -}; + return Y.Color.toRGB(current); + }, + getBorderColor: function(node, att) { + var current = _getStyleObj(node), + val = current[att] || current.color; + return Y.Color.toRGB(Y.Color.toHex(val)); + } + }, -}, '3.4.0' ,{requires:['yui-base']}); -YUI.add('dom-core', function(Y) { + //fontSize: getPixelFont, + IEComputed = {}; -var NODE_TYPE = 'nodeType', - OWNER_DOCUMENT = 'ownerDocument', - DOCUMENT_ELEMENT = 'documentElement', - DEFAULT_VIEW = 'defaultView', - PARENT_WINDOW = 'parentWindow', - TAG_NAME = 'tagName', - PARENT_NODE = 'parentNode', - PREVIOUS_SIBLING = 'previousSibling', - NEXT_SIBLING = 'nextSibling', - CONTAINS = 'contains', - COMPARE_DOCUMENT_POSITION = 'compareDocumentPosition', - EMPTY_ARRAY = [], +addFeature('style', 'computedStyle', { + test: function() { + return 'getComputedStyle' in Y.config.win; + } +}); -/** - * The DOM utility provides a cross-browser abtraction layer - * normalizing DOM tasks, and adds extra helper functionality - * for other common tasks. - * @module dom - * @submodule dom-base - * @for DOM - * - */ +addFeature('style', 'opacity', { + test: function() { + return 'opacity' in documentElement.style; + } +}); -/** - * Provides DOM helper methods. - * @class DOM - * - */ - -Y_DOM = { - /** - * Returns the HTMLElement with the given ID (Wrapper for document.getElementById). - * @method byId - * @param {String} id the id attribute - * @param {Object} doc optional The document to search. Defaults to current document - * @return {HTMLElement | null} The HTMLElement with the id, or null if none found. - */ - byId: function(id, doc) { - // handle dupe IDs and IE name collision - return Y_DOM.allById(id, doc)[0] || null; - }, +addFeature('style', 'filter', { + test: function() { + return 'filters' in documentElement; + } +}); - /* - * Finds the ancestor of the element. - * @method ancestor - * @param {HTMLElement} element The html element. - * @param {Function} fn optional An optional boolean test to apply. - * The optional function is passed the current DOM node being tested as its only argument. - * If no function is given, the parentNode is returned. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * @return {HTMLElement | null} The matching DOM node or null if none found. - */ - ancestor: function(element, fn, testSelf) { - var ret = null; - if (testSelf) { - ret = (!fn || fn(element)) ? element : null; +// use alpha filter for IE opacity +if (!testFeature('style', 'opacity') && testFeature('style', 'filter')) { + Y.DOM.CUSTOM_STYLES[OPACITY] = { + get: function(node) { + var val = 100; + try { // will error if no DXImageTransform + val = node[FILTERS]['DXImageTransform.Microsoft.Alpha'][OPACITY]; - } - return ret || Y_DOM.elementByAxis(element, PARENT_NODE, fn, null); - }, + } catch(e) { + try { // make sure its in the document + val = node[FILTERS]('alpha')[OPACITY]; + } catch(err) { + Y.log('getStyle: IE opacity filter not found; returning 1', 'warn', 'dom-style'); + } + } + return val / 100; + }, - /* - * Finds the ancestors of the element. - * @method ancestors - * @param {HTMLElement} element The html element. - * @param {Function} fn optional An optional boolean test to apply. - * The optional function is passed the current DOM node being tested as its only argument. - * If no function is given, all ancestors are returned. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * @return {Array} An array containing all matching DOM nodes. - */ - ancestors: function(element, fn, testSelf) { - var ancestor = Y_DOM.ancestor.apply(Y_DOM, arguments), - ret = (ancestor) ? [ancestor] : []; + set: function(node, val, style) { + var current, + styleObj = _getStyleObj(node), + currentFilter = styleObj[FILTER]; - while ((ancestor = Y_DOM.ancestor(ancestor, fn))) { - if (ancestor) { - ret.unshift(ancestor); + style = style || node.style; + if (val === '') { // normalize inline style behavior + current = (OPACITY in styleObj) ? styleObj[OPACITY] : 1; // revert to original opacity + val = current; } - } - return ret; - }, + if (typeof currentFilter == 'string') { // in case not appended + style[FILTER] = currentFilter.replace(/alpha([^)]*\))/gi, '') + + ((val < 1) ? 'alpha(' + OPACITY + '=' + val * 100 + ')' : ''); - /** - * Searches the element by the given axis for the first matching element. - * @method elementByAxis - * @param {HTMLElement} element The html element. - * @param {String} axis The axis to search (parentNode, nextSibling, previousSibling). - * @param {Function} fn optional An optional boolean test to apply. - * @param {Boolean} all optional Whether all node types should be returned, or just element nodes. - * The optional function is passed the current HTMLElement being tested as its only argument. - * If no function is given, the first element is returned. - * @return {HTMLElement | null} The matching element or null if none found. - */ - elementByAxis: function(element, axis, fn, all) { - while (element && (element = element[axis])) { // NOTE: assignment - if ( (all || element[TAG_NAME]) && (!fn || fn(element)) ) { - return element; + if (!style[FILTER]) { + style.removeAttribute(FILTER); } - } - return null; - }, - /** - * Determines whether or not one HTMLElement is or contains another HTMLElement. - * @method contains - * @param {HTMLElement} element The containing html element. - * @param {HTMLElement} needle The html element that may be contained. - * @return {Boolean} Whether or not the element is or contains the needle. - */ - contains: function(element, needle) { - var ret = false; + if (!styleObj[HAS_LAYOUT]) { + style.zoom = 1; // needs layout + } + } + } + }; +} - if ( !needle || !element || !needle[NODE_TYPE] || !element[NODE_TYPE]) { - ret = false; - } else if (element[CONTAINS]) { - if (Y.UA.opera || needle[NODE_TYPE] === 1) { // IE & SAF contains fail if needle not an ELEMENT_NODE - ret = element[CONTAINS](needle); +try { + Y.config.doc.createElement('div').style.height = '-1px'; +} catch(e) { // IE throws error on invalid style set; trap common cases + Y.DOM.CUSTOM_STYLES.height = { + set: function(node, val, style) { + var floatVal = parseFloat(val); + if (floatVal >= 0 || val === 'auto' || val === '') { + style.height = val; } else { - ret = Y_DOM._bruteContains(element, needle); - } - } else if (element[COMPARE_DOCUMENT_POSITION]) { // gecko - if (element === needle || !!(element[COMPARE_DOCUMENT_POSITION](needle) & 16)) { - ret = true; + Y.log('invalid style value for height: ' + val, 'warn', 'dom-style'); } } + }; - return ret; - }, - - /** - * Determines whether or not the HTMLElement is part of the document. - * @method inDoc - * @param {HTMLElement} element The containing html element. - * @param {HTMLElement} doc optional The document to check. - * @return {Boolean} Whether or not the element is attached to the document. - */ - inDoc: function(element, doc) { - var ret = false, - rootNode; - - if (element && element.nodeType) { - (doc) || (doc = element[OWNER_DOCUMENT]); - - rootNode = doc[DOCUMENT_ELEMENT]; - - // contains only works with HTML_ELEMENT - if (rootNode && rootNode.contains && element.tagName) { - ret = rootNode.contains(element); + Y.DOM.CUSTOM_STYLES.width = { + set: function(node, val, style) { + var floatVal = parseFloat(val); + if (floatVal >= 0 || val === 'auto' || val === '') { + style.width = val; } else { - ret = Y_DOM.contains(rootNode, element); + Y.log('invalid style value for width: ' + val, 'warn', 'dom-style'); } } + }; +} - return ret; +if (!testFeature('style', 'computedStyle')) { + // TODO: top, right, bottom, left + IEComputed[WIDTH] = IEComputed[HEIGHT] = ComputedStyle.getOffset; - }, + IEComputed.color = IEComputed.backgroundColor = ComputedStyle.getColor; - allById: function(id, root) { - root = root || Y.config.doc; - var nodes = [], - ret = [], - i, - node; + IEComputed[BORDER_WIDTH] = IEComputed[BORDER_TOP_WIDTH] = IEComputed[BORDER_RIGHT_WIDTH] = + IEComputed[BORDER_BOTTOM_WIDTH] = IEComputed[BORDER_LEFT_WIDTH] = + ComputedStyle.getBorderWidth; - if (root.querySelectorAll) { - ret = root.querySelectorAll('[id="' + id + '"]'); - } else if (root.all) { - nodes = root.all(id); + IEComputed.marginTop = IEComputed.marginRight = IEComputed.marginBottom = + IEComputed.marginLeft = ComputedStyle.getMargin; - if (nodes) { - // root.all may return HTMLElement or HTMLCollection. - // some elements are also HTMLCollection (FORM, SELECT). - if (nodes.nodeName) { - if (nodes.id === id) { // avoid false positive on name - ret.push(nodes); - nodes = EMPTY_ARRAY; // done, no need to filter - } else { // prep for filtering - nodes = [nodes]; - } - } + IEComputed.visibility = ComputedStyle.getVisibility; + IEComputed.borderColor = IEComputed.borderTopColor = + IEComputed.borderRightColor = IEComputed.borderBottomColor = + IEComputed.borderLeftColor = ComputedStyle.getBorderColor; - if (nodes.length) { - // filter out matches on node.name - // and element.id as reference to element with id === 'id' - for (i = 0; node = nodes[i++];) { - if (node.id === id || - (node.attributes && node.attributes.id && - node.attributes.id.value === id)) { - ret.push(node); - } - } - } - } - } else { - ret = [Y_DOM._getDoc(root).getElementById(id)]; - } - - return ret; - }, + Y.DOM[GET_COMPUTED_STYLE] = ComputedStyle.get; + Y.namespace('DOM.IE'); + Y.DOM.IE.COMPUTED = IEComputed; + Y.DOM.IE.ComputedStyle = ComputedStyle; +} - isWindow: function(obj) { - return !!(obj && obj.alert && obj.document); - }, +})(Y); - _removeChildNodes: function(node) { - while (node.firstChild) { - node.removeChild(node.firstChild); - } - }, - siblings: function(node, fn) { - var nodes = [], - sibling = node; +}, '3.4.0' ,{requires:['dom-style']}); +YUI.add('dom-screen', function(Y) { - while ((sibling = sibling[PREVIOUS_SIBLING])) { - if (sibling[TAG_NAME] && (!fn || fn(sibling))) { - nodes.unshift(sibling); - } - } +(function(Y) { - sibling = node; - while ((sibling = sibling[NEXT_SIBLING])) { - if (sibling[TAG_NAME] && (!fn || fn(sibling))) { - nodes.push(sibling); - } - } +/** + * Adds position and region management functionality to DOM. + * @module dom + * @submodule dom-screen + * @for DOM + */ - return nodes; - }, +var DOCUMENT_ELEMENT = 'documentElement', + COMPAT_MODE = 'compatMode', + POSITION = 'position', + FIXED = 'fixed', + RELATIVE = 'relative', + LEFT = 'left', + TOP = 'top', + _BACK_COMPAT = 'BackCompat', + MEDIUM = 'medium', + BORDER_LEFT_WIDTH = 'borderLeftWidth', + BORDER_TOP_WIDTH = 'borderTopWidth', + GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', + GET_COMPUTED_STYLE = 'getComputedStyle', + + Y_DOM = Y.DOM, + + // TODO: how about thead/tbody/tfoot/tr? + // TODO: does caption matter? + RE_TABLE = /^t(?:able|d|h)$/i, + SCROLL_NODE; + +if (Y.UA.ie) { + if (Y.config.doc[COMPAT_MODE] !== 'BackCompat') { + SCROLL_NODE = DOCUMENT_ELEMENT; + } else { + SCROLL_NODE = 'body'; + } +} + +Y.mix(Y_DOM, { /** - * Brute force version of contains. - * Used for browsers without contains support for non-HTMLElement Nodes (textNodes, etc). - * @method _bruteContains - * @private - * @param {HTMLElement} element The containing html element. - * @param {HTMLElement} needle The html element that may be contained. - * @return {Boolean} Whether or not the element is or contains the needle. + * Returns the inner height of the viewport (exludes scrollbar). + * @method winHeight + * @return {Number} The current height of the viewport. */ - _bruteContains: function(element, needle) { - while (needle) { - if (element === needle) { - return true; - } - needle = needle.parentNode; - } - return false; + winHeight: function(node) { + var h = Y_DOM._getWinSize(node).height; + Y.log('winHeight returning ' + h, 'info', 'dom-screen'); + return h; }, -// TODO: move to Lang? /** - * Memoizes dynamic regular expressions to boost runtime performance. - * @method _getRegExp - * @private - * @param {String} str The string to convert to a regular expression. - * @param {String} flags optional An optinal string of flags. - * @return {RegExp} An instance of RegExp + * Returns the inner width of the viewport (exludes scrollbar). + * @method winWidth + * @return {Number} The current width of the viewport. */ - _getRegExp: function(str, flags) { - flags = flags || ''; - Y_DOM._regexCache = Y_DOM._regexCache || {}; - if (!Y_DOM._regexCache[str + flags]) { - Y_DOM._regexCache[str + flags] = new RegExp(str, flags); - } - return Y_DOM._regexCache[str + flags]; + winWidth: function(node) { + var w = Y_DOM._getWinSize(node).width; + Y.log('winWidth returning ' + w, 'info', 'dom-screen'); + return w; }, -// TODO: make getDoc/Win true privates? /** - * returns the appropriate document. - * @method _getDoc - * @private - * @param {HTMLElement} element optional Target element. - * @return {Object} The document for the given element or the default document. + * Document height + * @method docHeight + * @return {Number} The current height of the document. */ - _getDoc: function(element) { - var doc = Y.config.doc; - if (element) { - doc = (element[NODE_TYPE] === 9) ? element : // element === document - element[OWNER_DOCUMENT] || // element === DOM node - element.document || // element === window - Y.config.doc; // default - } - - return doc; + docHeight: function(node) { + var h = Y_DOM._getDocSize(node).height; + Y.log('docHeight returning ' + h, 'info', 'dom-screen'); + return Math.max(h, Y_DOM._getWinSize(node).height); }, /** - * returns the appropriate window. - * @method _getWin - * @private - * @param {HTMLElement} element optional Target element. - * @return {Object} The window for the given element or the default window. + * Document width + * @method docWidth + * @return {Number} The current width of the document. */ - _getWin: function(element) { - var doc = Y_DOM._getDoc(element); - return doc[DEFAULT_VIEW] || doc[PARENT_WINDOW] || Y.config.win; + docWidth: function(node) { + var w = Y_DOM._getDocSize(node).width; + Y.log('docWidth returning ' + w, 'info', 'dom-screen'); + return Math.max(w, Y_DOM._getWinSize(node).width); }, - _batch: function(nodes, fn, arg1, arg2, arg3, etc) { - fn = (typeof fn === 'string') ? Y_DOM[fn] : fn; - var result, - i = 0, - node, - ret; - - if (fn && nodes) { - while ((node = nodes[i++])) { - result = result = fn.call(Y_DOM, node, arg1, arg2, arg3, etc); - if (typeof result !== 'undefined') { - (ret) || (ret = []); - ret.push(result); - } - } - } - - return (typeof ret !== 'undefined') ? ret : nodes; + /** + * Amount page has been scroll horizontally + * @method docScrollX + * @return {Number} The current amount the screen is scrolled horizontally. + */ + docScrollX: function(node, doc) { + doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization + var dv = doc.defaultView, + pageOffset = (dv) ? dv.pageXOffset : 0; + return Math.max(doc[DOCUMENT_ELEMENT].scrollLeft, doc.body.scrollLeft, pageOffset); }, - wrap: function(node, html) { - var parent = Y.DOM.create(html), - nodes = parent.getElementsByTagName('*'); - - if (nodes.length) { - parent = nodes[nodes.length - 1]; - } - - if (node.parentNode) { - node.parentNode.replaceChild(parent, node); - } - parent.appendChild(node); + /** + * Amount page has been scroll vertically + * @method docScrollY + * @return {Number} The current amount the screen is scrolled vertically. + */ + docScrollY: function(node, doc) { + doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization + var dv = doc.defaultView, + pageOffset = (dv) ? dv.pageYOffset : 0; + return Math.max(doc[DOCUMENT_ELEMENT].scrollTop, doc.body.scrollTop, pageOffset); }, - unwrap: function(node) { - var parent = node.parentNode, - lastChild = parent.lastChild, - next = node, - grandparent; + /** + * Gets the current position of an element based on page coordinates. + * Element must be part of the DOM tree to have page coordinates + * (display:none or elements not appended return false). + * @method getXY + * @param element The target element + * @return {Array} The XY position of the element - if (parent) { - grandparent = parent.parentNode; - if (grandparent) { - while (node !== lastChild) { - next = node.nextSibling; - grandparent.insertBefore(node, parent); - node = next; + TODO: test inDocument/display? + */ + getXY: function() { + if (Y.config.doc[DOCUMENT_ELEMENT][GET_BOUNDING_CLIENT_RECT]) { + return function(node) { + var xy = null, + scrollLeft, + scrollTop, + box, + off1, off2, + bLeft, bTop, + mode, + doc, + inDoc, + rootNode; + + if (node && node.tagName) { + doc = node.ownerDocument; + rootNode = doc[DOCUMENT_ELEMENT]; + + // inline inDoc check for perf + if (rootNode.contains) { + inDoc = rootNode.contains(node); + } else { + inDoc = Y.DOM.contains(rootNode, node); + } + + if (inDoc) { + scrollLeft = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollLeft : Y_DOM.docScrollX(node, doc); + scrollTop = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollTop : Y_DOM.docScrollY(node, doc); + box = node[GET_BOUNDING_CLIENT_RECT](); + xy = [box.left, box.top]; + + if (Y.UA.ie) { + off1 = 2; + off2 = 2; + mode = doc[COMPAT_MODE]; + bLeft = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_LEFT_WIDTH); + bTop = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_TOP_WIDTH); + + if (Y.UA.ie === 6) { + if (mode !== _BACK_COMPAT) { + off1 = 0; + off2 = 0; + } + } + + if ((mode == _BACK_COMPAT)) { + if (bLeft !== MEDIUM) { + off1 = parseInt(bLeft, 10); + } + if (bTop !== MEDIUM) { + off2 = parseInt(bTop, 10); + } + } + + xy[0] -= off1; + xy[1] -= off2; + + } + + if ((scrollTop || scrollLeft)) { + if (!Y.UA.ios || (Y.UA.ios >= 4.2)) { + xy[0] += scrollLeft; + xy[1] += scrollTop; + } + + } + } else { + xy = Y_DOM._getOffset(node); + } } - grandparent.replaceChild(lastChild, parent); - } else { - parent.removeChild(node); + return xy; } - } - }, + } else { + return function(node) { // manually calculate by crawling up offsetParents + //Calculate the Top and Left border sizes (assumes pixels) + var xy = null, + doc, + parentNode, + bCheck, + scrollTop, + scrollLeft; - generateID: function(el) { - var id = el.id; + if (node) { + if (Y_DOM.inDoc(node)) { + xy = [node.offsetLeft, node.offsetTop]; + doc = node.ownerDocument; + parentNode = node; + // TODO: refactor with !! or just falsey + bCheck = ((Y.UA.gecko || Y.UA.webkit > 519) ? true : false); - if (!id) { - id = Y.stamp(el); - el.id = id; - } + // TODO: worth refactoring for TOP/LEFT only? + while ((parentNode = parentNode.offsetParent)) { + xy[0] += parentNode.offsetLeft; + xy[1] += parentNode.offsetTop; + if (bCheck) { + xy = Y_DOM._calcBorders(parentNode, xy); + } + } - return id; - } -}; + // account for any scrolled ancestors + if (Y_DOM.getStyle(node, POSITION) != FIXED) { + parentNode = node; + while ((parentNode = parentNode.parentNode)) { + scrollTop = parentNode.scrollTop; + scrollLeft = parentNode.scrollLeft; -Y.DOM = Y_DOM; + //Firefox does something funky with borders when overflow is not visible. + if (Y.UA.gecko && (Y_DOM.getStyle(parentNode, 'overflow') !== 'visible')) { + xy = Y_DOM._calcBorders(parentNode, xy); + } + + if (scrollTop || scrollLeft) { + xy[0] -= scrollLeft; + xy[1] -= scrollTop; + } + } + xy[0] += Y_DOM.docScrollX(node, doc); + xy[1] += Y_DOM.docScrollY(node, doc); -}, '3.4.0' ,{requires:['oop','features']}); -YUI.add('dom-attrs', function(Y) { + } else { + //Fix FIXED position -- add scrollbars + xy[0] += Y_DOM.docScrollX(node, doc); + xy[1] += Y_DOM.docScrollY(node, doc); + } + } else { + xy = Y_DOM._getOffset(node); + } + } -var documentElement = Y.config.doc.documentElement, - Y_DOM = Y.DOM, - TAG_NAME = 'tagName', - OWNER_DOCUMENT = 'ownerDocument', - EMPTY_STRING = '', - addFeature = Y.Features.add, - testFeature = Y.Features.test; + return xy; + }; + } + }(),// NOTE: Executing for loadtime branching -Y.mix(Y_DOM, { /** - * Returns the text content of the HTMLElement. - * @method getText - * @param {HTMLElement} element The html element. - * @return {String} The text content of the element (includes text of any descending elements). + * Gets the current X position of an element based on page coordinates. + * Element must be part of the DOM tree to have page coordinates + * (display:none or elements not appended return false). + * @method getX + * @param element The target element + * @return {Int} The X position of the element */ - getText: (documentElement.textContent !== undefined) ? - function(element) { - var ret = ''; - if (element) { - ret = element.textContent; - } - return ret || ''; - } : function(element) { - var ret = ''; - if (element) { - ret = element.innerText || element.nodeValue; // might be a textNode - } - return ret || ''; - }, + + getX: function(node) { + return Y_DOM.getXY(node)[0]; + }, /** - * Sets the text content of the HTMLElement. - * @method setText - * @param {HTMLElement} element The html element. - * @param {String} content The content to add. + * Gets the current Y position of an element based on page coordinates. + * Element must be part of the DOM tree to have page coordinates + * (display:none or elements not appended return false). + * @method getY + * @param element The target element + * @return {Int} The Y position of the element */ - setText: (documentElement.textContent !== undefined) ? - function(element, content) { - if (element) { - element.textContent = content; - } - } : function(element, content) { - if ('innerText' in element) { - element.innerText = content; - } else if ('nodeValue' in element) { - element.nodeValue = content; - } - }, - CUSTOM_ATTRIBUTES: (!documentElement.hasAttribute) ? { // IE < 8 - 'for': 'htmlFor', - 'class': 'className' - } : { // w3c - 'htmlFor': 'for', - 'className': 'class' + getY: function(node) { + return Y_DOM.getXY(node)[1]; }, /** - * Provides a normalized attribute interface. - * @method setAttribute - * @param {HTMLElement} el The target element for the attribute. - * @param {String} attr The attribute to set. - * @param {String} val The value of the attribute. + * Set the position of an html element in page coordinates. + * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). + * @method setXY + * @param element The target element + * @param {Array} xy Contains X & Y values for new position (coordinates are page-based) + * @param {Boolean} noRetry By default we try and set the position a second time if the first fails */ - setAttribute: function(el, attr, val, ieAttr) { - if (el && attr && el.setAttribute) { - attr = Y_DOM.CUSTOM_ATTRIBUTES[attr] || attr; - el.setAttribute(attr, val, ieAttr); - } - else { Y.log('bad input to setAttribute', 'warn', 'dom'); } - }, + setXY: function(node, xy, noRetry) { + var setStyle = Y_DOM.setStyle, + pos, + delta, + newXY, + currentXY; + if (node && xy) { + pos = Y_DOM.getStyle(node, POSITION); - /** - * Provides a normalized attribute interface. - * @method getAttibute - * @param {HTMLElement} el The target element for the attribute. - * @param {String} attr The attribute to get. - * @return {String} The current value of the attribute. - */ - getAttribute: function(el, attr, ieAttr) { - ieAttr = (ieAttr !== undefined) ? ieAttr : 2; - var ret = ''; - if (el && attr && el.getAttribute) { - attr = Y_DOM.CUSTOM_ATTRIBUTES[attr] || attr; - ret = el.getAttribute(attr, ieAttr); - - if (ret === null) { - ret = ''; // per DOM spec + delta = Y_DOM._getOffset(node); + if (pos == 'static') { // default to relative + pos = RELATIVE; + setStyle(node, POSITION, pos); } - } - else { Y.log('bad input to getAttribute', 'warn', 'dom'); } - return ret; - }, - - VALUE_SETTERS: {}, - - VALUE_GETTERS: {}, - - getValue: function(node) { - var ret = '', // TODO: return null? - getter; + currentXY = Y_DOM.getXY(node); - if (node && node[TAG_NAME]) { - getter = Y_DOM.VALUE_GETTERS[node[TAG_NAME].toLowerCase()]; + if (xy[0] !== null) { + setStyle(node, LEFT, xy[0] - currentXY[0] + delta[0] + 'px'); + } - if (getter) { - ret = getter(node); - } else { - ret = node.value; + if (xy[1] !== null) { + setStyle(node, TOP, xy[1] - currentXY[1] + delta[1] + 'px'); } - } - // workaround for IE8 JSON stringify bug - // which converts empty string values to null - if (ret === EMPTY_STRING) { - ret = EMPTY_STRING; // for real + if (!noRetry) { + newXY = Y_DOM.getXY(node); + if (newXY[0] !== xy[0] || newXY[1] !== xy[1]) { + Y_DOM.setXY(node, xy, true); + } + } + + Y.log('setXY setting position to ' + xy, 'info', 'dom-screen'); + } else { + Y.log('setXY failed to set ' + node + ' to ' + xy, 'info', 'dom-screen'); } + }, - return (typeof ret === 'string') ? ret : ''; + /** + * Set the X position of an html element in page coordinates, regardless of how the element is positioned. + * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). + * @method setX + * @param element The target element + * @param {Int} x The X values for new position (coordinates are page-based) + */ + setX: function(node, x) { + return Y_DOM.setXY(node, [x, null]); }, - setValue: function(node, val) { - var setter; + /** + * Set the Y position of an html element in page coordinates, regardless of how the element is positioned. + * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). + * @method setY + * @param element The target element + * @param {Int} y The Y values for new position (coordinates are page-based) + */ + setY: function(node, y) { + return Y_DOM.setXY(node, [null, y]); + }, - if (node && node[TAG_NAME]) { - setter = Y_DOM.VALUE_SETTERS[node[TAG_NAME].toLowerCase()]; + /** + * @method swapXY + * @description Swap the xy position with another node + * @param {Node} node The node to swap with + * @param {Node} otherNode The other node to swap with + * @return {Node} + */ + swapXY: function(node, otherNode) { + var xy = Y_DOM.getXY(node); + Y_DOM.setXY(node, Y_DOM.getXY(otherNode)); + Y_DOM.setXY(otherNode, xy); + }, - if (setter) { - setter(node, val); - } else { - node.value = val; + _calcBorders: function(node, xy2) { + var t = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_TOP_WIDTH), 10) || 0, + l = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_LEFT_WIDTH), 10) || 0; + if (Y.UA.gecko) { + if (RE_TABLE.test(node.tagName)) { + t = 0; + l = 0; } } + xy2[0] += l; + xy2[1] += t; + return xy2; }, - creators: {} -}); - -addFeature('value-set', 'select', { - test: function() { - var node = Y.config.doc.createElement('select'); - node.innerHTML = ''; - node.value = '2'; - return (node.value && node.value === '2'); - } -}); + _getWinSize: function(node, doc) { + doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; + var win = doc.defaultView || doc.parentWindow, + mode = doc[COMPAT_MODE], + h = win.innerHeight, + w = win.innerWidth, + root = doc[DOCUMENT_ELEMENT]; -if (!testFeature('value-set', 'select')) { - Y_DOM.VALUE_SETTERS.select = function(node, val) { - for (var i = 0, options = node.getElementsByTagName('option'), option; - option = options[i++];) { - if (Y_DOM.getValue(option) === val) { - option.selected = true; - //Y_DOM.setAttribute(option, 'selected', 'selected'); - break; + if ( mode && !Y.UA.opera ) { // IE, Gecko + if (mode != 'CSS1Compat') { // Quirks + root = doc.body; } + h = root.clientHeight; + w = root.clientWidth; } - } -} - -Y.mix(Y_DOM.VALUE_GETTERS, { - button: function(node) { - return (node.attributes && node.attributes.value) ? node.attributes.value.value : ''; - } -}); - -Y.mix(Y_DOM.VALUE_SETTERS, { - // IE: node.value changes the button text, which should be handled via innerHTML - button: function(node, val) { - var attr = node.attributes.value; - if (!attr) { - attr = node[OWNER_DOCUMENT].createAttribute('value'); - node.setAttributeNode(attr); - } - - attr.value = val; - } -}); - - -Y.mix(Y_DOM.VALUE_GETTERS, { - option: function(node) { - var attrs = node.attributes; - return (attrs.value && attrs.value.specified) ? node.value : node.text; + return { height: h, width: w }; }, - select: function(node) { - var val = node.value, - options = node.options; + _getDocSize: function(node) { + var doc = (node) ? Y_DOM._getDoc(node) : Y.config.doc, + root = doc[DOCUMENT_ELEMENT]; - if (options && options.length) { - // TODO: implement multipe select - if (node.multiple) { - Y.log('multiple select normalization not implemented', 'warn', 'DOM'); - } else { - val = Y_DOM.getValue(options[node.selectedIndex]); - } + if (doc[COMPAT_MODE] != 'CSS1Compat') { + root = doc.body; } - return val; + return { height: root.scrollHeight, width: root.scrollWidth }; } }); +})(Y); +(function(Y) { +var TOP = 'top', + RIGHT = 'right', + BOTTOM = 'bottom', + LEFT = 'left', -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-create', function(Y) { - -var re_tag = /<([a-z]+)/i, - - Y_DOM = Y.DOM, - - addFeature = Y.Features.add, - testFeature = Y.Features.test, - - creators = {}, + getOffsets = function(r1, r2) { + var t = Math.max(r1[TOP], r2[TOP]), + r = Math.min(r1[RIGHT], r2[RIGHT]), + b = Math.min(r1[BOTTOM], r2[BOTTOM]), + l = Math.max(r1[LEFT], r2[LEFT]), + ret = {}; + + ret[TOP] = t; + ret[RIGHT] = r; + ret[BOTTOM] = b; + ret[LEFT] = l; + return ret; + }, - createFromDIV = function(html, tag) { - var div = Y.config.doc.createElement('div'), - ret = true; + DOM = Y.DOM; - div.innerHTML = html; - if (!div.firstChild || div.firstChild.tagName !== tag.toUpperCase()) { +Y.mix(DOM, { + /** + * Returns an Object literal containing the following about this element: (top, right, bottom, left) + * @for DOM + * @method region + * @param {HTMLElement} element The DOM element. + * @return {Object} Object literal containing the following about this element: (top, right, bottom, left) + */ + region: function(node) { + var xy = DOM.getXY(node), ret = false; + + if (node && xy) { + ret = DOM._getRegion( + xy[1], // top + xy[0] + node.offsetWidth, // right + xy[1] + node.offsetHeight, // bottom + xy[0] // left + ); } return ret; }, - re_tbody = /(?:\/(?:thead|tfoot|tbody|caption|col|colgroup)>)+\s*= region[LEFT] && + r[RIGHT] <= region[RIGHT] && + r[TOP] >= region[TOP] && + r[BOTTOM] <= region[BOTTOM] ); + } else { + off = getOffsets(region, r); + if (off[BOTTOM] >= off[TOP] && off[RIGHT] >= off[LEFT]) { + return true; + } else { + return false; } + } - - return ret; }, - _nl2frag: function(nodes, doc) { - var ret = null, - i, len; + /** + * Check if any part of this element is in the viewport + * @method inViewportRegion + * @for DOM + * @param {HTMLElement} element The DOM element. + * @param {Boolean} all Should all of the node be inside the region + * @param {Object} altRegion An object literal containing the region for this node if we already have the data (for performance i.e. DragDrop) + * @return {Boolean} True if in region, false if not. + */ + inViewportRegion: function(node, all, altRegion) { + return DOM.inRegion(node, DOM.viewportRegion(node), all, altRegion); + + }, - if (nodes && (nodes.push || nodes.item) && nodes[0]) { - doc = doc || nodes[0].ownerDocument; - ret = doc.createDocumentFragment(); + _getRegion: function(t, r, b, l) { + var region = {}; - if (nodes.item) { // convert live list to static array - nodes = Y.Array(nodes, 0, true); - } + region[TOP] = region[1] = t; + region[LEFT] = region[0] = l; + region[BOTTOM] = b; + region[RIGHT] = r; + region.width = region[RIGHT] - region[LEFT]; + region.height = region[BOTTOM] - region[TOP]; - for (i = 0, len = nodes.length; i < len; i++) { - ret.appendChild(nodes[i]); - } - } // else inline with log for minification - else { Y.log('unable to convert ' + nodes + ' to fragment', 'warn', 'dom'); } - return ret; + return region; }, /** - * Inserts content in a node at the given location - * @method addHTML - * @param {HTMLElement} node The node to insert into - * @param {HTMLElement | Array | HTMLCollection} content The content to be inserted - * @param {HTMLElement} where Where to insert the content - * If no "where" is given, content is appended to the node - * Possible values for "where" - *
                              - *
                              HTMLElement
                              - *
                              The element to insert before
                              - *
                              "replace"
                              - *
                              Replaces the existing HTML
                              - *
                              "before"
                              - *
                              Inserts before the existing HTML
                              - *
                              "before"
                              - *
                              Inserts content before the node
                              - *
                              "after"
                              - *
                              Inserts content after the node
                              - *
                              + * Returns an Object literal containing the following about the visible region of viewport: (top, right, bottom, left) + * @method viewportRegion + * @for DOM + * @return {Object} Object literal containing the following about the visible region of the viewport: (top, right, bottom, left) */ - addHTML: function(node, content, where) { - var nodeParent = node.parentNode, - i = 0, - item, - ret = content, - newNode; - + viewportRegion: function(node) { + node = node || Y.config.doc.documentElement; + var ret = false, + scrollX, + scrollY; - if (content != undefined) { // not null or undefined (maybe 0) - if (content.nodeType) { // DOM node, just add it - newNode = content; - } else if (typeof content == 'string' || typeof content == 'number') { - ret = newNode = Y_DOM.create(content); - } else if (content[0] && content[0].nodeType) { // array or collection - newNode = Y.config.doc.createDocumentFragment(); - while ((item = content[i++])) { - newNode.appendChild(item); // append to fragment for insertion - } - } - } + if (node) { + scrollX = DOM.docScrollX(node); + scrollY = DOM.docScrollY(node); - if (where) { - if (where.nodeType) { // insert regardless of relationship to node - where.parentNode.insertBefore(newNode, where); - } else { - switch (where) { - case 'replace': - while (node.firstChild) { - node.removeChild(node.firstChild); - } - if (newNode) { // allow empty content to clear node - node.appendChild(newNode); - } - break; - case 'before': - nodeParent.insertBefore(newNode, node); - break; - case 'after': - if (node.nextSibling) { // IE errors if refNode is null - nodeParent.insertBefore(newNode, node.nextSibling); - } else { - nodeParent.appendChild(newNode); - } - break; - default: - node.appendChild(newNode); - } - } - } else if (newNode) { - node.appendChild(newNode); + ret = DOM._getRegion(scrollY, // top + DOM.winWidth(node) + scrollX, // right + scrollY + DOM.winHeight(node), // bottom + scrollX); // left } return ret; } }); +})(Y); -addFeature('innerhtml', 'table', { - test: function() { - var node = Y.config.doc.createElement('table'); - try { - node.innerHTML = ''; - } catch(e) { - return false; - } - return (node.firstChild && node.firstChild.nodeName === 'TBODY'); - } -}); - -addFeature('innerhtml-div', 'tr', { - test: function() { - return createFromDIV('', 'tr'); - } -}); -addFeature('innerhtml-div', 'script', { - test: function() { - return createFromDIV('', 'script'); - } -}); +}, '3.4.0' ,{requires:['dom-base', 'dom-style']}); +YUI.add('selector-native', function(Y) { -if (!testFeature('innerhtml', 'table')) { - // TODO: thead/tfoot with nested tbody - // IE adds TBODY when creating TABLE elements (which may share this impl) - creators.tbody = function(html, doc) { - var frag = Y_DOM.create(TABLE_OPEN + html + TABLE_CLOSE, doc), - tb = frag.children.tags('tbody')[0]; - - if (frag.children.length > 1 && tb && !re_tbody.test(html)) { - tb.parentNode.removeChild(tb); // strip extraneous tbody - } - return frag; - }; -} +(function(Y) { +/** + * The selector-native module provides support for native querySelector + * @module dom + * @submodule selector-native + * @for Selector + */ -if (!testFeature('innerhtml-div', 'script')) { - creators.script = function(html, doc) { - var frag = doc.createElement('div'); +/** + * Provides support for using CSS selectors to query the DOM + * @class Selector + * @static + * @for Selector + */ - frag.innerHTML = '-' + html; - frag.removeChild(frag.firstChild); - return frag; - } +Y.namespace('Selector'); // allow native module to standalone - creators.link = creators.style = creators.script; -} +var COMPARE_DOCUMENT_POSITION = 'compareDocumentPosition', + OWNER_DOCUMENT = 'ownerDocument'; -if (!testFeature('innerhtml-div', 'tr')) { - Y.mix(creators, { - option: function(html, doc) { - return Y_DOM.create('', doc); - }, +var Selector = { + _foundCache: [], - tr: function(html, doc) { - return Y_DOM.create('' + html + '', doc); - }, + useNative: true, - td: function(html, doc) { - return Y_DOM.create('' + html + '', doc); - }, + _compare: ('sourceIndex' in Y.config.doc.documentElement) ? + function(nodeA, nodeB) { + var a = nodeA.sourceIndex, + b = nodeB.sourceIndex; - col: function(html, doc) { - return Y_DOM.create('' + html + '', doc); - }, + if (a === b) { + return 0; + } else if (a > b) { + return 1; + } - tbody: 'table' - }); + return -1; - Y.mix(creators, { - legend: 'fieldset', - th: creators.td, - thead: creators.tbody, - tfoot: creators.tbody, - caption: creators.tbody, - colgroup: creators.tbody, - optgroup: creators.option - }); -} + } : (Y.config.doc.documentElement[COMPARE_DOCUMENT_POSITION] ? + function(nodeA, nodeB) { + if (nodeA[COMPARE_DOCUMENT_POSITION](nodeB) & 4) { + return -1; + } else { + return 1; + } + } : + function(nodeA, nodeB) { + var rangeA, rangeB, compare; + if (nodeA && nodeB) { + rangeA = nodeA[OWNER_DOCUMENT].createRange(); + rangeA.setStart(nodeA, 0); + rangeB = nodeB[OWNER_DOCUMENT].createRange(); + rangeB.setStart(nodeB, 0); + compare = rangeA.compareBoundaryPoints(1, rangeB); // 1 === Range.START_TO_END + } -Y_DOM.creators = creators; + return compare; + + }), + _sort: function(nodes) { + if (nodes) { + nodes = Y.Array(nodes, 0, true); + if (nodes.sort) { + nodes.sort(Selector._compare); + } + } -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-class', function(Y) { + return nodes; + }, -var addClass, hasClass, removeClass; + _deDupe: function(nodes) { + var ret = [], + i, node; -Y.mix(Y.DOM, { - /** - * Determines whether a DOM element has the given className. - * @method hasClass - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {String} className the class name to search for - * @return {Boolean} Whether or not the element has the given class. - */ - hasClass: function(node, className) { - var re = Y.DOM._getRegExp('(?:^|\\s+)' + className + '(?:\\s+|$)'); - return re.test(node.className); - }, + for (i = 0; (node = nodes[i++]);) { + if (!node._found) { + ret[ret.length] = node; + node._found = true; + } + } - /** - * Adds a class name to a given DOM element. - * @method addClass - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {String} className the class name to add to the class attribute - */ - addClass: function(node, className) { - if (!Y.DOM.hasClass(node, className)) { // skip if already present - node.className = Y.Lang.trim([node.className, className].join(' ')); + for (i = 0; (node = ret[i++]);) { + node._found = null; + node.removeAttribute('_found'); } + + return ret; }, /** - * Removes a class name from a given element. - * @method removeClass - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {String} className the class name to remove from the class attribute + * Retrieves a set of nodes based on a given CSS selector. + * @method query + * + * @param {string} selector The CSS Selector to test the node against. + * @param {HTMLElement} root optional An HTMLElement to start the query from. Defaults to Y.config.doc + * @param {Boolean} firstOnly optional Whether or not to return only the first match. + * @return {Array} An array of nodes that match the given selector. + * @static */ - removeClass: function(node, className) { - if (className && hasClass(node, className)) { - node.className = Y.Lang.trim(node.className.replace(Y.DOM._getRegExp('(?:^|\\s+)' + - className + '(?:\\s+|$)'), ' ')); + query: function(selector, root, firstOnly, skipNative) { + root = root || Y.config.doc; + var ret = [], + useNative = (Y.Selector.useNative && Y.config.doc.querySelector && !skipNative), + queries = [[selector, root]], + query, + result, + i, + fn = (useNative) ? Y.Selector._nativeQuery : Y.Selector._bruteQuery; - if ( hasClass(node, className) ) { // in case of multiple adjacent - removeClass(node, className); + if (selector && fn) { + // split group into seperate queries + if (!skipNative && // already done if skipping + (!useNative || root.tagName)) { // split native when element scoping is needed + queries = Selector._splitQueries(selector, root); } - } - }, - - /** - * Replace a class with another class for a given element. - * If no oldClassName is present, the newClassName is simply added. - * @method replaceClass - * @for DOM - * @param {HTMLElement} element The DOM element - * @param {String} oldClassName the class name to be replaced - * @param {String} newClassName the class name that will be replacing the old class name - */ - replaceClass: function(node, oldC, newC) { - //Y.log('replaceClass replacing ' + oldC + ' with ' + newC, 'info', 'Node'); - removeClass(node, oldC); // remove first in case oldC === newC - addClass(node, newC); - }, - /** - * If the className exists on the node it is removed, if it doesn't exist it is added. - * @method toggleClass - * @for DOM - * @param {HTMLElement} element The DOM element - * @param {String} className the class name to be toggled - * @param {Boolean} addClass optional boolean to indicate whether class - * should be added or removed regardless of current state - */ - toggleClass: function(node, className, force) { - var add = (force !== undefined) ? force : - !(hasClass(node, className)); + for (i = 0; (query = queries[i++]);) { + result = fn(query[0], query[1], firstOnly); + if (!firstOnly) { // coerce DOM Collection to Array + result = Y.Array(result, 0, true); + } + if (result) { + ret = ret.concat(result); + } + } - if (add) { - addClass(node, className); - } else { - removeClass(node, className); + if (queries.length > 1) { // remove dupes and sort by doc order + ret = Selector._sort(Selector._deDupe(ret)); + } } - } -}); -hasClass = Y.DOM.hasClass; -removeClass = Y.DOM.removeClass; -addClass = Y.DOM.addClass; + Y.log('query: ' + selector + ' returning: ' + ret.length, 'info', 'Selector'); + return (firstOnly) ? (ret[0] || null) : ret; + }, + // allows element scoped queries to begin with combinator + // e.g. query('> p', document.body) === query('body > p') + _splitQueries: function(selector, node) { + var groups = selector.split(','), + queries = [], + prefix = '', + i, len; -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-size', function(Y) { + if (node) { + // enforce for element scoping + if (node.tagName) { + node.id = node.id || Y.guid(); + prefix = '[id="' + node.id + '"] '; + } -Y.mix(Y.DOM, { - /** - * Sets the width of the element to the given size, regardless - * of box model, border, padding, etc. - * @method setWidth - * @param {HTMLElement} element The DOM element. - * @param {String|Int} size The pixel height to size to - */ + for (i = 0, len = groups.length; i < len; ++i) { + selector = prefix + groups[i]; + queries.push([selector, node]); + } + } - setWidth: function(node, size) { - Y.DOM._setSize(node, 'width', size); + return queries; }, - /** - * Sets the height of the element to the given size, regardless - * of box model, border, padding, etc. - * @method setHeight - * @param {HTMLElement} element The DOM element. - * @param {String|Int} size The pixel height to size to - */ + _nativeQuery: function(selector, root, one) { + if (Y.UA.webkit && selector.indexOf(':checked') > -1 && + (Y.Selector.pseudos && Y.Selector.pseudos.checked)) { // webkit (chrome, safari) fails to pick up "selected" with "checked" + return Y.Selector.query(selector, root, one, true); // redo with skipNative true to try brute query + } + try { + //Y.log('trying native query with: ' + selector, 'info', 'selector-native'); + return root['querySelector' + (one ? '' : 'All')](selector); + } catch(e) { // fallback to brute if available + //Y.log('native query error; reverting to brute query with: ' + selector, 'info', 'selector-native'); + return Y.Selector.query(selector, root, one, true); // redo with skipNative true + } + }, - setHeight: function(node, size) { - Y.DOM._setSize(node, 'height', size); + filter: function(nodes, selector) { + var ret = [], + i, node; + + if (nodes && selector) { + for (i = 0; (node = nodes[i++]);) { + if (Y.Selector.test(node, selector)) { + ret[ret.length] = node; + } + } + } else { + Y.log('invalid filter input (nodes: ' + nodes + + ', selector: ' + selector + ')', 'warn', 'Selector'); + } + + return ret; }, - _setSize: function(node, prop, val) { - val = (val > 0) ? val : 0; - var size = 0; + test: function(node, selector, root) { + var ret = false, + useFrag = false, + groups, + parent, + item, + items, + frag, + i, j, group; - node.style[prop] = val + 'px'; - size = (prop === 'height') ? node.offsetHeight : node.offsetWidth; + if (node && node.tagName) { // only test HTMLElements - if (size > val) { - val = val - (size - val); + if (typeof selector == 'function') { // test with function + ret = selector.call(node, node); + } else { // test with query + // we need a root if off-doc + groups = selector.split(','); + if (!root && !Y.DOM.inDoc(node)) { + parent = node.parentNode; + if (parent) { + root = parent; + } else { // only use frag when no parent to query + frag = node[OWNER_DOCUMENT].createDocumentFragment(); + frag.appendChild(node); + root = frag; + useFrag = true; + } + } + root = root || node[OWNER_DOCUMENT]; - if (val < 0) { - val = 0; - } + if (!node.id) { + node.id = Y.guid(); + } + for (i = 0; (group = groups[i++]);) { // TODO: off-dom test + group += '[id="' + node.id + '"]'; + items = Y.Selector.query(group, root); - node.style[prop] = val + 'px'; + for (j = 0; item = items[j++];) { + if (item === node) { + ret = true; + break; + } + } + if (ret) { + break; + } + } + + if (useFrag) { // cleanup + frag.removeChild(node); + } + }; } - } -}); + return ret; + }, -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-base', function(Y) { + /** + * A convenience function to emulate Y.Node's aNode.ancestor(selector). + * @param {HTMLElement} element An HTMLElement to start the query from. + * @param {String} selector The CSS selector to test the node against. + * @return {HTMLElement} The ancestor node matching the selector, or null. + * @param {Boolean} testSelf optional Whether or not to include the element in the scan + * @static + * @method ancestor + */ + ancestor: function (element, selector, testSelf) { + return Y.DOM.ancestor(element, function(n) { + return Y.Selector.test(n, selector); + }, testSelf); + } +}; +Y.mix(Y.Selector, Selector, true); +})(Y); -}, '3.4.0' ,{requires:['dom-core', 'dom-attrs', 'dom-class', 'dom-create', 'dom-size']}); -YUI.add('dom-style', function(Y) { +}, '3.4.0' ,{requires:['dom-base']}); +YUI.add('selector', function(Y) { -(function(Y) { -/** - * Add style management functionality to DOM. - * @module dom - * @submodule dom-style - * @for DOM - */ -var DOCUMENT_ELEMENT = 'documentElement', - DEFAULT_VIEW = 'defaultView', - OWNER_DOCUMENT = 'ownerDocument', - STYLE = 'style', - FLOAT = 'float', - CSS_FLOAT = 'cssFloat', - STYLE_FLOAT = 'styleFloat', - TRANSPARENT = 'transparent', - GET_COMPUTED_STYLE = 'getComputedStyle', - GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', - WINDOW = Y.config.win, - DOCUMENT = Y.config.doc, - UNDEFINED = undefined, - Y_DOM = Y.DOM, +}, '3.4.0' ,{requires:['selector-native']}); +YUI.add('event-custom-base', function(Y) { - TRANSFORM = 'transform', - VENDOR_TRANSFORM = [ - 'WebkitTransform', - 'MozTransform', - 'OTransform' - ], +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event-custom + */ - re_color = /color$/i, - re_unit = /width|height|top|left|right|bottom|margin|padding/i; +Y.Env.evt = { + handles: {}, + plugins: {} +}; -Y.Array.each(VENDOR_TRANSFORM, function(val) { - if (val in DOCUMENT[DOCUMENT_ELEMENT].style) { - TRANSFORM = val; - } -}); -Y.mix(Y_DOM, { - DEFAULT_UNIT: 'px', +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event-custom + * @submodule event-custom-base + */ - CUSTOM_STYLES: { - }, +/** + * Allows for the insertion of methods that are executed before or after + * a specified method + * @class Do + * @static + */ + +var DO_BEFORE = 0, + DO_AFTER = 1, +DO = { /** - * Sets a style property for a given element. - * @method setStyle - * @param {HTMLElement} An HTMLElement to apply the style to. - * @param {String} att The style property to set. - * @param {String|Number} val The value. + * Cache of objects touched by the utility + * @property objs + * @static */ - setStyle: function(node, att, val, style) { - style = style || node.style; - var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES; - - if (style) { - if (val === null || val === '') { // normalize unsetting - val = ''; - } else if (!isNaN(new Number(val)) && re_unit.test(att)) { // number values may need a unit - val += Y_DOM.DEFAULT_UNIT; - } + objs: {}, - if (att in CUSTOM_STYLES) { - if (CUSTOM_STYLES[att].set) { - CUSTOM_STYLES[att].set(node, val, style); - return; // NOTE: return - } else if (typeof CUSTOM_STYLES[att] === 'string') { - att = CUSTOM_STYLES[att]; - } - } else if (att === '') { // unset inline styles - att = 'cssText'; - val = ''; - } - style[att] = val; + /** + *

                              Execute the supplied method before the specified function. Wrapping + * function may optionally return an instance of the following classes to + * further alter runtime behavior:

                              + *
                              + *
                              Y.Do.Halt(message, returnValue)
                              + *
                              Immediatly stop execution and return + * returnValue. No other wrapping functions will be + * executed.
                              + *
                              Y.Do.AlterArgs(message, newArgArray)
                              + *
                              Replace the arguments that the original function will be + * called with.
                              + *
                              Y.Do.Prevent(message)
                              + *
                              Don't execute the wrapped function. Other before phase + * wrappers will be executed.
                              + *
                              + * + * @method before + * @param fn {Function} the function to execute + * @param obj the object hosting the method to displace + * @param sFn {string} the name of the method to displace + * @param c The execution context for fn + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {string} handle for the subscription + * @static + */ + before: function(fn, obj, sFn, c) { + // Y.log('Do before: ' + sFn, 'info', 'event'); + var f = fn, a; + if (c) { + a = [fn, c].concat(Y.Array(arguments, 4, true)); + f = Y.rbind.apply(Y, a); } + + return this._inject(DO_BEFORE, f, obj, sFn); }, /** - * Returns the current style value for the given property. - * @method getStyle - * @param {HTMLElement} An HTMLElement to get the style from. - * @param {String} att The style property to get. + *

                              Execute the supplied method after the specified function. Wrapping + * function may optionally return an instance of the following classes to + * further alter runtime behavior:

                              + *
                              + *
                              Y.Do.Halt(message, returnValue)
                              + *
                              Immediatly stop execution and return + * returnValue. No other wrapping functions will be + * executed.
                              + *
                              Y.Do.AlterReturn(message, returnValue)
                              + *
                              Return returnValue instead of the wrapped + * method's original return value. This can be further altered by + * other after phase wrappers.
                              + *
                              + * + *

                              The static properties Y.Do.originalRetVal and + * Y.Do.currentRetVal will be populated for reference.

                              + * + * @method after + * @param fn {Function} the function to execute + * @param obj the object hosting the method to displace + * @param sFn {string} the name of the method to displace + * @param c The execution context for fn + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return {string} handle for the subscription + * @static */ - getStyle: function(node, att, style) { - style = style || node.style; - var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES, - val = ''; - - if (style) { - if (att in CUSTOM_STYLES) { - if (CUSTOM_STYLES[att].get) { - return CUSTOM_STYLES[att].get(node, att, style); // NOTE: return - } else if (typeof CUSTOM_STYLES[att] === 'string') { - att = CUSTOM_STYLES[att]; - } - } - val = style[att]; - if (val === '') { // TODO: is empty string sufficient? - val = Y_DOM[GET_COMPUTED_STYLE](node, att); - } + after: function(fn, obj, sFn, c) { + var f = fn, a; + if (c) { + a = [fn, c].concat(Y.Array(arguments, 4, true)); + f = Y.rbind.apply(Y, a); } - return val; + return this._inject(DO_AFTER, f, obj, sFn); }, /** - * Sets multiple style properties. - * @method setStyles - * @param {HTMLElement} node An HTMLElement to apply the styles to. - * @param {Object} hash An object literal of property:value pairs. + * Execute the supplied method before or after the specified function. + * Used by before and after. + * + * @method _inject + * @param when {string} before or after + * @param fn {Function} the function to execute + * @param obj the object hosting the method to displace + * @param sFn {string} the name of the method to displace + * @param c The execution context for fn + * @return {string} handle for the subscription + * @private + * @static */ - setStyles: function(node, hash) { - var style = node.style; - Y.each(hash, function(v, n) { - Y_DOM.setStyle(node, n, v, style); - }, Y_DOM); - }, + _inject: function(when, fn, obj, sFn) { - /** - * Returns the computed style for the given node. - * @method getComputedStyle - * @param {HTMLElement} An HTMLElement to get the style from. - * @param {String} att The style property to get. - * @return {String} The computed value of the style property. - */ - getComputedStyle: function(node, att) { - var val = '', - doc = node[OWNER_DOCUMENT]; + // object id + var id = Y.stamp(obj), o, sid; - if (node[STYLE] && doc[DEFAULT_VIEW] && doc[DEFAULT_VIEW][GET_COMPUTED_STYLE]) { - val = doc[DEFAULT_VIEW][GET_COMPUTED_STYLE](node, null)[att]; + if (! this.objs[id]) { + // create a map entry for the obj if it doesn't exist + this.objs[id] = {}; } - return val; - } -}); -// normalize reserved word float alternatives ("cssFloat" or "styleFloat") -if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][CSS_FLOAT] !== UNDEFINED) { - Y_DOM.CUSTOM_STYLES[FLOAT] = CSS_FLOAT; -} else if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][STYLE_FLOAT] !== UNDEFINED) { - Y_DOM.CUSTOM_STYLES[FLOAT] = STYLE_FLOAT; -} + o = this.objs[id]; -// fix opera computedStyle default color unit (convert to rgb) -if (Y.UA.opera) { - Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { - var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], - val = view[GET_COMPUTED_STYLE](node, '')[att]; + if (! o[sFn]) { + // create a map entry for the method if it doesn't exist + o[sFn] = new Y.Do.Method(obj, sFn); - if (re_color.test(att)) { - val = Y.Color.toRGB(val); + // re-route the method to our wrapper + obj[sFn] = + function() { + return o[sFn].exec.apply(o[sFn], arguments); + }; } - return val; - }; + // subscriber id + sid = id + Y.stamp(fn) + sFn; -} + // register the callback + o[sFn].register(sid, fn, when); -// safari converts transparent to rgba(), others use "transparent" -if (Y.UA.webkit) { - Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { - var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], - val = view[GET_COMPUTED_STYLE](node, '')[att]; + return new Y.EventHandle(o[sFn], sid); - if (val === 'rgba(0, 0, 0, 0)') { - val = TRANSPARENT; - } + }, - return val; - }; + /** + * Detach a before or after subscription. + * + * @method detach + * @param handle {string} the subscription handle + * @static + */ + detach: function(handle) { -} + if (handle.detach) { + handle.detach(); + } -Y.DOM._getAttrOffset = function(node, attr) { - var val = Y.DOM[GET_COMPUTED_STYLE](node, attr), - offsetParent = node.offsetParent, - position, - parentOffset, - offset; + }, - if (val === 'auto') { - position = Y.DOM.getStyle(node, 'position'); - if (position === 'static' || position === 'relative') { - val = 0; - } else if (offsetParent && offsetParent[GET_BOUNDING_CLIENT_RECT]) { - parentOffset = offsetParent[GET_BOUNDING_CLIENT_RECT]()[attr]; - offset = node[GET_BOUNDING_CLIENT_RECT]()[attr]; - if (attr === 'left' || attr === 'top') { - val = offset - parentOffset; - } else { - val = parentOffset - node[GET_BOUNDING_CLIENT_RECT]()[attr]; - } - } - } + _unload: function(e, me) { - return val; + } }; -Y.DOM._getOffset = function(node) { - var pos, - xy = null; +Y.Do = DO; - if (node) { - pos = Y_DOM.getStyle(node, 'position'); - xy = [ - parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'left'), 10), - parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'top'), 10) - ]; +////////////////////////////////////////////////////////////////////////// - if ( isNaN(xy[0]) ) { // in case of 'auto' - xy[0] = parseInt(Y_DOM.getStyle(node, 'left'), 10); // try inline - if ( isNaN(xy[0]) ) { // default to offset value - xy[0] = (pos === 'relative') ? 0 : node.offsetLeft || 0; - } - } +/** + * Contains the return value from the wrapped method, accessible + * by 'after' event listeners. + * + * @property Do.originalRetVal + * @static + * @since 3.2.0 + */ - if ( isNaN(xy[1]) ) { // in case of 'auto' - xy[1] = parseInt(Y_DOM.getStyle(node, 'top'), 10); // try inline - if ( isNaN(xy[1]) ) { // default to offset value - xy[1] = (pos === 'relative') ? 0 : node.offsetTop || 0; - } - } - } +/** + * Contains the current state of the return value, consumable by + * 'after' event listeners, and updated if an after subscriber + * changes the return value generated by the wrapped function. + * + * @property Do.currentRetVal + * @static + * @since 3.2.0 + */ - return xy; +////////////////////////////////////////////////////////////////////////// +/** + * Wrapper for a displaced method with aop enabled + * @class Do.Method + * @constructor + * @param obj The object to operate on + * @param sFn The name of the method to displace + */ +DO.Method = function(obj, sFn) { + this.obj = obj; + this.methodName = sFn; + this.method = obj[sFn]; + this.before = {}; + this.after = {}; }; -Y_DOM.CUSTOM_STYLES.transform = { - set: function(node, val, style) { - style[TRANSFORM] = val; - }, - - get: function(node, style) { - return Y_DOM[GET_COMPUTED_STYLE](node, TRANSFORM); +/** + * Register a aop subscriber + * @method register + * @param sid {string} the subscriber id + * @param fn {Function} the function to execute + * @param when {string} when to execute the function + */ +DO.Method.prototype.register = function (sid, fn, when) { + if (when) { + this.after[sid] = fn; + } else { + this.before[sid] = fn; } }; +/** + * Unregister a aop subscriber + * @method delete + * @param sid {string} the subscriber id + * @param fn {Function} the function to execute + * @param when {string} when to execute the function + */ +DO.Method.prototype._delete = function (sid) { + // Y.log('Y.Do._delete: ' + sid, 'info', 'Event'); + delete this.before[sid]; + delete this.after[sid]; +}; -})(Y); -(function(Y) { -var PARSE_INT = parseInt, - RE = RegExp; - -Y.Color = { - KEYWORDS: { - black: '000', - silver: 'c0c0c0', - gray: '808080', - white: 'fff', - maroon: '800000', - red: 'f00', - purple: '800080', - fuchsia: 'f0f', - green: '008000', - lime: '0f0', - olive: '808000', - yellow: 'ff0', - navy: '000080', - blue: '00f', - teal: '008080', - aqua: '0ff' - }, - - re_RGB: /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i, - re_hex: /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i, - re_hex3: /([0-9A-F])/gi, - - toRGB: function(val) { - if (!Y.Color.re_RGB.test(val)) { - val = Y.Color.toHex(val); - } - - if(Y.Color.re_hex.exec(val)) { - val = 'rgb(' + [ - PARSE_INT(RE.$1, 16), - PARSE_INT(RE.$2, 16), - PARSE_INT(RE.$3, 16) - ].join(', ') + ')'; - } - return val; - }, +/** + *

                              Execute the wrapped method. All arguments are passed into the wrapping + * functions. If any of the before wrappers return an instance of + * Y.Do.Halt or Y.Do.Prevent, neither the wrapped + * function nor any after phase subscribers will be executed.

                              + * + *

                              The return value will be the return value of the wrapped function or one + * provided by a wrapper function via an instance of Y.Do.Halt or + * Y.Do.AlterReturn. + * + * @method exec + * @param arg* {any} Arguments are passed to the wrapping and wrapped functions + * @return {any} Return value of wrapped function unless overwritten (see above) + */ +DO.Method.prototype.exec = function () { - toHex: function(val) { - val = Y.Color.KEYWORDS[val] || val; - if (Y.Color.re_RGB.exec(val)) { - val = [ - Number(RE.$1).toString(16), - Number(RE.$2).toString(16), - Number(RE.$3).toString(16) - ]; + var args = Y.Array(arguments, 0, true), + i, ret, newRet, + bf = this.before, + af = this.after, + prevented = false; - for (var i = 0; i < val.length; i++) { - if (val[i].length < 2) { - val[i] = '0' + val[i]; + // execute before + for (i in bf) { + if (bf.hasOwnProperty(i)) { + ret = bf[i].apply(this.obj, args); + if (ret) { + switch (ret.constructor) { + case DO.Halt: + return ret.retVal; + case DO.AlterArgs: + args = ret.newArgs; + break; + case DO.Prevent: + prevented = true; + break; + default: } } - - val = val.join(''); } + } - if (val.length < 6) { - val = val.replace(Y.Color.re_hex3, '$1$1'); - } + // execute method + if (!prevented) { + ret = this.method.apply(this.obj, args); + } - if (val !== 'transparent' && val.indexOf('#') < 0) { - val = '#' + val; - } + DO.originalRetVal = ret; + DO.currentRetVal = ret; - return val.toUpperCase(); + // execute after methods. + for (i in af) { + if (af.hasOwnProperty(i)) { + newRet = af[i].apply(this.obj, args); + // Stop processing if a Halt object is returned + if (newRet && newRet.constructor == DO.Halt) { + return newRet.retVal; + // Check for a new return value + } else if (newRet && newRet.constructor == DO.AlterReturn) { + ret = newRet.newRetVal; + // Update the static retval state + DO.currentRetVal = ret; + } + } } + + return ret; }; -})(Y); +////////////////////////////////////////////////////////////////////////// +/** + * Return an AlterArgs object when you want to change the arguments that + * were passed into the function. Useful for Do.before subscribers. An + * example would be a service that scrubs out illegal characters prior to + * executing the core business logic. + * @class Do.AlterArgs + * @constructor + * @param msg {String} (optional) Explanation of the altered return value + * @param newArgs {Array} Call parameters to be used for the original method + * instead of the arguments originally passed in. + */ +DO.AlterArgs = function(msg, newArgs) { + this.msg = msg; + this.newArgs = newArgs; +}; -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-screen', function(Y) { +/** + * Return an AlterReturn object when you want to change the result returned + * from the core method to the caller. Useful for Do.after subscribers. + * @class Do.AlterReturn + * @constructor + * @param msg {String} (optional) Explanation of the altered return value + * @param newRetVal {any} Return value passed to code that invoked the wrapped + * function. + */ +DO.AlterReturn = function(msg, newRetVal) { + this.msg = msg; + this.newRetVal = newRetVal; +}; -(function(Y) { +/** + * Return a Halt object when you want to terminate the execution + * of all subsequent subscribers as well as the wrapped method + * if it has not exectued yet. Useful for Do.before subscribers. + * @class Do.Halt + * @constructor + * @param msg {String} (optional) Explanation of why the termination was done + * @param retVal {any} Return value passed to code that invoked the wrapped + * function. + */ +DO.Halt = function(msg, retVal) { + this.msg = msg; + this.retVal = retVal; +}; /** - * Adds position and region management functionality to DOM. - * @module dom - * @submodule dom-screen - * @for DOM + * Return a Prevent object when you want to prevent the wrapped function + * from executing, but want the remaining listeners to execute. Useful + * for Do.before subscribers. + * @class Do.Prevent + * @constructor + * @param msg {String} (optional) Explanation of why the termination was done */ +DO.Prevent = function(msg) { + this.msg = msg; +}; -var DOCUMENT_ELEMENT = 'documentElement', - COMPAT_MODE = 'compatMode', - POSITION = 'position', - FIXED = 'fixed', - RELATIVE = 'relative', - LEFT = 'left', - TOP = 'top', - _BACK_COMPAT = 'BackCompat', - MEDIUM = 'medium', - BORDER_LEFT_WIDTH = 'borderLeftWidth', - BORDER_TOP_WIDTH = 'borderTopWidth', - GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', - GET_COMPUTED_STYLE = 'getComputedStyle', +/** + * Return an Error object when you want to terminate the execution + * of all subsequent method calls. + * @class Do.Error + * @constructor + * @param msg {String} (optional) Explanation of the altered return value + * @param retVal {any} Return value passed to code that invoked the wrapped + * function. + * @deprecated use Y.Do.Halt or Y.Do.Prevent + */ +DO.Error = DO.Halt; - Y_DOM = Y.DOM, - // TODO: how about thead/tbody/tfoot/tr? - // TODO: does caption matter? - RE_TABLE = /^t(?:able|d|h)$/i, +////////////////////////////////////////////////////////////////////////// - SCROLL_NODE; +// Y["Event"] && Y.Event.addListener(window, "unload", Y.Do._unload, Y.Do); -if (Y.UA.ie) { - if (Y.config.doc[COMPAT_MODE] !== 'BackCompat') { - SCROLL_NODE = DOCUMENT_ELEMENT; - } else { - SCROLL_NODE = 'body'; - } -} -Y.mix(Y_DOM, { - /** - * Returns the inner height of the viewport (exludes scrollbar). - * @method winHeight - * @return {Number} The current height of the viewport. - */ - winHeight: function(node) { - var h = Y_DOM._getWinSize(node).height; - Y.log('winHeight returning ' + h, 'info', 'dom-screen'); - return h; - }, +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event-custom + * @submodule event-custom-base + */ - /** - * Returns the inner width of the viewport (exludes scrollbar). - * @method winWidth - * @return {Number} The current width of the viewport. - */ - winWidth: function(node) { - var w = Y_DOM._getWinSize(node).width; - Y.log('winWidth returning ' + w, 'info', 'dom-screen'); - return w; - }, - /** - * Document height - * @method docHeight - * @return {Number} The current height of the document. - */ - docHeight: function(node) { - var h = Y_DOM._getDocSize(node).height; - Y.log('docHeight returning ' + h, 'info', 'dom-screen'); - return Math.max(h, Y_DOM._getWinSize(node).height); - }, +// var onsubscribeType = "_event:onsub", +var AFTER = 'after', + CONFIGS = [ + 'broadcast', + 'monitored', + 'bubbles', + 'context', + 'contextFn', + 'currentTarget', + 'defaultFn', + 'defaultTargetOnly', + 'details', + 'emitFacade', + 'fireOnce', + 'async', + 'host', + 'preventable', + 'preventedFn', + 'queuable', + 'silent', + 'stoppedFn', + 'target', + 'type' + ], + + YUI3_SIGNATURE = 9, + YUI_LOG = 'yui:log'; + +/** + * The CustomEvent class lets you define events for your application + * that can be subscribed to by one or more independent component. + * + * @param {String} type The type of event, which is passed to the callback + * when the event fires. + * @param {object} o configuration object. + * @class CustomEvent + * @constructor + */ +Y.CustomEvent = function(type, o) { + + // if (arguments.length > 2) { +// this.log('CustomEvent context and silent are now in the config', 'warn', 'Event'); + // } + + o = o || {}; + + this.id = Y.stamp(this); /** - * Document width - * @method docWidth - * @return {Number} The current width of the document. + * The type of event, returned to subscribers when the event fires + * @property type + * @type string */ - docWidth: function(node) { - var w = Y_DOM._getDocSize(node).width; - Y.log('docWidth returning ' + w, 'info', 'dom-screen'); - return Math.max(w, Y_DOM._getWinSize(node).width); - }, + this.type = type; /** - * Amount page has been scroll horizontally - * @method docScrollX - * @return {Number} The current amount the screen is scrolled horizontally. + * The context the the event will fire from by default. Defaults to the YUI + * instance. + * @property context + * @type object */ - docScrollX: function(node, doc) { - doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization - var dv = doc.defaultView, - pageOffset = (dv) ? dv.pageXOffset : 0; - return Math.max(doc[DOCUMENT_ELEMENT].scrollLeft, doc.body.scrollLeft, pageOffset); - }, + this.context = Y; /** - * Amount page has been scroll vertically - * @method docScrollY - * @return {Number} The current amount the screen is scrolled vertically. + * Monitor when an event is attached or detached. + * + * @property monitored + * @type boolean */ - docScrollY: function(node, doc) { - doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization - var dv = doc.defaultView, - pageOffset = (dv) ? dv.pageYOffset : 0; - return Math.max(doc[DOCUMENT_ELEMENT].scrollTop, doc.body.scrollTop, pageOffset); - }, + // this.monitored = false; + + this.logSystem = (type == YUI_LOG); /** - * Gets the current position of an element based on page coordinates. - * Element must be part of the DOM tree to have page coordinates - * (display:none or elements not appended return false). - * @method getXY - * @param element The target element - * @return {Array} The XY position of the element + * If 0, this event does not broadcast. If 1, the YUI instance is notified + * every time this event fires. If 2, the YUI instance and the YUI global + * (if event is enabled on the global) are notified every time this event + * fires. + * @property broadcast + * @type int + */ + // this.broadcast = 0; - TODO: test inDocument/display? + /** + * By default all custom events are logged in the debug build, set silent + * to true to disable debug outpu for this event. + * @property silent + * @type boolean */ - getXY: function() { - if (Y.config.doc[DOCUMENT_ELEMENT][GET_BOUNDING_CLIENT_RECT]) { - return function(node) { - var xy = null, - scrollLeft, - scrollTop, - box, - off1, off2, - bLeft, bTop, - mode, - doc, - inDoc, - rootNode; + this.silent = this.logSystem; - if (node && node.tagName) { - doc = node.ownerDocument; - rootNode = doc[DOCUMENT_ELEMENT]; + /** + * Specifies whether this event should be queued when the host is actively + * processing an event. This will effect exectution order of the callbacks + * for the various events. + * @property queuable + * @type boolean + * @default false + */ + // this.queuable = false; - // inline inDoc check for perf - if (rootNode.contains) { - inDoc = rootNode.contains(node); - } else { - inDoc = Y.DOM.contains(rootNode, node); - } + /** + * The subscribers to this event + * @property subscribers + * @type Subscriber {} + */ + this.subscribers = {}; - if (inDoc) { - scrollLeft = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollLeft : Y_DOM.docScrollX(node, doc); - scrollTop = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollTop : Y_DOM.docScrollY(node, doc); - box = node[GET_BOUNDING_CLIENT_RECT](); - xy = [box.left, box.top]; + /** + * 'After' subscribers + * @property afters + * @type Subscriber {} + */ + this.afters = {}; - if (Y.UA.ie) { - off1 = 2; - off2 = 2; - mode = doc[COMPAT_MODE]; - bLeft = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_LEFT_WIDTH); - bTop = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_TOP_WIDTH); + /** + * This event has fired if true + * + * @property fired + * @type boolean + * @default false; + */ + // this.fired = false; - if (Y.UA.ie === 6) { - if (mode !== _BACK_COMPAT) { - off1 = 0; - off2 = 0; - } - } - - if ((mode == _BACK_COMPAT)) { - if (bLeft !== MEDIUM) { - off1 = parseInt(bLeft, 10); - } - if (bTop !== MEDIUM) { - off2 = parseInt(bTop, 10); - } - } - - xy[0] -= off1; - xy[1] -= off2; + /** + * An array containing the arguments the custom event + * was last fired with. + * @property firedWith + * @type Array + */ + // this.firedWith; - } + /** + * This event should only fire one time if true, and if + * it has fired, any new subscribers should be notified + * immediately. + * + * @property fireOnce + * @type boolean + * @default false; + */ + // this.fireOnce = false; - if ((scrollTop || scrollLeft)) { - if (!Y.UA.ios || (Y.UA.ios >= 4.2)) { - xy[0] += scrollLeft; - xy[1] += scrollTop; - } - - } - } else { - xy = Y_DOM._getOffset(node); - } - } - return xy; - } - } else { - return function(node) { // manually calculate by crawling up offsetParents - //Calculate the Top and Left border sizes (assumes pixels) - var xy = null, - doc, - parentNode, - bCheck, - scrollTop, - scrollLeft; + /** + * fireOnce listeners will fire syncronously unless async + * is set to true + * @property async + * @type boolean + * @default false + */ + //this.async = false; - if (node) { - if (Y_DOM.inDoc(node)) { - xy = [node.offsetLeft, node.offsetTop]; - doc = node.ownerDocument; - parentNode = node; - // TODO: refactor with !! or just falsey - bCheck = ((Y.UA.gecko || Y.UA.webkit > 519) ? true : false); + /** + * Flag for stopPropagation that is modified during fire() + * 1 means to stop propagation to bubble targets. 2 means + * to also stop additional subscribers on this target. + * @property stopped + * @type int + */ + // this.stopped = 0; - // TODO: worth refactoring for TOP/LEFT only? - while ((parentNode = parentNode.offsetParent)) { - xy[0] += parentNode.offsetLeft; - xy[1] += parentNode.offsetTop; - if (bCheck) { - xy = Y_DOM._calcBorders(parentNode, xy); - } - } - - // account for any scrolled ancestors - if (Y_DOM.getStyle(node, POSITION) != FIXED) { - parentNode = node; - - while ((parentNode = parentNode.parentNode)) { - scrollTop = parentNode.scrollTop; - scrollLeft = parentNode.scrollLeft; + /** + * Flag for preventDefault that is modified during fire(). + * if it is not 0, the default behavior for this event + * @property prevented + * @type int + */ + // this.prevented = 0; - //Firefox does something funky with borders when overflow is not visible. - if (Y.UA.gecko && (Y_DOM.getStyle(parentNode, 'overflow') !== 'visible')) { - xy = Y_DOM._calcBorders(parentNode, xy); - } - + /** + * Specifies the host for this custom event. This is used + * to enable event bubbling + * @property host + * @type EventTarget + */ + // this.host = null; - if (scrollTop || scrollLeft) { - xy[0] -= scrollLeft; - xy[1] -= scrollTop; - } - } - xy[0] += Y_DOM.docScrollX(node, doc); - xy[1] += Y_DOM.docScrollY(node, doc); + /** + * The default function to execute after event listeners + * have fire, but only if the default action was not + * prevented. + * @property defaultFn + * @type Function + */ + // this.defaultFn = null; - } else { - //Fix FIXED position -- add scrollbars - xy[0] += Y_DOM.docScrollX(node, doc); - xy[1] += Y_DOM.docScrollY(node, doc); - } - } else { - xy = Y_DOM._getOffset(node); - } - } + /** + * The function to execute if a subscriber calls + * stopPropagation or stopImmediatePropagation + * @property stoppedFn + * @type Function + */ + // this.stoppedFn = null; - return xy; - }; - } - }(),// NOTE: Executing for loadtime branching + /** + * The function to execute if a subscriber calls + * preventDefault + * @property preventedFn + * @type Function + */ + // this.preventedFn = null; /** - * Gets the current X position of an element based on page coordinates. - * Element must be part of the DOM tree to have page coordinates - * (display:none or elements not appended return false). - * @method getX - * @param element The target element - * @return {Int} The X position of the element + * Specifies whether or not this event's default function + * can be cancelled by a subscriber by executing preventDefault() + * on the event facade + * @property preventable + * @type boolean + * @default true */ + this.preventable = true; - getX: function(node) { - return Y_DOM.getXY(node)[0]; - }, + /** + * Specifies whether or not a subscriber can stop the event propagation + * via stopPropagation(), stopImmediatePropagation(), or halt() + * + * Events can only bubble if emitFacade is true. + * + * @property bubbles + * @type boolean + * @default true + */ + this.bubbles = true; /** - * Gets the current Y position of an element based on page coordinates. - * Element must be part of the DOM tree to have page coordinates - * (display:none or elements not appended return false). - * @method getY - * @param element The target element - * @return {Int} The Y position of the element + * Supports multiple options for listener signatures in order to + * port YUI 2 apps. + * @property signature + * @type int + * @default 9 */ + this.signature = YUI3_SIGNATURE; - getY: function(node) { - return Y_DOM.getXY(node)[1]; - }, + this.subCount = 0; + this.afterCount = 0; + + // this.hasSubscribers = false; + + // this.hasAfters = false; /** - * Set the position of an html element in page coordinates. - * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setXY - * @param element The target element - * @param {Array} xy Contains X & Y values for new position (coordinates are page-based) - * @param {Boolean} noRetry By default we try and set the position a second time if the first fails + * If set to true, the custom event will deliver an EventFacade object + * that is similar to a DOM event object. + * @property emitFacade + * @type boolean + * @default false */ - setXY: function(node, xy, noRetry) { - var setStyle = Y_DOM.setStyle, - pos, - delta, - newXY, - currentXY; + // this.emitFacade = false; - if (node && xy) { - pos = Y_DOM.getStyle(node, POSITION); + this.applyConfig(o, true); - delta = Y_DOM._getOffset(node); - if (pos == 'static') { // default to relative - pos = RELATIVE; - setStyle(node, POSITION, pos); - } - currentXY = Y_DOM.getXY(node); + // this.log("Creating " + this.type); - if (xy[0] !== null) { - setStyle(node, LEFT, xy[0] - currentXY[0] + delta[0] + 'px'); - } +}; - if (xy[1] !== null) { - setStyle(node, TOP, xy[1] - currentXY[1] + delta[1] + 'px'); - } +Y.CustomEvent.prototype = { + constructor: Y.CustomEvent, - if (!noRetry) { - newXY = Y_DOM.getXY(node); - if (newXY[0] !== xy[0] || newXY[1] !== xy[1]) { - Y_DOM.setXY(node, xy, true); - } - } - - Y.log('setXY setting position to ' + xy, 'info', 'dom-screen'); - } else { - Y.log('setXY failed to set ' + node + ' to ' + xy, 'info', 'dom-screen'); + /** + * Returns the number of subscribers for this event as the sum of the on() + * subscribers and after() subscribers. + * + * @method hasSubs + * @return Number + */ + hasSubs: function(when) { + var s = this.subCount, a = this.afterCount, sib = this.sibling; + + if (sib) { + s += sib.subCount; + a += sib.afterCount; + } + + if (when) { + return (when == 'after') ? a : s; } + + return (s + a); }, /** - * Set the X position of an html element in page coordinates, regardless of how the element is positioned. - * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setX - * @param element The target element - * @param {Int} x The X values for new position (coordinates are page-based) + * Monitor the event state for the subscribed event. The first parameter + * is what should be monitored, the rest are the normal parameters when + * subscribing to an event. + * @method monitor + * @param what {string} what to monitor ('detach', 'attach', 'publish'). + * @return {EventHandle} return value from the monitor event subscription. */ - setX: function(node, x) { - return Y_DOM.setXY(node, [x, null]); + monitor: function(what) { + this.monitored = true; + var type = this.id + '|' + this.type + '_' + what, + args = Y.Array(arguments, 0, true); + args[0] = type; + return this.host.on.apply(this.host, args); }, /** - * Set the Y position of an html element in page coordinates, regardless of how the element is positioned. - * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setY - * @param element The target element - * @param {Int} y The Y values for new position (coordinates are page-based) + * Get all of the subscribers to this event and any sibling event + * @method getSubs + * @return {Array} first item is the on subscribers, second the after. */ - setY: function(node, y) { - return Y_DOM.setXY(node, [null, y]); + getSubs: function() { + var s = Y.merge(this.subscribers), a = Y.merge(this.afters), sib = this.sibling; + + if (sib) { + Y.mix(s, sib.subscribers); + Y.mix(a, sib.afters); + } + + return [s, a]; }, /** - * @method swapXY - * @description Swap the xy position with another node - * @param {Node} node The node to swap with - * @param {Node} otherNode The other node to swap with - * @return {Node} + * Apply configuration properties. Only applies the CONFIG whitelist + * @method applyConfig + * @param o hash of properties to apply. + * @param force {boolean} if true, properties that exist on the event + * will be overwritten. */ - swapXY: function(node, otherNode) { - var xy = Y_DOM.getXY(node); - Y_DOM.setXY(node, Y_DOM.getXY(otherNode)); - Y_DOM.setXY(otherNode, xy); - }, - - _calcBorders: function(node, xy2) { - var t = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_TOP_WIDTH), 10) || 0, - l = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_LEFT_WIDTH), 10) || 0; - if (Y.UA.gecko) { - if (RE_TABLE.test(node.tagName)) { - t = 0; - l = 0; - } + applyConfig: function(o, force) { + if (o) { + Y.mix(this, o, force, CONFIGS); } - xy2[0] += l; - xy2[1] += t; - return xy2; }, - _getWinSize: function(node, doc) { - doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; - var win = doc.defaultView || doc.parentWindow, - mode = doc[COMPAT_MODE], - h = win.innerHeight, - w = win.innerWidth, - root = doc[DOCUMENT_ELEMENT]; + /** + * Create the Subscription for subscribing function, context, and bound + * arguments. If this is a fireOnce event, the subscriber is immediately + * notified. + * + * @method _on + * @param fn {Function} Subscription callback + * @param [context] {Object} Override `this` in the callback + * @param [args] {Array} bound arguments that will be passed to the callback after the arguments generated by fire() + * @param [when] {String} "after" to slot into after subscribers + * @return {EventHandle} + * @protected + */ + _on: function(fn, context, args, when) { - if ( mode && !Y.UA.opera ) { // IE, Gecko - if (mode != 'CSS1Compat') { // Quirks - root = doc.body; - } - h = root.clientHeight; - w = root.clientWidth; + if (!fn) { + this.log('Invalid callback for CE: ' + this.type); } - return { height: h, width: w }; - }, - _getDocSize: function(node) { - var doc = (node) ? Y_DOM._getDoc(node) : Y.config.doc, - root = doc[DOCUMENT_ELEMENT]; + var s = new Y.Subscriber(fn, context, args, when); - if (doc[COMPAT_MODE] != 'CSS1Compat') { - root = doc.body; + if (this.fireOnce && this.fired) { + if (this.async) { + setTimeout(Y.bind(this._notify, this, s, this.firedWith), 0); + } else { + this._notify(s, this.firedWith); + } } - return { height: root.scrollHeight, width: root.scrollWidth }; - } -}); + if (when == AFTER) { + this.afters[s.id] = s; + this.afterCount++; + } else { + this.subscribers[s.id] = s; + this.subCount++; + } -})(Y); -(function(Y) { -var TOP = 'top', - RIGHT = 'right', - BOTTOM = 'bottom', - LEFT = 'left', + return new Y.EventHandle(this, s); - getOffsets = function(r1, r2) { - var t = Math.max(r1[TOP], r2[TOP]), - r = Math.min(r1[RIGHT], r2[RIGHT]), - b = Math.min(r1[BOTTOM], r2[BOTTOM]), - l = Math.max(r1[LEFT], r2[LEFT]), - ret = {}; - - ret[TOP] = t; - ret[RIGHT] = r; - ret[BOTTOM] = b; - ret[LEFT] = l; - return ret; }, - DOM = Y.DOM; - -Y.mix(DOM, { /** - * Returns an Object literal containing the following about this element: (top, right, bottom, left) - * @for DOM - * @method region - * @param {HTMLElement} element The DOM element. - * @return {Object} Object literal containing the following about this element: (top, right, bottom, left) + * Listen for this event + * @method subscribe + * @param {Function} fn The function to execute. + * @return {EventHandle} Unsubscribe handle. + * @deprecated use on. */ - region: function(node) { - var xy = DOM.getXY(node), - ret = false; - - if (node && xy) { - ret = DOM._getRegion( - xy[1], // top - xy[0] + node.offsetWidth, // right - xy[1] + node.offsetHeight, // bottom - xy[0] // left - ); - } - - return ret; + subscribe: function(fn, context) { + Y.log('ce.subscribe deprecated, use "on"', 'warn', 'deprecated'); + var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; + return this._on(fn, context, a, true); }, /** - * Find the intersect information for the passes nodes. - * @method intersect - * @for DOM - * @param {HTMLElement} element The first element - * @param {HTMLElement | Object} element2 The element or region to check the interect with - * @param {Object} altRegion An object literal containing the region for the first element if we already have the data (for performance i.e. DragDrop) - * @return {Object} Object literal containing the following intersection data: (top, right, bottom, left, area, yoff, xoff, inRegion) + * Listen for this event + * @method on + * @param {Function} fn The function to execute. + * @param {object} context optional execution context. + * @param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {EventHandle} An object with a detach method to detch the handler(s). */ - intersect: function(node, node2, altRegion) { - var r = altRegion || DOM.region(node), region = {}, - n = node2, - off; - - if (n.tagName) { - region = DOM.region(n); - } else if (Y.Lang.isObject(node2)) { - region = node2; - } else { - return false; + on: function(fn, context) { + var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; + if (this.host) { + this.host._monitor('attach', this.type, { + args: arguments + }); } - - off = getOffsets(region, r); - return { - top: off[TOP], - right: off[RIGHT], - bottom: off[BOTTOM], - left: off[LEFT], - area: ((off[BOTTOM] - off[TOP]) * (off[RIGHT] - off[LEFT])), - yoff: ((off[BOTTOM] - off[TOP])), - xoff: (off[RIGHT] - off[LEFT]), - inRegion: DOM.inRegion(node, node2, false, altRegion) - }; - + return this._on(fn, context, a, true); }, + /** - * Check if any part of this node is in the passed region - * @method inRegion - * @for DOM - * @param {Object} node2 The node to get the region from or an Object literal of the region - * $param {Boolean} all Should all of the node be inside the region - * @param {Object} altRegion An object literal containing the region for this node if we already have the data (for performance i.e. DragDrop) - * @return {Boolean} True if in region, false if not. + * Listen for this event after the normal subscribers have been notified and + * the default behavior has been applied. If a normal subscriber prevents the + * default behavior, it also prevents after listeners from firing. + * @method after + * @param {Function} fn The function to execute. + * @param {object} context optional execution context. + * @param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {EventHandle} handle Unsubscribe handle. */ - inRegion: function(node, node2, all, altRegion) { - var region = {}, - r = altRegion || DOM.region(node), - n = node2, - off; + after: function(fn, context) { + var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; + return this._on(fn, context, a, AFTER); + }, - if (n.tagName) { - region = DOM.region(n); - } else if (Y.Lang.isObject(node2)) { - region = node2; - } else { - return false; + /** + * Detach listeners. + * @method detach + * @param {Function} fn The subscribed function to remove, if not supplied + * all will be removed. + * @param {Object} context The context object passed to subscribe. + * @return {int} returns the number of subscribers unsubscribed. + */ + detach: function(fn, context) { + // unsubscribe handle + if (fn && fn.detach) { + return fn.detach(); } - - if (all) { - return ( - r[LEFT] >= region[LEFT] && - r[RIGHT] <= region[RIGHT] && - r[TOP] >= region[TOP] && - r[BOTTOM] <= region[BOTTOM] ); - } else { - off = getOffsets(region, r); - if (off[BOTTOM] >= off[TOP] && off[RIGHT] >= off[LEFT]) { - return true; - } else { - return false; + + var i, s, + found = 0, + subs = Y.merge(this.subscribers, this.afters); + + for (i in subs) { + if (subs.hasOwnProperty(i)) { + s = subs[i]; + if (s && (!fn || fn === s.fn)) { + this._delete(s); + found++; + } } - } + + return found; }, /** - * Check if any part of this element is in the viewport - * @method inViewportRegion - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {Boolean} all Should all of the node be inside the region - * @param {Object} altRegion An object literal containing the region for this node if we already have the data (for performance i.e. DragDrop) - * @return {Boolean} True if in region, false if not. + * Detach listeners. + * @method unsubscribe + * @param {Function} fn The subscribed function to remove, if not supplied + * all will be removed. + * @param {Object} context The context object passed to subscribe. + * @return {int|undefined} returns the number of subscribers unsubscribed. + * @deprecated use detach. */ - inViewportRegion: function(node, all, altRegion) { - return DOM.inRegion(node, DOM.viewportRegion(node), all, altRegion); - + unsubscribe: function() { + return this.detach.apply(this, arguments); }, - _getRegion: function(t, r, b, l) { - var region = {}; + /** + * Notify a single subscriber + * @method _notify + * @param {Subscriber} s the subscriber. + * @param {Array} args the arguments array to apply to the listener. + * @protected + */ + _notify: function(s, args, ef) { - region[TOP] = region[1] = t; - region[LEFT] = region[0] = l; - region[BOTTOM] = b; - region[RIGHT] = r; - region.width = region[RIGHT] - region[LEFT]; - region.height = region[BOTTOM] - region[TOP]; + this.log(this.type + '->' + 'sub: ' + s.id); - return region; + var ret; + + ret = s.notify(args, this); + + if (false === ret || this.stopped > 1) { + this.log(this.type + ' cancelled by subscriber'); + return false; + } + + return true; }, /** - * Returns an Object literal containing the following about the visible region of viewport: (top, right, bottom, left) - * @method viewportRegion - * @for DOM - * @return {Object} Object literal containing the following about the visible region of the viewport: (top, right, bottom, left) + * Logger abstraction to centralize the application of the silent flag + * @method log + * @param {string} msg message to log. + * @param {string} cat log category. */ - viewportRegion: function(node) { - node = node || Y.config.doc.documentElement; - var ret = false, - scrollX, - scrollY; - - if (node) { - scrollX = DOM.docScrollX(node); - scrollY = DOM.docScrollY(node); - - ret = DOM._getRegion(scrollY, // top - DOM.winWidth(node) + scrollX, // right - scrollY + DOM.winHeight(node), // bottom - scrollX); // left + log: function(msg, cat) { + if (!this.silent) { + Y.log(this.id + ': ' + msg, cat || 'info', 'event'); } + }, - return ret; - } -}); -})(Y); - - -}, '3.4.0' ,{requires:['dom-core', 'dom-style']}); -YUI.add('selector-native', function(Y) { - -(function(Y) { -/** - * The selector-native module provides support for native querySelector - * @module dom - * @submodule selector-native - * @for Selector - */ - -/** - * Provides support for using CSS selectors to query the DOM - * @class Selector - * @static - * @for Selector - */ - -Y.namespace('Selector'); // allow native module to standalone - -var COMPARE_DOCUMENT_POSITION = 'compareDocumentPosition', - OWNER_DOCUMENT = 'ownerDocument'; - -var Selector = { - _foundCache: [], - - useNative: true, + /** + * Notifies the subscribers. The callback functions will be executed + * from the context specified when the event was created, and with the + * following parameters: + *

                                + *
                              • The type of event
                              • + *
                              • All of the arguments fire() was executed with as an array
                              • + *
                              • The custom object (if any) that was passed into the subscribe() + * method
                              • + *
                              + * @method fire + * @param {Object*} arguments an arbitrary set of parameters to pass to + * the handler. + * @return {boolean} false if one of the subscribers returned false, + * true otherwise. + * + */ + fire: function() { + if (this.fireOnce && this.fired) { + this.log('fireOnce event: ' + this.type + ' already fired'); + return true; + } else { - _compare: ('sourceIndex' in Y.config.doc.documentElement) ? - function(nodeA, nodeB) { - var a = nodeA.sourceIndex, - b = nodeB.sourceIndex; + var args = Y.Array(arguments, 0, true); - if (a === b) { - return 0; - } else if (a > b) { - return 1; - } + // this doesn't happen if the event isn't published + // this.host._monitor('fire', this.type, args); - return -1; + this.fired = true; + this.firedWith = args; - } : (Y.config.doc.documentElement[COMPARE_DOCUMENT_POSITION] ? - function(nodeA, nodeB) { - if (nodeA[COMPARE_DOCUMENT_POSITION](nodeB) & 4) { - return -1; + if (this.emitFacade) { + return this.fireComplex(args); } else { - return 1; - } - } : - function(nodeA, nodeB) { - var rangeA, rangeB, compare; - if (nodeA && nodeB) { - rangeA = nodeA[OWNER_DOCUMENT].createRange(); - rangeA.setStart(nodeA, 0); - rangeB = nodeB[OWNER_DOCUMENT].createRange(); - rangeB.setStart(nodeB, 0); - compare = rangeA.compareBoundaryPoints(1, rangeB); // 1 === Range.START_TO_END - } - - return compare; - - }), - - _sort: function(nodes) { - if (nodes) { - nodes = Y.Array(nodes, 0, true); - if (nodes.sort) { - nodes.sort(Selector._compare); + return this.fireSimple(args); } } - - return nodes; }, - _deDupe: function(nodes) { - var ret = [], - i, node; - - for (i = 0; (node = nodes[i++]);) { - if (!node._found) { - ret[ret.length] = node; - node._found = true; - } - } - - for (i = 0; (node = ret[i++]);) { - node._found = null; - node.removeAttribute('_found'); + /** + * Set up for notifying subscribers of non-emitFacade events. + * + * @method fireSimple + * @param args {Array} Arguments passed to fire() + * @return Boolean false if a subscriber returned false + * @protected + */ + fireSimple: function(args) { + this.stopped = 0; + this.prevented = 0; + if (this.hasSubs()) { + // this._procSubs(Y.merge(this.subscribers, this.afters), args); + var subs = this.getSubs(); + this._procSubs(subs[0], args); + this._procSubs(subs[1], args); } + this._broadcast(args); + return this.stopped ? false : true; + }, - return ret; + // Requires the event-custom-complex module for full funcitonality. + fireComplex: function(args) { + Y.log('Missing event-custom-complex needed to emit a facade for: ' + this.type); + args[0] = args[0] || {}; + return this.fireSimple(args); }, /** - * Retrieves a set of nodes based on a given CSS selector. - * @method query + * Notifies a list of subscribers. * - * @param {string} selector The CSS Selector to test the node against. - * @param {HTMLElement} root optional An HTMLElement to start the query from. Defaults to Y.config.doc - * @param {Boolean} firstOnly optional Whether or not to return only the first match. - * @return {Array} An array of nodes that match the given selector. - * @static + * @method _procSubs + * @param subs {Array} List of subscribers + * @param args {Array} Arguments passed to fire() + * @param ef {} + * @return Boolean false if a subscriber returns false or stops the event + * propagation via e.stopPropagation(), + * e.stopImmediatePropagation(), or e.halt() + * @private */ - query: function(selector, root, firstOnly, skipNative) { - root = root || Y.config.doc; - var ret = [], - useNative = (Y.Selector.useNative && Y.config.doc.querySelector && !skipNative), - queries = [[selector, root]], - query, - result, - i, - fn = (useNative) ? Y.Selector._nativeQuery : Y.Selector._bruteQuery; - - if (selector && fn) { - // split group into seperate queries - if (!skipNative && // already done if skipping - (!useNative || root.tagName)) { // split native when element scoping is needed - queries = Selector._splitQueries(selector, root); - } - - for (i = 0; (query = queries[i++]);) { - result = fn(query[0], query[1], firstOnly); - if (!firstOnly) { // coerce DOM Collection to Array - result = Y.Array(result, 0, true); - } - if (result) { - ret = ret.concat(result); + _procSubs: function(subs, args, ef) { + var s, i; + for (i in subs) { + if (subs.hasOwnProperty(i)) { + s = subs[i]; + if (s && s.fn) { + if (false === this._notify(s, args, ef)) { + this.stopped = 2; + } + if (this.stopped == 2) { + return false; + } } } - - if (queries.length > 1) { // remove dupes and sort by doc order - ret = Selector._sort(Selector._deDupe(ret)); - } } - Y.log('query: ' + selector + ' returning: ' + ret.length, 'info', 'Selector'); - return (firstOnly) ? (ret[0] || null) : ret; - + return true; }, - // allows element scoped queries to begin with combinator - // e.g. query('> p', document.body) === query('body > p') - _splitQueries: function(selector, node) { - var groups = selector.split(','), - queries = [], - prefix = '', - i, len; + /** + * Notifies the YUI instance if the event is configured with broadcast = 1, + * and both the YUI instance and Y.Global if configured with broadcast = 2. + * + * @method _broadcast + * @param args {Array} Arguments sent to fire() + * @private + */ + _broadcast: function(args) { + if (!this.stopped && this.broadcast) { - if (node) { - // enforce for element scoping - if (node.tagName) { - node.id = node.id || Y.guid(); - prefix = '[id="' + node.id + '"] '; + var a = Y.Array(args); + a.unshift(this.type); + + if (this.host !== Y) { + Y.fire.apply(Y, a); } - for (i = 0, len = groups.length; i < len; ++i) { - selector = prefix + groups[i]; - queries.push([selector, node]); + if (this.broadcast == 2) { + Y.Global.fire.apply(Y.Global, a); } } + }, - return queries; + /** + * Removes all listeners + * @method unsubscribeAll + * @return {int} The number of listeners unsubscribed. + * @deprecated use detachAll. + */ + unsubscribeAll: function() { + return this.detachAll.apply(this, arguments); }, - _nativeQuery: function(selector, root, one) { - if (Y.UA.webkit && selector.indexOf(':checked') > -1 && - (Y.Selector.pseudos && Y.Selector.pseudos.checked)) { // webkit (chrome, safari) fails to find "selected" - return Y.Selector.query(selector, root, one, true); // redo with skipNative true to try brute query - } - try { - //Y.log('trying native query with: ' + selector, 'info', 'selector-native'); - return root['querySelector' + (one ? '' : 'All')](selector); - } catch(e) { // fallback to brute if available - //Y.log('native query error; reverting to brute query with: ' + selector, 'info', 'selector-native'); - return Y.Selector.query(selector, root, one, true); // redo with skipNative true - } + /** + * Removes all listeners + * @method detachAll + * @return {int} The number of listeners unsubscribed. + */ + detachAll: function() { + return this.detach(); }, - filter: function(nodes, selector) { - var ret = [], - i, node; - - if (nodes && selector) { - for (i = 0; (node = nodes[i++]);) { - if (Y.Selector.test(node, selector)) { - ret[ret.length] = node; - } + /** + * Deletes the subscriber from the internal store of on() and after() + * subscribers. + * + * @method _delete + * @param subscriber object. + * @private + */ + _delete: function(s) { + if (s) { + if (this.subscribers[s.id]) { + delete this.subscribers[s.id]; + this.subCount--; + } + if (this.afters[s.id]) { + delete this.afters[s.id]; + this.afterCount--; } - } else { - Y.log('invalid filter input (nodes: ' + nodes + - ', selector: ' + selector + ')', 'warn', 'Selector'); } - return ret; - }, - - test: function(node, selector, root) { - var ret = false, - useFrag = false, - groups, - parent, - item, - items, - frag, - i, j, group; - - if (node && node.tagName) { // only test HTMLElements + if (this.host) { + this.host._monitor('detach', this.type, { + ce: this, + sub: s + }); + } - if (typeof selector == 'function') { // test with function - ret = selector.call(node, node); - } else { // test with query - // we need a root if off-doc - groups = selector.split(','); - if (!root && !Y.DOM.inDoc(node)) { - parent = node.parentNode; - if (parent) { - root = parent; - } else { // only use frag when no parent to query - frag = node[OWNER_DOCUMENT].createDocumentFragment(); - frag.appendChild(node); - root = frag; - useFrag = true; - } - } - root = root || node[OWNER_DOCUMENT]; + if (s) { + // delete s.fn; + // delete s.context; + s.deleted = true; + } + } +}; +/** + * Stores the subscriber information to be used when the event fires. + * @param {Function} fn The wrapped function to execute. + * @param {Object} context The value of the keyword 'this' in the listener. + * @param {Array} args* 0..n additional arguments to supply the listener. + * + * @class Subscriber + * @constructor + */ +Y.Subscriber = function(fn, context, args) { - if (!node.id) { - node.id = Y.guid(); - } - for (i = 0; (group = groups[i++]);) { // TODO: off-dom test - group += '[id="' + node.id + '"]'; - items = Y.Selector.query(group, root); + /** + * The callback that will be execute when the event fires + * This is wrapped by Y.rbind if obj was supplied. + * @property fn + * @type Function + */ + this.fn = fn; - for (j = 0; item = items[j++];) { - if (item === node) { - ret = true; - break; - } - } - if (ret) { - break; - } - } + /** + * Optional 'this' keyword for the listener + * @property context + * @type Object + */ + this.context = context; - if (useFrag) { // cleanup - frag.removeChild(node); - } - }; - } + /** + * Unique subscriber id + * @property id + * @type String + */ + this.id = Y.stamp(this); - return ret; - }, + /** + * Additional arguments to propagate to the subscriber + * @property args + * @type Array + */ + this.args = args; /** - * A convenience function to emulate Y.Node's aNode.ancestor(selector). - * @param {HTMLElement} element An HTMLElement to start the query from. - * @param {String} selector The CSS selector to test the node against. - * @return {HTMLElement} The ancestor node matching the selector, or null. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * @static - * @method ancestor + * Custom events for a given fire transaction. + * @property events + * @type {EventTarget} */ - ancestor: function (element, selector, testSelf) { - return Y.DOM.ancestor(element, function(n) { - return Y.Selector.test(n, selector); - }, testSelf); - } -}; + // this.events = null; -Y.mix(Y.Selector, Selector, true); + /** + * This listener only reacts to the event once + * @property once + */ + // this.once = false; -})(Y); +}; +Y.Subscriber.prototype = { + constructor: Y.Subscriber, -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('selector', function(Y) { + _notify: function(c, args, ce) { + if (this.deleted && !this.postponed) { + if (this.postponed) { + delete this.fn; + delete this.context; + } else { + delete this.postponed; + return null; + } + } + var a = this.args, ret; + switch (ce.signature) { + case 0: + ret = this.fn.call(c, ce.type, args, c); + break; + case 1: + ret = this.fn.call(c, args[0] || null, c); + break; + default: + if (a || args) { + args = args || []; + a = (a) ? args.concat(a) : args; + ret = this.fn.apply(c, a); + } else { + ret = this.fn.call(c); + } + } + if (this.once) { + ce._delete(this); + } + return ret; + }, + /** + * Executes the subscriber. + * @method notify + * @param args {Array} Arguments array for the subscriber. + * @param ce {CustomEvent} The custom event that sent the notification. + */ + notify: function(args, ce) { + var c = this.context, + ret = true; -}, '3.4.0' ,{requires:['selector-native']}); + if (!c) { + c = (ce.contextFn) ? ce.contextFn() : ce.context; + } + // only catch errors if we will not re-throw them. + if (Y.config.throwFail) { + ret = this._notify(c, args, ce); + } else { + try { + ret = this._notify(c, args, ce); + } catch (e) { + Y.error(this + ' failed: ' + e.message, e); + } + } -YUI.add('dom', function(Y){}, '3.4.0' ,{use:['dom-core', 'dom-base', 'dom-attrs', 'dom-create', 'dom-class', 'dom-size', 'dom-style', 'dom-screen', 'selector-native', 'selector']}); + return ret; + }, -YUI.add('event-custom-base', function(Y) { + /** + * Returns true if the fn and obj match this objects properties. + * Used by the unsubscribe method to match the right subscriber. + * + * @method contains + * @param {Function} fn the function to execute. + * @param {Object} context optional 'this' keyword for the listener. + * @return {boolean} true if the supplied arguments match this + * subscriber's signature. + */ + contains: function(fn, context) { + if (context) { + return ((this.fn == fn) && this.context == context); + } else { + return (this.fn == fn); + } + } +}; /** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event-custom + * Return value from all subscribe operations + * @class EventHandle + * @constructor + * @param {CustomEvent} evt the custom event. + * @param {Subscriber} sub the subscriber. */ +Y.EventHandle = function(evt, sub) { -Y.Env.evt = { - handles: {}, - plugins: {} + /** + * The custom event + * @type CustomEvent + */ + this.evt = evt; + + /** + * The subscriber object + * @type Subscriber + */ + this.sub = sub; }; +Y.EventHandle.prototype = { + batch: function(f, c) { + f.call(c || this, this); + if (Y.Lang.isArray(this.evt)) { + Y.Array.each(this.evt, function(h) { + h.batch.call(c || h, f); + }); + } + }, + + /** + * Detaches this subscriber + * @method detach + * @return {int} the number of detached listeners + */ + detach: function() { + var evt = this.evt, detached = 0, i; + if (evt) { + // Y.log('EventHandle.detach: ' + this.sub, 'info', 'Event'); + if (Y.Lang.isArray(evt)) { + for (i = 0; i < evt.length; i++) { + detached += evt[i].detach(); + } + } else { + evt._delete(this.sub); + detached = 1; + } + + } + + return detached; + }, + + /** + * Monitor the event state for the subscribed event. The first parameter + * is what should be monitored, the rest are the normal parameters when + * subscribing to an event. + * @method monitor + * @param what {string} what to monitor ('attach', 'detach', 'publish'). + * @return {EventHandle} return value from the monitor event subscription. + */ + monitor: function(what) { + return this.evt.monitor.apply(this.evt, arguments); + } +}; /** * Custom event engine, DOM event listener abstraction layer, synthetic DOM @@ -11517,6713 +9058,5464 @@ Y.Env.evt = { */ /** - * Allows for the insertion of methods that are executed before or after - * a specified method - * @class Do - * @static + * EventTarget provides the implementation for any object to + * publish, subscribe and fire to custom events, and also + * alows other EventTargets to target the object with events + * sourced from the other object. + * EventTarget is designed to be used with Y.augment to wrap + * EventCustom in an interface that allows events to be listened to + * and fired by name. This makes it possible for implementing code to + * subscribe to an event that either has not been created yet, or will + * not be created at all. + * @class EventTarget + * @param opts a configuration object + * @config emitFacade {boolean} if true, all events will emit event + * facade payloads by default (default false) + * @config prefix {string} the prefix to apply to non-prefixed event names + * @config chain {boolean} if true, on/after/detach return the host to allow + * chaining, otherwise they return an EventHandle (default false) */ -var DO_BEFORE = 0, - DO_AFTER = 1, - -DO = { +var L = Y.Lang, + PREFIX_DELIMITER = ':', + CATEGORY_DELIMITER = '|', + AFTER_PREFIX = '~AFTER~', + YArray = Y.Array, - /** - * Cache of objects touched by the utility - * @property objs - * @static - */ - objs: {}, + _wildType = Y.cached(function(type) { + return type.replace(/(.*)(:)(.*)/, "*$2$3"); + }), /** - *

                              Execute the supplied method before the specified function. Wrapping - * function may optionally return an instance of the following classes to - * further alter runtime behavior:

                              - *
                              - *
                              Y.Do.Halt(message, returnValue)
                              - *
                              Immediatly stop execution and return - * returnValue. No other wrapping functions will be - * executed.
                              - *
                              Y.Do.AlterArgs(message, newArgArray)
                              - *
                              Replace the arguments that the original function will be - * called with.
                              - *
                              Y.Do.Prevent(message)
                              - *
                              Don't execute the wrapped function. Other before phase - * wrappers will be executed.
                              - *
                              - * - * @method before - * @param fn {Function} the function to execute - * @param obj the object hosting the method to displace - * @param sFn {string} the name of the method to displace - * @param c The execution context for fn - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * when the event fires. - * @return {string} handle for the subscription - * @static + * If the instance has a prefix attribute and the + * event type is not prefixed, the instance prefix is + * applied to the supplied type. + * @method _getType + * @private */ - before: function(fn, obj, sFn, c) { - // Y.log('Do before: ' + sFn, 'info', 'event'); - var f = fn, a; - if (c) { - a = [fn, c].concat(Y.Array(arguments, 4, true)); - f = Y.rbind.apply(Y, a); - } - - return this._inject(DO_BEFORE, f, obj, sFn); - }, + _getType = Y.cached(function(type, pre) { - /** - *

                              Execute the supplied method after the specified function. Wrapping - * function may optionally return an instance of the following classes to - * further alter runtime behavior:

                              - *
                              - *
                              Y.Do.Halt(message, returnValue)
                              - *
                              Immediatly stop execution and return - * returnValue. No other wrapping functions will be - * executed.
                              - *
                              Y.Do.AlterReturn(message, returnValue)
                              - *
                              Return returnValue instead of the wrapped - * method's original return value. This can be further altered by - * other after phase wrappers.
                              - *
                              - * - *

                              The static properties Y.Do.originalRetVal and - * Y.Do.currentRetVal will be populated for reference.

                              - * - * @method after - * @param fn {Function} the function to execute - * @param obj the object hosting the method to displace - * @param sFn {string} the name of the method to displace - * @param c The execution context for fn - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return {string} handle for the subscription - * @static - */ - after: function(fn, obj, sFn, c) { - var f = fn, a; - if (c) { - a = [fn, c].concat(Y.Array(arguments, 4, true)); - f = Y.rbind.apply(Y, a); + if (!pre || !L.isString(type) || type.indexOf(PREFIX_DELIMITER) > -1) { + return type; } - return this._inject(DO_AFTER, f, obj, sFn); - }, + return pre + PREFIX_DELIMITER + type; + }), /** - * Execute the supplied method before or after the specified function. - * Used by before and after. - * - * @method _inject - * @param when {string} before or after - * @param fn {Function} the function to execute - * @param obj the object hosting the method to displace - * @param sFn {string} the name of the method to displace - * @param c The execution context for fn - * @return {string} handle for the subscription + * Returns an array with the detach key (if provided), + * and the prefixed event name from _getType + * Y.on('detachcategory| menu:click', fn) + * @method _parseType * @private - * @static */ - _inject: function(when, fn, obj, sFn) { + _parseType = Y.cached(function(type, pre) { - // object id - var id = Y.stamp(obj), o, sid; + var t = type, detachcategory, after, i; - if (! this.objs[id]) { - // create a map entry for the obj if it doesn't exist - this.objs[id] = {}; + if (!L.isString(t)) { + return t; } - o = this.objs[id]; - - if (! o[sFn]) { - // create a map entry for the method if it doesn't exist - o[sFn] = new Y.Do.Method(obj, sFn); + i = t.indexOf(AFTER_PREFIX); - // re-route the method to our wrapper - obj[sFn] = - function() { - return o[sFn].exec.apply(o[sFn], arguments); - }; + if (i > -1) { + after = true; + t = t.substr(AFTER_PREFIX.length); + // Y.log(t); } - // subscriber id - sid = id + Y.stamp(fn) + sFn; + i = t.indexOf(CATEGORY_DELIMITER); - // register the callback - o[sFn].register(sid, fn, when); + if (i > -1) { + detachcategory = t.substr(0, (i)); + t = t.substr(i+1); + if (t == '*') { + t = null; + } + } - return new Y.EventHandle(o[sFn], sid); + // detach category, full type with instance prefix, is this an after listener, short type + return [detachcategory, (pre) ? _getType(t, pre) : t, after, t]; + }), - }, + ET = function(opts) { - /** - * Detach a before or after subscription. - * - * @method detach - * @param handle {string} the subscription handle - * @static - */ - detach: function(handle) { + // Y.log('EventTarget constructor executed: ' + this._yuid); - if (handle.detach) { - handle.detach(); - } + var o = (L.isObject(opts)) ? opts : {}; - }, + this._yuievt = this._yuievt || { - _unload: function(e, me) { + id: Y.guid(), - } -}; + events: {}, -Y.Do = DO; + targets: {}, -////////////////////////////////////////////////////////////////////////// + config: o, -/** - * Contains the return value from the wrapped method, accessible - * by 'after' event listeners. - * - * @property Do.originalRetVal - * @static - * @since 3.2.0 - */ + chain: ('chain' in o) ? o.chain : Y.config.chain, -/** - * Contains the current state of the return value, consumable by - * 'after' event listeners, and updated if an after subscriber - * changes the return value generated by the wrapped function. - * - * @property Do.currentRetVal - * @static - * @since 3.2.0 - */ + bubbling: false, -////////////////////////////////////////////////////////////////////////// + defaults: { + context: o.context || this, + host: this, + emitFacade: o.emitFacade, + fireOnce: o.fireOnce, + queuable: o.queuable, + monitored: o.monitored, + broadcast: o.broadcast, + defaultTargetOnly: o.defaultTargetOnly, + bubbles: ('bubbles' in o) ? o.bubbles : true + } + }; -/** - * Wrapper for a displaced method with aop enabled - * @class Do.Method - * @constructor - * @param obj The object to operate on - * @param sFn The name of the method to displace - */ -DO.Method = function(obj, sFn) { - this.obj = obj; - this.methodName = sFn; - this.method = obj[sFn]; - this.before = {}; - this.after = {}; -}; + }; -/** - * Register a aop subscriber - * @method register - * @param sid {string} the subscriber id - * @param fn {Function} the function to execute - * @param when {string} when to execute the function - */ -DO.Method.prototype.register = function (sid, fn, when) { - if (when) { - this.after[sid] = fn; - } else { - this.before[sid] = fn; - } -}; -/** - * Unregister a aop subscriber - * @method delete - * @param sid {string} the subscriber id - * @param fn {Function} the function to execute - * @param when {string} when to execute the function - */ -DO.Method.prototype._delete = function (sid) { - // Y.log('Y.Do._delete: ' + sid, 'info', 'Event'); - delete this.before[sid]; - delete this.after[sid]; -}; +ET.prototype = { + constructor: ET, -/** - *

                              Execute the wrapped method. All arguments are passed into the wrapping - * functions. If any of the before wrappers return an instance of - * Y.Do.Halt or Y.Do.Prevent, neither the wrapped - * function nor any after phase subscribers will be executed.

                              - * - *

                              The return value will be the return value of the wrapped function or one - * provided by a wrapper function via an instance of Y.Do.Halt or - * Y.Do.AlterReturn. - * - * @method exec - * @param arg* {any} Arguments are passed to the wrapping and wrapped functions - * @return {any} Return value of wrapped function unless overwritten (see above) - */ -DO.Method.prototype.exec = function () { + /** + * Listen to a custom event hosted by this object one time. + * This is the equivalent to on except the + * listener is immediatelly detached when it is executed. + * @method once + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config + */ + once: function() { + var handle = this.on.apply(this, arguments); + handle.batch(function(hand) { + if (hand.sub) { + hand.sub.once = true; + } + }); + return handle; + }, - var args = Y.Array(arguments, 0, true), - i, ret, newRet, - bf = this.before, - af = this.after, - prevented = false; + /** + * Listen to a custom event hosted by this object one time. + * This is the equivalent to after except the + * listener is immediatelly detached when it is executed. + * @method onceAfter + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config + */ + onceAfter: function() { + var args = YArray(arguments, 0, true); + args[0] = AFTER_PREFIX + args[0]; - // execute before - for (i in bf) { - if (bf.hasOwnProperty(i)) { - ret = bf[i].apply(this.obj, args); - if (ret) { - switch (ret.constructor) { - case DO.Halt: - return ret.retVal; - case DO.AlterArgs: - args = ret.newArgs; - break; - case DO.Prevent: - prevented = true; - break; - default: - } - } - } - } + return this.once.apply(this, args); + }, - // execute method - if (!prevented) { - ret = this.method.apply(this.obj, args); - } + /** + * Takes the type parameter passed to 'on' and parses out the + * various pieces that could be included in the type. If the + * event type is passed without a prefix, it will be expanded + * to include the prefix one is supplied or the event target + * is configured with a default prefix. + * @method parseType + * @param {string} type the type + * @param {string} [pre=this._yuievt.config.prefix] the prefix + * @since 3.3.0 + * @return {Array} an array containing: + * * the detach category, if supplied, + * * the prefixed event type, + * * whether or not this is an after listener, + * * the supplied event type + */ + parseType: function(type, pre) { + return _parseType(type, pre || this._yuievt.config.prefix); + }, - DO.originalRetVal = ret; - DO.currentRetVal = ret; + /** + * Subscribe to a custom event hosted by this object + * @method on + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config + */ + on: function(type, fn, context) { - // execute after methods. - for (i in af) { - if (af.hasOwnProperty(i)) { - newRet = af[i].apply(this.obj, args); - // Stop processing if a Halt object is returned - if (newRet && newRet.constructor == DO.Halt) { - return newRet.retVal; - // Check for a new return value - } else if (newRet && newRet.constructor == DO.AlterReturn) { - ret = newRet.newRetVal; - // Update the static retval state - DO.currentRetVal = ret; + var parts = _parseType(type, this._yuievt.config.prefix), f, c, args, ret, ce, + detachcategory, handle, store = Y.Env.evt.handles, after, adapt, shorttype, + Node = Y.Node, n, domevent, isArr; + + // full name, args, detachcategory, after + this._monitor('attach', parts[1], { + args: arguments, + category: parts[0], + after: parts[2] + }); + + if (L.isObject(type)) { + + if (L.isFunction(type)) { + return Y.Do.before.apply(Y.Do, arguments); } - } - } - return ret; -}; + f = fn; + c = context; + args = YArray(arguments, 0, true); + ret = []; -////////////////////////////////////////////////////////////////////////// + if (L.isArray(type)) { + isArr = true; + } -/** - * Return an AlterArgs object when you want to change the arguments that - * were passed into the function. Useful for Do.before subscribers. An - * example would be a service that scrubs out illegal characters prior to - * executing the core business logic. - * @class Do.AlterArgs - * @constructor - * @param msg {String} (optional) Explanation of the altered return value - * @param newArgs {Array} Call parameters to be used for the original method - * instead of the arguments originally passed in. - */ -DO.AlterArgs = function(msg, newArgs) { - this.msg = msg; - this.newArgs = newArgs; -}; + after = type._after; + delete type._after; -/** - * Return an AlterReturn object when you want to change the result returned - * from the core method to the caller. Useful for Do.after subscribers. - * @class Do.AlterReturn - * @constructor - * @param msg {String} (optional) Explanation of the altered return value - * @param newRetVal {any} Return value passed to code that invoked the wrapped - * function. - */ -DO.AlterReturn = function(msg, newRetVal) { - this.msg = msg; - this.newRetVal = newRetVal; -}; + Y.each(type, function(v, k) { -/** - * Return a Halt object when you want to terminate the execution - * of all subsequent subscribers as well as the wrapped method - * if it has not exectued yet. Useful for Do.before subscribers. - * @class Do.Halt - * @constructor - * @param msg {String} (optional) Explanation of why the termination was done - * @param retVal {any} Return value passed to code that invoked the wrapped - * function. - */ -DO.Halt = function(msg, retVal) { - this.msg = msg; - this.retVal = retVal; -}; + if (L.isObject(v)) { + f = v.fn || ((L.isFunction(v)) ? v : f); + c = v.context || c; + } -/** - * Return a Prevent object when you want to prevent the wrapped function - * from executing, but want the remaining listeners to execute. Useful - * for Do.before subscribers. - * @class Do.Prevent - * @constructor - * @param msg {String} (optional) Explanation of why the termination was done - */ -DO.Prevent = function(msg) { - this.msg = msg; -}; + var nv = (after) ? AFTER_PREFIX : ''; -/** - * Return an Error object when you want to terminate the execution - * of all subsequent method calls. - * @class Do.Error - * @constructor - * @param msg {String} (optional) Explanation of the altered return value - * @param retVal {any} Return value passed to code that invoked the wrapped - * function. - * @deprecated use Y.Do.Halt or Y.Do.Prevent - */ -DO.Error = DO.Halt; + args[0] = nv + ((isArr) ? v : k); + args[1] = f; + args[2] = c; + ret.push(this.on.apply(this, args)); -////////////////////////////////////////////////////////////////////////// + }, this); -// Y["Event"] && Y.Event.addListener(window, "unload", Y.Do._unload, Y.Do); + return (this._yuievt.chain) ? this : new Y.EventHandle(ret); + } -/** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event-custom - * @submodule event-custom-base - */ + detachcategory = parts[0]; + after = parts[2]; + shorttype = parts[3]; + // extra redirection so we catch adaptor events too. take a look at this. + if (Node && Y.instanceOf(this, Node) && (shorttype in Node.DOM_EVENTS)) { + args = YArray(arguments, 0, true); + args.splice(2, 0, Node.getDOMNode(this)); + // Y.log("Node detected, redirecting with these args: " + args); + return Y.on.apply(Y, args); + } -// var onsubscribeType = "_event:onsub", -var AFTER = 'after', - CONFIGS = [ - 'broadcast', - 'monitored', - 'bubbles', - 'context', - 'contextFn', - 'currentTarget', - 'defaultFn', - 'defaultTargetOnly', - 'details', - 'emitFacade', - 'fireOnce', - 'async', - 'host', - 'preventable', - 'preventedFn', - 'queuable', - 'silent', - 'stoppedFn', - 'target', - 'type' - ], + type = parts[1]; - YUI3_SIGNATURE = 9, - YUI_LOG = 'yui:log'; + if (Y.instanceOf(this, YUI)) { -/** - * Return value from all subscribe operations - * @class EventHandle - * @constructor - * @param {CustomEvent} evt the custom event. - * @param {Subscriber} sub the subscriber. - */ -Y.EventHandle = function(evt, sub) { + adapt = Y.Env.evt.plugins[type]; + args = YArray(arguments, 0, true); + args[0] = shorttype; - /** - * The custom event - * @type CustomEvent - */ - this.evt = evt; + if (Node) { + n = args[2]; - /** - * The subscriber object - * @type Subscriber - */ - this.sub = sub; -}; + if (Y.instanceOf(n, Y.NodeList)) { + n = Y.NodeList.getDOMNodes(n); + } else if (Y.instanceOf(n, Node)) { + n = Node.getDOMNode(n); + } -Y.EventHandle.prototype = { - batch: function(f, c) { - f.call(c || this, this); - if (Y.Lang.isArray(this.evt)) { - Y.Array.each(this.evt, function(h) { - h.batch.call(c || h, f); - }); - } - }, + domevent = (shorttype in Node.DOM_EVENTS); - /** - * Detaches this subscriber - * @method detach - * @return {int} the number of detached listeners - */ - detach: function() { - var evt = this.evt, detached = 0, i; - if (evt) { - // Y.log('EventHandle.detach: ' + this.sub, 'info', 'Event'); - if (Y.Lang.isArray(evt)) { - for (i = 0; i < evt.length; i++) { - detached += evt[i].detach(); + // Captures both DOM events and event plugins. + if (domevent) { + args[2] = n; } - } else { - evt._delete(this.sub); - detached = 1; } - } - - return detached; - }, + // check for the existance of an event adaptor + if (adapt) { + Y.log('Using adaptor for ' + shorttype + ', ' + n, 'info', 'event'); + handle = adapt.on.apply(Y, args); + } else if ((!type) || domevent) { + handle = Y.Event._attach(args); + } - /** - * Monitor the event state for the subscribed event. The first parameter - * is what should be monitored, the rest are the normal parameters when - * subscribing to an event. - * @method monitor - * @param what {string} what to monitor ('attach', 'detach', 'publish'). - * @return {EventHandle} return value from the monitor event subscription. - */ - monitor: function(what) { - return this.evt.monitor.apply(this.evt, arguments); - } -}; + } -/** - * The CustomEvent class lets you define events for your application - * that can be subscribed to by one or more independent component. - * - * @param {String} type The type of event, which is passed to the callback - * when the event fires. - * @param {object} o configuration object. - * @class CustomEvent - * @constructor - */ -Y.CustomEvent = function(type, o) { + if (!handle) { + ce = this._yuievt.events[type] || this.publish(type); + handle = ce._on(fn, context, (arguments.length > 3) ? YArray(arguments, 3, true) : null, (after) ? 'after' : true); + } - // if (arguments.length > 2) { -// this.log('CustomEvent context and silent are now in the config', 'warn', 'Event'); - // } + if (detachcategory) { + store[detachcategory] = store[detachcategory] || {}; + store[detachcategory][type] = store[detachcategory][type] || []; + store[detachcategory][type].push(handle); + } - o = o || {}; + return (this._yuievt.chain) ? this : handle; - this.id = Y.stamp(this); + }, /** - * The type of event, returned to subscribers when the event fires - * @property type - * @type string + * subscribe to an event + * @method subscribe + * @deprecated use on */ - this.type = type; + subscribe: function() { + Y.log('EventTarget subscribe() is deprecated, use on()', 'warn', 'deprecated'); + return this.on.apply(this, arguments); + }, /** - * The context the the event will fire from by default. Defaults to the YUI - * instance. - * @property context - * @type object + * Detach one or more listeners the from the specified event + * @method detach + * @param type {string|Object} Either the handle to the subscriber or the + * type of event. If the type + * is not specified, it will attempt to remove + * the listener from all hosted events. + * @param fn {Function} The subscribed function to unsubscribe, if not + * supplied, all subscribers will be removed. + * @param context {Object} The custom object passed to subscribe. This is + * optional, but if supplied will be used to + * disambiguate multiple listeners that are the same + * (e.g., you subscribe many object using a function + * that lives on the prototype) + * @return {EventTarget} the host */ - this.context = Y; + detach: function(type, fn, context) { + var evts = this._yuievt.events, i, + Node = Y.Node, isNode = Node && (Y.instanceOf(this, Node)); - /** - * Monitor when an event is attached or detached. - * - * @property monitored - * @type boolean - */ - // this.monitored = false; + // detachAll disabled on the Y instance. + if (!type && (this !== Y)) { + for (i in evts) { + if (evts.hasOwnProperty(i)) { + evts[i].detach(fn, context); + } + } + if (isNode) { + Y.Event.purgeElement(Node.getDOMNode(this)); + } - this.logSystem = (type == YUI_LOG); + return this; + } - /** - * If 0, this event does not broadcast. If 1, the YUI instance is notified - * every time this event fires. If 2, the YUI instance and the YUI global - * (if event is enabled on the global) are notified every time this event - * fires. - * @property broadcast - * @type int - */ - // this.broadcast = 0; - - /** - * By default all custom events are logged in the debug build, set silent - * to true to disable debug outpu for this event. - * @property silent - * @type boolean - */ - this.silent = this.logSystem; - - /** - * Specifies whether this event should be queued when the host is actively - * processing an event. This will effect exectution order of the callbacks - * for the various events. - * @property queuable - * @type boolean - * @default false - */ - // this.queuable = false; + var parts = _parseType(type, this._yuievt.config.prefix), + detachcategory = L.isArray(parts) ? parts[0] : null, + shorttype = (parts) ? parts[3] : null, + adapt, store = Y.Env.evt.handles, detachhost, cat, args, + ce, - /** - * The subscribers to this event - * @property subscribers - * @type Subscriber {} - */ - this.subscribers = {}; + keyDetacher = function(lcat, ltype, host) { + var handles = lcat[ltype], ce, i; + if (handles) { + for (i = handles.length - 1; i >= 0; --i) { + ce = handles[i].evt; + if (ce.host === host || ce.el === host) { + handles[i].detach(); + } + } + } + }; - /** - * 'After' subscribers - * @property afters - * @type Subscriber {} - */ - this.afters = {}; + if (detachcategory) { - /** - * This event has fired if true - * - * @property fired - * @type boolean - * @default false; - */ - // this.fired = false; + cat = store[detachcategory]; + type = parts[1]; + detachhost = (isNode) ? Y.Node.getDOMNode(this) : this; - /** - * An array containing the arguments the custom event - * was last fired with. - * @property firedWith - * @type Array - */ - // this.firedWith; + if (cat) { + if (type) { + keyDetacher(cat, type, detachhost); + } else { + for (i in cat) { + if (cat.hasOwnProperty(i)) { + keyDetacher(cat, i, detachhost); + } + } + } - /** - * This event should only fire one time if true, and if - * it has fired, any new subscribers should be notified - * immediately. - * - * @property fireOnce - * @type boolean - * @default false; - */ - // this.fireOnce = false; + return this; + } - /** - * fireOnce listeners will fire syncronously unless async - * is set to true - * @property async - * @type boolean - * @default false - */ - //this.async = false; + // If this is an event handle, use it to detach + } else if (L.isObject(type) && type.detach) { + type.detach(); + return this; + // extra redirection so we catch adaptor events too. take a look at this. + } else if (isNode && ((!shorttype) || (shorttype in Node.DOM_EVENTS))) { + args = YArray(arguments, 0, true); + args[2] = Node.getDOMNode(this); + Y.detach.apply(Y, args); + return this; + } - /** - * Flag for stopPropagation that is modified during fire() - * 1 means to stop propagation to bubble targets. 2 means - * to also stop additional subscribers on this target. - * @property stopped - * @type int - */ - // this.stopped = 0; + adapt = Y.Env.evt.plugins[shorttype]; - /** - * Flag for preventDefault that is modified during fire(). - * if it is not 0, the default behavior for this event - * @property prevented - * @type int - */ - // this.prevented = 0; + // The YUI instance handles DOM events and adaptors + if (Y.instanceOf(this, YUI)) { + args = YArray(arguments, 0, true); + // use the adaptor specific detach code if + if (adapt && adapt.detach) { + adapt.detach.apply(Y, args); + return this; + // DOM event fork + } else if (!type || (!adapt && Node && (type in Node.DOM_EVENTS))) { + args[0] = type; + Y.Event.detach.apply(Y.Event, args); + return this; + } + } - /** - * Specifies the host for this custom event. This is used - * to enable event bubbling - * @property host - * @type EventTarget - */ - // this.host = null; + // ce = evts[type]; + ce = evts[parts[1]]; + if (ce) { + ce.detach(fn, context); + } - /** - * The default function to execute after event listeners - * have fire, but only if the default action was not - * prevented. - * @property defaultFn - * @type Function - */ - // this.defaultFn = null; + return this; + }, /** - * The function to execute if a subscriber calls - * stopPropagation or stopImmediatePropagation - * @property stoppedFn - * @type Function + * detach a listener + * @method unsubscribe + * @deprecated use detach */ - // this.stoppedFn = null; + unsubscribe: function() { +Y.log('EventTarget unsubscribe() is deprecated, use detach()', 'warn', 'deprecated'); + return this.detach.apply(this, arguments); + }, /** - * The function to execute if a subscriber calls - * preventDefault - * @property preventedFn - * @type Function + * Removes all listeners from the specified event. If the event type + * is not specified, all listeners from all hosted custom events will + * be removed. + * @method detachAll + * @param type {string} The type, or name of the event */ - // this.preventedFn = null; + detachAll: function(type) { + return this.detach(type); + }, /** - * Specifies whether or not this event's default function - * can be cancelled by a subscriber by executing preventDefault() - * on the event facade - * @property preventable - * @type boolean - * @default true + * Removes all listeners from the specified event. If the event type + * is not specified, all listeners from all hosted custom events will + * be removed. + * @method unsubscribeAll + * @param type {string} The type, or name of the event + * @deprecated use detachAll */ - this.preventable = true; + unsubscribeAll: function() { +Y.log('EventTarget unsubscribeAll() is deprecated, use detachAll()', 'warn', 'deprecated'); + return this.detachAll.apply(this, arguments); + }, /** - * Specifies whether or not a subscriber can stop the event propagation - * via stopPropagation(), stopImmediatePropagation(), or halt() + * Creates a new custom event of the specified type. If a custom event + * by that name already exists, it will not be re-created. In either + * case the custom event is returned. * - * Events can only bubble if emitFacade is true. + * @method publish * - * @property bubbles - * @type boolean - * @default true - */ - this.bubbles = true; - - /** - * Supports multiple options for listener signatures in order to - * port YUI 2 apps. - * @property signature - * @type int - * @default 9 - */ - this.signature = YUI3_SIGNATURE; - - this.subCount = 0; - this.afterCount = 0; - - // this.hasSubscribers = false; - - // this.hasAfters = false; - - /** - * If set to true, the custom event will deliver an EventFacade object - * that is similar to a DOM event object. - * @property emitFacade - * @type boolean - * @default false - */ - // this.emitFacade = false; - - this.applyConfig(o, true); - - // this.log("Creating " + this.type); - -}; - -Y.CustomEvent.prototype = { - - hasSubs: function(when) { - var s = this.subCount, a = this.afterCount, sib = this.sibling; - - if (sib) { - s += sib.subCount; - a += sib.afterCount; - } + * @param type {string} the type, or name of the event + * @param opts {object} optional config params. Valid properties are: + * + *

                                + *
                              • + * 'broadcast': whether or not the YUI instance and YUI global are notified when the event is fired (false) + *
                              • + *
                              • + * 'bubbles': whether or not this event bubbles (true) + * Events can only bubble if emitFacade is true. + *
                              • + *
                              • + * 'context': the default execution context for the listeners (this) + *
                              • + *
                              • + * 'defaultFn': the default function to execute when this event fires if preventDefault was not called + *
                              • + *
                              • + * 'emitFacade': whether or not this event emits a facade (false) + *
                              • + *
                              • + * 'prefix': the prefix for this targets events, e.g., 'menu' in 'menu:click' + *
                              • + *
                              • + * 'fireOnce': if an event is configured to fire once, new subscribers after + * the fire will be notified immediately. + *
                              • + *
                              • + * 'async': fireOnce event listeners will fire synchronously if the event has already + * fired unless async is true. + *
                              • + *
                              • + * 'preventable': whether or not preventDefault() has an effect (true) + *
                              • + *
                              • + * 'preventedFn': a function that is executed when preventDefault is called + *
                              • + *
                              • + * 'queuable': whether or not this event can be queued during bubbling (false) + *
                              • + *
                              • + * 'silent': if silent is true, debug messages are not provided for this event. + *
                              • + *
                              • + * 'stoppedFn': a function that is executed when stopPropagation is called + *
                              • + * + *
                              • + * 'monitored': specifies whether or not this event should send notifications about + * when the event has been attached, detached, or published. + *
                              • + *
                              • + * 'type': the event type (valid option if not provided as the first parameter to publish) + *
                              • + *
                              + * + * @return {CustomEvent} the custom event + * + */ + publish: function(type, opts) { + var events, ce, ret, defaults, + edata = this._yuievt, + pre = edata.config.prefix; - if (when) { - return (when == 'after') ? a : s; + type = (pre) ? _getType(type, pre) : type; + + this._monitor('publish', type, { + args: arguments + }); + + if (L.isObject(type)) { + ret = {}; + Y.each(type, function(v, k) { + ret[k] = this.publish(k, v || opts); + }, this); + + return ret; } - return (s + a); - }, + events = edata.events; + ce = events[type]; - /** - * Monitor the event state for the subscribed event. The first parameter - * is what should be monitored, the rest are the normal parameters when - * subscribing to an event. - * @method monitor - * @param what {string} what to monitor ('detach', 'attach', 'publish'). - * @return {EventHandle} return value from the monitor event subscription. - */ - monitor: function(what) { - this.monitored = true; - var type = this.id + '|' + this.type + '_' + what, - args = Y.Array(arguments, 0, true); - args[0] = type; - return this.host.on.apply(this.host, args); - }, + if (ce) { +// ce.log("publish applying new config to published event: '"+type+"' exists", 'info', 'event'); + if (opts) { + ce.applyConfig(opts, true); + } + } else { - /** - * Get all of the subscribers to this event and any sibling event - * @method getSubs - * @return {Array} first item is the on subscribers, second the after. - */ - getSubs: function() { - var s = Y.merge(this.subscribers), a = Y.merge(this.afters), sib = this.sibling; + defaults = edata.defaults; - if (sib) { - Y.mix(s, sib.subscribers); - Y.mix(a, sib.afters); + // apply defaults + ce = new Y.CustomEvent(type, + (opts) ? Y.merge(defaults, opts) : defaults); + events[type] = ce; } - return [s, a]; + // make sure we turn the broadcast flag off if this + // event was published as a result of bubbling + // if (opts instanceof Y.CustomEvent) { + // events[type].broadcast = false; + // } + + return events[type]; }, /** - * Apply configuration properties. Only applies the CONFIG whitelist - * @method applyConfig - * @param o hash of properties to apply. - * @param force {boolean} if true, properties that exist on the event - * will be overwritten. + * This is the entry point for the event monitoring system. + * You can monitor 'attach', 'detach', 'fire', and 'publish'. + * When configured, these events generate an event. click -> + * click_attach, click_detach, click_publish -- these can + * be subscribed to like other events to monitor the event + * system. Inividual published events can have monitoring + * turned on or off (publish can't be turned off before it + * it published) by setting the events 'monitor' config. + * + * @method _monitor + * @param what {String} 'attach', 'detach', 'fire', or 'publish' + * @param type {String} Name of the event being monitored + * @param o {Object} Information about the event interaction, such as + * fire() args, subscription category, publish config + * @private */ - applyConfig: function(o, force) { - if (o) { - Y.mix(this, o, force, CONFIGS); + _monitor: function(what, type, o) { + var monitorevt, ce = this.getEvent(type); + if ((this._yuievt.config.monitored && (!ce || ce.monitored)) || (ce && ce.monitored)) { + monitorevt = type + '_' + what; + // Y.log('monitoring: ' + monitorevt); + o.monitored = what; + this.fire.call(this, monitorevt, o); } }, - _on: function(fn, context, args, when) { + /** + * Fire a custom event by name. The callback functions will be executed + * from the context specified when the event was created, and with the + * following parameters. + * + * If the custom event object hasn't been created, then the event hasn't + * been published and it has no subscribers. For performance sake, we + * immediate exit in this case. This means the event won't bubble, so + * if the intention is that a bubble target be notified, the event must + * be published on this object first. + * + * The first argument is the event type, and any additional arguments are + * passed to the listeners as parameters. If the first of these is an + * object literal, and the event is configured to emit an event facade, + * that object is mixed into the event facade and the facade is provided + * in place of the original object. + * + * @method fire + * @param type {String|Object} The type of the event, or an object that contains + * a 'type' property. + * @param arguments {Object*} an arbitrary set of parameters to pass to + * the handler. If the first of these is an object literal and the event is + * configured to emit an event facade, the event facade will replace that + * parameter after the properties the object literal contains are copied to + * the event facade. + * @return {EventTarget} the event host + * + */ + fire: function(type) { - if (!fn) { - this.log('Invalid callback for CE: ' + this.type); - } + var typeIncluded = L.isString(type), + t = (typeIncluded) ? type : (type && type.type), + ce, ret, pre = this._yuievt.config.prefix, ce2, + args = (typeIncluded) ? YArray(arguments, 1, true) : arguments; - var s = new Y.Subscriber(fn, context, args, when); + t = (pre) ? _getType(t, pre) : t; - if (this.fireOnce && this.fired) { - if (this.async) { - setTimeout(Y.bind(this._notify, this, s, this.firedWith), 0); - } else { - this._notify(s, this.firedWith); - } + this._monitor('fire', t, { + args: args + }); + + ce = this.getEvent(t, true); + ce2 = this.getSibling(t, ce); + + if (ce2 && !ce) { + ce = this.publish(t); } - if (when == AFTER) { - this.afters[s.id] = s; - this.afterCount++; + // this event has not been published or subscribed to + if (!ce) { + if (this._yuievt.hasTargets) { + return this.bubble({ type: t }, args, this); + } + + // otherwise there is nothing to be done + ret = true; } else { - this.subscribers[s.id] = s; - this.subCount++; + ce.sibling = ce2; + ret = ce.fire.apply(ce, args); } - return new Y.EventHandle(this, s); - + return (this._yuievt.chain) ? this : ret; }, - /** - * Listen for this event - * @method subscribe - * @param {Function} fn The function to execute. - * @return {EventHandle} Unsubscribe handle. - * @deprecated use on. - */ - subscribe: function(fn, context) { - Y.log('ce.subscribe deprecated, use "on"', 'warn', 'deprecated'); - var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; - return this._on(fn, context, a, true); + getSibling: function(type, ce) { + var ce2; + // delegate to *:type events if there are subscribers + if (type.indexOf(PREFIX_DELIMITER) > -1) { + type = _wildType(type); + // console.log(type); + ce2 = this.getEvent(type, true); + if (ce2) { + // console.log("GOT ONE: " + type); + ce2.applyConfig(ce); + ce2.bubbles = false; + ce2.broadcast = 0; + // ret = ce2.fire.apply(ce2, a); + } + } + + return ce2; }, /** - * Listen for this event - * @method on - * @param {Function} fn The function to execute. - * @param {object} context optional execution context. - * @param {mixed} arg* 0..n additional arguments to supply to the subscriber - * when the event fires. - * @return {EventHandle} An object with a detach method to detch the handler(s). + * Returns the custom event of the provided type has been created, a + * falsy value otherwise + * @method getEvent + * @param type {string} the type, or name of the event + * @param prefixed {string} if true, the type is prefixed already + * @return {CustomEvent} the custom event or null */ - on: function(fn, context) { - var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; - if (this.host) { - this.host._monitor('attach', this.type, { - args: arguments - }); + getEvent: function(type, prefixed) { + var pre, e; + if (!prefixed) { + pre = this._yuievt.config.prefix; + type = (pre) ? _getType(type, pre) : type; } - return this._on(fn, context, a, true); + e = this._yuievt.events; + return e[type] || null; }, /** - * Listen for this event after the normal subscribers have been notified and - * the default behavior has been applied. If a normal subscriber prevents the - * default behavior, it also prevents after listeners from firing. + * Subscribe to a custom event hosted by this object. The + * supplied callback will execute after any listeners add + * via the subscribe method, and after the default function, + * if configured for the event, has executed. * @method after - * @param {Function} fn The function to execute. - * @param {object} context optional execution context. - * @param {mixed} arg* 0..n additional arguments to supply to the subscriber - * when the event fires. - * @return {EventHandle} handle Unsubscribe handle. - */ - after: function(fn, context) { - var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; - return this._on(fn, context, a, AFTER); - }, - - /** - * Detach listeners. - * @method detach - * @param {Function} fn The subscribed function to remove, if not supplied - * all will be removed. - * @param {Object} context The context object passed to subscribe. - * @return {int} returns the number of subscribers unsubscribed. - */ - detach: function(fn, context) { - // unsubscribe handle - if (fn && fn.detach) { - return fn.detach(); - } - - var i, s, - found = 0, - subs = Y.merge(this.subscribers, this.afters); - - for (i in subs) { - if (subs.hasOwnProperty(i)) { - s = subs[i]; - if (s && (!fn || fn === s.fn)) { - this._delete(s); - found++; - } - } - } - - return found; - }, - - /** - * Detach listeners. - * @method unsubscribe - * @param {Function} fn The subscribed function to remove, if not supplied - * all will be removed. - * @param {Object} context The context object passed to subscribe. - * @return {int|undefined} returns the number of subscribers unsubscribed. - * @deprecated use detach. - */ - unsubscribe: function() { - return this.detach.apply(this, arguments); - }, - - /** - * Notify a single subscriber - * @method _notify - * @param {Subscriber} s the subscriber. - * @param {Array} args the arguments array to apply to the listener. - * @private + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config */ - _notify: function(s, args, ef) { - - this.log(this.type + '->' + 'sub: ' + s.id); - - var ret; + after: function(type, fn) { - ret = s.notify(args, this); + var a = YArray(arguments, 0, true); - if (false === ret || this.stopped > 1) { - this.log(this.type + ' cancelled by subscriber'); - return false; + switch (L.type(type)) { + case 'function': + return Y.Do.after.apply(Y.Do, arguments); + case 'array': + // YArray.each(a[0], function(v) { + // v = AFTER_PREFIX + v; + // }); + // break; + case 'object': + a[0]._after = true; + break; + default: + a[0] = AFTER_PREFIX + type; } - return true; - }, + return this.on.apply(this, a); - /** - * Logger abstraction to centralize the application of the silent flag - * @method log - * @param {string} msg message to log. - * @param {string} cat log category. - */ - log: function(msg, cat) { - if (!this.silent) { - Y.log(this.id + ': ' + msg, cat || 'info', 'event'); - } }, /** - * Notifies the subscribers. The callback functions will be executed - * from the context specified when the event was created, and with the - * following parameters: - *
                                - *
                              • The type of event
                              • - *
                              • All of the arguments fire() was executed with as an array
                              • - *
                              • The custom object (if any) that was passed into the subscribe() - * method
                              • - *
                              - * @method fire - * @param {Object*} arguments an arbitrary set of parameters to pass to - * the handler. - * @return {boolean} false if one of the subscribers returned false, - * true otherwise. + * Executes the callback before a DOM event, custom event + * or method. If the first argument is a function, it + * is assumed the target is a method. For DOM and custom + * events, this is an alias for Y.on. + * + * For DOM and custom events: + * type, callback, context, 0-n arguments + * + * For methods: + * callback, object (method host), methodName, context, 0-n arguments * + * @method before + * @return detach handle */ - fire: function() { - if (this.fireOnce && this.fired) { - this.log('fireOnce event: ' + this.type + ' already fired'); - return true; - } else { - - var args = Y.Array(arguments, 0, true); - - // this doesn't happen if the event isn't published - // this.host._monitor('fire', this.type, args); - - this.fired = true; - this.firedWith = args; - - if (this.emitFacade) { - return this.fireComplex(args); - } else { - return this.fireSimple(args); - } - } - }, - - fireSimple: function(args) { - this.stopped = 0; - this.prevented = 0; - if (this.hasSubs()) { - // this._procSubs(Y.merge(this.subscribers, this.afters), args); - var subs = this.getSubs(); - this._procSubs(subs[0], args); - this._procSubs(subs[1], args); - } - this._broadcast(args); - return this.stopped ? false : true; - }, - - // Requires the event-custom-complex module for full funcitonality. - fireComplex: function(args) { - Y.log('Missing event-custom-complex needed to emit a facade for: ' + this.type); - args[0] = args[0] || {}; - return this.fireSimple(args); - }, + before: function() { + return this.on.apply(this, arguments); + } - _procSubs: function(subs, args, ef) { - var s, i; - for (i in subs) { - if (subs.hasOwnProperty(i)) { - s = subs[i]; - if (s && s.fn) { - if (false === this._notify(s, args, ef)) { - this.stopped = 2; - } - if (this.stopped == 2) { - return false; - } - } - } - } +}; - return true; - }, +Y.EventTarget = ET; - _broadcast: function(args) { - if (!this.stopped && this.broadcast) { +// make Y an event target +Y.mix(Y, ET.prototype); +ET.call(Y, { bubbles: false }); - var a = Y.Array(args); - a.unshift(this.type); +YUI.Env.globalEvents = YUI.Env.globalEvents || new ET(); - if (this.host !== Y) { - Y.fire.apply(Y, a); - } +/** + * Hosts YUI page level events. This is where events bubble to + * when the broadcast config is set to 2. This property is + * only available if the custom event module is loaded. + * @property Global + * @type EventTarget + * @for YUI + */ +Y.Global = YUI.Env.globalEvents; - if (this.broadcast == 2) { - Y.Global.fire.apply(Y.Global, a); - } - } - }, +// @TODO implement a global namespace function on Y.Global? - /** - * Removes all listeners - * @method unsubscribeAll - * @return {int} The number of listeners unsubscribed. - * @deprecated use detachAll. - */ - unsubscribeAll: function() { - return this.detachAll.apply(this, arguments); - }, +/** + * YUI's on method is a unified interface for subscribing to + * most events exposed by YUI. This includes custom events, DOM events, and + * function events. detach is also provided to remove listeners + * serviced by this function. + * + * The signature that on accepts varies depending on the type + * of event being consumed. Refer to the specific methods that will + * service a specific request for additional information about subscribing + * to that type of event. + * + *
                                + *
                              • Custom events. These events are defined by various + * modules in the library. This type of event is delegated to + * EventTarget's on method. + *
                                  + *
                                • The type of the event
                                • + *
                                • The callback to execute
                                • + *
                                • An optional context object
                                • + *
                                • 0..n additional arguments to supply the callback.
                                • + *
                                + * Example: + * Y.on('drag:drophit', function() { // start work }); + *
                              • + *
                              • DOM events. These are moments reported by the browser related + * to browser functionality and user interaction. + * This type of event is delegated to Event's + * attach method. + *
                                  + *
                                • The type of the event
                                • + *
                                • The callback to execute
                                • + *
                                • The specification for the Node(s) to attach the listener + * to. This can be a selector, collections, or Node/Element + * refereces.
                                • + *
                                • An optional context object
                                • + *
                                • 0..n additional arguments to supply the callback.
                                • + *
                                + * Example: + * Y.on('click', function(e) { // something was clicked }, '#someelement'); + *
                              • + *
                              • Function events. These events can be used to react before or after a + * function is executed. This type of event is delegated to Event.Do's + * before method. + *
                                  + *
                                • The callback to execute
                                • + *
                                • The object that has the function that will be listened for.
                                • + *
                                • The name of the function to listen for.
                                • + *
                                • An optional context object
                                • + *
                                • 0..n additional arguments to supply the callback.
                                • + *
                                + * Example Y.on(function(arg1, arg2, etc) { // obj.methodname was executed }, obj 'methodname'); + *
                              • + *
                              + * + * on corresponds to the moment before any default behavior of + * the event. after works the same way, but these listeners + * execute after the event's default behavior. before is an + * alias for on. + * + * @method on + * @param type event type (this parameter does not apply for function events) + * @param fn the callback + * @param context optionally change the value of 'this' in the callback + * @param args* 0..n additional arguments to pass to the callback. + * @return the event target or a detach handle per 'chain' config + * @for YUI + */ - /** - * Removes all listeners - * @method detachAll - * @return {int} The number of listeners unsubscribed. - */ - detachAll: function() { - return this.detach(); - }, + /** + * Listen for an event one time. Equivalent to on, except that + * the listener is immediately detached when executed. + * @see on + * @method once + * @param type event type (this parameter does not apply for function events) + * @param fn the callback + * @param context optionally change the value of 'this' in the callback + * @param args* 0..n additional arguments to pass to the callback. + * @return the event target or a detach handle per 'chain' config + * @for YUI + */ - /** - * @method _delete - * @param subscriber object. - * @private - */ - _delete: function(s) { - if (s) { - if (this.subscribers[s.id]) { - delete this.subscribers[s.id]; - this.subCount--; - } - if (this.afters[s.id]) { - delete this.afters[s.id]; - this.afterCount--; - } - } +/** + * after() is a unified interface for subscribing to + * most events exposed by YUI. This includes custom events, + * DOM events, and AOP events. This works the same way as + * the on() function, only it operates after any default + * behavior for the event has executed. @see on for more + * information. + * @method after + * @param type event type (this parameter does not apply for function events) + * @param fn the callback + * @param context optionally change the value of 'this' in the callback + * @param args* 0..n additional arguments to pass to the callback. + * @return the event target or a detach handle per 'chain' config + * @for YUI + */ - if (this.host) { - this.host._monitor('detach', this.type, { - ce: this, - sub: s - }); - } - if (s) { - // delete s.fn; - // delete s.context; - s.deleted = true; - } - } -}; +}, '3.4.0' ,{requires:['oop']}); +YUI.add('event-custom-complex', function(Y) { -///////////////////////////////////////////////////////////////////// /** - * Stores the subscriber information to be used when the event fires. - * @param {Function} fn The wrapped function to execute. - * @param {Object} context The value of the keyword 'this' in the listener. - * @param {Array} args* 0..n additional arguments to supply the listener. - * - * @class Subscriber - * @constructor + * Adds event facades, preventable default behavior, and bubbling. + * events. + * @module event-custom + * @submodule event-custom-complex + */ + +var FACADE, + FACADE_KEYS, + EMPTY = {}, + CEProto = Y.CustomEvent.prototype, + ETProto = Y.EventTarget.prototype; + +/** + * Wraps and protects a custom event for use when emitFacade is set to true. + * Requires the event-custom-complex module + * @class EventFacade + * @param e {Event} the custom event + * @param currentTarget {HTMLElement} the element the listener was attached to */ -Y.Subscriber = function(fn, context, args) { + +Y.EventFacade = function(e, currentTarget) { + + e = e || EMPTY; + + this._event = e; /** - * The callback that will be execute when the event fires - * This is wrapped by Y.rbind if obj was supplied. - * @property fn - * @type Function + * The arguments passed to fire + * @property details + * @type Array */ - this.fn = fn; + this.details = e.details; /** - * Optional 'this' keyword for the listener - * @property context - * @type Object + * The event type, this can be overridden by the fire() payload + * @property type + * @type string */ - this.context = context; + this.type = e.type; /** - * Unique subscriber id - * @property id - * @type String + * The real event type + * @property type + * @type string */ - this.id = Y.stamp(this); + this._type = e.type; + + ////////////////////////////////////////////////////// /** - * Additional arguments to propagate to the subscriber - * @property args - * @type Array + * Node reference for the targeted eventtarget + * @property target + * @type Node */ - this.args = args; + this.target = e.target; /** - * Custom events for a given fire transaction. - * @property events - * @type {EventTarget} + * Node reference for the element that the listener was attached to. + * @property currentTarget + * @type Node */ - // this.events = null; + this.currentTarget = currentTarget; /** - * This listener only reacts to the event once - * @property once + * Node reference to the relatedTarget + * @property relatedTarget + * @type Node */ - // this.once = false; + this.relatedTarget = e.relatedTarget; }; -Y.Subscriber.prototype = { - - _notify: function(c, args, ce) { - if (this.deleted && !this.postponed) { - if (this.postponed) { - delete this.fn; - delete this.context; - } else { - delete this.postponed; - return null; - } - } - var a = this.args, ret; - switch (ce.signature) { - case 0: - ret = this.fn.call(c, ce.type, args, c); - break; - case 1: - ret = this.fn.call(c, args[0] || null, c); - break; - default: - if (a || args) { - args = args || []; - a = (a) ? args.concat(a) : args; - ret = this.fn.apply(c, a); - } else { - ret = this.fn.call(c); - } - } - - if (this.once) { - ce._delete(this); - } +Y.extend(Y.EventFacade, Object, { - return ret; + /** + * Stops the propagation to the next bubble target + * @method stopPropagation + */ + stopPropagation: function() { + this._event.stopPropagation(); + this.stopped = 1; }, /** - * Executes the subscriber. - * @method notify - * @param args {Array} Arguments array for the subscriber. - * @param ce {CustomEvent} The custom event that sent the notification. + * Stops the propagation to the next bubble target and + * prevents any additional listeners from being exectued + * on the current target. + * @method stopImmediatePropagation */ - notify: function(args, ce) { - var c = this.context, - ret = true; + stopImmediatePropagation: function() { + this._event.stopImmediatePropagation(); + this.stopped = 2; + }, - if (!c) { - c = (ce.contextFn) ? ce.contextFn() : ce.context; - } - - // only catch errors if we will not re-throw them. - if (Y.config.throwFail) { - ret = this._notify(c, args, ce); - } else { - try { - ret = this._notify(c, args, ce); - } catch (e) { - Y.error(this + ' failed: ' + e.message, e); - } - } - - return ret; - }, + /** + * Prevents the event's default behavior + * @method preventDefault + */ + preventDefault: function() { + this._event.preventDefault(); + this.prevented = 1; + }, /** - * Returns true if the fn and obj match this objects properties. - * Used by the unsubscribe method to match the right subscriber. - * - * @method contains - * @param {Function} fn the function to execute. - * @param {Object} context optional 'this' keyword for the listener. - * @return {boolean} true if the supplied arguments match this - * subscriber's signature. + * Stops the event propagation and prevents the default + * event behavior. + * @method halt + * @param immediate {boolean} if true additional listeners + * on the current target will not be executed */ - contains: function(fn, context) { - if (context) { - return ((this.fn == fn) && this.context == context); - } else { - return (this.fn == fn); - } + halt: function(immediate) { + this._event.halt(immediate); + this.prevented = 1; + this.stopped = (immediate) ? 2 : 1; } -}; +}); -/** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event-custom - * @submodule event-custom-base - */ +CEProto.fireComplex = function(args) { -/** - * EventTarget provides the implementation for any object to - * publish, subscribe and fire to custom events, and also - * alows other EventTargets to target the object with events - * sourced from the other object. - * EventTarget is designed to be used with Y.augment to wrap - * EventCustom in an interface that allows events to be listened to - * and fired by name. This makes it possible for implementing code to - * subscribe to an event that either has not been created yet, or will - * not be created at all. - * @class EventTarget - * @param opts a configuration object - * @config emitFacade {boolean} if true, all events will emit event - * facade payloads by default (default false) - * @config prefix {string} the prefix to apply to non-prefixed event names - * @config chain {boolean} if true, on/after/detach return the host to allow - * chaining, otherwise they return an EventHandle (default false) - */ + var es, ef, q, queue, ce, ret, events, subs, postponed, + self = this, host = self.host || self, next, oldbubble; -var L = Y.Lang, - PREFIX_DELIMITER = ':', - CATEGORY_DELIMITER = '|', - AFTER_PREFIX = '~AFTER~', - YArray = Y.Array, + if (self.stack) { + // queue this event if the current item in the queue bubbles + if (self.queuable && self.type != self.stack.next.type) { + self.log('queue ' + self.type); + self.stack.queue.push([self, args]); + return true; + } + } - _wildType = Y.cached(function(type) { - return type.replace(/(.*)(:)(.*)/, "*$2$3"); - }), + es = self.stack || { + // id of the first event in the stack + id: self.id, + next: self, + silent: self.silent, + stopped: 0, + prevented: 0, + bubbling: null, + type: self.type, + // defaultFnQueue: new Y.Queue(), + afterQueue: new Y.Queue(), + defaultTargetOnly: self.defaultTargetOnly, + queue: [] + }; - /** - * If the instance has a prefix attribute and the - * event type is not prefixed, the instance prefix is - * applied to the supplied type. - * @method _getType - * @private - */ - _getType = Y.cached(function(type, pre) { + subs = self.getSubs(); - if (!pre || !L.isString(type) || type.indexOf(PREFIX_DELIMITER) > -1) { - return type; - } + self.stopped = (self.type !== es.type) ? 0 : es.stopped; + self.prevented = (self.type !== es.type) ? 0 : es.prevented; - return pre + PREFIX_DELIMITER + type; - }), + self.target = self.target || host; - /** - * Returns an array with the detach key (if provided), - * and the prefixed event name from _getType - * Y.on('detachcategory| menu:click', fn) - * @method _parseType - * @private - */ - _parseType = Y.cached(function(type, pre) { + events = new Y.EventTarget({ + fireOnce: true, + context: host + }); - var t = type, detachcategory, after, i; + self.events = events; - if (!L.isString(t)) { - return t; - } + if (self.stoppedFn) { + events.on('stopped', self.stoppedFn); + } - i = t.indexOf(AFTER_PREFIX); + self.currentTarget = host; - if (i > -1) { - after = true; - t = t.substr(AFTER_PREFIX.length); - // Y.log(t); - } + self.details = args.slice(); // original arguments in the details - i = t.indexOf(CATEGORY_DELIMITER); + // self.log("Firing " + self + ", " + "args: " + args); + self.log("Firing " + self.type); - if (i > -1) { - detachcategory = t.substr(0, (i)); - t = t.substr(i+1); - if (t == '*') { - t = null; - } - } + self._facade = null; // kill facade to eliminate stale properties - // detach category, full type with instance prefix, is this an after listener, short type - return [detachcategory, (pre) ? _getType(t, pre) : t, after, t]; - }), + ef = self._getFacade(args); - ET = function(opts) { + if (Y.Lang.isObject(args[0])) { + args[0] = ef; + } else { + args.unshift(ef); + } - // Y.log('EventTarget constructor executed: ' + this._yuid); + // if (subCount) { + if (subs[0]) { + // self._procSubs(Y.merge(self.subscribers), args, ef); + self._procSubs(subs[0], args, ef); + } - var o = (L.isObject(opts)) ? opts : {}; + // bubble if this is hosted in an event target and propagation has not been stopped + if (self.bubbles && host.bubble && !self.stopped) { - this._yuievt = this._yuievt || { + oldbubble = es.bubbling; - id: Y.guid(), + // self.bubbling = true; + es.bubbling = self.type; - events: {}, + // if (host !== ef.target || es.type != self.type) { + if (es.type != self.type) { + es.stopped = 0; + es.prevented = 0; + } - targets: {}, + ret = host.bubble(self, args, null, es); - config: o, + self.stopped = Math.max(self.stopped, es.stopped); + self.prevented = Math.max(self.prevented, es.prevented); - chain: ('chain' in o) ? o.chain : Y.config.chain, + // self.bubbling = false; + es.bubbling = oldbubble; - bubbling: false, + } - defaults: { - context: o.context || this, - host: this, - emitFacade: o.emitFacade, - fireOnce: o.fireOnce, - queuable: o.queuable, - monitored: o.monitored, - broadcast: o.broadcast, - defaultTargetOnly: o.defaultTargetOnly, - bubbles: ('bubbles' in o) ? o.bubbles : true + if (self.prevented) { + if (self.preventedFn) { + self.preventedFn.apply(host, args); + } + } else if (self.defaultFn && + ((!self.defaultTargetOnly && !es.defaultTargetOnly) || + host === ef.target)) { + self.defaultFn.apply(host, args); + } + + // broadcast listeners are fired as discreet events on the + // YUI instance and potentially the YUI global. + self._broadcast(args); + + // Queue the after + if (subs[1] && !self.prevented && self.stopped < 2) { + if (es.id === self.id || self.type != host._yuievt.bubbling) { + self._procSubs(subs[1], args, ef); + while ((next = es.afterQueue.last())) { + next(); + } + } else { + postponed = subs[1]; + if (es.execDefaultCnt) { + postponed = Y.merge(postponed); + Y.each(postponed, function(s) { + s.postponed = true; + }); } - }; - }; + es.afterQueue.add(function() { + self._procSubs(postponed, args, ef); + }); + } + } + self.target = null; -ET.prototype = { + if (es.id === self.id) { + queue = es.queue; - /** - * Listen to a custom event hosted by this object one time. - * This is the equivalent to on except the - * listener is immediatelly detached when it is executed. - * @method once - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - once: function() { - var handle = this.on.apply(this, arguments); - handle.batch(function(hand) { - if (hand.sub) { - hand.sub.once = true; - } - }); - return handle; - }, + while (queue.length) { + q = queue.pop(); + ce = q[0]; + // set up stack to allow the next item to be processed + es.next = ce; + ce.fire.apply(ce, q[1]); + } - /** - * Listen to a custom event hosted by this object one time. - * This is the equivalent to after except the - * listener is immediatelly detached when it is executed. - * @method onceAfter - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - onceAfter: function() { - var args = YArray(arguments, 0, true); - args[0] = AFTER_PREFIX + args[0]; + self.stack = null; + } - return this.once.apply(this, args); - }, + ret = !(self.stopped); - /** - * Takes the type parameter passed to 'on' and parses out the - * various pieces that could be included in the type. If the - * event type is passed without a prefix, it will be expanded - * to include the prefix one is supplied or the event target - * is configured with a default prefix. - * @method parseType - * @param {string} type the type - * @param {string} [pre=this._yuievt.config.prefix] the prefix - * @since 3.3.0 - * @return {Array} an array containing: - * * the detach category, if supplied, - * * the prefixed event type, - * * whether or not this is an after listener, - * * the supplied event type - */ - parseType: function(type, pre) { - return _parseType(type, pre || this._yuievt.config.prefix); - }, + if (self.type != host._yuievt.bubbling) { + es.stopped = 0; + es.prevented = 0; + self.stopped = 0; + self.prevented = 0; + } - /** - * Subscribe to a custom event hosted by this object - * @method on - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - on: function(type, fn, context) { + return ret; +}; - var parts = _parseType(type, this._yuievt.config.prefix), f, c, args, ret, ce, - detachcategory, handle, store = Y.Env.evt.handles, after, adapt, shorttype, - Node = Y.Node, n, domevent, isArr; +CEProto._getFacade = function() { - // full name, args, detachcategory, after - this._monitor('attach', parts[1], { - args: arguments, - category: parts[0], - after: parts[2] - }); + var ef = this._facade, o, o2, + args = this.details; - if (L.isObject(type)) { + if (!ef) { + ef = new Y.EventFacade(this, this.currentTarget); + } - if (L.isFunction(type)) { - return Y.Do.before.apply(Y.Do, arguments); - } + // if the first argument is an object literal, apply the + // properties to the event facade + o = args && args[0]; - f = fn; - c = context; - args = YArray(arguments, 0, true); - ret = []; + if (Y.Lang.isObject(o, true)) { - if (L.isArray(type)) { - isArr = true; - } + o2 = {}; - after = type._after; - delete type._after; + // protect the event facade properties + Y.mix(o2, ef, true, FACADE_KEYS); - Y.each(type, function(v, k) { + // mix the data + Y.mix(ef, o, true); - if (L.isObject(v)) { - f = v.fn || ((L.isFunction(v)) ? v : f); - c = v.context || c; - } + // restore ef + Y.mix(ef, o2, true, FACADE_KEYS); - var nv = (after) ? AFTER_PREFIX : ''; + // Allow the event type to be faked + // http://yuilibrary.com/projects/yui3/ticket/2528376 + ef.type = o.type || ef.type; + } - args[0] = nv + ((isArr) ? v : k); - args[1] = f; - args[2] = c; + // update the details field with the arguments + // ef.type = this.type; + ef.details = this.details; - ret.push(this.on.apply(this, args)); + // use the original target when the event bubbled to this target + ef.target = this.originalTarget || this.target; - }, this); + ef.currentTarget = this.currentTarget; + ef.stopped = 0; + ef.prevented = 0; - return (this._yuievt.chain) ? this : new Y.EventHandle(ret); + this._facade = ef; - } + return this._facade; +}; - detachcategory = parts[0]; - after = parts[2]; - shorttype = parts[3]; +/** + * Stop propagation to bubble targets + * @for CustomEvent + * @method stopPropagation + */ +CEProto.stopPropagation = function() { + this.stopped = 1; + if (this.stack) { + this.stack.stopped = 1; + } + this.events.fire('stopped', this); +}; - // extra redirection so we catch adaptor events too. take a look at this. - if (Node && Y.instanceOf(this, Node) && (shorttype in Node.DOM_EVENTS)) { - args = YArray(arguments, 0, true); - args.splice(2, 0, Node.getDOMNode(this)); - // Y.log("Node detected, redirecting with these args: " + args); - return Y.on.apply(Y, args); +/** + * Stops propagation to bubble targets, and prevents any remaining + * subscribers on the current target from executing. + * @method stopImmediatePropagation + */ +CEProto.stopImmediatePropagation = function() { + this.stopped = 2; + if (this.stack) { + this.stack.stopped = 2; + } + this.events.fire('stopped', this); +}; + +/** + * Prevents the execution of this event's defaultFn + * @method preventDefault + */ +CEProto.preventDefault = function() { + if (this.preventable) { + this.prevented = 1; + if (this.stack) { + this.stack.prevented = 1; } + } +}; - type = parts[1]; +/** + * Stops the event propagation and prevents the default + * event behavior. + * @method halt + * @param immediate {boolean} if true additional listeners + * on the current target will not be executed + */ +CEProto.halt = function(immediate) { + if (immediate) { + this.stopImmediatePropagation(); + } else { + this.stopPropagation(); + } + this.preventDefault(); +}; - if (Y.instanceOf(this, YUI)) { +/** + * Registers another EventTarget as a bubble target. Bubble order + * is determined by the order registered. Multiple targets can + * be specified. + * + * Events can only bubble if emitFacade is true. + * + * Included in the event-custom-complex submodule. + * + * @method addTarget + * @param o {EventTarget} the target to add + * @for EventTarget + */ +ETProto.addTarget = function(o) { + this._yuievt.targets[Y.stamp(o)] = o; + this._yuievt.hasTargets = true; +}; - adapt = Y.Env.evt.plugins[type]; - args = YArray(arguments, 0, true); - args[0] = shorttype; +/** + * Returns an array of bubble targets for this object. + * @method getTargets + * @return EventTarget[] + */ +ETProto.getTargets = function() { + return Y.Object.values(this._yuievt.targets); +}; - if (Node) { - n = args[2]; +/** + * Removes a bubble target + * @method removeTarget + * @param o {EventTarget} the target to remove + * @for EventTarget + */ +ETProto.removeTarget = function(o) { + delete this._yuievt.targets[Y.stamp(o)]; +}; - if (Y.instanceOf(n, Y.NodeList)) { - n = Y.NodeList.getDOMNodes(n); - } else if (Y.instanceOf(n, Node)) { - n = Node.getDOMNode(n); - } +/** + * Propagate an event. Requires the event-custom-complex module. + * @method bubble + * @param evt {CustomEvent} the custom event to propagate + * @return {boolean} the aggregated return value from Event.Custom.fire + * @for EventTarget + */ +ETProto.bubble = function(evt, args, target, es) { - domevent = (shorttype in Node.DOM_EVENTS); + var targs = this._yuievt.targets, ret = true, + t, type = evt && evt.type, ce, i, bc, ce2, + originalTarget = target || (evt && evt.target) || this, + oldbubble; - // Captures both DOM events and event plugins. - if (domevent) { - args[2] = n; + if (!evt || ((!evt.stopped) && targs)) { + + // Y.log('Bubbling ' + evt.type); + for (i in targs) { + if (targs.hasOwnProperty(i)) { + t = targs[i]; + ce = t.getEvent(type, true); + ce2 = t.getSibling(type, ce); + + if (ce2 && !ce) { + ce = t.publish(type); } - } - // check for the existance of an event adaptor - if (adapt) { - Y.log('Using adaptor for ' + shorttype + ', ' + n, 'info', 'event'); - handle = adapt.on.apply(Y, args); - } else if ((!type) || domevent) { - handle = Y.Event._attach(args); - } + oldbubble = t._yuievt.bubbling; + t._yuievt.bubbling = type; - } + // if this event was not published on the bubble target, + // continue propagating the event. + if (!ce) { + if (t._yuievt.hasTargets) { + t.bubble(evt, args, originalTarget, es); + } + } else { - if (!handle) { - ce = this._yuievt.events[type] || this.publish(type); - handle = ce._on(fn, context, (arguments.length > 3) ? YArray(arguments, 3, true) : null, (after) ? 'after' : true); - } + ce.sibling = ce2; - if (detachcategory) { - store[detachcategory] = store[detachcategory] || {}; - store[detachcategory][type] = store[detachcategory][type] || []; - store[detachcategory][type].push(handle); - } + // set the original target to that the target payload on the + // facade is correct. + ce.target = originalTarget; + ce.originalTarget = originalTarget; + ce.currentTarget = t; + bc = ce.broadcast; + ce.broadcast = false; - return (this._yuievt.chain) ? this : handle; + // default publish may not have emitFacade true -- that + // shouldn't be what the implementer meant to do + ce.emitFacade = true; - }, + ce.stack = es; - /** - * subscribe to an event - * @method subscribe - * @deprecated use on - */ - subscribe: function() { - Y.log('EventTarget subscribe() is deprecated, use on()', 'warn', 'deprecated'); - return this.on.apply(this, arguments); - }, + ret = ret && ce.fire.apply(ce, args || evt.details || []); + ce.broadcast = bc; + ce.originalTarget = null; - /** - * Detach one or more listeners the from the specified event - * @method detach - * @param type {string|Object} Either the handle to the subscriber or the - * type of event. If the type - * is not specified, it will attempt to remove - * the listener from all hosted events. - * @param fn {Function} The subscribed function to unsubscribe, if not - * supplied, all subscribers will be removed. - * @param context {Object} The custom object passed to subscribe. This is - * optional, but if supplied will be used to - * disambiguate multiple listeners that are the same - * (e.g., you subscribe many object using a function - * that lives on the prototype) - * @return {EventTarget} the host - */ - detach: function(type, fn, context) { - var evts = this._yuievt.events, i, - Node = Y.Node, isNode = Node && (Y.instanceOf(this, Node)); - // detachAll disabled on the Y instance. - if (!type && (this !== Y)) { - for (i in evts) { - if (evts.hasOwnProperty(i)) { - evts[i].detach(fn, context); + // stopPropagation() was called + if (ce.stopped) { + break; + } } - } - if (isNode) { - Y.Event.purgeElement(Node.getDOMNode(this)); - } - return this; + t._yuievt.bubbling = oldbubble; + } } + } - var parts = _parseType(type, this._yuievt.config.prefix), - detachcategory = L.isArray(parts) ? parts[0] : null, - shorttype = (parts) ? parts[3] : null, - adapt, store = Y.Env.evt.handles, detachhost, cat, args, - ce, + return ret; +}; - keyDetacher = function(lcat, ltype, host) { - var handles = lcat[ltype], ce, i; - if (handles) { - for (i = handles.length - 1; i >= 0; --i) { - ce = handles[i].evt; - if (ce.host === host || ce.el === host) { - handles[i].detach(); - } - } - } - }; +FACADE = new Y.EventFacade(); +FACADE_KEYS = Y.Object.keys(FACADE); - if (detachcategory) { - cat = store[detachcategory]; - type = parts[1]; - detachhost = (isNode) ? Y.Node.getDOMNode(this) : this; - if (cat) { - if (type) { - keyDetacher(cat, type, detachhost); - } else { - for (i in cat) { - if (cat.hasOwnProperty(i)) { - keyDetacher(cat, i, detachhost); - } - } - } +}, '3.4.0' ,{requires:['event-custom-base']}); +YUI.add('node-core', function(Y) { - return this; - } +/** + * The Node Utility provides a DOM-like interface for interacting with DOM nodes. + * @module node + * @submodule node-core + */ - // If this is an event handle, use it to detach - } else if (L.isObject(type) && type.detach) { - type.detach(); - return this; - // extra redirection so we catch adaptor events too. take a look at this. - } else if (isNode && ((!shorttype) || (shorttype in Node.DOM_EVENTS))) { - args = YArray(arguments, 0, true); - args[2] = Node.getDOMNode(this); - Y.detach.apply(Y, args); - return this; - } +/** + * The Node class provides a wrapper for manipulating DOM Nodes. + * Node properties can be accessed via the set/get methods. + * Use `Y.one()` to retrieve Node instances. + * + * NOTE: Node properties are accessed using + * the set and get methods. + * + * @class Node + * @constructor + * @param {DOMNode} node the DOM node to be mapped to the Node instance. + * @uses EventTarget + */ - adapt = Y.Env.evt.plugins[shorttype]; +// "globals" +var DOT = '.', + NODE_NAME = 'nodeName', + NODE_TYPE = 'nodeType', + OWNER_DOCUMENT = 'ownerDocument', + TAG_NAME = 'tagName', + UID = '_yuid', + EMPTY_OBJ = {}, - // The YUI instance handles DOM events and adaptors - if (Y.instanceOf(this, YUI)) { - args = YArray(arguments, 0, true); - // use the adaptor specific detach code if - if (adapt && adapt.detach) { - adapt.detach.apply(Y, args); - return this; - // DOM event fork - } else if (!type || (!adapt && Node && (type in Node.DOM_EVENTS))) { - args[0] = type; - Y.Event.detach.apply(Y.Event, args); - return this; + _slice = Array.prototype.slice, + + Y_DOM = Y.DOM, + + Y_Node = function(node) { + if (!this.getDOMNode) { // support optional "new" + return new Y_Node(node); + } + + if (typeof node == 'string') { + node = Y_Node._fromString(node); + if (!node) { + return null; // NOTE: return } } - // ce = evts[type]; - ce = evts[parts[1]]; - if (ce) { - ce.detach(fn, context); + var uid = (node.nodeType !== 9) ? node.uniqueID : node[UID]; + + if (uid && Y_Node._instances[uid] && Y_Node._instances[uid]._node !== node) { + node[UID] = null; // unset existing uid to prevent collision (via clone or hack) } - return this; - }, + uid = uid || Y.stamp(node); + if (!uid) { // stamp failed; likely IE non-HTMLElement + uid = Y.guid(); + } - /** - * detach a listener - * @method unsubscribe - * @deprecated use detach - */ - unsubscribe: function() { -Y.log('EventTarget unsubscribe() is deprecated, use detach()', 'warn', 'deprecated'); - return this.detach.apply(this, arguments); - }, + this[UID] = uid; - /** - * Removes all listeners from the specified event. If the event type - * is not specified, all listeners from all hosted custom events will - * be removed. - * @method detachAll - * @param type {string} The type, or name of the event - */ - detachAll: function(type) { - return this.detach(type); - }, - - /** - * Removes all listeners from the specified event. If the event type - * is not specified, all listeners from all hosted custom events will - * be removed. - * @method unsubscribeAll - * @param type {string} The type, or name of the event - * @deprecated use detachAll - */ - unsubscribeAll: function() { -Y.log('EventTarget unsubscribeAll() is deprecated, use detachAll()', 'warn', 'deprecated'); - return this.detachAll.apply(this, arguments); - }, - - /** - * Creates a new custom event of the specified type. If a custom event - * by that name already exists, it will not be re-created. In either - * case the custom event is returned. - * - * @method publish - * - * @param type {string} the type, or name of the event - * @param opts {object} optional config params. Valid properties are: - * - *
                                - *
                              • - * 'broadcast': whether or not the YUI instance and YUI global are notified when the event is fired (false) - *
                              • - *
                              • - * 'bubbles': whether or not this event bubbles (true) - * Events can only bubble if emitFacade is true. - *
                              • - *
                              • - * 'context': the default execution context for the listeners (this) - *
                              • - *
                              • - * 'defaultFn': the default function to execute when this event fires if preventDefault was not called - *
                              • - *
                              • - * 'emitFacade': whether or not this event emits a facade (false) - *
                              • - *
                              • - * 'prefix': the prefix for this targets events, e.g., 'menu' in 'menu:click' - *
                              • - *
                              • - * 'fireOnce': if an event is configured to fire once, new subscribers after - * the fire will be notified immediately. - *
                              • - *
                              • - * 'async': fireOnce event listeners will fire synchronously if the event has already - * fired unless async is true. - *
                              • - *
                              • - * 'preventable': whether or not preventDefault() has an effect (true) - *
                              • - *
                              • - * 'preventedFn': a function that is executed when preventDefault is called - *
                              • - *
                              • - * 'queuable': whether or not this event can be queued during bubbling (false) - *
                              • - *
                              • - * 'silent': if silent is true, debug messages are not provided for this event. - *
                              • - *
                              • - * 'stoppedFn': a function that is executed when stopPropagation is called - *
                              • - * - *
                              • - * 'monitored': specifies whether or not this event should send notifications about - * when the event has been attached, detached, or published. - *
                              • - *
                              • - * 'type': the event type (valid option if not provided as the first parameter to publish) - *
                              • - *
                              - * - * @return {CustomEvent} the custom event - * - */ - publish: function(type, opts) { - var events, ce, ret, defaults, - edata = this._yuievt, - pre = edata.config.prefix; - - type = (pre) ? _getType(type, pre) : type; - - this._monitor('publish', type, { - args: arguments - }); + /** + * The underlying DOM node bound to the Y.Node instance + * @property _node + * @private + */ + this._node = node; - if (L.isObject(type)) { - ret = {}; - Y.each(type, function(v, k) { - ret[k] = this.publish(k, v || opts); - }, this); + this._stateProxy = node; // when augmented with Attribute - return ret; + if (this._initPlugins) { // when augmented with Plugin.Host + this._initPlugins(); } + }, - events = edata.events; - ce = events[type]; - - if (ce) { -// ce.log("publish applying new config to published event: '"+type+"' exists", 'info', 'event'); - if (opts) { - ce.applyConfig(opts, true); - } - } else { - - defaults = edata.defaults; - - // apply defaults - ce = new Y.CustomEvent(type, - (opts) ? Y.merge(defaults, opts) : defaults); - events[type] = ce; + // used with previous/next/ancestor tests + _wrapFn = function(fn) { + var ret = null; + if (fn) { + ret = (typeof fn == 'string') ? + function(n) { + return Y.Selector.test(n, fn); + } : + function(n) { + return fn(Y.one(n)); + }; } - // make sure we turn the broadcast flag off if this - // event was published as a result of bubbling - // if (opts instanceof Y.CustomEvent) { - // events[type].broadcast = false; - // } + return ret; + }; +// end "globals" - return events[type]; - }, +Y_Node.ATTRS = {}; +Y_Node.DOM_EVENTS = {}; - /** - * This is the entry point for the event monitoring system. - * You can monitor 'attach', 'detach', 'fire', and 'publish'. - * When configured, these events generate an event. click -> - * click_attach, click_detach, click_publish -- these can - * be subscribed to like other events to monitor the event - * system. Inividual published events can have monitoring - * turned on or off (publish can't be turned off before it - * it published) by setting the events 'monitor' config. - * - * @private - */ - _monitor: function(what, type, o) { - var monitorevt, ce = this.getEvent(type); - if ((this._yuievt.config.monitored && (!ce || ce.monitored)) || (ce && ce.monitored)) { - monitorevt = type + '_' + what; - // Y.log('monitoring: ' + monitorevt); - o.monitored = what; - this.fire.call(this, monitorevt, o); +Y_Node._fromString = function(node) { + if (node) { + if (node.indexOf('doc') === 0) { // doc OR document + node = Y.config.doc; + } else if (node.indexOf('win') === 0) { // win OR window + node = Y.config.win; + } else { + node = Y.Selector.query(node, null, true); } - }, + } - /** - * Fire a custom event by name. The callback functions will be executed - * from the context specified when the event was created, and with the - * following parameters. - * - * If the custom event object hasn't been created, then the event hasn't - * been published and it has no subscribers. For performance sake, we - * immediate exit in this case. This means the event won't bubble, so - * if the intention is that a bubble target be notified, the event must - * be published on this object first. - * - * The first argument is the event type, and any additional arguments are - * passed to the listeners as parameters. If the first of these is an - * object literal, and the event is configured to emit an event facade, - * that object is mixed into the event facade and the facade is provided - * in place of the original object. - * - * @method fire - * @param type {String|Object} The type of the event, or an object that contains - * a 'type' property. - * @param arguments {Object*} an arbitrary set of parameters to pass to - * the handler. If the first of these is an object literal and the event is - * configured to emit an event facade, the event facade will replace that - * parameter after the properties the object literal contains are copied to - * the event facade. - * @return {EventTarget} the event host - * - */ - fire: function(type) { + return node || null; +}; - var typeIncluded = L.isString(type), - t = (typeIncluded) ? type : (type && type.type), - ce, ret, pre = this._yuievt.config.prefix, ce2, - args = (typeIncluded) ? YArray(arguments, 1, true) : arguments; +/** + * The name of the component + * @static + * @property NAME + */ +Y_Node.NAME = 'node'; - t = (pre) ? _getType(t, pre) : t; +/* + * The pattern used to identify ARIA attributes + */ +Y_Node.re_aria = /^(?:role$|aria-)/; - this._monitor('fire', t, { - args: args - }); +Y_Node.SHOW_TRANSITION = 'fadeIn'; +Y_Node.HIDE_TRANSITION = 'fadeOut'; - ce = this.getEvent(t, true); - ce2 = this.getSibling(t, ce); +/** + * A list of Node instances that have been created + * @private + * @property _instances + * @static + * + */ +Y_Node._instances = {}; - if (ce2 && !ce) { - ce = this.publish(t); - } +/** + * Retrieves the DOM node bound to a Node instance + * @method getDOMNode + * @static + * + * @param {Y.Node || HTMLNode} node The Node instance or an HTMLNode + * @return {HTMLNode} The DOM node bound to the Node instance. If a DOM node is passed + * as the node argument, it is simply returned. + */ +Y_Node.getDOMNode = function(node) { + if (node) { + return (node.nodeType) ? node : node._node || null; + } + return null; +}; - // this event has not been published or subscribed to - if (!ce) { - if (this._yuievt.hasTargets) { - return this.bubble({ type: t }, args, this); +/** + * Checks Node return values and wraps DOM Nodes as Y.Node instances + * and DOM Collections / Arrays as Y.NodeList instances. + * Other return values just pass thru. If undefined is returned (e.g. no return) + * then the Node instance is returned for chainability. + * @method scrubVal + * @static + * + * @param {any} node The Node instance or an HTMLNode + * @return {Y.Node | Y.NodeList | any} Depends on what is returned from the DOM node. + */ +Y_Node.scrubVal = function(val, node) { + if (val) { // only truthy values are risky + if (typeof val == 'object' || typeof val == 'function') { // safari nodeList === function + if (NODE_TYPE in val || Y_DOM.isWindow(val)) {// node || window + val = Y.one(val); + } else if ((val.item && !val._nodes) || // dom collection or Node instance + (val[0] && val[0][NODE_TYPE])) { // array of DOM Nodes + val = Y.all(val); } - - // otherwise there is nothing to be done - ret = true; - } else { - ce.sibling = ce2; - ret = ce.fire.apply(ce, args); } + } else if (typeof val === 'undefined') { + val = node; // for chaining + } else if (val === null) { + val = null; // IE: DOM null not the same as null + } - return (this._yuievt.chain) ? this : ret; - }, + return val; +}; - getSibling: function(type, ce) { - var ce2; - // delegate to *:type events if there are subscribers - if (type.indexOf(PREFIX_DELIMITER) > -1) { - type = _wildType(type); - // console.log(type); - ce2 = this.getEvent(type, true); - if (ce2) { - // console.log("GOT ONE: " + type); - ce2.applyConfig(ce); - ce2.bubbles = false; - ce2.broadcast = 0; - // ret = ce2.fire.apply(ce2, a); - } - } +/** + * Adds methods to the Y.Node prototype, routing through scrubVal. + * @method addMethod + * @static + * + * @param {String} name The name of the method to add + * @param {Function} fn The function that becomes the method + * @param {Object} context An optional context to call the method with + * (defaults to the Node instance) + * @return {any} Depends on what is returned from the DOM node. + */ +Y_Node.addMethod = function(name, fn, context) { + if (name && fn && typeof fn == 'function') { + Y_Node.prototype[name] = function() { + var args = _slice.call(arguments), + node = this, + ret; - return ce2; - }, + if (args[0] && Y.instanceOf(args[0], Y_Node)) { + args[0] = args[0]._node; + } - /** - * Returns the custom event of the provided type has been created, a - * falsy value otherwise - * @method getEvent - * @param type {string} the type, or name of the event - * @param prefixed {string} if true, the type is prefixed already - * @return {CustomEvent} the custom event or null - */ - getEvent: function(type, prefixed) { - var pre, e; - if (!prefixed) { - pre = this._yuievt.config.prefix; - type = (pre) ? _getType(type, pre) : type; - } - e = this._yuievt.events; - return e[type] || null; - }, + if (args[1] && Y.instanceOf(args[1], Y_Node)) { + args[1] = args[1]._node; + } + args.unshift(node._node); - /** - * Subscribe to a custom event hosted by this object. The - * supplied callback will execute after any listeners add - * via the subscribe method, and after the default function, - * if configured for the event, has executed. - * @method after - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - after: function(type, fn) { + ret = fn.apply(node, args); - var a = YArray(arguments, 0, true); + if (ret) { // scrub truthy + ret = Y_Node.scrubVal(ret, node); + } - switch (L.type(type)) { - case 'function': - return Y.Do.after.apply(Y.Do, arguments); - case 'array': - // YArray.each(a[0], function(v) { - // v = AFTER_PREFIX + v; - // }); - // break; - case 'object': - a[0]._after = true; - break; - default: - a[0] = AFTER_PREFIX + type; - } + (typeof ret != 'undefined') || (ret = node); + return ret; + }; + } else { + Y.log('unable to add method: ' + name, 'warn', 'Node'); + } +}; - return this.on.apply(this, a); +/** + * Imports utility methods to be added as Y.Node methods. + * @method importMethod + * @static + * + * @param {Object} host The object that contains the method to import. + * @param {String} name The name of the method to import + * @param {String} altName An optional name to use in place of the host name + * @param {Object} context An optional context to call the method with + */ +Y_Node.importMethod = function(host, name, altName) { + if (typeof name == 'string') { + altName = altName || name; + Y_Node.addMethod(altName, host[name], host); + } else { + Y.Array.each(name, function(n) { + Y_Node.importMethod(host, n); + }); + } +}; - }, +/** + * Retrieves a NodeList based on the given CSS selector. + * @method all + * + * @param {string} selector The CSS selector to test against. + * @return {NodeList} A NodeList instance for the matching HTMLCollection/Array. + * @for YUI + */ - /** - * Executes the callback before a DOM event, custom event - * or method. If the first argument is a function, it - * is assumed the target is a method. For DOM and custom - * events, this is an alias for Y.on. - * - * For DOM and custom events: - * type, callback, context, 0-n arguments - * - * For methods: - * callback, object (method host), methodName, context, 0-n arguments - * - * @method before - * @return detach handle - */ - before: function() { - return this.on.apply(this, arguments); - } +/** + * Returns a single Node instance bound to the node or the + * first element matching the given selector. Returns null if no match found. + * Note: For chaining purposes you may want to + * use Y.all, which returns a NodeList when no match is found. + * @method one + * @param {String | HTMLElement} node a node or Selector + * @return {Y.Node | null} a Node instance or null if no match found. + * @for YUI + */ -}; +/** + * Returns a single Node instance bound to the node or the + * first element matching the given selector. Returns null if no match found. + * Note: For chaining purposes you may want to + * use Y.all, which returns a NodeList when no match is found. + * @method one + * @static + * @param {String | HTMLElement} node a node or Selector + * @return {Y.Node | null} a Node instance or null if no match found. + * @for Node + */ +Y_Node.one = function(node) { + var instance = null, + cachedNode, + uid; -Y.EventTarget = ET; + if (node) { + if (typeof node == 'string') { + node = Y_Node._fromString(node); + if (!node) { + return null; // NOTE: return + } + } else if (node.getDOMNode) { + return node; // NOTE: return + } -// make Y an event target -Y.mix(Y, ET.prototype); -ET.call(Y, { bubbles: false }); + if (node.nodeType || Y.DOM.isWindow(node)) { // avoid bad input (numbers, boolean, etc) + uid = (node.uniqueID && node.nodeType !== 9) ? node.uniqueID : node._yuid; + instance = Y_Node._instances[uid]; // reuse exising instances + cachedNode = instance ? instance._node : null; + if (!instance || (cachedNode && node !== cachedNode)) { // new Node when nodes don't match + instance = new Y_Node(node); + if (node.nodeType != 11) { // dont cache document fragment + Y_Node._instances[instance[UID]] = instance; // cache node + } + } + } + } -YUI.Env.globalEvents = YUI.Env.globalEvents || new ET(); + return instance; +}; /** - * Hosts YUI page level events. This is where events bubble to - * when the broadcast config is set to 2. This property is - * only available if the custom event module is loaded. - * @property Global - * @type EventTarget - * @for YUI + * The default setter for DOM properties + * Called with instance context (this === the Node instance) + * @method DEFAULT_SETTER + * @static + * @param {String} name The attribute/property being set + * @param {any} val The value to be set + * @return {any} The value */ -Y.Global = YUI.Env.globalEvents; +Y_Node.DEFAULT_SETTER = function(name, val) { + var node = this._stateProxy, + strPath; -// @TODO implement a global namespace function on Y.Global? + if (name.indexOf(DOT) > -1) { + strPath = name; + name = name.split(DOT); + // only allow when defined on node + Y.Object.setValue(node, name, val); + } else if (typeof node[name] != 'undefined') { // pass thru DOM properties + node[name] = val; + } + + return val; +}; /** - * YUI's on method is a unified interface for subscribing to - * most events exposed by YUI. This includes custom events, DOM events, and - * function events. detach is also provided to remove listeners - * serviced by this function. - * - * The signature that on accepts varies depending on the type - * of event being consumed. Refer to the specific methods that will - * service a specific request for additional information about subscribing - * to that type of event. - * - *
                                - *
                              • Custom events. These events are defined by various - * modules in the library. This type of event is delegated to - * EventTarget's on method. - *
                                  - *
                                • The type of the event
                                • - *
                                • The callback to execute
                                • - *
                                • An optional context object
                                • - *
                                • 0..n additional arguments to supply the callback.
                                • - *
                                - * Example: - * Y.on('drag:drophit', function() { // start work }); - *
                              • - *
                              • DOM events. These are moments reported by the browser related - * to browser functionality and user interaction. - * This type of event is delegated to Event's - * attach method. - *
                                  - *
                                • The type of the event
                                • - *
                                • The callback to execute
                                • - *
                                • The specification for the Node(s) to attach the listener - * to. This can be a selector, collections, or Node/Element - * refereces.
                                • - *
                                • An optional context object
                                • - *
                                • 0..n additional arguments to supply the callback.
                                • - *
                                - * Example: - * Y.on('click', function(e) { // something was clicked }, '#someelement'); - *
                              • - *
                              • Function events. These events can be used to react before or after a - * function is executed. This type of event is delegated to Event.Do's - * before method. - *
                                  - *
                                • The callback to execute
                                • - *
                                • The object that has the function that will be listened for.
                                • - *
                                • The name of the function to listen for.
                                • - *
                                • An optional context object
                                • - *
                                • 0..n additional arguments to supply the callback.
                                • - *
                                - * Example Y.on(function(arg1, arg2, etc) { // obj.methodname was executed }, obj 'methodname'); - *
                              • - *
                              - * - * on corresponds to the moment before any default behavior of - * the event. after works the same way, but these listeners - * execute after the event's default behavior. before is an - * alias for on. - * - * @method on - * @param type event type (this parameter does not apply for function events) - * @param fn the callback - * @param context optionally change the value of 'this' in the callback - * @param args* 0..n additional arguments to pass to the callback. - * @return the event target or a detach handle per 'chain' config - * @for YUI - */ - - /** - * Listen for an event one time. Equivalent to on, except that - * the listener is immediately detached when executed. - * @see on - * @method once - * @param type event type (this parameter does not apply for function events) - * @param fn the callback - * @param context optionally change the value of 'this' in the callback - * @param args* 0..n additional arguments to pass to the callback. - * @return the event target or a detach handle per 'chain' config - * @for YUI - */ - -/** - * after() is a unified interface for subscribing to - * most events exposed by YUI. This includes custom events, - * DOM events, and AOP events. This works the same way as - * the on() function, only it operates after any default - * behavior for the event has executed. @see on for more - * information. - * @method after - * @param type event type (this parameter does not apply for function events) - * @param fn the callback - * @param context optionally change the value of 'this' in the callback - * @param args* 0..n additional arguments to pass to the callback. - * @return the event target or a detach handle per 'chain' config - * @for YUI + * The default getter for DOM properties + * Called with instance context (this === the Node instance) + * @method DEFAULT_GETTER + * @static + * @param {String} name The attribute/property to look up + * @return {any} The current value */ +Y_Node.DEFAULT_GETTER = function(name) { + var node = this._stateProxy, + val; + if (name.indexOf && name.indexOf(DOT) > -1) { + val = Y.Object.getValue(node, name.split(DOT)); + } else if (typeof node[name] != 'undefined') { // pass thru from DOM + val = node[name]; + } -}, '3.4.0' ,{requires:['oop']}); -(function () { -var GLOBAL_ENV = YUI.Env; - -if (!GLOBAL_ENV._ready) { - GLOBAL_ENV._ready = function() { - GLOBAL_ENV.DOMReady = true; - GLOBAL_ENV.remove(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); - }; + return val; +}; - GLOBAL_ENV.add(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); -} -})(); -YUI.add('event-base', function(Y) { +Y.mix(Y_Node.prototype, { + /** + * The method called when outputting Node instances as strings + * @method toString + * @return {String} A string representation of the Node instance + */ + toString: function() { + var str = this[UID] + ': not bound to a node', + node = this._node, + attrs, id, className; -/* - * DOM event listener abstraction layer - * @module event - * @submodule event-base - */ + if (node) { + attrs = node.attributes; + id = (attrs && attrs.id) ? node.getAttribute('id') : null; + className = (attrs && attrs.className) ? node.getAttribute('className') : null; + str = node[NODE_NAME]; -/** - * The domready event fires at the moment the browser's DOM is - * usable. In most cases, this is before images are fully - * downloaded, allowing you to provide a more responsive user - * interface. - * - * In YUI 3, domready subscribers will be notified immediately if - * that moment has already passed when the subscription is created. - * - * One exception is if the yui.js file is dynamically injected into - * the page. If this is done, you must tell the YUI instance that - * you did this in order for DOMReady (and window load events) to - * fire normally. That configuration option is 'injected' -- set - * it to true if the yui.js script is not included inline. - * - * This method is part of the 'event-ready' module, which is a - * submodule of 'event'. - * - * @event domready - * @for YUI - */ -Y.publish('domready', { - fireOnce: true, - async: true -}); + if (id) { + str += '#' + id; + } -if (YUI.Env.DOMReady) { - Y.fire('domready'); -} else { - Y.Do.before(function() { Y.fire('domready'); }, YUI.Env, '_ready'); -} + if (className) { + str += '.' + className.replace(' ', '.'); + } -/** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event - * @submodule event-base - */ + // TODO: add yuid? + str += ' ' + this[UID]; + } + return str; + }, -/** - * Wraps a DOM event, properties requiring browser abstraction are - * fixed here. Provids a security layer when required. - * @class DOMEventFacade - * @param ev {Event} the DOM event - * @param currentTarget {HTMLElement} the element the listener was attached to - * @param wrapper {Event.Custom} the custom event wrapper for this DOM event - */ + /** + * Returns an attribute value on the Node instance. + * Unless pre-configured (via `Node.ATTRS`), get hands + * off to the underlying DOM node. Only valid + * attributes/properties for the node will be queried. + * @method get + * @param {String} attr The attribute + * @return {any} The current value of the attribute + */ + get: function(attr) { + var val; - var ua = Y.UA, + if (this._getAttr) { // use Attribute imple + val = this._getAttr(attr); + } else { + val = this._get(attr); + } - EMPTY = {}, + if (val) { + val = Y_Node.scrubVal(val, this); + } else if (val === null) { + val = null; // IE: DOM null is not true null (even though they ===) + } + return val; + }, /** - * webkit key remapping required for Safari < 3.1 - * @property webkitKeymap + * Helper method for get. + * @method _get * @private + * @param {String} attr The attribute + * @return {any} The current value of the attribute */ - webkitKeymap = { - 63232: 38, // up - 63233: 40, // down - 63234: 37, // left - 63235: 39, // right - 63276: 33, // page up - 63277: 34, // page down - 25: 9, // SHIFT-TAB (Safari provides a different key code in - // this case, even though the shiftKey modifier is set) - 63272: 46, // delete - 63273: 36, // home - 63275: 35 // end + _get: function(attr) { + var attrConfig = Y_Node.ATTRS[attr], + val; + + if (attrConfig && attrConfig.getter) { + val = attrConfig.getter.call(this); + } else if (Y_Node.re_aria.test(attr)) { + val = this._node.getAttribute(attr, 2); + } else { + val = Y_Node.DEFAULT_GETTER.apply(this, arguments); + } + + return val; }, /** - * Returns a wrapped node. Intended to be used on event targets, - * so it will return the node's parent if the target is a text - * node. - * - * If accessing a property of the node throws an error, this is - * probably the anonymous div wrapper Gecko adds inside text - * nodes. This likely will only occur when attempting to access - * the relatedTarget. In this case, we now return null because - * the anonymous div is completely useless and we do not know - * what the related target was because we can't even get to - * the element's parent node. - * - * @method resolve - * @private + * Sets an attribute on the Node instance. + * Unless pre-configured (via Node.ATTRS), set hands + * off to the underlying DOM node. Only valid + * attributes/properties for the node will be set. + * To set custom attributes use setAttribute. + * @method set + * @param {String} attr The attribute to be set. + * @param {any} val The value to set the attribute to. + * @chainable */ - resolve = function(n) { - if (!n) { - return n; - } - try { - if (n && 3 == n.nodeType) { - n = n.parentNode; + set: function(attr, val) { + var attrConfig = Y_Node.ATTRS[attr]; + + if (this._setAttr) { // use Attribute imple + this._setAttr.apply(this, arguments); + } else { // use setters inline + if (attrConfig && attrConfig.setter) { + attrConfig.setter.call(this, val, attr); + } else if (Y_Node.re_aria.test(attr)) { // special case Aria + this._node.setAttribute(attr, val); + } else { + Y_Node.DEFAULT_SETTER.apply(this, arguments); } - } catch(e) { - return null; } - return Y.one(n); + return this; }, - DOMEventFacade = function(ev, currentTarget, wrapper) { - this._event = ev; - this._currentTarget = currentTarget; - this._wrapper = wrapper || EMPTY; - - // if not lazy init - this.init(); - }; - -Y.extend(DOMEventFacade, Object, { - - init: function() { - - var e = this._event, - overrides = this._wrapper.overrides, - x = e.pageX, - y = e.pageY, - c, - currentTarget = this._currentTarget; - - this.altKey = e.altKey; - this.ctrlKey = e.ctrlKey; - this.metaKey = e.metaKey; - this.shiftKey = e.shiftKey; - this.type = (overrides && overrides.type) || e.type; - this.clientX = e.clientX; - this.clientY = e.clientY; - - this.pageX = x; - this.pageY = y; - - c = e.keyCode || e.charCode; - - if (ua.webkit && (c in webkitKeymap)) { - c = webkitKeymap[c]; + /** + * Sets multiple attributes. + * @method setAttrs + * @param {Object} attrMap an object of name/value pairs to set + * @chainable + */ + setAttrs: function(attrMap) { + if (this._setAttrs) { // use Attribute imple + this._setAttrs(attrMap); + } else { // use setters inline + Y.Object.each(attrMap, function(v, n) { + this.set(n, v); + }, this); } - this.keyCode = c; - this.charCode = c; - this.which = e.which || e.charCode || c; - // this.button = e.button; - this.button = this.which; - - this.target = resolve(e.target); - this.currentTarget = resolve(currentTarget); - this.relatedTarget = resolve(e.relatedTarget); + return this; + }, - if (e.type == "mousewheel" || e.type == "DOMMouseScroll") { - this.wheelDelta = (e.detail) ? (e.detail * -1) : Math.round(e.wheelDelta / 80) || ((e.wheelDelta < 0) ? -1 : 1); + /** + * Returns an object containing the values for the requested attributes. + * @method getAttrs + * @param {Array} attrs an array of attributes to get values + * @return {Object} An object with attribute name/value pairs. + */ + getAttrs: function(attrs) { + var ret = {}; + if (this._getAttrs) { // use Attribute imple + this._getAttrs(attrs); + } else { // use setters inline + Y.Array.each(attrs, function(v, n) { + ret[v] = this.get(v); + }, this); } - if (this._touch) { - this._touch(e, currentTarget, this._wrapper); - } + return ret; }, - stopPropagation: function() { - this._event.stopPropagation(); - this._wrapper.stopped = 1; - this.stopped = 1; - }, + /** + * Compares nodes to determine if they match. + * Node instances can be compared to each other and/or HTMLElements. + * @method compareTo + * @param {HTMLElement | Node} refNode The reference node to compare to the node. + * @return {Boolean} True if the nodes match, false if they do not. + */ + compareTo: function(refNode) { + var node = this._node; - stopImmediatePropagation: function() { - var e = this._event; - if (e.stopImmediatePropagation) { - e.stopImmediatePropagation(); - } else { - this.stopPropagation(); + if (Y.instanceOf(refNode, Y_Node)) { + refNode = refNode._node; } - this._wrapper.stopped = 2; - this.stopped = 2; + return node === refNode; }, - preventDefault: function(returnValue) { - var e = this._event; - e.preventDefault(); - e.returnValue = returnValue || false; - this._wrapper.prevented = 1; - this.prevented = 1; + /** + * Determines whether the node is appended to the document. + * @method inDoc + * @param {Node|HTMLElement} doc optional An optional document to check against. + * Defaults to current document. + * @return {Boolean} Whether or not this node is appended to the document. + */ + inDoc: function(doc) { + var node = this._node; + doc = (doc) ? doc._node || doc : node[OWNER_DOCUMENT]; + if (doc.documentElement) { + return Y_DOM.contains(doc.documentElement, node); + } }, - halt: function(immediate) { - if (immediate) { - this.stopImmediatePropagation(); + getById: function(id) { + var node = this._node, + ret = Y_DOM.byId(id, node[OWNER_DOCUMENT]); + if (ret && Y_DOM.contains(node, ret)) { + ret = Y.one(ret); } else { - this.stopPropagation(); + ret = null; } + return ret; + }, - this.preventDefault(); - } - -}); - -DOMEventFacade.resolve = resolve; -Y.DOM2EventFacade = DOMEventFacade; -Y.DOMEventFacade = DOMEventFacade; + /** + * Returns the nearest ancestor that passes the test applied by supplied boolean method. + * @method ancestor + * @param {String | Function} fn A selector string or boolean method for testing elements. + * @param {Boolean} testSelf optional Whether or not to include the element in the scan + * If a function is used, it receives the current node being tested as the only argument. + * @return {Node} The matching Node instance or null if not found + */ + ancestor: function(fn, testSelf) { + return Y.one(Y_DOM.ancestor(this._node, _wrapFn(fn), testSelf)); + }, - /** - * The native event - * @property _event + /** + * Returns the ancestors that pass the test applied by supplied boolean method. + * @method ancestors + * @param {String | Function} fn A selector string or boolean method for testing elements. + * @param {Boolean} testSelf optional Whether or not to include the element in the scan + * If a function is used, it receives the current node being tested as the only argument. + * @return {NodeList} A NodeList instance containing the matching elements */ + ancestors: function(fn, testSelf) { + return Y.all(Y_DOM.ancestors(this._node, _wrapFn(fn), testSelf)); + }, /** - * The X location of the event on the page (including scroll) - * @property pageX - * @type int + * Returns the previous matching sibling. + * Returns the nearest element node sibling if no method provided. + * @method previous + * @param {String | Function} fn A selector or boolean method for testing elements. + * If a function is used, it receives the current node being tested as the only argument. + * @return {Node} Node instance or null if not found */ + previous: function(fn, all) { + return Y.one(Y_DOM.elementByAxis(this._node, 'previousSibling', _wrapFn(fn), all)); + }, /** - * The Y location of the event on the page (including scroll) - * @property pageY - * @type int + * Returns the next matching sibling. + * Returns the nearest element node sibling if no method provided. + * @method next + * @param {String | Function} fn A selector or boolean method for testing elements. + * If a function is used, it receives the current node being tested as the only argument. + * @return {Node} Node instance or null if not found */ + next: function(fn, all) { + return Y.one(Y_DOM.elementByAxis(this._node, 'nextSibling', _wrapFn(fn), all)); + }, /** - * The keyCode for key events. Uses charCode if keyCode is not available - * @property keyCode - * @type int + * Returns all matching siblings. + * Returns all siblings if no method provided. + * @method siblings + * @param {String | Function} fn A selector or boolean method for testing elements. + * If a function is used, it receives the current node being tested as the only argument. + * @return {NodeList} NodeList instance bound to found siblings */ + siblings: function(fn) { + return Y.all(Y_DOM.siblings(this._node, _wrapFn(fn))); + }, /** - * The charCode for key events. Same as keyCode - * @property charCode - * @type int + * Retrieves a Node instance of nodes based on the given CSS selector. + * @method one + * + * @param {string} selector The CSS selector to test against. + * @return {Node} A Node instance for the matching HTMLElement. */ + one: function(selector) { + return Y.one(Y.Selector.query(selector, this._node, true)); + }, /** - * The button that was pushed. - * @property button - * @type int + * Retrieves a NodeList based on the given CSS selector. + * @method all + * + * @param {string} selector The CSS selector to test against. + * @return {NodeList} A NodeList instance for the matching HTMLCollection/Array. */ + all: function(selector) { + var nodelist = Y.all(Y.Selector.query(selector, this._node)); + nodelist._query = selector; + nodelist._queryRoot = this._node; + return nodelist; + }, + // TODO: allow fn test /** - * The button that was pushed. Same as button. - * @property which - * @type int + * Test if the supplied node matches the supplied selector. + * @method test + * + * @param {string} selector The CSS selector to test against. + * @return {boolean} Whether or not the node matches the selector. */ + test: function(selector) { + return Y.Selector.test(this._node, selector); + }, /** - * Node reference for the targeted element - * @propery target - * @type Node + * Removes the node from its parent. + * Shortcut for myNode.get('parentNode').removeChild(myNode); + * @method remove + * @param {Boolean} destroy whether or not to call destroy() on the node + * after removal. + * @chainable + * */ + remove: function(destroy) { + var node = this._node; - /** - * Node reference for the element that the listener was attached to. - * @propery currentTarget - * @type Node - */ + if (node && node.parentNode) { + node.parentNode.removeChild(node); + } - /** - * Node reference to the relatedTarget - * @propery relatedTarget - * @type Node - */ + if (destroy) { + this.destroy(); + } - /** - * Number representing the direction and velocity of the movement of the mousewheel. - * Negative is down, the higher the number, the faster. Applies to the mousewheel event. - * @property wheelDelta - * @type int - */ + return this; + }, /** - * Stops the propagation to the next bubble target - * @method stopPropagation + * Replace the node with the other node. This is a DOM update only + * and does not change the node bound to the Node instance. + * Shortcut for myNode.get('parentNode').replaceChild(newNode, myNode); + * @method replace + * @param {Y.Node || HTMLNode} newNode Node to be inserted + * @chainable + * */ + replace: function(newNode) { + var node = this._node; + if (typeof newNode == 'string') { + newNode = Y_Node.create(newNode); + } + node.parentNode.replaceChild(Y_Node.getDOMNode(newNode), node); + return this; + }, /** - * Stops the propagation to the next bubble target and - * prevents any additional listeners from being exectued - * on the current target. - * @method stopImmediatePropagation + * @method replaceChild + * @for Node + * @param {String | HTMLElement | Node} node Node to be inserted + * @param {HTMLElement | Node} refNode Node to be replaced + * @return {Node} The replaced node */ + replaceChild: function(node, refNode) { + if (typeof node == 'string') { + node = Y_DOM.create(node); + } - /** - * Prevents the event's default behavior - * @method preventDefault - * @param returnValue {string} sets the returnValue of the event to this value - * (rather than the default false value). This can be used to add a customized - * confirmation query to the beforeunload event). - */ + return Y.one(this._node.replaceChild(Y_Node.getDOMNode(node), Y_Node.getDOMNode(refNode))); + }, /** - * Stops the event propagation and prevents the default - * event behavior. - * @method halt - * @param immediate {boolean} if true additional listeners - * on the current target will not be executed + * Nulls internal node references, removes any plugins and event listeners + * @method destroy + * @param {Boolean} recursivePurge (optional) Whether or not to remove listeners from the + * node's subtree (default is false) + * */ -(function() { -/** - * DOM event listener abstraction layer - * @module event - * @submodule event-base - */ + destroy: function(recursive) { + var UID = Y.config.doc.uniqueID ? 'uniqueID' : '_yuid', + instance; -/** - * The event utility provides functions to add and remove event listeners, - * event cleansing. It also tries to automatically remove listeners it - * registers during the unload event. - * - * @class Event - * @static - */ + this.purge(); // TODO: only remove events add via this Node -Y.Env.evt.dom_wrappers = {}; -Y.Env.evt.dom_map = {}; + if (this.unplug) { // may not be a PluginHost + this.unplug(); + } -var _eventenv = Y.Env.evt, - config = Y.config, - win = config.win, - add = YUI.Env.add, - remove = YUI.Env.remove, + this.clearData(); - onLoad = function() { - YUI.Env.windowLoaded = true; - Y.Event._load(); - remove(win, "load", onLoad); - }, + if (recursive) { + Y.NodeList.each(this.all('*'), function(node) { + instance = Y_Node._instances[node[UID]]; + if (instance) { + instance.destroy(); + } + }); + } - onUnload = function() { - Y.Event._unload(); + this._node = null; + this._stateProxy = null; + + delete Y_Node._instances[this._yuid]; }, - EVENT_READY = 'domready', + /** + * Invokes a method on the Node instance + * @method invoke + * @param {String} method The name of the method to invoke + * @param {Any} a, b, c, etc. Arguments to invoke the method with. + * @return Whatever the underly method returns. + * DOM Nodes and Collections return values + * are converted to Node/NodeList instances. + * + */ + invoke: function(method, a, b, c, d, e) { + var node = this._node, + ret; - COMPAT_ARG = '~yui|2|compat~', + if (a && Y.instanceOf(a, Y_Node)) { + a = a._node; + } - shouldIterate = function(o) { - try { - return (o && typeof o !== "string" && Y.Lang.isNumber(o.length) && - !o.tagName && !o.alert); - } catch(ex) { - Y.log("collection check failure", "warn", "event"); - return false; + if (b && Y.instanceOf(b, Y_Node)) { + b = b._node; } + ret = node[method](a, b, c, d, e); + return Y_Node.scrubVal(ret, this); }, - // aliases to support DOM event subscription clean up when the last - // subscriber is detached. deleteAndClean overrides the DOM event's wrapper - // CustomEvent _delete method. - _ceProtoDelete = Y.CustomEvent.prototype._delete, - _deleteAndClean = function(s) { - var ret = _ceProtoDelete.apply(this, arguments); + /** + * @method swap + * @description Swap DOM locations with the given node. + * This does not change which DOM node each Node instance refers to. + * @param {Node} otherNode The node to swap with + * @chainable + */ + swap: Y.config.doc.documentElement.swapNode ? + function(otherNode) { + this._node.swapNode(Y_Node.getDOMNode(otherNode)); + } : + function(otherNode) { + otherNode = Y_Node.getDOMNode(otherNode); + var node = this._node, + parent = otherNode.parentNode, + nextSibling = otherNode.nextSibling; - if (!this.subCount && !this.afterCount) { - Y.Event._clean(this); + if (nextSibling === node) { + parent.insertBefore(node, otherNode); + } else if (otherNode === node.nextSibling) { + parent.insertBefore(otherNode, node); + } else { + node.parentNode.replaceChild(otherNode, node); + Y_DOM.addHTML(parent, node, nextSibling); + } + return this; + }, + + + /** + * @method getData + * @description Retrieves arbitrary data stored on a Node instance. + * This is not stored with the DOM node. + * @param {string} name Optional name of the data field to retrieve. + * If no name is given, all data is returned. + * @return {any | Object} Whatever is stored at the given field, + * or an object hash of all fields. + */ + getData: function(name) { + var ret; + this._data = this._data || {}; + if (arguments.length) { + ret = this._data[name]; + } else { + ret = this._data; } return ret; - }, - -Event = function() { - /** - * True after the onload event has fired - * @property _loadComplete - * @type boolean - * @static - * @private - */ - var _loadComplete = false, + }, /** - * The number of times to poll after window.onload. This number is - * increased if additional late-bound handlers are requested after - * the page load. - * @property _retryCount - * @static - * @private - */ - _retryCount = 0, + * @method setData + * @description Stores arbitrary data on a Node instance. + * This is not stored with the DOM node. + * @param {string} name The name of the field to set. If no name + * is given, name is treated as the data and overrides any existing data. + * @param {any} val The value to be assigned to the field. + * @chainable + */ + setData: function(name, val) { + this._data = this._data || {}; + if (arguments.length > 1) { + this._data[name] = val; + } else { + this._data = name; + } + + return this; + }, /** - * onAvailable listeners - * @property _avail - * @static - * @private + * @method clearData + * @description Clears stored data. + * @param {string} name The name of the field to clear. If no name + * is given, all data is cleared. + * @chainable + */ + clearData: function(name) { + if ('_data' in this) { + if (name) { + delete this._data[name]; + } else { + delete this._data; + } + } + + return this; + }, + + hasMethod: function(method) { + var node = this._node; + return !!(node && method in node && + typeof node[method] != 'unknown' && + (typeof node[method] == 'function' || + String(node[method]).indexOf('function') === 1)); // IE reports as object, prepends space + }, + + isFragment: function() { + return (this.get('nodeType') === 11); + }, + + /** + * Removes and destroys all of the nodes within the node. + * @method empty + * @chainable */ - _avail = [], + empty: function() { + this.get('childNodes').remove().destroy(true); + return this; + }, /** - * Custom event wrappers for DOM events. Key is - * 'event:' + Element uid stamp + event type - * @property _wrappers - * @type Y.Event.Custom - * @static - * @private + * Returns the DOM node bound to the Node instance + * @method getDOMNode + * @return {DOMNode} */ - _wrappers = _eventenv.dom_wrappers, + getDOMNode: function() { + return this._node; + } +}, true); - _windowLoadKey = null, +Y.Node = Y_Node; +Y.one = Y_Node.one; +/** + * The NodeList module provides support for managing collections of Nodes. + * @module node + * @submodule node-core + */ + +/** + * The NodeList class provides a wrapper for manipulating DOM NodeLists. + * NodeList properties can be accessed via the set/get methods. + * Use Y.all() to retrieve NodeList instances. + * + * @class NodeList + * @constructor + */ + +var NodeList = function(nodes) { + var tmp = []; + if (typeof nodes === 'string') { // selector query + this._query = nodes; + nodes = Y.Selector.query(nodes); + } else if (nodes.nodeType || Y_DOM.isWindow(nodes)) { // domNode || window + nodes = [nodes]; + } else if (Y.instanceOf(nodes, Y.Node)) { + nodes = [nodes._node]; + } else if (Y.instanceOf(nodes[0], Y.Node)) { // allow array of Y.Nodes + Y.Array.each(nodes, function(node) { + if (node._node) { + tmp.push(node._node); + } + }); + nodes = tmp; + } else { // array of domNodes or domNodeList (no mixed array of Y.Node/domNodes) + nodes = Y.Array(nodes, 0, true); + } /** - * Custom event wrapper map DOM events. Key is - * Element uid stamp. Each item is a hash of custom event - * wrappers as provided in the _wrappers collection. This - * provides the infrastructure for getListeners. - * @property _el_events - * @static + * The underlying array of DOM nodes bound to the Y.NodeList instance + * @property _nodes * @private */ - _el_events = _eventenv.dom_map; + this._nodes = nodes; +}; - return { +NodeList.NAME = 'NodeList'; - /** - * The number of times we should look for elements that are not - * in the DOM at the time the event is requested after the document - * has been loaded. The default is 1000@amp;40 ms, so it will poll - * for 40 seconds or until all outstanding handlers are bound - * (whichever comes first). - * @property POLL_RETRYS - * @type int - * @static - * @final - */ - POLL_RETRYS: 1000, +/** + * Retrieves the DOM nodes bound to a NodeList instance + * @method getDOMNodes + * @static + * + * @param {Y.NodeList} nodelist The NodeList instance + * @return {Array} The array of DOM nodes bound to the NodeList + */ +NodeList.getDOMNodes = function(nodelist) { + return (nodelist && nodelist._nodes) ? nodelist._nodes : nodelist; +}; - /** - * The poll interval in milliseconds - * @property POLL_INTERVAL - * @type int - * @static - * @final - */ - POLL_INTERVAL: 40, +NodeList.each = function(instance, fn, context) { + var nodes = instance._nodes; + if (nodes && nodes.length) { + Y.Array.each(nodes, fn, context || instance); + } else { + Y.log('no nodes bound to ' + this, 'warn', 'NodeList'); + } +}; - /** - * addListener/removeListener can throw errors in unexpected scenarios. - * These errors are suppressed, the method returns false, and this property - * is set - * @property lastError - * @static - * @type Error - */ - lastError: null, +NodeList.addMethod = function(name, fn, context) { + if (name && fn) { + NodeList.prototype[name] = function() { + var ret = [], + args = arguments; + Y.Array.each(this._nodes, function(node) { + var UID = (node.uniqueID && node.nodeType !== 9 ) ? 'uniqueID' : '_yuid', + instance = Y.Node._instances[node[UID]], + ctx, + result; - /** - * poll handle - * @property _interval - * @static - * @private - */ - _interval: null, + if (!instance) { + instance = NodeList._getTempNode(node); + } + ctx = context || instance; + result = fn.apply(ctx, args); + if (result !== undefined && result !== instance) { + ret[ret.length] = result; + } + }); - /** - * document readystate poll handle - * @property _dri - * @static - * @private - */ - _dri: null, + // TODO: remove tmp pointer + return ret.length ? ret : this; + }; + } else { + Y.log('unable to add method: ' + name + ' to NodeList', 'warn', 'node'); + } +}; - /** - * True when the document is initially usable - * @property DOMReady - * @type boolean - * @static - */ - DOMReady: false, +NodeList.importMethod = function(host, name, altName) { + if (typeof name === 'string') { + altName = altName || name; + NodeList.addMethod(name, host[name]); + } else { + Y.Array.each(name, function(n) { + NodeList.importMethod(host, n); + }); + } +}; - /** - * @method startInterval - * @static - * @private - */ - startInterval: function() { - if (!Event._interval) { -Event._interval = setInterval(Event._poll, Event.POLL_INTERVAL); - } - }, +NodeList._getTempNode = function(node) { + var tmp = NodeList._tempNode; + if (!tmp) { + tmp = Y.Node.create('
                              '); + NodeList._tempNode = tmp; + } - /** - * Executes the supplied callback when the item with the supplied - * id is found. This is meant to be used to execute behavior as - * soon as possible as the page loads. If you use this after the - * initial page load it will poll for a fixed time for the element. - * The number of times it will poll and the frequency are - * configurable. By default it will poll for 10 seconds. - * - *

                              The callback is executed with a single parameter: - * the custom object parameter, if provided.

                              - * - * @method onAvailable - * - * @param {string||string[]} id the id of the element, or an array - * of ids to look for. - * @param {function} fn what to execute when the element is found. - * @param {object} p_obj an optional object to be passed back as - * a parameter to fn. - * @param {boolean|object} p_override If set to true, fn will execute - * in the context of p_obj, if set to an object it - * will execute in the context of that object - * @param checkContent {boolean} check child node readiness (onContentReady) - * @static - * @deprecated Use Y.on("available") - */ - // @TODO fix arguments - onAvailable: function(id, fn, p_obj, p_override, checkContent, compat) { + tmp._node = node; + tmp._stateProxy = node; + return tmp; +}; - var a = Y.Array(id), i, availHandle; +Y.mix(NodeList.prototype, { + /** + * Retrieves the Node instance at the given index. + * @method item + * + * @param {Number} index The index of the target Node. + * @return {Node} The Node instance at the given index. + */ + item: function(index) { + return Y.one((this._nodes || [])[index]); + }, - // Y.log('onAvailable registered for: ' + id); + /** + * Applies the given function to each Node in the NodeList. + * @method each + * @param {Function} fn The function to apply. It receives 3 arguments: + * the current node instance, the node's index, and the NodeList instance + * @param {Object} context optional An optional context to apply the function with + * Default context is the current Node instance + * @chainable + */ + each: function(fn, context) { + var instance = this; + Y.Array.each(this._nodes, function(node, index) { + node = Y.one(node); + return fn.call(context || node, node, index, instance); + }); + return instance; + }, - for (i=0; iThe callback is executed with a single parameter: - * the custom object parameter, if provided.

                              - * - * @method onContentReady - * - * @param {string} id the id of the element to look for. - * @param {function} fn what to execute when the element is ready. - * @param {object} obj an optional object to be passed back as - * a parameter to fn. - * @param {boolean|object} override If set to true, fn will execute - * in the context of p_obj. If an object, fn will - * exectute in the context of that object - * - * @static - * @deprecated Use Y.on("contentready") - */ - // @TODO fix arguments - onContentReady: function(id, fn, obj, override, compat) { - return Event.onAvailable(id, fn, obj, override, true, compat); - }, + return Y.all(nodes); + }, - /** - * Adds an event listener - * - * @method attach - * - * @param {String} type The type of event to append - * @param {Function} fn The method the event invokes - * @param {String|HTMLElement|Array|NodeList} el An id, an element - * reference, or a collection of ids and/or elements to assign the - * listener to. - * @param {Object} context optional context object - * @param {Boolean|object} args 0..n arguments to pass to the callback - * @return {EventHandle} an object to that can be used to detach the listener - * - * @static - */ + /** + * Creates a new NodeList containing all nodes at odd indices + * (zero-based index). + * @method odd + * @return {NodeList} NodeList containing the updated collection + */ + odd: function() { + return this.modulus(2, 1); + }, - attach: function(type, fn, el, context) { - return Event._attach(Y.Array(arguments, 0, true)); - }, + /** + * Creates a new NodeList containing all nodes at even indices + * (zero-based index), including zero. + * @method even + * @return {NodeList} NodeList containing the updated collection + */ + even: function() { + return this.modulus(2); + }, - _createWrapper: function (el, type, capture, compat, facade) { + destructor: function() { + }, - var cewrapper, - ek = Y.stamp(el), - key = 'event:' + ek + type; + /** + * Reruns the initial query, when created using a selector query + * @method refresh + * @chainable + */ + refresh: function() { + var doc, + nodes = this._nodes, + query = this._query, + root = this._queryRoot; - if (false === facade) { - key += 'native'; - } - if (capture) { - key += 'capture'; + if (query) { + if (!root) { + if (nodes && nodes[0] && nodes[0].ownerDocument) { + root = nodes[0].ownerDocument; + } } + this._nodes = Y.Selector.query(query, root); + } - cewrapper = _wrappers[key]; + return this; + }, + _prepEvtArgs: function(type, fn, context) { + // map to Y.on/after signature (type, fn, nodes, context, arg1, arg2, etc) + var args = Y.Array(arguments, 0, true); - if (!cewrapper) { - // create CE wrapper - cewrapper = Y.publish(key, { - silent: true, - bubbles: false, - contextFn: function() { - if (compat) { - return cewrapper.el; - } else { - cewrapper.nodeRef = cewrapper.nodeRef || Y.one(cewrapper.el); - return cewrapper.nodeRef; - } - } - }); - - cewrapper.overrides = {}; + if (args.length < 2) { // type only (event hash) just add nodes + args[2] = this._nodes; + } else { + args.splice(2, 0, this._nodes); + } - // for later removeListener calls - cewrapper.el = el; - cewrapper.key = key; - cewrapper.domkey = ek; - cewrapper.type = type; - cewrapper.fn = function(e) { - cewrapper.fire(Event.getEvent(e, el, (compat || (false === facade)))); - }; - cewrapper.capture = capture; + args[3] = context || this; // default to NodeList instance as context - if (el == win && type == "load") { - // window load happens once - cewrapper.fireOnce = true; - _windowLoadKey = key; - } - cewrapper._delete = _deleteAndClean; + return args; + }, - _wrappers[key] = cewrapper; - _el_events[ek] = _el_events[ek] || {}; - _el_events[ek][key] = cewrapper; + /** + * Applies an event listener to each Node bound to the NodeList. + * @method on + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @param {Object} context The context to call the handler with. + * param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + on: function(type, fn, context) { + return Y.on.apply(Y, this._prepEvtArgs.apply(this, arguments)); + }, - add(el, type, cewrapper.fn, capture); - } + /** + * Applies an one-time event listener to each Node bound to the NodeList. + * @method once + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + once: function(type, fn, context) { + return Y.once.apply(Y, this._prepEvtArgs.apply(this, arguments)); + }, - return cewrapper; + /** + * Applies an event listener to each Node bound to the NodeList. + * The handler is called only after all on() handlers are called + * and the event is not prevented. + * @method after + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + after: function(type, fn, context) { + return Y.after.apply(Y, this._prepEvtArgs.apply(this, arguments)); + }, - }, + /** + * Returns the current number of items in the NodeList. + * @method size + * @return {Int} The number of items in the NodeList. + */ + size: function() { + return this._nodes.length; + }, - _attach: function(args, conf) { + /** + * Determines if the instance is bound to any nodes + * @method isEmpty + * @return {Boolean} Whether or not the NodeList is bound to any nodes + */ + isEmpty: function() { + return this._nodes.length < 1; + }, - var compat, - handles, oEl, cewrapper, context, - fireNow = false, ret, - type = args[0], - fn = args[1], - el = args[2] || win, - facade = conf && conf.facade, - capture = conf && conf.capture, - overrides = conf && conf.overrides; + toString: function() { + var str = '', + errorMsg = this[UID] + ': not bound to any nodes', + nodes = this._nodes, + node; - if (args[args.length-1] === COMPAT_ARG) { - compat = true; + if (nodes && nodes[0]) { + node = nodes[0]; + str += node[NODE_NAME]; + if (node.id) { + str += '#' + node.id; } - if (!fn || !fn.call) { -// throw new TypeError(type + " attach call failed, callback undefined"); -Y.log(type + " attach call failed, invalid callback", "error", "event"); - return false; + if (node.className) { + str += '.' + node.className.replace(' ', '.'); } - // The el argument can be an array of elements or element ids. - if (shouldIterate(el)) { - - handles=[]; + if (nodes.length > 1) { + str += '...[' + nodes.length + ' items]'; + } + } + return str || errorMsg; + }, - Y.each(el, function(v, k) { - args[2] = v; - handles.push(Event._attach(args.slice(), conf)); - }); + /** + * Returns the DOM node bound to the Node instance + * @method getDOMNodes + * @return {Array} + */ + getDOMNodes: function() { + return this._nodes; + } +}, true); - // return (handles.length === 1) ? handles[0] : handles; - return new Y.EventHandle(handles); +NodeList.importMethod(Y.Node.prototype, [ + /** Called on each Node instance + * @method destroy + * @see Node.destroy + */ + 'destroy', - // If the el argument is a string, we assume it is - // actually the id of the element. If the page is loaded - // we convert el to the actual element, otherwise we - // defer attaching the event until the element is - // ready - } else if (Y.Lang.isString(el)) { + /** Called on each Node instance + * @method empty + * @see Node.empty + */ + 'empty', - // oEl = (compat) ? Y.DOM.byId(el) : Y.Selector.query(el); + /** Called on each Node instance + * @method remove + * @see Node.remove + */ + 'remove', - if (compat) { - oEl = Y.DOM.byId(el); - } else { + /** Called on each Node instance + * @method set + * @see Node.set + */ + 'set' +]); - oEl = Y.Selector.query(el); +// one-off implementation to convert array of Nodes to NodeList +// e.g. Y.all('input').get('parentNode'); - switch (oEl.length) { - case 0: - oEl = null; - break; - case 1: - oEl = oEl[0]; - break; - default: - args[2] = oEl; - return Event._attach(args, conf); - } - } +/** Called on each Node instance + * @method get + * @see Node + */ +NodeList.prototype.get = function(attr) { + var ret = [], + nodes = this._nodes, + isNodeList = false, + getTemp = NodeList._getTempNode, + instance, + val; - if (oEl) { + if (nodes[0]) { + instance = Y.Node._instances[nodes[0]._yuid] || getTemp(nodes[0]); + val = instance._get(attr); + if (val && val.nodeType) { + isNodeList = true; + } + } - el = oEl; + Y.Array.each(nodes, function(node) { + instance = Y.Node._instances[node._yuid]; - // Not found = defer adding the event until the element is available - } else { + if (!instance) { + instance = getTemp(node); + } - // Y.log(el + ' not found'); - ret = Event.onAvailable(el, function() { - // Y.log('lazy attach: ' + args); + val = instance._get(attr); + if (!isNodeList) { // convert array of Nodes to NodeList + val = Y.Node.scrubVal(val, instance); + } - ret.handle = Event._attach(args, conf); + ret.push(val); + }); - }, Event, true, false, compat); + return (isNodeList) ? Y.all(ret) : ret; +}; - return ret; +Y.NodeList = NodeList; - } - } +Y.all = function(nodes) { + return new NodeList(nodes); +}; - // Element should be an html element or node - if (!el) { - Y.log("unable to attach event " + type, "warn", "event"); - return false; - } +Y.Node.all = Y.all; +/** + * @module node + * @submodule node-core + */ - if (Y.Node && Y.instanceOf(el, Y.Node)) { - el = Y.Node.getDOMNode(el); - } - - cewrapper = Event._createWrapper(el, type, capture, compat, facade); - if (overrides) { - Y.mix(cewrapper.overrides, overrides); - } - - if (el == win && type == "load") { +var Y_NodeList = Y.NodeList, + ArrayProto = Array.prototype, + ArrayMethods = { + /** Returns a new NodeList combining the given NodeList(s) + * @for NodeList + * @method concat + * @param {NodeList | Array} valueN Arrays/NodeLists and/or values to + * concatenate to the resulting NodeList + * @return {NodeList} A new NodeList comprised of this NodeList joined with the input. + */ + 'concat': 1, + /** Removes the first last from the NodeList and returns it. + * @for NodeList + * @method pop + * @return {Node} The last item in the NodeList. + */ + 'pop': 0, + /** Adds the given Node(s) to the end of the NodeList. + * @for NodeList + * @method push + * @param {Node | DOMNode} nodes One or more nodes to add to the end of the NodeList. + */ + 'push': 0, + /** Removes the first item from the NodeList and returns it. + * @for NodeList + * @method shift + * @return {Node} The first item in the NodeList. + */ + 'shift': 0, + /** Returns a new NodeList comprising the Nodes in the given range. + * @for NodeList + * @method slice + * @param {Number} begin Zero-based index at which to begin extraction. + As a negative index, start indicates an offset from the end of the sequence. slice(-2) extracts the second-to-last element and the last element in the sequence. + * @param {Number} end Zero-based index at which to end extraction. slice extracts up to but not including end. + slice(1,4) extracts the second element through the fourth element (elements indexed 1, 2, and 3). + As a negative index, end indicates an offset from the end of the sequence. slice(2,-1) extracts the third element through the second-to-last element in the sequence. + If end is omitted, slice extracts to the end of the sequence. + * @return {NodeList} A new NodeList comprised of this NodeList joined with the input. + */ + 'slice': 1, + /** Changes the content of the NodeList, adding new elements while removing old elements. + * @for NodeList + * @method splice + * @param {Number} index Index at which to start changing the array. If negative, will begin that many elements from the end. + * @param {Number} howMany An integer indicating the number of old array elements to remove. If howMany is 0, no elements are removed. In this case, you should specify at least one new element. If no howMany parameter is specified (second syntax above, which is a SpiderMonkey extension), all elements after index are removed. + * {Node | DOMNode| element1, ..., elementN + The elements to add to the array. If you don't specify any elements, splice simply removes elements from the array. + * @return {NodeList} The element(s) removed. + */ + 'splice': 1, + /** Adds the given Node(s) to the beginning of the NodeList. + * @for NodeList + * @method push + * @param {Node | DOMNode} nodes One or more nodes to add to the NodeList. + */ + 'unshift': 0 + }; - // if the load is complete, fire immediately. - // all subscribers, including the current one - // will be notified. - if (YUI.Env.windowLoaded) { - fireNow = true; - } - } - if (compat) { - args.pop(); - } +Y.Object.each(ArrayMethods, function(returnNodeList, name) { + Y_NodeList.prototype[name] = function() { + var args = [], + i = 0, + arg, + ret; - context = args[3]; + while (typeof (arg = arguments[i++]) != 'undefined') { // use DOM nodes/nodeLists + args.push(arg._node || arg._nodes || arg); + } - // set context to the Node if not specified - // ret = cewrapper.on.apply(cewrapper, trimmedArgs); - ret = cewrapper._on(fn, context, (args.length > 4) ? args.slice(4) : null); + ret = ArrayProto[name].apply(this._nodes, args); - if (fireNow) { - cewrapper.fire(); - } + if (returnNodeList) { + ret = Y.all(ret); + } else { + ret = Y.Node.scrubVal(ret); + } - return ret; + return ret; + }; +}); +/** + * @module node + * @submodule node-core + */ - }, +Y.Array.each([ + /** + * Passes through to DOM method. + * @for Node + * @method removeChild + * @param {HTMLElement | Node} node Node to be removed + * @return {Node} The removed node + */ + 'removeChild', - /** - * Removes an event listener. Supports the signature the event was bound - * with, but the preferred way to remove listeners is using the handle - * that is returned when using Y.on - * - * @method detach - * - * @param {String} type the type of event to remove. - * @param {Function} fn the method the event invokes. If fn is - * undefined, then all event handlers for the type of event are - * removed. - * @param {String|HTMLElement|Array|NodeList|EventHandle} el An - * event handle, an id, an element reference, or a collection - * of ids and/or elements to remove the listener from. - * @return {boolean} true if the unbind was successful, false otherwise. - * @static - */ - detach: function(type, fn, el, obj) { + /** + * Passes through to DOM method. + * @method hasChildNodes + * @return {Boolean} Whether or not the node has any childNodes + */ + 'hasChildNodes', - var args=Y.Array(arguments, 0, true), compat, l, ok, i, - id, ce; + /** + * Passes through to DOM method. + * @method cloneNode + * @param {Boolean} deep Whether or not to perform a deep clone, which includes + * subtree and attributes + * @return {Node} The clone + */ + 'cloneNode', - if (args[args.length-1] === COMPAT_ARG) { - compat = true; - // args.pop(); - } + /** + * Passes through to DOM method. + * @method hasAttribute + * @param {String} attribute The attribute to test for + * @return {Boolean} Whether or not the attribute is present + */ + 'hasAttribute', - if (type && type.detach) { - return type.detach(); - } + /** + * Passes through to DOM method. + * @method removeAttribute + * @param {String} attribute The attribute to be removed + * @chainable + */ + 'removeAttribute', - // The el argument can be a string - if (typeof el == "string") { + /** + * Passes through to DOM method. + * @method scrollIntoView + * @chainable + */ + 'scrollIntoView', - // el = (compat) ? Y.DOM.byId(el) : Y.all(el); - if (compat) { - el = Y.DOM.byId(el); - } else { - el = Y.Selector.query(el); - l = el.length; - if (l < 1) { - el = null; - } else if (l == 1) { - el = el[0]; - } - } - // return Event.detach.apply(Event, args); - } + /** + * Passes through to DOM method. + * @method getElementsByTagName + * @param {String} tagName The tagName to collect + * @return {NodeList} A NodeList representing the HTMLCollection + */ + 'getElementsByTagName', - if (!el) { - return false; - } + /** + * Passes through to DOM method. + * @method focus + * @chainable + */ + 'focus', - if (el.detach) { - args.splice(2, 1); - return el.detach.apply(el, args); - // The el argument can be an array of elements or element ids. - } else if (shouldIterate(el)) { - ok = true; - for (i=0, l=el.length; i 0); - } +/** + * @module node + * @submodule node-base + */ - // onAvailable - notAvail = []; +var methods = [ +/** + * Determines whether each node has the given className. + * @method hasClass + * @for Node + * @param {String} className the class name to search for + * @return {Boolean} Whether or not the element has the specified class + */ + 'hasClass', - executeItem = function (el, item) { - var context, ov = item.override; - if (item.compat) { - if (item.override) { - if (ov === true) { - context = item.obj; - } else { - context = ov; - } - } else { - context = el; - } - item.fn.call(context, item.obj); - } else { - context = item.obj || Y.one(el); - item.fn.apply(context, (Y.Lang.isArray(ov)) ? ov : []); - } - }; +/** + * Adds a class name to each node. + * @method addClass + * @param {String} className the class name to add to the node's class attribute + * @chainable + */ + 'addClass', - // onAvailable - for (i=0,len=_avail.length; i + *
                              Y.Node
                              + *
                              The Node to insert before
                              + *
                              HTMLElement
                              + *
                              The element to insert before
                              + *
                              Int
                              + *
                              The index of the child element to insert before
                              + *
                              "replace"
                              + *
                              Replaces the existing HTML
                              + *
                              "before"
                              + *
                              Inserts before the existing HTML
                              + *
                              "before"
                              + *
                              Inserts content before the node
                              + *
                              "after"
                              + *
                              Inserts content after the node
                              + * + * @chainable + */ + insert: function(content, where) { + this._insert(content, where); + return this; + }, - if (lis) { - for (i = 0, len = lis.length; i < len; ++i) { - lis[i].detachAll(); - } - } + _insert: function(content, where) { + var node = this._node, + ret = null; - }, + if (typeof where == 'number') { // allow index + where = this._node.childNodes[where]; + } else if (where && where._node) { // Node + where = where._node; + } - /** - * Removes all object references and the DOM proxy subscription for - * a given event for a DOM node. - * - * @method _clean - * @param wrapper {CustomEvent} Custom event proxy for the DOM - * subscription - * @private - * @static - * @since 3.4.0 - */ - _clean: function (wrapper) { - var key = wrapper.key, - domkey = wrapper.domkey; + if (content && typeof content != 'string') { // allow Node or NodeList/Array instances + content = content._node || content._nodes || content; + } + ret = Y_DOM.addHTML(node, content, where); - remove(wrapper.el, wrapper.type, wrapper.fn, wrapper.capture); - delete _wrappers[key]; - delete Y._yuievt.events[key]; - if (_el_events[domkey]) { - delete _el_events[domkey][key]; - if (!Y.Object.size(_el_events[domkey])) { - delete _el_events[domkey]; - } - } - }, + return ret; + }, - /** - * Returns all listeners attached to the given element via addListener. - * Optionally, you can specify a specific type of event to return. - * @method getListeners - * @param el {HTMLElement|string} the element or element id to inspect - * @param type {string} optional type of listener to return. If - * left out, all listeners will be returned - * @return {Y.Custom.Event} the custom event wrapper for the DOM event(s) - * @static - */ - getListeners: function(el, type) { - var ek = Y.stamp(el, true), evts = _el_events[ek], - results=[] , key = (type) ? 'event:' + ek + type : null, - adapters = _eventenv.plugins; + /** + * Inserts the content as the firstChild of the node. + * @method prepend + * @param {String | Y.Node | HTMLElement} content The content to insert + * @chainable + */ + prepend: function(content) { + return this.insert(content, 0); + }, - if (!evts) { - return null; - } + /** + * Inserts the content as the lastChild of the node. + * @method append + * @param {String | Y.Node | HTMLElement} content The content to insert + * @chainable + */ + append: function(content) { + return this.insert(content, null); + }, - if (key) { - // look for synthetic events - if (adapters[type] && adapters[type].eventDef) { - key += '_synth'; - } + /** + * @method appendChild + * @param {String | HTMLElement | Node} node Node to be appended + * @return {Node} The appended node + */ + appendChild: function(node) { + return Y_Node.scrubVal(this._insert(node)); + }, - if (evts[key]) { - results.push(evts[key]); - } + /** + * @method insertBefore + * @param {String | HTMLElement | Node} newNode Node to be appended + * @param {HTMLElement | Node} refNode Node to be inserted before + * @return {Node} The inserted node + */ + insertBefore: function(newNode, refNode) { + return Y.Node.scrubVal(this._insert(newNode, refNode)); + }, - // get native events as well - key += 'native'; - if (evts[key]) { - results.push(evts[key]); - } + /** + * Appends the node to the given node. + * @method appendTo + * @param {Y.Node | HTMLElement} node The node to append to + * @chainable + */ + appendTo: function(node) { + Y.one(node).append(this); + return this; + }, - } else { - Y.each(evts, function(v, k) { - results.push(v); - }); - } + /** + * Replaces the node's current content with the content. + * @method setContent + * @param {String | Y.Node | HTMLElement | Y.NodeList | HTMLCollection} content The content to insert + * @chainable + */ + setContent: function(content) { + this._insert(content, 'replace'); + return this; + }, - return (results.length) ? results : null; - }, + /** + * Returns the node's current content (e.g. innerHTML) + * @method getContent + * @return {String} The current content + */ + getContent: function(content) { + return this.get('innerHTML'); + } +}); - /** - * Removes all listeners registered by pe.event. Called - * automatically during the unload event. - * @method _unload - * @static - * @private - */ - _unload: function(e) { - Y.each(_wrappers, function(v, k) { - if (v.type == 'unload') { - v.fire(e); - } - v.detachAll(); - }); - remove(win, "unload", onUnload); - }, - - /** - * Adds a DOM event directly without the caching, cleanup, context adj, etc - * - * @method nativeAdd - * @param {HTMLElement} el the element to bind the handler to - * @param {string} type the type of event handler - * @param {function} fn the callback to invoke - * @param {boolen} capture capture or bubble phase - * @static - * @private - */ - nativeAdd: add, - - /** - * Basic remove listener - * - * @method nativeRemove - * @param {HTMLElement} el the element to bind the handler to - * @param {string} type the type of event handler - * @param {function} fn the callback to invoke - * @param {boolen} capture capture or bubble phase - * @static - * @private - */ - nativeRemove: remove - }; - -}(); - -Y.Event = Event; - -if (config.injected || YUI.Env.windowLoaded) { - onLoad(); -} else { - add(win, "load", onLoad); -} +Y.NodeList.importMethod(Y.Node.prototype, [ + /** + * Called on each Node instance + * @for NodeList + * @method append + * @see Node.append + */ + 'append', -// Process onAvailable/onContentReady items when when the DOM is ready in IE -if (Y.UA.ie) { - Y.on(EVENT_READY, Event._poll); -} + /** Called on each Node instance + * @method insert + * @see Node.insert + */ + 'insert', -add(win, "unload", onUnload); + /** + * Called on each Node instance + * @for NodeList + * @method appendChild + * @see Node.appendChild + */ + 'appendChild', -Event.Custom = Y.CustomEvent; -Event.Subscriber = Y.Subscriber; -Event.Target = Y.EventTarget; -Event.Handle = Y.EventHandle; -Event.Facade = Y.EventFacade; + /** Called on each Node instance + * @method insertBefore + * @see Node.insertBefore + */ + 'insertBefore', -Event._poll(); + /** Called on each Node instance + * @method prepend + * @see Node.prepend + */ + 'prepend', -})(); + /** Called on each Node instance + * @method setContent + * @see Node.setContent + */ + 'setContent', + /** Called on each Node instance + * @method getContent + * @see Node.getContent + */ + 'getContent' +]); /** - * DOM event listener abstraction layer - * @module event - * @submodule event-base + * @module node + * @submodule node-base */ -/** - * Executes the callback as soon as the specified element - * is detected in the DOM. This function expects a selector - * string for the element(s) to detect. If you already have - * an element reference, you don't need this event. - * @event available - * @param type {string} 'available' - * @param fn {function} the callback function to execute. - * @param el {string} an selector for the element(s) to attach - * @param context optional argument that specifies what 'this' refers to. - * @param args* 0..n additional arguments to pass on to the callback function. - * These arguments will be added after the event object. - * @return {EventHandle} the detach handle - * @for YUI - */ -Y.Env.evt.plugins.available = { - on: function(type, fn, id, o) { - var a = arguments.length > 4 ? Y.Array(arguments, 4, true) : null; - return Y.Event.onAvailable.call(Y.Event, id, fn, o, a); - } -}; +var Y_Node = Y.Node, + Y_DOM = Y.DOM; /** - * Executes the callback as soon as the specified element - * is detected in the DOM with a nextSibling property - * (indicating that the element's children are available). - * This function expects a selector - * string for the element(s) to detect. If you already have - * an element reference, you don't need this event. - * @event contentready - * @param type {string} 'contentready' - * @param fn {function} the callback function to execute. - * @param el {string} an selector for the element(s) to attach. - * @param context optional argument that specifies what 'this' refers to. - * @param args* 0..n additional arguments to pass on to the callback function. - * These arguments will be added after the event object. - * @return {EventHandle} the detach handle - * @for YUI - */ -Y.Env.evt.plugins.contentready = { - on: function(type, fn, id, o) { - var a = arguments.length > 4 ? Y.Array(arguments, 4, true) : null; - return Y.Event.onContentReady.call(Y.Event, id, fn, o, a); - } -}; - - -}, '3.4.0' ,{requires:['event-custom-base']}); -(function() { - -var stateChangeListener, - GLOBAL_ENV = YUI.Env, - config = YUI.config, - doc = config.doc, - docElement = doc && doc.documentElement, - EVENT_NAME = 'onreadystatechange', - pollInterval = config.pollInterval || 40; - -if (docElement.doScroll && !GLOBAL_ENV._ieready) { - GLOBAL_ENV._ieready = function() { - GLOBAL_ENV._ready(); - }; - -/*! DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller/Diego Perini */ -// Internet Explorer: use the doScroll() method on the root element. -// This isolates what appears to be a safe moment to manipulate the -// DOM prior to when the document's readyState suggests it is safe to do so. - if (self !== self.top) { - stateChangeListener = function() { - if (doc.readyState == 'complete') { - GLOBAL_ENV.remove(doc, EVENT_NAME, stateChangeListener); - GLOBAL_ENV.ieready(); - } - }; - GLOBAL_ENV.add(doc, EVENT_NAME, stateChangeListener); - } else { - GLOBAL_ENV._dri = setInterval(function() { - try { - docElement.doScroll('left'); - clearInterval(GLOBAL_ENV._dri); - GLOBAL_ENV._dri = null; - GLOBAL_ENV._ieready(); - } catch (domNotReady) { } - }, pollInterval); - } -} - -})(); -YUI.add('event-base-ie', function(Y) { - -/* - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event - * @submodule event-base - */ - -function IEEventFacade() { - // IEEventFacade.superclass.constructor.apply(this, arguments); - Y.DOM2EventFacade.apply(this, arguments); -} - -/* - * (intentially left out of API docs) - * Alternate Facade implementation that is based on Object.defineProperty, which - * is partially supported in IE8. Properties that involve setup work are - * deferred to temporary getters using the static _define method. + * Static collection of configuration attributes for special handling + * @property ATTRS + * @static + * @type object */ -function IELazyFacade(e) { - var proxy = Y.config.doc.createEventObject(e), - proto = IELazyFacade.prototype; - - // TODO: necessary? - proxy.hasOwnProperty = function () { return true; }; - - proxy.init = proto.init; - proxy.halt = proto.halt; - proxy.preventDefault = proto.preventDefault; - proxy.stopPropagation = proto.stopPropagation; - proxy.stopImmediatePropagation = proto.stopImmediatePropagation; - - Y.DOM2EventFacade.apply(proxy, arguments); - - return proxy; -} - - -var imp = Y.config.doc && Y.config.doc.implementation, - useLazyFacade = Y.config.lazyEventFacade, +Y_Node.ATTRS = { + /** + * Allows for getting and setting the text of an element. + * Formatting is preserved and special characters are treated literally. + * @config text + * @type String + */ + text: { + getter: function() { + return Y_DOM.getText(this._node); + }, - buttonMap = { - 2: 3, - 4: 2 - }, - relatedTargetMap = { - mouseout: 'toElement', - mouseover: 'fromElement' + setter: function(content) { + Y_DOM.setText(this._node, content); + return content; + } }, - resolve = Y.DOM2EventFacade.resolve, - - proto = { - init: function() { - - IEEventFacade.superclass.init.apply(this, arguments); - - var e = this._event, - x, y, d, b, de, t; - - this.target = resolve(e.srcElement); - - if (('clientX' in e) && (!x) && (0 !== x)) { - x = e.clientX; - y = e.clientY; - - d = Y.config.doc; - b = d.body; - de = d.documentElement; - - x += (de.scrollLeft || (b && b.scrollLeft) || 0); - y += (de.scrollTop || (b && b.scrollTop) || 0); + /** + * Allows for getting and setting the text of an element. + * Formatting is preserved and special characters are treated literally. + * @config for + * @type String + */ + 'for': { + getter: function() { + return Y_DOM.getAttribute(this._node, 'for'); + }, - this.pageX = x; - this.pageY = y; - } + setter: function(val) { + Y_DOM.setAttribute(this._node, 'for', val); + return val; + } + }, - if (e.type == "mouseout") { - t = e.toElement; - } else if (e.type == "mouseover") { - t = e.fromElement; - } + 'options': { + getter: function() { + return this._node.getElementsByTagName('option'); + } + }, - // fallback to t.relatedTarget to support simulated events. - // IE doesn't support setting toElement or fromElement on generic - // events, so Y.Event.simulate sets relatedTarget instead. - this.relatedTarget = resolve(t || e.relatedTarget); + /** + * Returns a NodeList instance of all HTMLElement children. + * @readOnly + * @config children + * @type NodeList + */ + 'children': { + getter: function() { + var node = this._node, + children = node.children, + childNodes, i, len; - // which should contain the unicode key code if this is a key event - // if (e.charCode) { - // this.which = e.charCode; - // } + if (!children) { + childNodes = node.childNodes; + children = []; - // for click events, which is normalized for which mouse button was - // clicked. - if (e.button) { - this.which = this.button = buttonMap[e.button] || e.button; + for (i = 0, len = childNodes.length; i < len; ++i) { + if (childNodes[i][TAG_NAME]) { + children[children.length] = childNodes[i]; + } + } } + return Y.all(children); + } + }, + value: { + getter: function() { + return Y_DOM.getValue(this._node); }, - stopPropagation: function() { - this._event.cancelBubble = true; - this._wrapper.stopped = 1; - this.stopped = 1; - }, - - stopImmediatePropagation: function() { - this.stopPropagation(); - this._wrapper.stopped = 2; - this.stopped = 2; - }, - - preventDefault: function(returnValue) { - this._event.returnValue = returnValue || false; - this._wrapper.prevented = 1; - this.prevented = 1; + setter: function(val) { + Y_DOM.setValue(this._node, val); + return val; } - }; + } +}; -Y.extend(IEEventFacade, Y.DOM2EventFacade, proto); +Y.Node.importMethod(Y.DOM, [ + /** + * Allows setting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method setAttribute + * @for Node + * @for NodeList + * @chainable + * @param {string} name The attribute name + * @param {string} value The value to set + */ + 'setAttribute', + /** + * Allows getting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method getAttribute + * @for Node + * @for NodeList + * @param {string} name The attribute name + * @return {string} The attribute value + */ + 'getAttribute' -Y.extend(IELazyFacade, Y.DOM2EventFacade, proto); -IELazyFacade.prototype.init = function () { - var e = this._event, - overrides = this._wrapper.overrides, - define = IELazyFacade._define, - lazyProperties = IELazyFacade._lazyProperties, - prop; +]); +/** + * @module node + * @submodule node-base + */ - this.altKey = e.altKey; - this.ctrlKey = e.ctrlKey; - this.metaKey = e.metaKey; - this.shiftKey = e.shiftKey; - this.type = (overrides && overrides.type) || e.type; - this.clientX = e.clientX; - this.clientY = e.clientY; +var Y_Node = Y.Node; +var Y_NodeList = Y.NodeList; +/** + * List of events that route to DOM events + * @static + * @property DOM_EVENTS + * @for Node + */ - for (prop in lazyProperties) { - if (lazyProperties.hasOwnProperty(prop)) { - define(this, prop, lazyProperties[prop]); - } - } +Y_Node.DOM_EVENTS = { + abort: 1, + beforeunload: 1, + blur: 1, + change: 1, + click: 1, + close: 1, + command: 1, + contextmenu: 1, + dblclick: 1, + DOMMouseScroll: 1, + drag: 1, + dragstart: 1, + dragenter: 1, + dragover: 1, + dragleave: 1, + dragend: 1, + drop: 1, + error: 1, + focus: 1, + key: 1, + keydown: 1, + keypress: 1, + keyup: 1, + load: 1, + message: 1, + mousedown: 1, + mouseenter: 1, + mouseleave: 1, + mousemove: 1, + mousemultiwheel: 1, + mouseout: 1, + mouseover: 1, + mouseup: 1, + mousewheel: 1, + orientationchange: 1, + reset: 1, + resize: 1, + select: 1, + selectstart: 1, + submit: 1, + scroll: 1, + textInput: 1, + unload: 1 +}; + +// Add custom event adaptors to this list. This will make it so +// that delegate, key, available, contentready, etc all will +// be available through Node.on +Y.mix(Y_Node.DOM_EVENTS, Y.Env.evt.plugins); - if (this._touch) { - this._touch(e, this._currentTarget, this._wrapper); +Y.augment(Y_Node, Y.EventTarget); + +Y.mix(Y_Node.prototype, { + /** + * Removes event listeners from the node and (optionally) its subtree + * @method purge + * @param {Boolean} recurse (optional) Whether or not to remove listeners from the + * node's subtree + * @param {String} type (optional) Only remove listeners of the specified type + * @chainable + * + */ + purge: function(recurse, type) { + Y.Event.purgeElement(this._node, recurse, type); + return this; } -}; -IELazyFacade._lazyProperties = { - charCode: function () { - var e = this._event; +}); - return e.keyCode || e.charCode; - }, - keyCode: function () { return this.charCode; }, +Y.mix(Y.NodeList.prototype, { + _prepEvtArgs: function(type, fn, context) { + // map to Y.on/after signature (type, fn, nodes, context, arg1, arg2, etc) + var args = Y.Array(arguments, 0, true); - button: function () { - var e = this._event; + if (args.length < 2) { // type only (event hash) just add nodes + args[2] = this._nodes; + } else { + args.splice(2, 0, this._nodes); + } - return (e.button) ? - (buttonMap[e.button] || e.button) : - (e.which || e.charCode || this.charCode); + args[3] = context || this; // default to NodeList instance as context + + return args; }, - which: function () { return this.button; }, - target: function () { - return resolve(this._event.srcElement); + /** + * Applies an event listener to each Node bound to the NodeList. + * @method on + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @param {Object} context The context to call the handler with. + * param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + * @for NodeList + */ + on: function(type, fn, context) { + return Y.on.apply(Y, this._prepEvtArgs.apply(this, arguments)); }, - relatedTarget: function () { - var e = this._event, - targetProp = relatedTargetMap[e.type] || 'relatedTarget'; - // fallback to t.relatedTarget to support simulated events. - // IE doesn't support setting toElement or fromElement on generic - // events, so Y.Event.simulate sets relatedTarget instead. - return resolve(e[targetProp] || e.relatedTarget); + /** + * Applies an one-time event listener to each Node bound to the NodeList. + * @method once + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + once: function(type, fn, context) { + return Y.once.apply(Y, this._prepEvtArgs.apply(this, arguments)); }, - currentTarget: function () { - return resolve(this._currentTarget); + + /** + * Applies an event listener to each Node bound to the NodeList. + * The handler is called only after all on() handlers are called + * and the event is not prevented. + * @method after + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + after: function(type, fn, context) { + return Y.after.apply(Y, this._prepEvtArgs.apply(this, arguments)); }, - wheelDelta: function () { - var e = this._event; + /** + * Applies an one-time event listener to each Node bound to the NodeList + * that will be called only after all on() handlers are called and the + * event is not prevented. + * + * @method onceAfter + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + onceAfter: function(type, fn, context) { + return Y.onceAfter.apply(Y, this._prepEvtArgs.apply(this, arguments)); + } +}); - if (e.type === "mousewheel" || e.type === "DOMMouseScroll") { - return (e.detail) ? - (e.detail * -1) : - // wheelDelta between -80 and 80 result in -1 or 1 - Math.round(e.wheelDelta / 80) || ((e.wheelDelta < 0) ? -1 : 1); - } - }, +Y_NodeList.importMethod(Y.Node.prototype, [ + /** + * Called on each Node instance + * @method detach + * @see Node.detach + */ + 'detach', - pageX: function () { - var e = this._event, - val = e.pageX, - doc, bodyScroll, docScroll; - - if (val === undefined) { - doc = Y.config.doc; - bodyScroll = doc.body && doc.body.scrollLeft; - docScroll = doc.documentElement.scrollLeft; + /** Called on each Node instance + * @method detachAll + * @see Node.detachAll + */ + 'detachAll' +]); +Y.mix(Y.Node.ATTRS, { + offsetHeight: { + setter: function(h) { + Y.DOM.setHeight(this._node, h); + return h; + }, - val = e.clientX + (docScroll || bodyScroll || 0); + getter: function() { + return this._node.offsetHeight; } - - return val; }, - pageY: function () { - var e = this._event, - val = e.pageY, - doc, bodyScroll, docScroll; - - if (val === undefined) { - doc = Y.config.doc; - bodyScroll = doc.body && doc.body.scrollTop; - docScroll = doc.documentElement.scrollTop; - val = e.clientY + (docScroll || bodyScroll || 0); - } + offsetWidth: { + setter: function(w) { + Y.DOM.setWidth(this._node, w); + return w; + }, - return val; + getter: function() { + return this._node.offsetWidth; + } } -}; +}); +Y.mix(Y.Node.prototype, { + sizeTo: function(w, h) { + var node; + if (arguments.length < 2) { + node = Y.one(w); + w = node.get('offsetWidth'); + h = node.get('offsetHeight'); + } -/** - * Wrapper function for Object.defineProperty that creates a property whose - * value will be calulated only when asked for. After calculating the value, - * the getter wll be removed, so it will behave as a normal property beyond that - * point. A setter is also assigned so assigning to the property will clear - * the getter, so foo.prop = 'a'; foo.prop; won't trigger the getter, - * overwriting value 'a'. - * - * Used only by the DOMEventFacades used by IE8 when the YUI configuration - * lazyEventFacade is set to true. - * - * @method _define - * @param o {DOMObject} A DOM object to add the property to - * @param prop {String} The name of the new property - * @param valueFn {Function} The function that will return the initial, default - * value for the property. - * @static - * @private - */ -IELazyFacade._define = function (o, prop, valueFn) { - function val(v) { - var ret = (arguments.length) ? v : valueFn.call(this); - - delete o[prop]; - Object.defineProperty(o, prop, { - value: ret, - configurable: true, - writable: true + this.setAttrs({ + offsetWidth: w, + offsetHeight: h }); - return ret; - } - Object.defineProperty(o, prop, { - get: val, - set: val, - configurable: true - }); -}; - -if (imp && (!imp.hasFeature('Events', '2.0'))) { - if (useLazyFacade) { - // Make sure we can use the lazy facade logic - try { - Object.defineProperty(Y.config.doc.createEventObject(), 'z', {}); - } catch (e) { - useLazyFacade = false; - } } - - Y.DOMEventFacade = (useLazyFacade) ? IELazyFacade : IEEventFacade; -} - - -}, '3.4.0' ,{after:['event-base'], requires:['node-base']}); -YUI.add('pluginhost-base', function(Y) { +}); +/** + * @module node + * @submodule node-base + */ - /** - * Provides the augmentable PluginHost interface, which can be added to any class. - * @module pluginhost - */ +var Y_Node = Y.Node; +Y.mix(Y_Node.prototype, { /** - * Provides the augmentable PluginHost interface, which can be added to any class. - * @module pluginhost-base + * Makes the node visible. + * If the "transition" module is loaded, show optionally + * animates the showing of the node using either the default + * transition effect ('fadeIn'), or the given named effect. + * @method show + * @for Node + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. + * @chainable */ + show: function(callback) { + callback = arguments[arguments.length - 1]; + this.toggleView(true, callback); + return this; + }, /** - *

                              - * An augmentable class, which provides the augmented class with the ability to host plugins. - * It adds plug and unplug methods to the augmented class, which can - * be used to add or remove plugins from instances of the class. - *

                              - * - *

                              Plugins can also be added through the constructor configuration object passed to the host class' constructor using - * the "plugins" property. Supported values for the "plugins" property are those defined by the plug method. - * - * For example the following code would add the AnimPlugin and IOPlugin to Overlay (the plugin host): - *

                              - * var o = new Overlay({plugins: [ AnimPlugin, {fn:IOPlugin, cfg:{section:"header"}}]}); - * - *

                              - *

                              - * Plug.Host's protected _initPlugins and _destroyPlugins - * methods should be invoked by the host class at the appropriate point in the host's lifecyle. - *

                              - * - * @class Plugin.Host + * The implementation for showing nodes. + * Default is to toggle the style.display property. + * @method _show + * @protected + * @chainable */ + _show: function() { + this.setStyle('display', ''); - var L = Y.Lang; - - function PluginHost() { - this._plugins = {}; - } - - PluginHost.prototype = { - - /** - * Adds a plugin to the host object. This will instantiate the - * plugin and attach it to the configured namespace on the host object. - * - * @method plug - * @chainable - * @param P {Function | Object |Array} Accepts the plugin class, or an - * object with a "fn" property specifying the plugin class and - * a "cfg" property specifying the configuration for the Plugin. - *

                              - * Additionally an Array can also be passed in, with the above function or - * object values, allowing the user to add multiple plugins in a single call. - *

                              - * @param config (Optional) If the first argument is the plugin class, the second argument - * can be the configuration for the plugin. - * @return {Base} A reference to the host object - */ - plug: function(Plugin, config) { - var i, ln, ns; - - if (L.isArray(Plugin)) { - for (i = 0, ln = Plugin.length; i < ln; i++) { - this.plug(Plugin[i]); - } - } else { - if (Plugin && !L.isFunction(Plugin)) { - config = Plugin.cfg; - Plugin = Plugin.fn; - } - - // Plugin should be fn by now - if (Plugin && Plugin.NS) { - ns = Plugin.NS; - - config = config || {}; - config.host = this; - - if (this.hasPlugin(ns)) { - // Update config - this[ns].setAttrs(config); - } else { - // Create new instance - this[ns] = new Plugin(config); - this._plugins[ns] = Plugin; - } - } - else { Y.log("Attempt to plug in an invalid plugin. Host:" + this + ", Plugin:" + Plugin); } - } - return this; - }, - - /** - * Removes a plugin from the host object. This will destroy the - * plugin instance and delete the namepsace from the host object. - * - * @method unplug - * @param {String | Function} plugin The namespace of the plugin, or the plugin class with the static NS namespace property defined. If not provided, - * all registered plugins are unplugged. - * @return {Base} A reference to the host object - * @chainable - */ - unplug: function(plugin) { - var ns = plugin, - plugins = this._plugins; - - if (plugin) { - if (L.isFunction(plugin)) { - ns = plugin.NS; - if (ns && (!plugins[ns] || plugins[ns] !== plugin)) { - ns = null; - } - } - - if (ns) { - if (this[ns]) { - this[ns].destroy(); - delete this[ns]; - } - if (plugins[ns]) { - delete plugins[ns]; - } - } - } else { - for (ns in this._plugins) { - if (this._plugins.hasOwnProperty(ns)) { - this.unplug(ns); - } - } - } - return this; - }, + }, - /** - * Determines if a plugin has plugged into this host. - * - * @method hasPlugin - * @param {String} ns The plugin's namespace - * @return {boolean} returns true, if the plugin has been plugged into this host, false otherwise. - */ - hasPlugin : function(ns) { - return (this._plugins[ns] && this[ns]); - }, + _isHidden: function() { + return Y.DOM.getStyle(this._node, 'display') === 'none'; + }, - /** - * Initializes static plugins registered on the host (using the - * Base.plug static method) and any plugins passed to the - * instance through the "plugins" configuration property. - * - * @method _initPlugins - * @param {Config} config The configuration object with property name/value pairs. - * @private - */ - - _initPlugins: function(config) { - this._plugins = this._plugins || {}; + toggleView: function(on, callback) { + this._toggleView.apply(this, arguments); + }, - if (this._initConfigPlugins) { - this._initConfigPlugins(config); - } - }, + _toggleView: function(on, callback) { + callback = arguments[arguments.length - 1]; - /** - * Unplugs and destroys all plugins on the host - * @method _destroyPlugins - * @private - */ - _destroyPlugins: function() { - this.unplug(); + // base on current state if not forcing + if (typeof on != 'boolean') { + on = (this._isHidden()) ? 1 : 0; } - }; - Y.namespace("Plugin").Host = PluginHost; + if (on) { + this._show(); + } else { + this._hide(); + } + if (typeof callback == 'function') { + callback.call(this); + } -}, '3.4.0' ,{requires:['yui-base']}); -YUI.add('pluginhost-config', function(Y) { + return this; + }, /** - * Adds pluginhost constructor configuration and static configuration support - * @submodule pluginhost-config + * Hides the node. + * If the "transition" module is loaded, hide optionally + * animates the hiding of the node using either the default + * transition effect ('fadeOut'), or the given named effect. + * @method hide + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. + * @chainable */ + hide: function(callback) { + callback = arguments[arguments.length - 1]; + this.toggleView(false, callback); + return this; + }, /** - * Constructor and static configuration support for plugins - * - * @for Plugin.Host + * The implementation for hiding nodes. + * Default is to toggle the style.display property. + * @method _hide + * @protected + * @chainable */ - var PluginHost = Y.Plugin.Host, - L = Y.Lang; + _hide: function() { + this.setStyle('display', 'none'); + } +}); - PluginHost.prototype._initConfigPlugins = function(config) { +Y.NodeList.importMethod(Y.Node.prototype, [ + /** + * Makes each node visible. + * If the "transition" module is loaded, show optionally + * animates the showing of the node using either the default + * transition effect ('fadeIn'), or the given named effect. + * @method show + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. + * @for NodeList + * @chainable + */ + 'show', - // Class Configuration - var classes = (this._getClasses) ? this._getClasses() : [this.constructor], - plug = [], - unplug = {}, - constructor, i, classPlug, classUnplug, pluginClassName; + /** + * Hides each node. + * If the "transition" module is loaded, hide optionally + * animates the hiding of the node using either the default + * transition effect ('fadeOut'), or the given named effect. + * @method hide + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. + * @chainable + */ + 'hide', - // TODO: Room for optimization. Can we apply statically/unplug in same pass? - for (i = classes.length - 1; i >= 0; i--) { - constructor = classes[i]; + 'toggleView' +]); - classUnplug = constructor._UNPLUG; - if (classUnplug) { - // subclasses over-write - Y.mix(unplug, classUnplug, true); - } - - classPlug = constructor._PLUG; - if (classPlug) { - // subclasses over-write - Y.mix(plug, classPlug, true); +if (!Y.config.doc.documentElement.hasAttribute) { // IE < 8 + Y.Node.prototype.hasAttribute = function(attr) { + if (attr === 'value') { + if (this.get('value') !== "") { // IE < 8 fails to populate specified when set in HTML + return true; } } + return !!(this._node.attributes[attr] && + this._node.attributes[attr].specified); + }; +} - for (pluginClassName in plug) { - if (plug.hasOwnProperty(pluginClassName)) { - if (!unplug[pluginClassName]) { - this.plug(plug[pluginClassName]); - } - } - } +// IE throws an error when calling focus() on an element that's invisible, not +// displayed, or disabled. +Y.Node.prototype.focus = function () { + try { + this._node.focus(); + } catch (e) { + Y.log('error focusing node: ' + e.toString(), 'error', 'node'); + } - // User Configuration - if (config && config.plugins) { - this.plug(config.plugins); - } - }; - - /** - * Registers plugins to be instantiated at the class level (plugins - * which should be plugged into every instance of the class by default). - * - * @method Plugin.Host.plug - * @static - * - * @param {Function} hostClass The host class on which to register the plugins - * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) - * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin - */ - PluginHost.plug = function(hostClass, plugin, config) { - // Cannot plug into Base, since Plugins derive from Base [ will cause infinite recurrsion ] - var p, i, l, name; - - if (hostClass !== Y.Base) { - hostClass._PLUG = hostClass._PLUG || {}; - - if (!L.isArray(plugin)) { - if (config) { - plugin = {fn:plugin, cfg:config}; - } - plugin = [plugin]; + return this; +}; + +// IE throws error when setting input.type = 'hidden', +// input.setAttribute('type', 'hidden') and input.attributes.type.value = 'hidden' +Y.Node.ATTRS.type = { + setter: function(val) { + if (val === 'hidden') { + try { + this._node.type = 'hidden'; + } catch(e) { + this.setStyle('display', 'none'); + this._inputType = 'hidden'; } - - for (i = 0, l = plugin.length; i < l;i++) { - p = plugin[i]; - name = p.NAME || p.fn.NAME; - hostClass._PLUG[name] = p; + } else { + try { // IE errors when changing the type from "hidden' + this._node.type = val; + } catch (e) { + Y.log('error setting type: ' + val, 'info', 'node'); } } - }; + return val; + }, - /** - * Unregisters any class level plugins which have been registered by the host class, or any - * other class in the hierarchy. - * - * @method Plugin.Host.unplug - * @static - * - * @param {Function} hostClass The host class from which to unregister the plugins - * @param {Function | Array} plugin The plugin class, or an array of plugin classes - */ - PluginHost.unplug = function(hostClass, plugin) { - var p, i, l, name; - - if (hostClass !== Y.Base) { - hostClass._UNPLUG = hostClass._UNPLUG || {}; - - if (!L.isArray(plugin)) { - plugin = [plugin]; - } - - for (i = 0, l = plugin.length; i < l; i++) { - p = plugin[i]; - name = p.NAME; - if (!hostClass._PLUG[name]) { - hostClass._UNPLUG[name] = p; - } else { - delete hostClass._PLUG[name]; - } + getter: function() { + return this._inputType || this._node.type; + }, + + _bypassProxy: true // don't update DOM when using with Attribute +}; + +if (Y.config.doc.createElement('form').elements.nodeType) { + // IE: elements collection is also FORM node which trips up scrubVal. + Y.Node.ATTRS.elements = { + getter: function() { + return this.all('input, textarea, button, select'); } - } }; +} -}, '3.4.0' ,{requires:['pluginhost-base']}); +}, '3.4.0' ,{requires:['dom-base', 'node-core', 'event-base']}); +(function () { +var GLOBAL_ENV = YUI.Env; -YUI.add('pluginhost', function(Y){}, '3.4.0' ,{use:['pluginhost-base', 'pluginhost-config']}); +if (!GLOBAL_ENV._ready) { + GLOBAL_ENV._ready = function() { + GLOBAL_ENV.DOMReady = true; + GLOBAL_ENV.remove(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); + }; -YUI.add('node-base', function(Y) { + GLOBAL_ENV.add(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); +} +})(); +YUI.add('event-base', function(Y) { -/** - * The Node Utility provides a DOM-like interface for interacting with DOM nodes. - * @module node - * @submodule node-base +/* + * DOM event listener abstraction layer + * @module event + * @submodule event-base */ /** - * The Node class provides a wrapper for manipulating DOM Nodes. - * Node properties can be accessed via the set/get methods. - * Use Y.one() to retrieve Node instances. + * The domready event fires at the moment the browser's DOM is + * usable. In most cases, this is before images are fully + * downloaded, allowing you to provide a more responsive user + * interface. * - * NOTE: Node properties are accessed using - * the set and get methods. + * In YUI 3, domready subscribers will be notified immediately if + * that moment has already passed when the subscription is created. * - * @class Node - * @constructor - * @param {DOMNode} node the DOM node to be mapped to the Node instance. - * @for Node + * One exception is if the yui.js file is dynamically injected into + * the page. If this is done, you must tell the YUI instance that + * you did this in order for DOMReady (and window load events) to + * fire normally. That configuration option is 'injected' -- set + * it to true if the yui.js script is not included inline. + * + * This method is part of the 'event-ready' module, which is a + * submodule of 'event'. + * + * @event domready + * @for YUI */ +Y.publish('domready', { + fireOnce: true, + async: true +}); -// "globals" -var DOT = '.', - NODE_NAME = 'nodeName', - NODE_TYPE = 'nodeType', - OWNER_DOCUMENT = 'ownerDocument', - TAG_NAME = 'tagName', - UID = '_yuid', - EMPTY_OBJ = {}, - - _slice = Array.prototype.slice, - - Y_DOM = Y.DOM, - - Y_Node = function(node) { - if (!this.getDOMNode) { // support optional "new" - return new Y_Node(node); - } - - if (typeof node == 'string') { - node = Y_Node._fromString(node); - if (!node) { - return null; // NOTE: return - } - } - - var uid = (node.nodeType !== 9) ? node.uniqueID : node[UID]; +if (YUI.Env.DOMReady) { + Y.fire('domready'); +} else { + Y.Do.before(function() { Y.fire('domready'); }, YUI.Env, '_ready'); +} - if (uid && Y_Node._instances[uid] && Y_Node._instances[uid]._node !== node) { - node[UID] = null; // unset existing uid to prevent collision (via clone or hack) - } +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event + * @submodule event-base + */ - uid = uid || Y.stamp(node); - if (!uid) { // stamp failed; likely IE non-HTMLElement - uid = Y.guid(); - } +/** + * Wraps a DOM event, properties requiring browser abstraction are + * fixed here. Provids a security layer when required. + * @class DOMEventFacade + * @param ev {Event} the DOM event + * @param currentTarget {HTMLElement} the element the listener was attached to + * @param wrapper {Event.Custom} the custom event wrapper for this DOM event + */ - this[UID] = uid; + var ua = Y.UA, - /** - * The underlying DOM node bound to the Y.Node instance - * @property _node - * @private - */ - this._node = node; + EMPTY = {}, - this._stateProxy = node; // when augmented with Attribute + /** + * webkit key remapping required for Safari < 3.1 + * @property webkitKeymap + * @private + */ + webkitKeymap = { + 63232: 38, // up + 63233: 40, // down + 63234: 37, // left + 63235: 39, // right + 63276: 33, // page up + 63277: 34, // page down + 25: 9, // SHIFT-TAB (Safari provides a different key code in + // this case, even though the shiftKey modifier is set) + 63272: 46, // delete + 63273: 36, // home + 63275: 35 // end + }, - if (this._initPlugins) { // when augmented with Plugin.Host - this._initPlugins(); + /** + * Returns a wrapped node. Intended to be used on event targets, + * so it will return the node's parent if the target is a text + * node. + * + * If accessing a property of the node throws an error, this is + * probably the anonymous div wrapper Gecko adds inside text + * nodes. This likely will only occur when attempting to access + * the relatedTarget. In this case, we now return null because + * the anonymous div is completely useless and we do not know + * what the related target was because we can't even get to + * the element's parent node. + * + * @method resolve + * @private + */ + resolve = function(n) { + if (!n) { + return n; + } + try { + if (n && 3 == n.nodeType) { + n = n.parentNode; + } + } catch(e) { + return null; } - this.SHOW_TRANSITION = Y_Node.SHOW_TRANSITION; - this.HIDE_TRANSITION = Y_Node.HIDE_TRANSITION; + return Y.one(n); }, - // used with previous/next/ancestor tests - _wrapFn = function(fn) { - var ret = null; - if (fn) { - ret = (typeof fn == 'string') ? - function(n) { - return Y.Selector.test(n, fn); - } : - function(n) { - return fn(Y.one(n)); - }; - } + DOMEventFacade = function(ev, currentTarget, wrapper) { + this._event = ev; + this._currentTarget = currentTarget; + this._wrapper = wrapper || EMPTY; - return ret; + // if not lazy init + this.init(); }; -// end "globals" -Y_Node._fromString = function(node) { - if (node) { - if (node.indexOf('doc') === 0) { // doc OR document - node = Y.config.doc; - } else if (node.indexOf('win') === 0) { // win OR window - node = Y.config.win; - } else { - node = Y.Selector.query(node, null, true); - } - } +Y.extend(DOMEventFacade, Object, { - return node || null; -}; + init: function() { -/** - * The name of the component - * @static - * @property NAME - */ -Y_Node.NAME = 'node'; + var e = this._event, + overrides = this._wrapper.overrides, + x = e.pageX, + y = e.pageY, + c, + currentTarget = this._currentTarget; -/* - * The pattern used to identify ARIA attributes - */ -Y_Node.re_aria = /^(?:role$|aria-)/; + this.altKey = e.altKey; + this.ctrlKey = e.ctrlKey; + this.metaKey = e.metaKey; + this.shiftKey = e.shiftKey; + this.type = (overrides && overrides.type) || e.type; + this.clientX = e.clientX; + this.clientY = e.clientY; -Y_Node.SHOW_TRANSITION = 'fadeIn'; -Y_Node.HIDE_TRANSITION = 'fadeOut'; + this.pageX = x; + this.pageY = y; -/** - * List of events that route to DOM events - * @static - * @property DOM_EVENTS - */ + c = e.keyCode || e.charCode; -Y_Node.DOM_EVENTS = { - abort: 1, - beforeunload: 1, - blur: 1, - change: 1, - click: 1, - close: 1, - command: 1, - contextmenu: 1, - dblclick: 1, - DOMMouseScroll: 1, - drag: 1, - dragstart: 1, - dragenter: 1, - dragover: 1, - dragleave: 1, - dragend: 1, - drop: 1, - error: 1, - focus: 1, - key: 1, - keydown: 1, - keypress: 1, - keyup: 1, - load: 1, - message: 1, - mousedown: 1, - mouseenter: 1, - mouseleave: 1, - mousemove: 1, - mousemultiwheel: 1, - mouseout: 1, - mouseover: 1, - mouseup: 1, - mousewheel: 1, - orientationchange: 1, - reset: 1, - resize: 1, - select: 1, - selectstart: 1, - submit: 1, - scroll: 1, - textInput: 1, - unload: 1 -}; + if (ua.webkit && (c in webkitKeymap)) { + c = webkitKeymap[c]; + } -// Add custom event adaptors to this list. This will make it so -// that delegate, key, available, contentready, etc all will -// be available through Node.on -Y.mix(Y_Node.DOM_EVENTS, Y.Env.evt.plugins); + this.keyCode = c; + this.charCode = c; + this.which = e.which || e.charCode || c; + // this.button = e.button; + this.button = this.which; -/** - * A list of Node instances that have been created - * @private - * @property _instances - * @static - * - */ -Y_Node._instances = {}; + this.target = resolve(e.target); + this.currentTarget = resolve(currentTarget); + this.relatedTarget = resolve(e.relatedTarget); -/** - * Retrieves the DOM node bound to a Node instance - * @method getDOMNode - * @static - * - * @param {Y.Node || HTMLNode} node The Node instance or an HTMLNode - * @return {HTMLNode} The DOM node bound to the Node instance. If a DOM node is passed - * as the node argument, it is simply returned. - */ -Y_Node.getDOMNode = function(node) { - if (node) { - return (node.nodeType) ? node : node._node || null; - } - return null; -}; + if (e.type == "mousewheel" || e.type == "DOMMouseScroll") { + this.wheelDelta = (e.detail) ? (e.detail * -1) : Math.round(e.wheelDelta / 80) || ((e.wheelDelta < 0) ? -1 : 1); + } -/** - * Checks Node return values and wraps DOM Nodes as Y.Node instances - * and DOM Collections / Arrays as Y.NodeList instances. - * Other return values just pass thru. If undefined is returned (e.g. no return) - * then the Node instance is returned for chainability. - * @method scrubVal - * @static - * - * @param {any} node The Node instance or an HTMLNode - * @return {Y.Node | Y.NodeList | any} Depends on what is returned from the DOM node. - */ -Y_Node.scrubVal = function(val, node) { - if (val) { // only truthy values are risky - if (typeof val == 'object' || typeof val == 'function') { // safari nodeList === function - if (NODE_TYPE in val || Y_DOM.isWindow(val)) {// node || window - val = Y.one(val); - } else if ((val.item && !val._nodes) || // dom collection or Node instance - (val[0] && val[0][NODE_TYPE])) { // array of DOM Nodes - val = Y.all(val); - } + if (this._touch) { + this._touch(e, currentTarget, this._wrapper); } - } else if (typeof val === 'undefined') { - val = node; // for chaining - } else if (val === null) { - val = null; // IE: DOM null not the same as null - } + }, - return val; -}; + stopPropagation: function() { + this._event.stopPropagation(); + this._wrapper.stopped = 1; + this.stopped = 1; + }, -/** - * Adds methods to the Y.Node prototype, routing through scrubVal. - * @method addMethod - * @static - * - * @param {String} name The name of the method to add - * @param {Function} fn The function that becomes the method - * @param {Object} context An optional context to call the method with - * (defaults to the Node instance) - * @return {any} Depends on what is returned from the DOM node. - */ -Y_Node.addMethod = function(name, fn, context) { - if (name && fn && typeof fn == 'function') { - Y_Node.prototype[name] = function() { - var args = _slice.call(arguments), - node = this, - ret; + stopImmediatePropagation: function() { + var e = this._event; + if (e.stopImmediatePropagation) { + e.stopImmediatePropagation(); + } else { + this.stopPropagation(); + } + this._wrapper.stopped = 2; + this.stopped = 2; + }, - if (args[0] && Y.instanceOf(args[0], Y_Node)) { - args[0] = args[0]._node; - } + preventDefault: function(returnValue) { + var e = this._event; + e.preventDefault(); + e.returnValue = returnValue || false; + this._wrapper.prevented = 1; + this.prevented = 1; + }, - if (args[1] && Y.instanceOf(args[1], Y_Node)) { - args[1] = args[1]._node; - } - args.unshift(node._node); - - ret = fn.apply(node, args); - - if (ret) { // scrub truthy - ret = Y_Node.scrubVal(ret, node); - } + halt: function(immediate) { + if (immediate) { + this.stopImmediatePropagation(); + } else { + this.stopPropagation(); + } - (typeof ret != 'undefined') || (ret = node); - return ret; - }; - } else { - Y.log('unable to add method: ' + name, 'warn', 'Node'); + this.preventDefault(); } -}; -/** - * Imports utility methods to be added as Y.Node methods. - * @method importMethod - * @static - * - * @param {Object} host The object that contains the method to import. - * @param {String} name The name of the method to import - * @param {String} altName An optional name to use in place of the host name - * @param {Object} context An optional context to call the method with - */ -Y_Node.importMethod = function(host, name, altName) { - if (typeof name == 'string') { - altName = altName || name; - Y_Node.addMethod(altName, host[name], host); - } else { - Y.Array.each(name, function(n) { - Y_Node.importMethod(host, n); - }); - } -}; +}); -/** - * Returns a single Node instance bound to the node or the - * first element matching the given selector. Returns null if no match found. - * Note: For chaining purposes you may want to - * use Y.all, which returns a NodeList when no match is found. - * @method Y.one - * @static - * @param {String | HTMLElement} node a node or Selector - * @return {Y.Node | null} a Node instance or null if no match found. - */ -Y_Node.one = function(node) { - var instance = null, - cachedNode, - uid; +DOMEventFacade.resolve = resolve; +Y.DOM2EventFacade = DOMEventFacade; +Y.DOMEventFacade = DOMEventFacade; - if (node) { - if (typeof node == 'string') { - node = Y_Node._fromString(node); - if (!node) { - return null; // NOTE: return - } - } else if (node.getDOMNode) { - return node; // NOTE: return - } + /** + * The native event + * @property _event + */ - if (node.nodeType || Y.DOM.isWindow(node)) { // avoid bad input (numbers, boolean, etc) - uid = (node.uniqueID && node.nodeType !== 9) ? node.uniqueID : node._yuid; - instance = Y_Node._instances[uid]; // reuse exising instances - cachedNode = instance ? instance._node : null; - if (!instance || (cachedNode && node !== cachedNode)) { // new Node when nodes don't match - instance = new Y_Node(node); - Y_Node._instances[instance[UID]] = instance; // cache node - } - } - } + /** + * The X location of the event on the page (including scroll) + * @property pageX + * @type int + */ - return instance; -}; + /** + * The Y location of the event on the page (including scroll) + * @property pageY + * @type int + */ -/** - * Returns a new dom node using the provided markup string. - * @method create - * @static - * @param {String} html The markup used to create the element - * @param {HTMLDocument} doc An optional document context - * @return {Node} A Node instance bound to a DOM node or fragment - */ -Y_Node.create = function(html, doc) { - if (doc && doc._node) { - doc = doc._node; - } - return Y.one(Y_DOM.create(html, doc)); -}; + /** + * The keyCode for key events. Uses charCode if keyCode is not available + * @property keyCode + * @type int + */ -/** - * Static collection of configuration attributes for special handling - * @property ATTRS - * @static - * @type object - */ -Y_Node.ATTRS = { /** - * Allows for getting and setting the text of an element. - * Formatting is preserved and special characters are treated literally. - * @config text - * @type String + * The charCode for key events. Same as keyCode + * @property charCode + * @type int */ - text: { - getter: function() { - return Y_DOM.getText(this._node); - }, - setter: function(content) { - Y_DOM.setText(this._node, content); - return content; - } - }, + /** + * The button that was pushed. + * @property button + * @type int + */ /** - * Allows for getting and setting the text of an element. - * Formatting is preserved and special characters are treated literally. - * @config text - * @type String + * The button that was pushed. Same as button. + * @property which + * @type int */ - 'for': { - getter: function() { - return Y_DOM.getAttribute(this._node, 'for'); - }, - setter: function(val) { - Y_DOM.setAttribute(this._node, 'for', val); - return val; - } - }, + /** + * Node reference for the targeted element + * @propery target + * @type Node + */ - 'options': { - getter: function() { - return this._node.getElementsByTagName('option'); - } - }, + /** + * Node reference for the element that the listener was attached to. + * @propery currentTarget + * @type Node + */ /** - * Returns a NodeList instance of all HTMLElement children. - * @readOnly - * @config children - * @type NodeList + * Node reference to the relatedTarget + * @propery relatedTarget + * @type Node */ - 'children': { - getter: function() { - var node = this._node, - children = node.children, - childNodes, i, len; - if (!children) { - childNodes = node.childNodes; - children = []; + /** + * Number representing the direction and velocity of the movement of the mousewheel. + * Negative is down, the higher the number, the faster. Applies to the mousewheel event. + * @property wheelDelta + * @type int + */ - for (i = 0, len = childNodes.length; i < len; ++i) { - if (childNodes[i][TAG_NAME]) { - children[children.length] = childNodes[i]; - } - } - } - return Y.all(children); - } - }, + /** + * Stops the propagation to the next bubble target + * @method stopPropagation + */ - value: { - getter: function() { - return Y_DOM.getValue(this._node); - }, + /** + * Stops the propagation to the next bubble target and + * prevents any additional listeners from being exectued + * on the current target. + * @method stopImmediatePropagation + */ - setter: function(val) { - Y_DOM.setValue(this._node, val); - return val; - } - } -}; + /** + * Prevents the event's default behavior + * @method preventDefault + * @param returnValue {string} sets the returnValue of the event to this value + * (rather than the default false value). This can be used to add a customized + * confirmation query to the beforeunload event). + */ + /** + * Stops the event propagation and prevents the default + * event behavior. + * @method halt + * @param immediate {boolean} if true additional listeners + * on the current target will not be executed + */ +(function() { /** - * The default setter for DOM properties - * Called with instance context (this === the Node instance) - * @method DEFAULT_SETTER + * DOM event listener abstraction layer + * @module event + * @submodule event-base + */ + +/** + * The event utility provides functions to add and remove event listeners, + * event cleansing. It also tries to automatically remove listeners it + * registers during the unload event. + * + * @class Event * @static - * @param {String} name The attribute/property being set - * @param {any} val The value to be set - * @return {any} The value */ -Y_Node.DEFAULT_SETTER = function(name, val) { - var node = this._stateProxy, - strPath; - if (name.indexOf(DOT) > -1) { - strPath = name; - name = name.split(DOT); - // only allow when defined on node - Y.Object.setValue(node, name, val); - } else if (typeof node[name] != 'undefined') { // pass thru DOM properties - node[name] = val; - } - - return val; -}; - -/** - * The default getter for DOM properties - * Called with instance context (this === the Node instance) - * @method DEFAULT_GETTER - * @static - * @param {String} name The attribute/property to look up - * @return {any} The current value - */ -Y_Node.DEFAULT_GETTER = function(name) { - var node = this._stateProxy, - val; - - if (name.indexOf && name.indexOf(DOT) > -1) { - val = Y.Object.getValue(node, name.split(DOT)); - } else if (typeof node[name] != 'undefined') { // pass thru from DOM - val = node[name]; - } - - return val; -}; +Y.Env.evt.dom_wrappers = {}; +Y.Env.evt.dom_map = {}; -Y.augment(Y_Node, Y.EventTarget); +var _eventenv = Y.Env.evt, + config = Y.config, + win = config.win, + add = YUI.Env.add, + remove = YUI.Env.remove, -Y.mix(Y_Node.prototype, { - /** - * The method called when outputting Node instances as strings - * @method toString - * @return {String} A string representation of the Node instance - */ - toString: function() { - var str = this[UID] + ': not bound to a node', - node = this._node, - attrs, id, className; + onLoad = function() { + YUI.Env.windowLoaded = true; + Y.Event._load(); + remove(win, "load", onLoad); + }, - if (node) { - attrs = node.attributes; - id = (attrs && attrs.id) ? node.getAttribute('id') : null; - className = (attrs && attrs.className) ? node.getAttribute('className') : null; - str = node[NODE_NAME]; + onUnload = function() { + Y.Event._unload(); + }, - if (id) { - str += '#' + id; - } + EVENT_READY = 'domready', - if (className) { - str += '.' + className.replace(' ', '.'); - } + COMPAT_ARG = '~yui|2|compat~', - // TODO: add yuid? - str += ' ' + this[UID]; + shouldIterate = function(o) { + try { + return (o && typeof o !== "string" && Y.Lang.isNumber(o.length) && + !o.tagName && !o.alert); + } catch(ex) { + Y.log("collection check failure", "warn", "event"); + return false; } - return str; + }, - /** - * Returns an attribute value on the Node instance. - * Unless pre-configured (via Node.ATTRS), get hands - * off to the underlying DOM node. Only valid - * attributes/properties for the node will be queried. - * @method get - * @param {String} attr The attribute - * @return {any} The current value of the attribute - */ - get: function(attr) { - var val; + // aliases to support DOM event subscription clean up when the last + // subscriber is detached. deleteAndClean overrides the DOM event's wrapper + // CustomEvent _delete method. + _ceProtoDelete = Y.CustomEvent.prototype._delete, + _deleteAndClean = function(s) { + var ret = _ceProtoDelete.apply(this, arguments); - if (this._getAttr) { // use Attribute imple - val = this._getAttr(attr); - } else { - val = this._get(attr); + if (!this.subCount && !this.afterCount) { + Y.Event._clean(this); } - if (val) { - val = Y_Node.scrubVal(val, this); - } else if (val === null) { - val = null; // IE: DOM null is not true null (even though they ===) - } - return val; + return ret; }, +Event = function() { + /** - * Helper method for get. - * @method _get + * True after the onload event has fired + * @property _loadComplete + * @type boolean + * @static * @private - * @param {String} attr The attribute - * @return {any} The current value of the attribute */ - _get: function(attr) { - var attrConfig = Y_Node.ATTRS[attr], - val; - - if (attrConfig && attrConfig.getter) { - val = attrConfig.getter.call(this); - } else if (Y_Node.re_aria.test(attr)) { - val = this._node.getAttribute(attr, 2); - } else { - val = Y_Node.DEFAULT_GETTER.apply(this, arguments); - } - - return val; - }, + var _loadComplete = false, /** - * Sets an attribute on the Node instance. - * Unless pre-configured (via Node.ATTRS), set hands - * off to the underlying DOM node. Only valid - * attributes/properties for the node will be set. - * To set custom attributes use setAttribute. - * @method set - * @param {String} attr The attribute to be set. - * @param {any} val The value to set the attribute to. - * @chainable + * The number of times to poll after window.onload. This number is + * increased if additional late-bound handlers are requested after + * the page load. + * @property _retryCount + * @static + * @private */ - set: function(attr, val) { - var attrConfig = Y_Node.ATTRS[attr]; - - if (this._setAttr) { // use Attribute imple - this._setAttr.apply(this, arguments); - } else { // use setters inline - if (attrConfig && attrConfig.setter) { - attrConfig.setter.call(this, val, attr); - } else if (Y_Node.re_aria.test(attr)) { // special case Aria - this._node.setAttribute(attr, val); - } else { - Y_Node.DEFAULT_SETTER.apply(this, arguments); - } - } - - return this; - }, + _retryCount = 0, /** - * Sets multiple attributes. - * @method setAttrs - * @param {Object} attrMap an object of name/value pairs to set - * @chainable + * onAvailable listeners + * @property _avail + * @static + * @private */ - setAttrs: function(attrMap) { - if (this._setAttrs) { // use Attribute imple - this._setAttrs(attrMap); - } else { // use setters inline - Y.Object.each(attrMap, function(v, n) { - this.set(n, v); - }, this); - } - - return this; - }, + _avail = [], /** - * Returns an object containing the values for the requested attributes. - * @method getAttrs - * @param {Array} attrs an array of attributes to get values - * @return {Object} An object with attribute name/value pairs. + * Custom event wrappers for DOM events. Key is + * 'event:' + Element uid stamp + event type + * @property _wrappers + * @type Y.Event.Custom + * @static + * @private */ - getAttrs: function(attrs) { - var ret = {}; - if (this._getAttrs) { // use Attribute imple - this._getAttrs(attrs); - } else { // use setters inline - Y.Array.each(attrs, function(v, n) { - ret[v] = this.get(v); - }, this); - } + _wrappers = _eventenv.dom_wrappers, - return ret; - }, + _windowLoadKey = null, /** - * Creates a new Node using the provided markup string. - * @method create - * @param {String} html The markup used to create the element - * @param {HTMLDocument} doc An optional document context - * @return {Node} A Node instance bound to a DOM node or fragment + * Custom event wrapper map DOM events. Key is + * Element uid stamp. Each item is a hash of custom event + * wrappers as provided in the _wrappers collection. This + * provides the infrastructure for getListeners. + * @property _el_events + * @static + * @private */ - create: Y_Node.create, + _el_events = _eventenv.dom_map; - /** - * Compares nodes to determine if they match. - * Node instances can be compared to each other and/or HTMLElements. - * @method compareTo - * @param {HTMLElement | Node} refNode The reference node to compare to the node. - * @return {Boolean} True if the nodes match, false if they do not. - */ - compareTo: function(refNode) { - var node = this._node; + return { - if (Y.instanceOf(refNode, Y_Node)) { - refNode = refNode._node; - } - return node === refNode; - }, + /** + * The number of times we should look for elements that are not + * in the DOM at the time the event is requested after the document + * has been loaded. The default is 1000@amp;40 ms, so it will poll + * for 40 seconds or until all outstanding handlers are bound + * (whichever comes first). + * @property POLL_RETRYS + * @type int + * @static + * @final + */ + POLL_RETRYS: 1000, - /** - * Determines whether the node is appended to the document. - * @method inDoc - * @param {Node|HTMLElement} doc optional An optional document to check against. - * Defaults to current document. - * @return {Boolean} Whether or not this node is appended to the document. - */ - inDoc: function(doc) { - var node = this._node; - doc = (doc) ? doc._node || doc : node[OWNER_DOCUMENT]; - if (doc.documentElement) { - return Y_DOM.contains(doc.documentElement, node); - } - }, - - getById: function(id) { - var node = this._node, - ret = Y_DOM.byId(id, node[OWNER_DOCUMENT]); - if (ret && Y_DOM.contains(node, ret)) { - ret = Y.one(ret); - } else { - ret = null; - } - return ret; - }, - - /** - * Returns the nearest ancestor that passes the test applied by supplied boolean method. - * @method ancestor - * @param {String | Function} fn A selector string or boolean method for testing elements. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * If a function is used, it receives the current node being tested as the only argument. - * @return {Node} The matching Node instance or null if not found - */ - ancestor: function(fn, testSelf) { - return Y.one(Y_DOM.ancestor(this._node, _wrapFn(fn), testSelf)); - }, + /** + * The poll interval in milliseconds + * @property POLL_INTERVAL + * @type int + * @static + * @final + */ + POLL_INTERVAL: 40, - /** - * Returns the ancestors that pass the test applied by supplied boolean method. - * @method ancestors - * @param {String | Function} fn A selector string or boolean method for testing elements. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * If a function is used, it receives the current node being tested as the only argument. - * @return {NodeList} A NodeList instance containing the matching elements - */ - ancestors: function(fn, testSelf) { - return Y.all(Y_DOM.ancestors(this._node, _wrapFn(fn), testSelf)); - }, + /** + * addListener/removeListener can throw errors in unexpected scenarios. + * These errors are suppressed, the method returns false, and this property + * is set + * @property lastError + * @static + * @type Error + */ + lastError: null, - /** - * Returns the previous matching sibling. - * Returns the nearest element node sibling if no method provided. - * @method previous - * @param {String | Function} fn A selector or boolean method for testing elements. - * If a function is used, it receives the current node being tested as the only argument. - * @return {Node} Node instance or null if not found - */ - previous: function(fn, all) { - return Y.one(Y_DOM.elementByAxis(this._node, 'previousSibling', _wrapFn(fn), all)); - }, - /** - * Returns the next matching sibling. - * Returns the nearest element node sibling if no method provided. - * @method next - * @param {String | Function} fn A selector or boolean method for testing elements. - * If a function is used, it receives the current node being tested as the only argument. - * @return {Node} Node instance or null if not found - */ - next: function(fn, all) { - return Y.one(Y_DOM.elementByAxis(this._node, 'nextSibling', _wrapFn(fn), all)); - }, + /** + * poll handle + * @property _interval + * @static + * @private + */ + _interval: null, - /** - * Returns all matching siblings. - * Returns all siblings if no method provided. - * @method siblings - * @param {String | Function} fn A selector or boolean method for testing elements. - * If a function is used, it receives the current node being tested as the only argument. - * @return {NodeList} NodeList instance bound to found siblings - */ - siblings: function(fn) { - return Y.all(Y_DOM.siblings(this._node, _wrapFn(fn))); - }, + /** + * document readystate poll handle + * @property _dri + * @static + * @private + */ + _dri: null, - /** - * Retrieves a Node instance of nodes based on the given CSS selector. - * @method one - * - * @param {string} selector The CSS selector to test against. - * @return {Node} A Node instance for the matching HTMLElement. - */ - one: function(selector) { - return Y.one(Y.Selector.query(selector, this._node, true)); - }, + /** + * True when the document is initially usable + * @property DOMReady + * @type boolean + * @static + */ + DOMReady: false, - /** - * Retrieves a nodeList based on the given CSS selector. - * @method all - * - * @param {string} selector The CSS selector to test against. - * @return {NodeList} A NodeList instance for the matching HTMLCollection/Array. - */ - all: function(selector) { - var nodelist = Y.all(Y.Selector.query(selector, this._node)); - nodelist._query = selector; - nodelist._queryRoot = this._node; - return nodelist; - }, + /** + * @method startInterval + * @static + * @private + */ + startInterval: function() { + if (!Event._interval) { +Event._interval = setInterval(Event._poll, Event.POLL_INTERVAL); + } + }, - // TODO: allow fn test - /** - * Test if the supplied node matches the supplied selector. - * @method test - * - * @param {string} selector The CSS selector to test against. - * @return {boolean} Whether or not the node matches the selector. - */ - test: function(selector) { - return Y.Selector.test(this._node, selector); - }, + /** + * Executes the supplied callback when the item with the supplied + * id is found. This is meant to be used to execute behavior as + * soon as possible as the page loads. If you use this after the + * initial page load it will poll for a fixed time for the element. + * The number of times it will poll and the frequency are + * configurable. By default it will poll for 10 seconds. + * + *

                              The callback is executed with a single parameter: + * the custom object parameter, if provided.

                              + * + * @method onAvailable + * + * @param {string||string[]} id the id of the element, or an array + * of ids to look for. + * @param {function} fn what to execute when the element is found. + * @param {object} p_obj an optional object to be passed back as + * a parameter to fn. + * @param {boolean|object} p_override If set to true, fn will execute + * in the context of p_obj, if set to an object it + * will execute in the context of that object + * @param checkContent {boolean} check child node readiness (onContentReady) + * @static + * @deprecated Use Y.on("available") + */ + // @TODO fix arguments + onAvailable: function(id, fn, p_obj, p_override, checkContent, compat) { - /** - * Removes the node from its parent. - * Shortcut for myNode.get('parentNode').removeChild(myNode); - * @method remove - * @param {Boolean} destroy whether or not to call destroy() on the node - * after removal. - * @chainable - * - */ - remove: function(destroy) { - var node = this._node; + var a = Y.Array(id), i, availHandle; - if (node && node.parentNode) { - node.parentNode.removeChild(node); - } + // Y.log('onAvailable registered for: ' + id); - if (destroy) { - this.destroy(); - } + for (i=0; iThe callback is executed with a single parameter: + * the custom object parameter, if provided.

                              + * + * @method onContentReady + * + * @param {string} id the id of the element to look for. + * @param {function} fn what to execute when the element is ready. + * @param {object} obj an optional object to be passed back as + * a parameter to fn. + * @param {boolean|object} override If set to true, fn will execute + * in the context of p_obj. If an object, fn will + * exectute in the context of that object + * + * @static + * @deprecated Use Y.on("contentready") + */ + // @TODO fix arguments + onContentReady: function(id, fn, obj, override, compat) { + return Event.onAvailable(id, fn, obj, override, true, compat); + }, - this.purge(); // TODO: only remove events add via this Node + /** + * Adds an event listener + * + * @method attach + * + * @param {String} type The type of event to append + * @param {Function} fn The method the event invokes + * @param {String|HTMLElement|Array|NodeList} el An id, an element + * reference, or a collection of ids and/or elements to assign the + * listener to. + * @param {Object} context optional context object + * @param {Boolean|object} args 0..n arguments to pass to the callback + * @return {EventHandle} an object to that can be used to detach the listener + * + * @static + */ - if (this.unplug) { // may not be a PluginHost - this.unplug(); - } + attach: function(type, fn, el, context) { + return Event._attach(Y.Array(arguments, 0, true)); + }, - this.clearData(); + _createWrapper: function (el, type, capture, compat, facade) { - if (recursive) { - Y.NodeList.each(this.all('*'), function(node) { - instance = Y_Node._instances[node[UID]]; - if (instance) { - instance.destroy(); - } - }); - } + var cewrapper, + ek = Y.stamp(el), + key = 'event:' + ek + type; - this._node = null; - this._stateProxy = null; + if (false === facade) { + key += 'native'; + } + if (capture) { + key += 'capture'; + } - delete Y_Node._instances[this._yuid]; - }, - /** - * Invokes a method on the Node instance - * @method invoke - * @param {String} method The name of the method to invoke - * @param {Any} a, b, c, etc. Arguments to invoke the method with. - * @return Whatever the underly method returns. - * DOM Nodes and Collections return values - * are converted to Node/NodeList instances. - * - */ - invoke: function(method, a, b, c, d, e) { - var node = this._node, - ret; + cewrapper = _wrappers[key]; - if (a && Y.instanceOf(a, Y_Node)) { - a = a._node; - } - if (b && Y.instanceOf(b, Y_Node)) { - b = b._node; - } + if (!cewrapper) { + // create CE wrapper + cewrapper = Y.publish(key, { + silent: true, + bubbles: false, + contextFn: function() { + if (compat) { + return cewrapper.el; + } else { + cewrapper.nodeRef = cewrapper.nodeRef || Y.one(cewrapper.el); + return cewrapper.nodeRef; + } + } + }); - ret = node[method](a, b, c, d, e); - return Y_Node.scrubVal(ret, this); - }, + cewrapper.overrides = {}; - /** - * Inserts the content before the reference node. - * @method insert - * @param {String | Y.Node | HTMLElement | Y.NodeList | HTMLCollection} content The content to insert - * @param {Int | Y.Node | HTMLElement | String} where The position to insert at. - * Possible "where" arguments - *
                              - *
                              Y.Node
                              - *
                              The Node to insert before
                              - *
                              HTMLElement
                              - *
                              The element to insert before
                              - *
                              Int
                              - *
                              The index of the child element to insert before
                              - *
                              "replace"
                              - *
                              Replaces the existing HTML
                              - *
                              "before"
                              - *
                              Inserts before the existing HTML
                              - *
                              "before"
                              - *
                              Inserts content before the node
                              - *
                              "after"
                              - *
                              Inserts content after the node
                              - *
                              - * @chainable - */ - insert: function(content, where) { - this._insert(content, where); - return this; - }, + // for later removeListener calls + cewrapper.el = el; + cewrapper.key = key; + cewrapper.domkey = ek; + cewrapper.type = type; + cewrapper.fn = function(e) { + cewrapper.fire(Event.getEvent(e, el, (compat || (false === facade)))); + }; + cewrapper.capture = capture; - _insert: function(content, where) { - var node = this._node, - ret = null; + if (el == win && type == "load") { + // window load happens once + cewrapper.fireOnce = true; + _windowLoadKey = key; + } + cewrapper._delete = _deleteAndClean; - if (typeof where == 'number') { // allow index - where = this._node.childNodes[where]; - } else if (where && where._node) { // Node - where = where._node; - } + _wrappers[key] = cewrapper; + _el_events[ek] = _el_events[ek] || {}; + _el_events[ek][key] = cewrapper; - if (content && typeof content != 'string') { // allow Node or NodeList/Array instances - content = content._node || content._nodes || content; - } - ret = Y_DOM.addHTML(node, content, where); + add(el, type, cewrapper.fn, capture); + } - return ret; - }, + return cewrapper; - /** - * Inserts the content as the firstChild of the node. - * @method prepend - * @param {String | Y.Node | HTMLElement} content The content to insert - * @chainable - */ - prepend: function(content) { - return this.insert(content, 0); - }, + }, - /** - * Inserts the content as the lastChild of the node. - * @method append - * @param {String | Y.Node | HTMLElement} content The content to insert - * @chainable - */ - append: function(content) { - return this.insert(content, null); - }, + _attach: function(args, conf) { - /** - * Appends the node to the given node. - * @method appendTo - * @param {Y.Node | HTMLElement} node The node to append to - * @chainable - */ - appendTo: function(node) { - Y.one(node).append(this); - return this; - }, + var compat, + handles, oEl, cewrapper, context, + fireNow = false, ret, + type = args[0], + fn = args[1], + el = args[2] || win, + facade = conf && conf.facade, + capture = conf && conf.capture, + overrides = conf && conf.overrides; - /** - * Replaces the node's current content with the content. - * @method setContent - * @param {String | Y.Node | HTMLElement | Y.NodeList | HTMLCollection} content The content to insert - * @chainable - */ - setContent: function(content) { - this._insert(content, 'replace'); - return this; - }, - - /** - * Returns the node's current content (e.g. innerHTML) - * @method getContent - * @return {String} The current content - */ - getContent: function(content) { - return this.get('innerHTML'); - }, - - /** - * @method swap - * @description Swap DOM locations with the given node. - * This does not change which DOM node each Node instance refers to. - * @param {Node} otherNode The node to swap with - * @chainable - */ - swap: Y.config.doc.documentElement.swapNode ? - function(otherNode) { - this._node.swapNode(Y_Node.getDOMNode(otherNode)); - } : - function(otherNode) { - otherNode = Y_Node.getDOMNode(otherNode); - var node = this._node, - parent = otherNode.parentNode, - nextSibling = otherNode.nextSibling; + if (args[args.length-1] === COMPAT_ARG) { + compat = true; + } - if (nextSibling === node) { - parent.insertBefore(node, otherNode); - } else if (otherNode === node.nextSibling) { - parent.insertBefore(otherNode, node); - } else { - node.parentNode.replaceChild(otherNode, node); - Y_DOM.addHTML(parent, node, nextSibling); + if (!fn || !fn.call) { +// throw new TypeError(type + " attach call failed, callback undefined"); +Y.log(type + " attach call failed, invalid callback", "error", "event"); + return false; } - return this; - }, + // The el argument can be an array of elements or element ids. + if (shouldIterate(el)) { - /** - * @method getData - * @description Retrieves arbitrary data stored on a Node instance. - * This is not stored with the DOM node. - * @param {string} name Optional name of the data field to retrieve. - * If no name is given, all data is returned. - * @return {any | Object} Whatever is stored at the given field, - * or an object hash of all fields. - */ - getData: function(name) { - var ret; - this._data = this._data || {}; - if (arguments.length) { - ret = this._data[name]; - } else { - ret = this._data; - } + handles=[]; - return ret; + Y.each(el, function(v, k) { + args[2] = v; + handles.push(Event._attach(args.slice(), conf)); + }); - }, + // return (handles.length === 1) ? handles[0] : handles; + return new Y.EventHandle(handles); - /** - * @method setData - * @description Stores arbitrary data on a Node instance. - * This is not stored with the DOM node. - * @param {string} name The name of the field to set. If no name - * is given, name is treated as the data and overrides any existing data. - * @param {any} val The value to be assigned to the field. - * @chainable - */ - setData: function(name, val) { - this._data = this._data || {}; - if (arguments.length > 1) { - this._data[name] = val; - } else { - this._data = name; - } + // If the el argument is a string, we assume it is + // actually the id of the element. If the page is loaded + // we convert el to the actual element, otherwise we + // defer attaching the event until the element is + // ready + } else if (Y.Lang.isString(el)) { - return this; - }, + // oEl = (compat) ? Y.DOM.byId(el) : Y.Selector.query(el); - /** - * @method clearData - * @description Clears stored data. - * @param {string} name The name of the field to clear. If no name - * is given, all data is cleared. - * @chainable - */ - clearData: function(name) { - if ('_data' in this) { - if (name) { - delete this._data[name]; - } else { - delete this._data; - } - } + if (compat) { + oEl = Y.DOM.byId(el); + } else { - return this; - }, + oEl = Y.Selector.query(el); - hasMethod: function(method) { - var node = this._node; - return !!(node && method in node && - typeof node[method] != 'unknown' && - (typeof node[method] == 'function' || - String(node[method]).indexOf('function') === 1)); // IE reports as object, prepends space - }, + switch (oEl.length) { + case 0: + oEl = null; + break; + case 1: + oEl = oEl[0]; + break; + default: + args[2] = oEl; + return Event._attach(args, conf); + } + } - SHOW_TRANSITION: null, - HIDE_TRANSITION: null, + if (oEl) { - /** - * Makes the node visible. - * If the "transition" module is loaded, show optionally - * animates the showing of the node using either the default - * transition effect ('fadeIn'), or the given named effect. - * @method show - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable - */ - show: function(callback) { - callback = arguments[arguments.length - 1]; - this.toggleView(true, callback); - return this; - }, + el = oEl; - /** - * The implementation for showing nodes. - * Default is to toggle the style.display property. - * @protected - * @chainable - */ - _show: function() { - this.setStyle('display', ''); + // Not found = defer adding the event until the element is available + } else { - }, + // Y.log(el + ' not found'); + ret = Event.onAvailable(el, function() { + // Y.log('lazy attach: ' + args); - _isHidden: function() { - return Y.DOM.getStyle(this._node, 'display') === 'none'; - }, + ret.handle = Event._attach(args, conf); - toggleView: function(on, callback) { - this._toggleView.apply(this, arguments); - }, + }, Event, true, false, compat); - _toggleView: function(on, callback) { - callback = arguments[arguments.length - 1]; + return ret; - // base on current state if not forcing - if (typeof on != 'boolean') { - on = (this._isHidden()) ? 1 : 0; - } + } + } - if (on) { - this._show(); - } else { - this._hide(); - } + // Element should be an html element or node + if (!el) { + Y.log("unable to attach event " + type, "warn", "event"); + return false; + } - if (typeof callback == 'function') { - callback.call(this); - } + if (Y.Node && Y.instanceOf(el, Y.Node)) { + el = Y.Node.getDOMNode(el); + } - return this; - }, + cewrapper = Event._createWrapper(el, type, capture, compat, facade); + if (overrides) { + Y.mix(cewrapper.overrides, overrides); + } - /** - * Hides the node. - * If the "transition" module is loaded, hide optionally - * animates the hiding of the node using either the default - * transition effect ('fadeOut'), or the given named effect. - * @method hide - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable - */ - hide: function(callback) { - callback = arguments[arguments.length - 1]; - this.toggleView(false, callback); - return this; - }, + if (el == win && type == "load") { - /** - * The implementation for hiding nodes. - * Default is to toggle the style.display property. - * @protected - * @chainable - */ - _hide: function() { - this.setStyle('display', 'none'); - }, + // if the load is complete, fire immediately. + // all subscribers, including the current one + // will be notified. + if (YUI.Env.windowLoaded) { + fireNow = true; + } + } - isFragment: function() { - return (this.get('nodeType') === 11); - }, + if (compat) { + args.pop(); + } - /** - * Removes and destroys all of the nodes within the node. - * @method empty - * @chainable - */ - empty: function() { - this.get('childNodes').remove().destroy(true); - return this; - }, + context = args[3]; - /** - * Returns the DOM node bound to the Node instance - * @method getDOMNode - * @return {DOMNode} - */ - getDOMNode: function() { - return this._node; - } -}, true); - -Y.Node = Y_Node; -Y.one = Y.Node.one; -/** - * The NodeList module provides support for managing collections of Nodes. - * @module node - * @submodule nodelist - */ - -/** - * The NodeList class provides a wrapper for manipulating DOM NodeLists. - * NodeList properties can be accessed via the set/get methods. - * Use Y.all() to retrieve NodeList instances. - * - * @class NodeList - * @constructor - */ + // set context to the Node if not specified + // ret = cewrapper.on.apply(cewrapper, trimmedArgs); + ret = cewrapper._on(fn, context, (args.length > 4) ? args.slice(4) : null); -var NodeList = function(nodes) { - var tmp = []; - if (typeof nodes === 'string') { // selector query - this._query = nodes; - nodes = Y.Selector.query(nodes); - } else if (nodes.nodeType || Y_DOM.isWindow(nodes)) { // domNode || window - nodes = [nodes]; - } else if (Y.instanceOf(nodes, Y.Node)) { - nodes = [nodes._node]; - } else if (Y.instanceOf(nodes[0], Y.Node)) { // allow array of Y.Nodes - Y.Array.each(nodes, function(node) { - if (node._node) { - tmp.push(node._node); + if (fireNow) { + cewrapper.fire(); } - }); - nodes = tmp; - } else { // array of domNodes or domNodeList (no mixed array of Y.Node/domNodes) - nodes = Y.Array(nodes, 0, true); - } - /** - * The underlying array of DOM nodes bound to the Y.NodeList instance - * @property _nodes - * @private - */ - this._nodes = nodes; -}; + return ret; -NodeList.NAME = 'NodeList'; + }, -/** - * Retrieves the DOM nodes bound to a NodeList instance - * @method NodeList.getDOMNodes - * @static - * - * @param {Y.NodeList} nodelist The NodeList instance - * @return {Array} The array of DOM nodes bound to the NodeList - */ -NodeList.getDOMNodes = function(nodelist) { - return (nodelist && nodelist._nodes) ? nodelist._nodes : nodelist; -}; + /** + * Removes an event listener. Supports the signature the event was bound + * with, but the preferred way to remove listeners is using the handle + * that is returned when using Y.on + * + * @method detach + * + * @param {String} type the type of event to remove. + * @param {Function} fn the method the event invokes. If fn is + * undefined, then all event handlers for the type of event are + * removed. + * @param {String|HTMLElement|Array|NodeList|EventHandle} el An + * event handle, an id, an element reference, or a collection + * of ids and/or elements to remove the listener from. + * @return {boolean} true if the unbind was successful, false otherwise. + * @static + */ + detach: function(type, fn, el, obj) { -NodeList.each = function(instance, fn, context) { - var nodes = instance._nodes; - if (nodes && nodes.length) { - Y.Array.each(nodes, fn, context || instance); - } else { - Y.log('no nodes bound to ' + this, 'warn', 'NodeList'); - } -}; + var args=Y.Array(arguments, 0, true), compat, l, ok, i, + id, ce; -NodeList.addMethod = function(name, fn, context) { - if (name && fn) { - NodeList.prototype[name] = function() { - var ret = [], - args = arguments; + if (args[args.length-1] === COMPAT_ARG) { + compat = true; + // args.pop(); + } - Y.Array.each(this._nodes, function(node) { - var UID = (node.uniqueID && node.nodeType !== 9 ) ? 'uniqueID' : '_yuid', - instance = Y.Node._instances[node[UID]], - ctx, - result; + if (type && type.detach) { + return type.detach(); + } - if (!instance) { - instance = NodeList._getTempNode(node); - } - ctx = context || instance; - result = fn.apply(ctx, args); - if (result !== undefined && result !== instance) { - ret[ret.length] = result; + // The el argument can be a string + if (typeof el == "string") { + + // el = (compat) ? Y.DOM.byId(el) : Y.all(el); + if (compat) { + el = Y.DOM.byId(el); + } else { + el = Y.Selector.query(el); + l = el.length; + if (l < 1) { + el = null; + } else if (l == 1) { + el = el[0]; + } } - }); + // return Event.detach.apply(Event, args); + } - // TODO: remove tmp pointer - return ret.length ? ret : this; - }; - } else { - Y.log('unable to add method: ' + name + ' to NodeList', 'warn', 'node'); - } -}; + if (!el) { + return false; + } -NodeList.importMethod = function(host, name, altName) { - if (typeof name === 'string') { - altName = altName || name; - NodeList.addMethod(name, host[name]); - } else { - Y.Array.each(name, function(n) { - NodeList.importMethod(host, n); - }); - } -}; + if (el.detach) { + args.splice(2, 1); + return el.detach.apply(el, args); + // The el argument can be an array of elements or element ids. + } else if (shouldIterate(el)) { + ok = true; + for (i=0, l=el.length; i
                              '); - NodeList._tempNode = tmp; - } + return ok; + } - tmp._node = node; - tmp._stateProxy = node; - return tmp; -}; + if (!type || !fn || !fn.call) { + return Event.purgeElement(el, false, type); + } -Y.mix(NodeList.prototype, { - /** - * Retrieves the Node instance at the given index. - * @method item - * - * @param {Number} index The index of the target Node. - * @return {Node} The Node instance at the given index. - */ - item: function(index) { - return Y.one((this._nodes || [])[index]); - }, + id = 'event:' + Y.stamp(el) + type; + ce = _wrappers[id]; - /** - * Applies the given function to each Node in the NodeList. - * @method each - * @param {Function} fn The function to apply. It receives 3 arguments: - * the current node instance, the node's index, and the NodeList instance - * @param {Object} context optional An optional context to apply the function with - * Default context is the current Node instance - * @chainable - */ - each: function(fn, context) { - var instance = this; - Y.Array.each(this._nodes, function(node, index) { - node = Y.one(node); - return fn.call(context || node, node, index, instance); - }); - return instance; - }, + if (ce) { + return ce.detach(fn); + } else { + return false; + } - batch: function(fn, context) { - var nodelist = this; + }, - Y.Array.each(this._nodes, function(node, index) { - var instance = Y.Node._instances[node[UID]]; - if (!instance) { - instance = NodeList._getTempNode(node); - } + /** + * Finds the event in the window object, the caller's arguments, or + * in the arguments of another method in the callstack. This is + * executed automatically for events registered through the event + * manager, so the implementer should not normally need to execute + * this function at all. + * @method getEvent + * @param {Event} e the event parameter from the handler + * @param {HTMLElement} el the element the listener was attached to + * @return {Event} the event + * @static + */ + getEvent: function(e, el, noFacade) { + var ev = e || win.event; - return fn.call(context || instance, instance, index, nodelist); - }); - return nodelist; - }, + return (noFacade) ? ev : + new Y.DOMEventFacade(ev, el, _wrappers['event:' + Y.stamp(el) + e.type]); + }, - /** - * Executes the function once for each node until a true value is returned. - * @method some - * @param {Function} fn The function to apply. It receives 3 arguments: - * the current node instance, the node's index, and the NodeList instance - * @param {Object} context optional An optional context to execute the function from. - * Default context is the current Node instance - * @return {Boolean} Whether or not the function returned true for any node. - */ - some: function(fn, context) { - var instance = this; - return Y.Array.some(this._nodes, function(node, index) { - node = Y.one(node); - context = context || node; - return fn.call(context, node, index, instance); - }); - }, + /** + * Generates an unique ID for the element if it does not already + * have one. + * @method generateId + * @param el the element to create the id for + * @return {string} the resulting id of the element + * @static + */ + generateId: function(el) { + return Y.DOM.generateID(el); + }, - /** - * Creates a documenFragment from the nodes bound to the NodeList instance - * @method toFrag - * @return Node a Node instance bound to the documentFragment - */ - toFrag: function() { - return Y.one(Y.DOM._nl2frag(this._nodes)); - }, + /** + * We want to be able to use getElementsByTagName as a collection + * to attach a group of events to. Unfortunately, different + * browsers return different types of collections. This function + * tests to determine if the object is array-like. It will also + * fail if the object is an array, but is empty. + * @method _isValidCollection + * @param o the object to test + * @return {boolean} true if the object is array-like and populated + * @deprecated was not meant to be used directly + * @static + * @private + */ + _isValidCollection: shouldIterate, - /** - * Returns the index of the node in the NodeList instance - * or -1 if the node isn't found. - * @method indexOf - * @param {Y.Node || DOMNode} node the node to search for - * @return {Int} the index of the node value or -1 if not found - */ - indexOf: function(node) { - return Y.Array.indexOf(this._nodes, Y.Node.getDOMNode(node)); - }, + /** + * hook up any deferred listeners + * @method _load + * @static + * @private + */ + _load: function(e) { + if (!_loadComplete) { + // Y.log('Load Complete', 'info', 'event'); + _loadComplete = true; - /** - * Filters the NodeList instance down to only nodes matching the given selector. - * @method filter - * @param {String} selector The selector to filter against - * @return {NodeList} NodeList containing the updated collection - * @see Selector - */ - filter: function(selector) { - return Y.all(Y.Selector.filter(this._nodes, selector)); - }, + // Just in case DOMReady did not go off for some reason + // E._ready(); + if (Y.fire) { + Y.fire(EVENT_READY); + } + // Available elements may not have been detected before the + // window load event fires. Try to find them now so that the + // the user is more likely to get the onAvailable notifications + // before the window load notification + Event._poll(); + } + }, - /** - * Creates a new NodeList containing all nodes at every n indices, where - * remainder n % index equals r. - * (zero-based index). - * @method modulus - * @param {Int} n The offset to use (return every nth node) - * @param {Int} r An optional remainder to use with the modulus operation (defaults to zero) - * @return {NodeList} NodeList containing the updated collection - */ - modulus: function(n, r) { - r = r || 0; - var nodes = []; - NodeList.each(this, function(node, i) { - if (i % n === r) { - nodes.push(node); + /** + * Polling function that runs before the onload event fires, + * attempting to attach to DOM Nodes as soon as they are + * available + * @method _poll + * @static + * @private + */ + _poll: function() { + if (Event.locked) { + return; } - }); - return Y.all(nodes); - }, + if (Y.UA.ie && !YUI.Env.DOMReady) { + // Hold off if DOMReady has not fired and check current + // readyState to protect against the IE operation aborted + // issue. + Event.startInterval(); + return; + } - /** - * Creates a new NodeList containing all nodes at odd indices - * (zero-based index). - * @method odd - * @return {NodeList} NodeList containing the updated collection - */ - odd: function() { - return this.modulus(2, 1); - }, + Event.locked = true; - /** - * Creates a new NodeList containing all nodes at even indices - * (zero-based index), including zero. - * @method even - * @return {NodeList} NodeList containing the updated collection - */ - even: function() { - return this.modulus(2); - }, + // Y.log.debug("poll"); + // keep trying until after the page is loaded. We need to + // check the page load state prior to trying to bind the + // elements so that we can be certain all elements have been + // tested appropriately + var i, len, item, el, notAvail, executeItem, + tryAgain = !_loadComplete; - destructor: function() { - }, + if (!tryAgain) { + tryAgain = (_retryCount > 0); + } - /** - * Reruns the initial query, when created using a selector query - * @method refresh - * @chainable - */ - refresh: function() { - var doc, - nodes = this._nodes, - query = this._query, - root = this._queryRoot; + // onAvailable + notAvail = []; - if (query) { - if (!root) { - if (nodes && nodes[0] && nodes[0].ownerDocument) { - root = nodes[0].ownerDocument; + executeItem = function (el, item) { + var context, ov = item.override; + if (item.compat) { + if (item.override) { + if (ov === true) { + context = item.obj; + } else { + context = ov; + } + } else { + context = el; + } + item.fn.call(context, item.obj); + } else { + context = item.obj || Y.one(el); + item.fn.apply(context, (Y.Lang.isArray(ov)) ? ov : []); + } + }; + + // onAvailable + for (i=0,len=_avail.length; i 1) { - str += '...[' + nodes.length + ' items]'; + /** + * Returns all listeners attached to the given element via addListener. + * Optionally, you can specify a specific type of event to return. + * @method getListeners + * @param el {HTMLElement|string} the element or element id to inspect + * @param type {string} optional type of listener to return. If + * left out, all listeners will be returned + * @return {Y.Custom.Event} the custom event wrapper for the DOM event(s) + * @static + */ + getListeners: function(el, type) { + var ek = Y.stamp(el, true), evts = _el_events[ek], + results=[] , key = (type) ? 'event:' + ek + type : null, + adapters = _eventenv.plugins; + + if (!evts) { + return null; } - } - return str || errorMsg; - }, - /** - * Returns the DOM node bound to the Node instance - * @method getDOMNodes - * @return {Array} - */ - getDOMNodes: function() { - return this._nodes; - } -}, true); + if (key) { + // look for synthetic events + if (adapters[type] && adapters[type].eventDef) { + key += '_synth'; + } -NodeList.importMethod(Y.Node.prototype, [ - /** - * Called on each Node instance - * @for NodeList - * @method append - * @see Node.append - */ - 'append', + if (evts[key]) { + results.push(evts[key]); + } - /** Called on each Node instance - * @method destroy - * @see Node.destroy - */ - 'destroy', + // get native events as well + key += 'native'; + if (evts[key]) { + results.push(evts[key]); + } - /** - * Called on each Node instance - * @method detach - * @see Node.detach - */ - 'detach', + } else { + Y.each(evts, function(v, k) { + results.push(v); + }); + } - /** Called on each Node instance - * @method detachAll - * @see Node.detachAll - */ - 'detachAll', + return (results.length) ? results : null; + }, - /** Called on each Node instance - * @method empty - * @see Node.empty - */ - 'empty', + /** + * Removes all listeners registered by pe.event. Called + * automatically during the unload event. + * @method _unload + * @static + * @private + */ + _unload: function(e) { + Y.each(_wrappers, function(v, k) { + if (v.type == 'unload') { + v.fire(e); + } + v.detachAll(); + }); + remove(win, "unload", onUnload); + }, - /** Called on each Node instance - * @method insert - * @see Node.insert - */ - 'insert', + /** + * Adds a DOM event directly without the caching, cleanup, context adj, etc + * + * @method nativeAdd + * @param {HTMLElement} el the element to bind the handler to + * @param {string} type the type of event handler + * @param {function} fn the callback to invoke + * @param {boolen} capture capture or bubble phase + * @static + * @private + */ + nativeAdd: add, - /** Called on each Node instance - * @method prepend - * @see Node.prepend - */ - 'prepend', + /** + * Basic remove listener + * + * @method nativeRemove + * @param {HTMLElement} el the element to bind the handler to + * @param {string} type the type of event handler + * @param {function} fn the callback to invoke + * @param {boolen} capture capture or bubble phase + * @static + * @private + */ + nativeRemove: remove + }; - /** Called on each Node instance - * @method remove - * @see Node.remove - */ - 'remove', +}(); - /** Called on each Node instance - * @method set - * @see Node.set - */ - 'set', +Y.Event = Event; - /** Called on each Node instance - * @method setContent - * @see Node.setContent - */ - 'setContent', - - /** - * Makes each node visible. - * If the "transition" module is loaded, show optionally - * animates the showing of the node using either the default - * transition effect ('fadeIn'), or the given named effect. - * @method show - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable - */ - 'show', - - /** - * Hides each node. - * If the "transition" module is loaded, hide optionally - * animates the hiding of the node using either the default - * transition effect ('fadeOut'), or the given named effect. - * @method hide - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable - */ - 'hide', - - 'toggleView' -]); - -// one-off implementation to convert array of Nodes to NodeList -// e.g. Y.all('input').get('parentNode'); +if (config.injected || YUI.Env.windowLoaded) { + onLoad(); +} else { + add(win, "load", onLoad); +} -/** Called on each Node instance - * @method get - * @see Node - */ -NodeList.prototype.get = function(attr) { - var ret = [], - nodes = this._nodes, - isNodeList = false, - getTemp = NodeList._getTempNode, - instance, - val; +// Process onAvailable/onContentReady items when when the DOM is ready in IE +if (Y.UA.ie) { + Y.on(EVENT_READY, Event._poll); +} - if (nodes[0]) { - instance = Y.Node._instances[nodes[0]._yuid] || getTemp(nodes[0]); - val = instance._get(attr); - if (val && val.nodeType) { - isNodeList = true; - } - } +add(win, "unload", onUnload); - Y.Array.each(nodes, function(node) { - instance = Y.Node._instances[node._yuid]; +Event.Custom = Y.CustomEvent; +Event.Subscriber = Y.Subscriber; +Event.Target = Y.EventTarget; +Event.Handle = Y.EventHandle; +Event.Facade = Y.EventFacade; - if (!instance) { - instance = getTemp(node); - } +Event._poll(); - val = instance._get(attr); - if (!isNodeList) { // convert array of Nodes to NodeList - val = Y.Node.scrubVal(val, instance); - } +})(); - ret.push(val); - }); +/** + * DOM event listener abstraction layer + * @module event + * @submodule event-base + */ - return (isNodeList) ? Y.all(ret) : ret; +/** + * Executes the callback as soon as the specified element + * is detected in the DOM. This function expects a selector + * string for the element(s) to detect. If you already have + * an element reference, you don't need this event. + * @event available + * @param type {string} 'available' + * @param fn {function} the callback function to execute. + * @param el {string} an selector for the element(s) to attach + * @param context optional argument that specifies what 'this' refers to. + * @param args* 0..n additional arguments to pass on to the callback function. + * These arguments will be added after the event object. + * @return {EventHandle} the detach handle + * @for YUI + */ +Y.Env.evt.plugins.available = { + on: function(type, fn, id, o) { + var a = arguments.length > 4 ? Y.Array(arguments, 4, true) : null; + return Y.Event.onAvailable.call(Y.Event, id, fn, o, a); + } }; -Y.NodeList = NodeList; - -Y.all = function(nodes) { - return new NodeList(nodes); +/** + * Executes the callback as soon as the specified element + * is detected in the DOM with a nextSibling property + * (indicating that the element's children are available). + * This function expects a selector + * string for the element(s) to detect. If you already have + * an element reference, you don't need this event. + * @event contentready + * @param type {string} 'contentready' + * @param fn {function} the callback function to execute. + * @param el {string} an selector for the element(s) to attach. + * @param context optional argument that specifies what 'this' refers to. + * @param args* 0..n additional arguments to pass on to the callback function. + * These arguments will be added after the event object. + * @return {EventHandle} the detach handle + * @for YUI + */ +Y.Env.evt.plugins.contentready = { + on: function(type, fn, id, o) { + var a = arguments.length > 4 ? Y.Array(arguments, 4, true) : null; + return Y.Event.onContentReady.call(Y.Event, id, fn, o, a); + } }; -Y.Node.all = Y.all; -Y.Array.each([ - /** - * Passes through to DOM method. - * @for Node - * @method removeChild - * @param {HTMLElement | Node} node Node to be removed - * @return {Node} The removed node - */ - 'removeChild', - /** - * Passes through to DOM method. - * @method hasChildNodes - * @return {Boolean} Whether or not the node has any childNodes - */ - 'hasChildNodes', - - /** - * Passes through to DOM method. - * @method cloneNode - * @param {Boolean} deep Whether or not to perform a deep clone, which includes - * subtree and attributes - * @return {Node} The clone - */ - 'cloneNode', +}, '3.4.0' ,{requires:['event-custom-base']}); +YUI.add('pluginhost-base', function(Y) { /** - * Passes through to DOM method. - * @method hasAttribute - * @param {String} attribute The attribute to test for - * @return {Boolean} Whether or not the attribute is present + * Provides the augmentable PluginHost interface, which can be added to any class. + * @module pluginhost */ - 'hasAttribute', /** - * Passes through to DOM method. - * @method removeAttribute - * @param {String} attribute The attribute to be removed - * @chainable + * Provides the augmentable PluginHost interface, which can be added to any class. + * @module pluginhost-base */ - 'removeAttribute', /** - * Passes through to DOM method. - * @method scrollIntoView - * @chainable + *

                              + * An augmentable class, which provides the augmented class with the ability to host plugins. + * It adds plug and unplug methods to the augmented class, which can + * be used to add or remove plugins from instances of the class. + *

                              + * + *

                              Plugins can also be added through the constructor configuration object passed to the host class' constructor using + * the "plugins" property. Supported values for the "plugins" property are those defined by the plug method. + * + * For example the following code would add the AnimPlugin and IOPlugin to Overlay (the plugin host): + *

                              + * var o = new Overlay({plugins: [ AnimPlugin, {fn:IOPlugin, cfg:{section:"header"}}]}); + * + *

                              + *

                              + * Plug.Host's protected _initPlugins and _destroyPlugins + * methods should be invoked by the host class at the appropriate point in the host's lifecyle. + *

                              + * + * @class Plugin.Host */ - 'scrollIntoView', - /** - * Passes through to DOM method. - * @method getElementsByTagName - * @param {String} tagName The tagName to collect - * @return {NodeList} A NodeList representing the HTMLCollection - */ - 'getElementsByTagName', + var L = Y.Lang; - /** - * Passes through to DOM method. - * @method focus - * @chainable - */ - 'focus', + function PluginHost() { + this._plugins = {}; + } - /** - * Passes through to DOM method. - * @method blur - * @chainable - */ - 'blur', + PluginHost.prototype = { - /** - * Passes through to DOM method. - * Only valid on FORM elements - * @method submit - * @chainable - */ - 'submit', + /** + * Adds a plugin to the host object. This will instantiate the + * plugin and attach it to the configured namespace on the host object. + * + * @method plug + * @chainable + * @param P {Function | Object |Array} Accepts the plugin class, or an + * object with a "fn" property specifying the plugin class and + * a "cfg" property specifying the configuration for the Plugin. + *

                              + * Additionally an Array can also be passed in, with the above function or + * object values, allowing the user to add multiple plugins in a single call. + *

                              + * @param config (Optional) If the first argument is the plugin class, the second argument + * can be the configuration for the plugin. + * @return {Base} A reference to the host object + */ + plug: function(Plugin, config) { + var i, ln, ns; - /** - * Passes through to DOM method. - * Only valid on FORM elements - * @method reset - * @chainable - */ - 'reset', + if (L.isArray(Plugin)) { + for (i = 0, ln = Plugin.length; i < ln; i++) { + this.plug(Plugin[i]); + } + } else { + if (Plugin && !L.isFunction(Plugin)) { + config = Plugin.cfg; + Plugin = Plugin.fn; + } - /** - * Passes through to DOM method. - * @method select - * @chainable - */ - 'select', - - /** - * Passes through to DOM method. - * Only valid on TABLE elements - * @method createCaption - * @chainable - */ - 'createCaption' - -], function(method) { - Y.log('adding: ' + method, 'info', 'node'); - Y.Node.prototype[method] = function(arg1, arg2, arg3) { - var ret = this.invoke(method, arg1, arg2, arg3); - return ret; - }; -}); - -Y.Node.importMethod(Y.DOM, [ - /** - * Determines whether the node is an ancestor of another HTML element in the DOM hierarchy. - * @method contains - * @param {Node | HTMLElement} needle The possible node or descendent - * @return {Boolean} Whether or not this node is the needle its ancestor - */ - 'contains', - /** - * Allows setting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method setAttribute - * @for Node - * @for NodeList - * @chainable - * @param {string} name The attribute name - * @param {string} value The value to set - */ - 'setAttribute', - /** - * Allows getting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method getAttribute - * @for Node - * @for NodeList - * @param {string} name The attribute name - * @return {string} The attribute value - */ - 'getAttribute', - - /** - * Wraps the given HTML around the node. - * @method wrap - * @param {String} html The markup to wrap around the node. - * @chainable - */ - 'wrap', - - /** - * Removes the node's parent node. - * @method unwrap - * @chainable - */ - 'unwrap', + // Plugin should be fn by now + if (Plugin && Plugin.NS) { + ns = Plugin.NS; + + config = config || {}; + config.host = this; + + if (this.hasPlugin(ns)) { + // Update config + this[ns].setAttrs(config); + } else { + // Create new instance + this[ns] = new Plugin(config); + this._plugins[ns] = Plugin; + } + } + else { Y.log("Attempt to plug in an invalid plugin. Host:" + this + ", Plugin:" + Plugin); } + } + return this; + }, - /** - * Applies a unique ID to the node if none exists - * @method generateID - * @return {String} The existing or generated ID - */ - 'generateID' -]); + /** + * Removes a plugin from the host object. This will destroy the + * plugin instance and delete the namepsace from the host object. + * + * @method unplug + * @param {String | Function} plugin The namespace of the plugin, or the plugin class with the static NS namespace property defined. If not provided, + * all registered plugins are unplugged. + * @return {Base} A reference to the host object + * @chainable + */ + unplug: function(plugin) { + var ns = plugin, + plugins = this._plugins; + + if (plugin) { + if (L.isFunction(plugin)) { + ns = plugin.NS; + if (ns && (!plugins[ns] || plugins[ns] !== plugin)) { + ns = null; + } + } + + if (ns) { + if (this[ns]) { + this[ns].destroy(); + delete this[ns]; + } + if (plugins[ns]) { + delete plugins[ns]; + } + } + } else { + for (ns in this._plugins) { + if (this._plugins.hasOwnProperty(ns)) { + this.unplug(ns); + } + } + } + return this; + }, -Y.NodeList.importMethod(Y.Node.prototype, [ -/** - * Allows getting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method getAttribute - * @see Node - * @for NodeList - * @param {string} name The attribute name - * @return {string} The attribute value - */ + /** + * Determines if a plugin has plugged into this host. + * + * @method hasPlugin + * @param {String} ns The plugin's namespace + * @return {boolean} returns true, if the plugin has been plugged into this host, false otherwise. + */ + hasPlugin : function(ns) { + return (this._plugins[ns] && this[ns]); + }, - 'getAttribute', -/** - * Allows setting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method setAttribute - * @see Node - * @for NodeList - * @chainable - * @param {string} name The attribute name - * @param {string} value The value to set - */ - 'setAttribute', - -/** - * Allows for removing attributes on DOM nodes. - * This passes through to the DOM node, allowing for custom attributes. - * @method removeAttribute - * @see Node - * @for NodeList - * @param {string} name The attribute to remove - */ - 'removeAttribute', -/** - * Removes the parent node from node in the list. - * @method unwrap - * @chainable - */ - 'unwrap', -/** - * Wraps the given HTML around each node. - * @method wrap - * @param {String} html The markup to wrap around the node. - * @chainable - */ - 'wrap', + /** + * Initializes static plugins registered on the host (using the + * Base.plug static method) and any plugins passed to the + * instance through the "plugins" configuration property. + * + * @method _initPlugins + * @param {Config} config The configuration object with property name/value pairs. + * @private + */ + + _initPlugins: function(config) { + this._plugins = this._plugins || {}; -/** - * Applies a unique ID to each node if none exists - * @method generateID - * @return {String} The existing or generated ID - */ - 'generateID' -]); -(function(Y) { - var methods = [ - /** - * Determines whether each node has the given className. - * @method hasClass - * @for Node - * @param {String} className the class name to search for - * @return {Boolean} Whether or not the element has the specified class - */ - 'hasClass', + if (this._initConfigPlugins) { + this._initConfigPlugins(config); + } + }, - /** - * Adds a class name to each node. - * @method addClass - * @param {String} className the class name to add to the node's class attribute - * @chainable - */ - 'addClass', + /** + * Unplugs and destroys all plugins on the host + * @method _destroyPlugins + * @private + */ + _destroyPlugins: function() { + this.unplug(); + } + }; - /** - * Removes a class name from each node. - * @method removeClass - * @param {String} className the class name to remove from the node's class attribute - * @chainable - */ - 'removeClass', + Y.namespace("Plugin").Host = PluginHost; - /** - * Replace a class with another class for each node. - * If no oldClassName is present, the newClassName is simply added. - * @method replaceClass - * @param {String} oldClassName the class name to be replaced - * @param {String} newClassName the class name that will be replacing the old class name - * @chainable - */ - 'replaceClass', - /** - * If the className exists on the node it is removed, if it doesn't exist it is added. - * @method toggleClass - * @param {String} className the class name to be toggled - * @param {Boolean} force Option to force adding or removing the class. - * @chainable - */ - 'toggleClass' - ]; +}, '3.4.0' ,{requires:['yui-base']}); +YUI.add('pluginhost-config', function(Y) { - Y.Node.importMethod(Y.DOM, methods); /** - * Determines whether each node has the given className. - * @method hasClass - * @see Node.hasClass - * @for NodeList - * @param {String} className the class name to search for - * @return {Array} An array of booleans for each node bound to the NodeList. + * Adds pluginhost constructor configuration and static configuration support + * @submodule pluginhost-config */ - /** - * Adds a class name to each node. - * @method addClass - * @see Node.addClass - * @param {String} className the class name to add to the node's class attribute - * @chainable - */ + var PluginHost = Y.Plugin.Host, + L = Y.Lang; /** - * Removes a class name from each node. - * @method removeClass - * @see Node.removeClass - * @param {String} className the class name to remove from the node's class attribute - * @chainable + * A protected initialization method, used by the host class to initialize + * plugin configurations passed the constructor, through the config object. + * + * Host objects should invoke this method at the appropriate time in their + * construction lifecycle. + * + * @method _initConfigPlugins + * @param {Object} config The configuration object passed to the constructor + * @protected + * @for Plugin.Host */ + PluginHost.prototype._initConfigPlugins = function(config) { - /** - * Replace a class with another class for each node. - * If no oldClassName is present, the newClassName is simply added. - * @method replaceClass - * @see Node.replaceClass - * @param {String} oldClassName the class name to be replaced - * @param {String} newClassName the class name that will be replacing the old class name - * @chainable - */ - - /** - * If the className exists on the node it is removed, if it doesn't exist it is added. - * @method toggleClass - * @see Node.toggleClass - * @param {String} className the class name to be toggled - * @chainable - */ - Y.NodeList.importMethod(Y.Node.prototype, methods); -})(Y); - -if (!Y.config.doc.documentElement.hasAttribute) { // IE < 8 - Y.Node.prototype.hasAttribute = function(attr) { - if (attr === 'value') { - if (this.get('value') !== "") { // IE < 8 fails to populate specified when set in HTML - return true; - } - } - return !!(this._node.attributes[attr] && - this._node.attributes[attr].specified); - }; -} - -// IE throws an error when calling focus() on an element that's invisible, not -// displayed, or disabled. -Y.Node.prototype.focus = function () { - try { - this._node.focus(); - } catch (e) { - Y.log('error focusing node: ' + e.toString(), 'error', 'node'); - } - - return this; -}; - -// IE throws error when setting input.type = 'hidden', -// input.setAttribute('type', 'hidden') and input.attributes.type.value = 'hidden' -Y.Node.ATTRS.type = { - setter: function(val) { - if (val === 'hidden') { - try { - this._node.type = 'hidden'; - } catch(e) { - this.setStyle('display', 'none'); - this._inputType = 'hidden'; - } - } else { - try { // IE errors when changing the type from "hidden' - this._node.type = val; - } catch (e) { - Y.log('error setting type: ' + val, 'info', 'node'); - } - } - return val; - }, - - getter: function() { - return this._inputType || this._node.type; - }, - - _bypassProxy: true // don't update DOM when using with Attribute -}; - -if (Y.config.doc.createElement('form').elements.nodeType) { - // IE: elements collection is also FORM node which trips up scrubVal. - Y.Node.ATTRS.elements = { - getter: function() { - return this.all('input, textarea, button, select'); - } - }; -} - -Y.mix(Y.Node.ATTRS, { - offsetHeight: { - setter: function(h) { - Y.DOM.setHeight(this._node, h); - return h; - }, - - getter: function() { - return this._node.offsetHeight; - } - }, - - offsetWidth: { - setter: function(w) { - Y.DOM.setWidth(this._node, w); - return w; - }, - - getter: function() { - return this._node.offsetWidth; - } - } -}); - -Y.mix(Y.Node.prototype, { - sizeTo: function(w, h) { - var node; - if (arguments.length < 2) { - node = Y.one(w); - w = node.get('offsetWidth'); - h = node.get('offsetHeight'); - } - - this.setAttrs({ - offsetWidth: w, - offsetHeight: h - }); - } -}); -var Y_NodeList = Y.NodeList, - ArrayProto = Array.prototype, - ArrayMethods = { - /** Returns a new NodeList combining the given NodeList(s) - * @for NodeList - * @method concat - * @param {NodeList | Array} valueN Arrays/NodeLists and/or values to - * concatenate to the resulting NodeList - * @return {NodeList} A new NodeList comprised of this NodeList joined with the input. - */ - 'concat': 1, - /** Removes the first last from the NodeList and returns it. - * @for NodeList - * @method pop - * @return {Node} The last item in the NodeList. - */ - 'pop': 0, - /** Adds the given Node(s) to the end of the NodeList. - * @for NodeList - * @method push - * @param {Node | DOMNode} nodes One or more nodes to add to the end of the NodeList. - */ - 'push': 0, - /** Removes the first item from the NodeList and returns it. - * @for NodeList - * @method shift - * @return {Node} The first item in the NodeList. - */ - 'shift': 0, - /** Returns a new NodeList comprising the Nodes in the given range. - * @for NodeList - * @method slice - * @param {Number} begin Zero-based index at which to begin extraction. - As a negative index, start indicates an offset from the end of the sequence. slice(-2) extracts the second-to-last element and the last element in the sequence. - * @param {Number} end Zero-based index at which to end extraction. slice extracts up to but not including end. - slice(1,4) extracts the second element through the fourth element (elements indexed 1, 2, and 3). - As a negative index, end indicates an offset from the end of the sequence. slice(2,-1) extracts the third element through the second-to-last element in the sequence. - If end is omitted, slice extracts to the end of the sequence. - * @return {NodeList} A new NodeList comprised of this NodeList joined with the input. - */ - 'slice': 1, - /** Changes the content of the NodeList, adding new elements while removing old elements. - * @for NodeList - * @method splice - * @param {Number} index Index at which to start changing the array. If negative, will begin that many elements from the end. - * @param {Number} howMany An integer indicating the number of old array elements to remove. If howMany is 0, no elements are removed. In this case, you should specify at least one new element. If no howMany parameter is specified (second syntax above, which is a SpiderMonkey extension), all elements after index are removed. - * {Node | DOMNode| element1, ..., elementN - The elements to add to the array. If you don't specify any elements, splice simply removes elements from the array. - * @return {NodeList} The element(s) removed. - */ - 'splice': 1, - /** Adds the given Node(s) to the beginning of the NodeList. - * @for NodeList - * @method push - * @param {Node | DOMNode} nodes One or more nodes to add to the NodeList. - */ - 'unshift': 0 - }; - - -Y.Object.each(ArrayMethods, function(returnNodeList, name) { - Y_NodeList.prototype[name] = function() { - var args = [], - i = 0, - arg, - ret; - - while (typeof (arg = arguments[i++]) != 'undefined') { // use DOM nodes/nodeLists - args.push(arg._node || arg._nodes || arg); - } - - ret = ArrayProto[name].apply(this._nodes, args); - - if (returnNodeList) { - ret = Y.all(ret); - } else { - ret = Y.Node.scrubVal(ret); - } - - return ret; - }; -}); - - -}, '3.4.0' ,{requires:['dom-base', 'selector-css2', 'event-base']}); -YUI.add('node-style', function(Y) { - -(function(Y) { -/** - * Extended Node interface for managing node styles. - * @module node - * @submodule node-style - */ - -var methods = [ - /** - * Returns the style's current value. - * @method getStyle - * @for Node - * @param {String} attr The style attribute to retrieve. - * @return {String} The current value of the style property for the element. - */ - 'getStyle', - - /** - * Returns the computed value for the given style property. - * @method getComputedStyle - * @param {String} attr The style attribute to retrieve. - * @return {String} The computed value of the style property for the element. - */ - 'getComputedStyle', - - /** - * Sets a style property of the node. - * @method setStyle - * @param {String} attr The style attribute to set. - * @param {String|Number} val The value. - * @chainable - */ - 'setStyle', - - /** - * Sets multiple style properties on the node. - * @method setStyles - * @param {Object} hash An object literal of property:value pairs. - * @chainable - */ - 'setStyles' -]; -Y.Node.importMethod(Y.DOM, methods); -/** - * Returns an array of values for each node. - * @method getStyle - * @for NodeList - * @see Node.getStyle - * @param {String} attr The style attribute to retrieve. - * @return {Array} The current values of the style property for the element. - */ - -/** - * Returns an array of the computed value for each node. - * @method getComputedStyle - * @see Node.getComputedStyle - * @param {String} attr The style attribute to retrieve. - * @return {Array} The computed values for each node. - */ - -/** - * Sets a style property on each node. - * @method setStyle - * @see Node.setStyle - * @param {String} attr The style attribute to set. - * @param {String|Number} val The value. - * @chainable - */ - -/** - * Sets multiple style properties on each node. - * @method setStyles - * @see Node.setStyles - * @param {Object} hash An object literal of property:value pairs. - * @chainable - */ -Y.NodeList.importMethod(Y.Node.prototype, methods); -})(Y); - - -}, '3.4.0' ,{requires:['dom-style', 'node-base']}); -YUI.add('node-screen', function(Y) { - -/** - * Extended Node interface for managing regions and screen positioning. - * Adds support for positioning elements and normalizes window size and scroll detection. - * @module node - * @submodule node-screen - */ - -// these are all "safe" returns, no wrapping required -Y.each([ - /** - * Returns the inner width of the viewport (exludes scrollbar). - * @config winWidth - * @for Node - * @type {Int} - */ - 'winWidth', - - /** - * Returns the inner height of the viewport (exludes scrollbar). - * @config winHeight - * @type {Int} - */ - 'winHeight', - - /** - * Document width - * @config winHeight - * @type {Int} - */ - 'docWidth', - - /** - * Document height - * @config docHeight - * @type {Int} - */ - 'docHeight', - - /** - * Amount page has been scroll vertically - * @config docScrollX - * @type {Int} - */ - 'docScrollX', - - /** - * Amount page has been scroll horizontally - * @config docScrollY - * @type {Int} - */ - 'docScrollY' - ], - function(name) { - Y.Node.ATTRS[name] = { - getter: function() { - var args = Array.prototype.slice.call(arguments); - args.unshift(Y.Node.getDOMNode(this)); - - return Y.DOM[name].apply(this, args); - } - }; - } -); - -Y.Node.ATTRS.scrollLeft = { - getter: function() { - var node = Y.Node.getDOMNode(this); - return ('scrollLeft' in node) ? node.scrollLeft : Y.DOM.docScrollX(node); - }, - - setter: function(val) { - var node = Y.Node.getDOMNode(this); - if (node) { - if ('scrollLeft' in node) { - node.scrollLeft = val; - } else if (node.document || node.nodeType === 9) { - Y.DOM._getWin(node).scrollTo(val, Y.DOM.docScrollY(node)); // scroll window if win or doc - } - } else { - Y.log('unable to set scrollLeft for ' + node, 'error', 'Node'); - } - } -}; - -Y.Node.ATTRS.scrollTop = { - getter: function() { - var node = Y.Node.getDOMNode(this); - return ('scrollTop' in node) ? node.scrollTop : Y.DOM.docScrollY(node); - }, - - setter: function(val) { - var node = Y.Node.getDOMNode(this); - if (node) { - if ('scrollTop' in node) { - node.scrollTop = val; - } else if (node.document || node.nodeType === 9) { - Y.DOM._getWin(node).scrollTo(Y.DOM.docScrollX(node), val); // scroll window if win or doc - } - } else { - Y.log('unable to set scrollTop for ' + node, 'error', 'Node'); - } - } -}; - -Y.Node.importMethod(Y.DOM, [ -/** - * Gets the current position of the node in page coordinates. - * @method getXY - * @for Node - * @return {Array} The XY position of the node -*/ - 'getXY', - -/** - * Set the position of the node in page coordinates, regardless of how the node is positioned. - * @method setXY - * @param {Array} xy Contains X & Y values for new position (coordinates are page-based) - * @chainable - */ - 'setXY', - -/** - * Gets the current position of the node in page coordinates. - * @method getX - * @return {Int} The X position of the node -*/ - 'getX', - -/** - * Set the position of the node in page coordinates, regardless of how the node is positioned. - * @method setX - * @param {Int} x X value for new position (coordinates are page-based) - * @chainable - */ - 'setX', - -/** - * Gets the current position of the node in page coordinates. - * @method getY - * @return {Int} The Y position of the node -*/ - 'getY', - -/** - * Set the position of the node in page coordinates, regardless of how the node is positioned. - * @method setY - * @param {Int} y Y value for new position (coordinates are page-based) - * @chainable - */ - 'setY', - -/** - * Swaps the XY position of this node with another node. - * @method swapXY - * @param {Y.Node || HTMLElement} otherNode The node to swap with. - * @chainable - */ - 'swapXY' -]); - -/** - * Returns a region object for the node - * @config region - * @for Node - * @type Node - */ -Y.Node.ATTRS.region = { - getter: function() { - var node = this.getDOMNode(), - region; - - if (node && !node.tagName) { - if (node.nodeType === 9) { // document - node = node.documentElement; - } - } - if (Y.DOM.isWindow(node)) { - region = Y.DOM.viewportRegion(node); - } else { - region = Y.DOM.region(node); - } - return region; - } -}; - -/** - * Returns a region object for the node's viewport - * @config viewportRegion - * @type Node - */ -Y.Node.ATTRS.viewportRegion = { - getter: function() { - return Y.DOM.viewportRegion(Y.Node.getDOMNode(this)); - } -}; - -Y.Node.importMethod(Y.DOM, 'inViewportRegion'); - -// these need special treatment to extract 2nd node arg -/** - * Compares the intersection of the node with another node or region - * @method intersect - * @for Node - * @param {Node|Object} node2 The node or region to compare with. - * @param {Object} altRegion An alternate region to use (rather than this node's). - * @return {Object} An object representing the intersection of the regions. - */ -Y.Node.prototype.intersect = function(node2, altRegion) { - var node1 = Y.Node.getDOMNode(this); - if (Y.instanceOf(node2, Y.Node)) { // might be a region object - node2 = Y.Node.getDOMNode(node2); - } - return Y.DOM.intersect(node1, node2, altRegion); -}; - -/** - * Determines whether or not the node is within the giving region. - * @method inRegion - * @param {Node|Object} node2 The node or region to compare with. - * @param {Boolean} all Whether or not all of the node must be in the region. - * @param {Object} altRegion An alternate region to use (rather than this node's). - * @return {Object} An object representing the intersection of the regions. - */ -Y.Node.prototype.inRegion = function(node2, all, altRegion) { - var node1 = Y.Node.getDOMNode(this); - if (Y.instanceOf(node2, Y.Node)) { // might be a region object - node2 = Y.Node.getDOMNode(node2); - } - return Y.DOM.inRegion(node1, node2, all, altRegion); -}; - - -}, '3.4.0' ,{requires:['node-base', 'dom-screen']}); -YUI.add('node-pluginhost', function(Y) { - -/** - * Registers plugins to be instantiated at the class level (plugins - * which should be plugged into every instance of Node by default). - * - * @method Node.plug - * @static - * - * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) - * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin - */ -Y.Node.plug = function() { - var args = Y.Array(arguments); - args.unshift(Y.Node); - Y.Plugin.Host.plug.apply(Y.Base, args); - return Y.Node; -}; - -/** - * Unregisters any class level plugins which have been registered by the Node - * - * @method Node.unplug - * @static - * - * @param {Function | Array} plugin The plugin class, or an array of plugin classes - */ -Y.Node.unplug = function() { - var args = Y.Array(arguments); - args.unshift(Y.Node); - Y.Plugin.Host.unplug.apply(Y.Base, args); - return Y.Node; -}; - -Y.mix(Y.Node, Y.Plugin.Host, false, null, 1); - -// allow batching of plug/unplug via NodeList -// doesn't use NodeList.importMethod because we need real Nodes (not tmpNode) -Y.NodeList.prototype.plug = function() { - var args = arguments; - Y.NodeList.each(this, function(node) { - Y.Node.prototype.plug.apply(Y.one(node), args); - }); -}; - -Y.NodeList.prototype.unplug = function() { - var args = arguments; - Y.NodeList.each(this, function(node) { - Y.Node.prototype.unplug.apply(Y.one(node), args); - }); -}; - - -}, '3.4.0' ,{requires:['node-base', 'pluginhost']}); -YUI.add('node-event-delegate', function(Y) { - -/** - * Functionality to make the node a delegated event container - * @module node - * @submodule node-event-delegate - */ - -/** - *

                              Sets up a delegation listener for an event occurring inside the Node. - * The delegated event will be verified against a supplied selector or - * filtering function to test if the event references at least one node that - * should trigger the subscription callback.

                              - * - *

                              Selector string filters will trigger the callback if the event originated - * from a node that matches it or is contained in a node that matches it. - * Function filters are called for each Node up the parent axis to the - * subscribing container node, and receive at each level the Node and the event - * object. The function should return true (or a truthy value) if that Node - * should trigger the subscription callback. Note, it is possible for filters - * to match multiple Nodes for a single event. In this case, the delegate - * callback will be executed for each matching Node.

                              - * - *

                              For each matching Node, the callback will be executed with its 'this' - * object set to the Node matched by the filter (unless a specific context was - * provided during subscription), and the provided event's - * currentTarget will also be set to the matching Node. The - * containing Node from which the subscription was originally made can be - * referenced as e.container. - * - * @method delegate - * @param type {String} the event type to delegate - * @param fn {Function} the callback function to execute. This function - * will be provided the event object for the delegated event. - * @param spec {String|Function} a selector that must match the target of the - * event or a function to test target and its parents for a match - * @param context {Object} optional argument that specifies what 'this' refers to. - * @param args* {any} 0..n additional arguments to pass on to the callback function. - * These arguments will be added after the event object. - * @return {EventHandle} the detach handle - * @for Node - */ -Y.Node.prototype.delegate = function(type) { + // Class Configuration + var classes = (this._getClasses) ? this._getClasses() : [this.constructor], + plug = [], + unplug = {}, + constructor, i, classPlug, classUnplug, pluginClassName; - var args = Y.Array(arguments, 0, true), - index = (Y.Lang.isObject(type) && !Y.Lang.isArray(type)) ? 1 : 2; + // TODO: Room for optimization. Can we apply statically/unplug in same pass? + for (i = classes.length - 1; i >= 0; i--) { + constructor = classes[i]; - args.splice(index, 0, this._node); + classUnplug = constructor._UNPLUG; + if (classUnplug) { + // subclasses over-write + Y.mix(unplug, classUnplug, true); + } - return Y.delegate.apply(Y, args); -}; + classPlug = constructor._PLUG; + if (classPlug) { + // subclasses over-write + Y.mix(plug, classPlug, true); + } + } + for (pluginClassName in plug) { + if (plug.hasOwnProperty(pluginClassName)) { + if (!unplug[pluginClassName]) { + this.plug(plug[pluginClassName]); + } + } + } -}, '3.4.0' ,{requires:['node-base', 'event-delegate']}); + // User Configuration + if (config && config.plugins) { + this.plug(config.plugins); + } + }; + + /** + * Registers plugins to be instantiated at the class level (plugins + * which should be plugged into every instance of the class by default). + * + * @method Plugin.Host.plug + * @static + * + * @param {Function} hostClass The host class on which to register the plugins + * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) + * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin + */ + PluginHost.plug = function(hostClass, plugin, config) { + // Cannot plug into Base, since Plugins derive from Base [ will cause infinite recurrsion ] + var p, i, l, name; + + if (hostClass !== Y.Base) { + hostClass._PLUG = hostClass._PLUG || {}; + + if (!L.isArray(plugin)) { + if (config) { + plugin = {fn:plugin, cfg:config}; + } + plugin = [plugin]; + } + + for (i = 0, l = plugin.length; i < l;i++) { + p = plugin[i]; + name = p.NAME || p.fn.NAME; + hostClass._PLUG[name] = p; + } + } + }; + /** + * Unregisters any class level plugins which have been registered by the host class, or any + * other class in the hierarchy. + * + * @method Plugin.Host.unplug + * @static + * + * @param {Function} hostClass The host class from which to unregister the plugins + * @param {Function | Array} plugin The plugin class, or an array of plugin classes + */ + PluginHost.unplug = function(hostClass, plugin) { + var p, i, l, name; + + if (hostClass !== Y.Base) { + hostClass._UNPLUG = hostClass._UNPLUG || {}; + + if (!L.isArray(plugin)) { + plugin = [plugin]; + } + + for (i = 0, l = plugin.length; i < l; i++) { + p = plugin[i]; + name = p.NAME; + if (!hostClass._PLUG[name]) { + hostClass._UNPLUG[name] = p; + } else { + delete hostClass._PLUG[name]; + } + } + } + }; -YUI.add('node', function(Y){}, '3.4.0' ,{skinnable:false, use:['node-base', 'node-style', 'node-screen', 'node-pluginhost', 'node-event-delegate']}); +}, '3.4.0' ,{requires:['pluginhost-base']}); YUI.add('event-delegate', function(Y) { /** @@ -18445,919 +14737,534 @@ delegate._applyFilter = function (filter, args, ce) { container = ce.el, // facadeless events in IE, have no e.currentTarget target = e.target || e.srcElement, match = [], - isContainer = false; - - // Resolve text nodes to their containing element - if (target.nodeType === 3) { - target = target.parentNode; - } - - // passing target as the first arg rather than leaving well enough alone - // making 'this' in the filter function refer to the target. This is to - // support bound filter functions. - args.unshift(target); - - if (isString(filter)) { - while (target) { - isContainer = (target === container); - if (selectorTest(target, filter, (isContainer ?null: container))) { - match.push(target); - } - - if (isContainer) { - break; - } - - target = target.parentNode; - } - } else { - // filter functions are implementer code and should receive wrappers - args[0] = Y.one(target); - args[1] = new Y.DOMEventFacade(e, container, ce); - - while (target) { - // filter(target, e, extra args...) - this === target - if (filter.apply(args[0], args)) { - match.push(target); - } - - if (target === container) { - break; - } - - target = target.parentNode; - args[0] = Y.one(target); - } - args[1] = e; // restore the raw DOM event - } - - if (match.length <= 1) { - match = match[0]; // single match or undefined - } - - // remove the target - args.shift(); - - return match; -}; - -/** - * Sets up event delegation on a container element. The delegated event - * will use a supplied filter to test if the callback should be executed. - * This filter can be either a selector string or a function that returns - * a Node to use as the currentTarget for the event. - * - * The event object for the delegated event is supplied to the callback - * function. It is modified slightly in order to support all properties - * that may be needed for event delegation. 'currentTarget' is set to - * the element that matched the selector string filter or the Node returned - * from the filter function. 'container' is set to the element that the - * listener is delegated from (this normally would be the 'currentTarget'). - * - * Filter functions will be called with the arguments that would be passed to - * the callback function, including the event object as the first parameter. - * The function should return false (or a falsey value) if the success criteria - * aren't met, and the Node to use as the event's currentTarget and 'this' - * object if they are. - * - * @method delegate - * @param type {string} the event type to delegate - * @param fn {function} the callback function to execute. This function - * will be provided the event object for the delegated event. - * @param el {string|node} the element that is the delegation container - * @param filter {string|function} a selector that must match the target of the - * event or a function that returns a Node or false. - * @param context optional argument that specifies what 'this' refers to. - * @param args* 0..n additional arguments to pass on to the callback function. - * These arguments will be added after the event object. - * @return {EventHandle} the detach handle - * @for YUI - */ -Y.delegate = Y.Event.delegate = delegate; - - -}, '3.4.0' ,{requires:['node-base']}); -YUI.add('io-base', function(Y) { - - /** - * Base IO functionality. Provides basic XHR transport support. - * @module io - * @submodule io-base - */ - - /** - * The io class is a utility that brokers HTTP requests through a simplified - * interface. Specifically, it allows JavaScript to make HTTP requests to - * a resource without a page reload. The underlying transport for making - * same-domain requests is the XMLHttpRequest object. YUI.io can also use - * Flash, if specified as a transport, for cross-domain requests. - * - * @class io - */ - - /** - * @event io:start - * @description This event is fired by YUI.io when a transaction is initiated. - * @type Event Custom - */ - var E_START = 'io:start', - - /** - * @event io:complete - * @description This event is fired by YUI.io when a transaction is complete. - * Response status and data are accessible, if available. - * @type Event Custom - */ - E_COMPLETE = 'io:complete', - - /** - * @event io:success - * @description This event is fired by YUI.io when a transaction is complete, and - * the HTTP status resolves to HTTP2xx. - * @type Event Custom - */ - E_SUCCESS = 'io:success', - - /** - * @event io:failure - * @description This event is fired by YUI.io when a transaction is complete, and - * the HTTP status resolves to HTTP4xx, 5xx and above. - * @type Event Custom - */ - E_FAILURE = 'io:failure', - - /** - * @event io:end - * @description This event signifies the end of the transaction lifecycle. The - * transaction transport is destroyed. - * @type Event Custom - */ - E_END = 'io:end', - - //-------------------------------------- - // Properties - //-------------------------------------- - /** - * @description A transaction counter that increments for each transaction. - * - * @property transactionId - * @private - * @static - * @type int - */ - transactionId = 0, - - /** - * @description Object of default HTTP headers to be initialized and sent - * for all transactions. - * - * @property _headers - * @private - * @static - * @type object - */ - _headers = { - 'X-Requested-With' : 'XMLHttpRequest' - }, - - /** - * @description Object that stores timeout values for any transaction with - * a defined "timeout" configuration property. - * - * @property _timeout - * @private - * @static - * @type object - */ - _timeout = {}, - - // Window reference - w = Y.config.win; - - //-------------------------------------- - // Methods - //-------------------------------------- - - /** - * @description Method that creates the XMLHttpRequest transport - * - * @method _xhr - * @private - * @static - * @return object - */ - function _xhr() { - return w.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); - } - - /** - * @description Method that increments _transactionId for each transaction. - * - * @method _id - * @private - * @static - * @return int - */ - function _id() { - var id = transactionId; - - transactionId++; + isContainer = false; - return id; + // Resolve text nodes to their containing element + if (target.nodeType === 3) { + target = target.parentNode; } - /** - * @description Method that creates a unique transaction object for each - * request. - * - * @method _create - * @private - * @static - * @param {number} c - configuration object subset to determine if - * the transaction is an XDR or file upload, - * requiring an alternate transport. - * @param {number} i - transaction id - * @return object - */ - function _create(c, i) { - var o = {}; - o.id = Y.Lang.isNumber(i) ? i : _id(); - c = c || {}; - - if (!c.use && !c.upload) { - o.c = _xhr(); - } - else if (c.use) { - if (c.use === 'native') { - if (w.XDomainRequest) { - o.c = new XDomainRequest(); - o.t = c.use; - } - else { - o.c = _xhr(); - } + // passing target as the first arg rather than leaving well enough alone + // making 'this' in the filter function refer to the target. This is to + // support bound filter functions. + args.unshift(target); + + if (isString(filter)) { + while (target) { + isContainer = (target === container); + if (selectorTest(target, filter, (isContainer ?null: container))) { + match.push(target); } - else { - o.c = Y.io._transport[c.use]; - o.t = c.use; + + if (isContainer) { + break; } - } - else { - o.c = {}; - o.t = 'io:iframe'; - } - return o; - } + target = target.parentNode; + } + } else { + // filter functions are implementer code and should receive wrappers + args[0] = Y.one(target); + args[1] = new Y.DOMEventFacade(e, container, ce); + while (target) { + // filter(target, e, extra args...) - this === target + if (filter.apply(args[0], args)) { + match.push(target); + } - function _destroy(o) { - if (w) { - if (o.c && w.XMLHttpRequest) { - o.c.onreadystatechange = null; + if (target === container) { + break; } - else if (Y.UA.ie === 6 && !o.t) { - // IE, when using XMLHttpRequest as an ActiveX Object, will throw - // a "Type Mismatch" error if the event handler is set to "null". - o.c.abort(); - } + + target = target.parentNode; + args[0] = Y.one(target); } + args[1] = e; // restore the raw DOM event + } - o.c = null; - o = null; + if (match.length <= 1) { + match = match[0]; // single match or undefined } - /** - * @description Method for creating and subscribing transaction events. - * - * @method _tE - * @private - * @static - * @param {string} e - event to be published - * @param {object} c - configuration data subset for event subscription. - * - * @return void - */ - function _tE(e, c) { - var eT = new Y.EventTarget().publish('transaction:' + e), - cT = c.context || Y, - a = c.arguments; + // remove the target + args.shift(); - if (a) { - eT.on(c.on[e], cT, a); - } - else { - eT.on(c.on[e], cT); - } + return match; +}; - return eT; - } +/** + * Sets up event delegation on a container element. The delegated event + * will use a supplied filter to test if the callback should be executed. + * This filter can be either a selector string or a function that returns + * a Node to use as the currentTarget for the event. + * + * The event object for the delegated event is supplied to the callback + * function. It is modified slightly in order to support all properties + * that may be needed for event delegation. 'currentTarget' is set to + * the element that matched the selector string filter or the Node returned + * from the filter function. 'container' is set to the element that the + * listener is delegated from (this normally would be the 'currentTarget'). + * + * Filter functions will be called with the arguments that would be passed to + * the callback function, including the event object as the first parameter. + * The function should return false (or a falsey value) if the success criteria + * aren't met, and the Node to use as the event's currentTarget and 'this' + * object if they are. + * + * @method delegate + * @param type {string} the event type to delegate + * @param fn {function} the callback function to execute. This function + * will be provided the event object for the delegated event. + * @param el {string|node} the element that is the delegation container + * @param filter {string|function} a selector that must match the target of the + * event or a function that returns a Node or false. + * @param context optional argument that specifies what 'this' refers to. + * @param args* 0..n additional arguments to pass on to the callback function. + * These arguments will be added after the event object. + * @return {EventHandle} the detach handle + * @for YUI + */ +Y.delegate = Y.Event.delegate = delegate; - /** - * @description Fires event "io:start" and creates, fires a - * transaction-specific start event, if config.on.start is - * defined. - * - * @method _ioStart - * @private - * @static - * @param {number} id - transaction id - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioStart(id, c) { - var a = c.arguments; - if (a) { - Y.fire(E_START, id, a); - } - else { - Y.fire(E_START, id); - } +}, '3.4.0' ,{requires:['node-base']}); +YUI.add('node-event-delegate', function(Y) { - if (c.on && c.on.start) { - _tE('start', c).fire(id); - } - } +/** + * Functionality to make the node a delegated event container + * @module node + * @submodule node-event-delegate + */ + +/** + *

                              Sets up a delegation listener for an event occurring inside the Node. + * The delegated event will be verified against a supplied selector or + * filtering function to test if the event references at least one node that + * should trigger the subscription callback.

                              + * + *

                              Selector string filters will trigger the callback if the event originated + * from a node that matches it or is contained in a node that matches it. + * Function filters are called for each Node up the parent axis to the + * subscribing container node, and receive at each level the Node and the event + * object. The function should return true (or a truthy value) if that Node + * should trigger the subscription callback. Note, it is possible for filters + * to match multiple Nodes for a single event. In this case, the delegate + * callback will be executed for each matching Node.

                              + * + *

                              For each matching Node, the callback will be executed with its 'this' + * object set to the Node matched by the filter (unless a specific context was + * provided during subscription), and the provided event's + * currentTarget will also be set to the matching Node. The + * containing Node from which the subscription was originally made can be + * referenced as e.container. + * + * @method delegate + * @param type {String} the event type to delegate + * @param fn {Function} the callback function to execute. This function + * will be provided the event object for the delegated event. + * @param spec {String|Function} a selector that must match the target of the + * event or a function to test target and its parents for a match + * @param context {Object} optional argument that specifies what 'this' refers to. + * @param args* {any} 0..n additional arguments to pass on to the callback function. + * These arguments will be added after the event object. + * @return {EventHandle} the detach handle + * @for Node + */ +Y.Node.prototype.delegate = function(type) { + var args = Y.Array(arguments, 0, true), + index = (Y.Lang.isObject(type) && !Y.Lang.isArray(type)) ? 1 : 2; - /** - * @description Fires event "io:complete" and creates, fires a - * transaction-specific "complete" event, if config.on.complete is - * defined. - * - * @method _ioComplete - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioComplete(o, c) { - var r = o.e ? { status: 0, statusText: o.e } : o.c, - a = c.arguments; + args.splice(index, 0, this._node); - if (a) { - Y.fire(E_COMPLETE, o.id, r, a); - } - else { - Y.fire(E_COMPLETE, o.id, r); - } + return Y.delegate.apply(Y, args); +}; - if (c.on && c.on.complete) { - _tE('complete', c).fire(o.id, r); - } - } - /** - * @description Fires event "io:end" and creates, fires a - * transaction-specific "end" event, if config.on.end is - * defined. - * - * @method _ioEnd - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioEnd(o, c) { - var a = c.arguments; +}, '3.4.0' ,{requires:['node-base', 'event-delegate']}); +YUI.add('node-pluginhost', function(Y) { - if (a) { - Y.fire(E_END, o.id, a); - } - else { - Y.fire(E_END, o.id); - } +/** + * @module node + * @submodule node-pluginhost + */ - if (c.on && c.on.end) { - _tE('end', c).fire(o.id); - } +/** + * Registers plugins to be instantiated at the class level (plugins + * which should be plugged into every instance of Node by default). + * + * @method plug + * @static + * @for Node + * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) + * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin + */ +Y.Node.plug = function() { + var args = Y.Array(arguments); + args.unshift(Y.Node); + Y.Plugin.Host.plug.apply(Y.Base, args); + return Y.Node; +}; - _destroy(o); - } +/** + * Unregisters any class level plugins which have been registered by the Node + * + * @method unplug + * @static + * + * @param {Function | Array} plugin The plugin class, or an array of plugin classes + */ +Y.Node.unplug = function() { + var args = Y.Array(arguments); + args.unshift(Y.Node); + Y.Plugin.Host.unplug.apply(Y.Base, args); + return Y.Node; +}; - /** - * @description Fires event "io:success" and creates, fires a - * transaction-specific "success" event, if config.on.success is - * defined. - * - * @method _ioSuccess - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioSuccess(o, c) { - var a = c.arguments; +Y.mix(Y.Node, Y.Plugin.Host, false, null, 1); - if (a) { - Y.fire(E_SUCCESS, o.id, o.c, a); - } - else { - Y.fire(E_SUCCESS, o.id, o.c); - } +// allow batching of plug/unplug via NodeList +// doesn't use NodeList.importMethod because we need real Nodes (not tmpNode) +Y.NodeList.prototype.plug = function() { + var args = arguments; + Y.NodeList.each(this, function(node) { + Y.Node.prototype.plug.apply(Y.one(node), args); + }); +}; - if (c.on && c.on.success) { - _tE('success', c).fire(o.id, o.c); - } +Y.NodeList.prototype.unplug = function() { + var args = arguments; + Y.NodeList.each(this, function(node) { + Y.Node.prototype.unplug.apply(Y.one(node), args); + }); +}; - _ioEnd(o, c); - } - /** - * @description Fires event "io:failure" and creates, fires a - * transaction-specific "failure" event, if config.on.failure is - * defined. - * - * @method _ioFailure - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioFailure(o, c) { - var r = o.e ? { status: 0, statusText: o.e } : o.c, - a = c.arguments; +}, '3.4.0' ,{requires:['node-base', 'pluginhost']}); +YUI.add('node-screen', function(Y) { + +/** + * Extended Node interface for managing regions and screen positioning. + * Adds support for positioning elements and normalizes window size and scroll detection. + * @module node + * @submodule node-screen + */ + +// these are all "safe" returns, no wrapping required +Y.each([ + /** + * Returns the inner width of the viewport (exludes scrollbar). + * @config winWidth + * @for Node + * @type {Int} + */ + 'winWidth', + + /** + * Returns the inner height of the viewport (exludes scrollbar). + * @config winHeight + * @type {Int} + */ + 'winHeight', - if (a) { - Y.fire(E_FAILURE, o.id, r, a); - } - else { - Y.fire(E_FAILURE, o.id, r); - } + /** + * Document width + * @config winHeight + * @type {Int} + */ + 'docWidth', - if (c.on && c.on.failure) { - _tE('failure', c).fire(o.id, r); - } + /** + * Document height + * @config docHeight + * @type {Int} + */ + 'docHeight', - _ioEnd(o, c); - } + /** + * Pixel distance the page has been scrolled horizontally + * @config docScrollX + * @type {Int} + */ + 'docScrollX', - /** - * @description Resends an XDR transaction, using the Flash tranport, - * if the native transport fails. - * - * @method _resend - * @private - * @static + /** + * Pixel distance the page has been scrolled vertically + * @config docScrollY + * @type {Int} + */ + 'docScrollY' + ], + function(name) { + Y.Node.ATTRS[name] = { + getter: function() { + var args = Array.prototype.slice.call(arguments); + args.unshift(Y.Node.getDOMNode(this)); - * @param {object} o - Transaction object generated by _create(). - * @param {string} uri - qualified path to transaction resource. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _resend(o, uri, c, d) { - _destroy(o); - c.xdr.use = 'flash'; - // If the original request included serialized form data and - // additional data are defined in the configuration, it must - // be reset to prevent data duplication. - c.data = c.form && d ? d : null; - - return Y.io(uri, c, o.id); + return Y.DOM[name].apply(this, args); + } + }; } +); - /** - * @description Method that concatenates string data for HTTP GET transactions. - * - * @method _concat - * @private - * @static - * @param {string} s - URI or root data. - * @param {string} d - data to be concatenated onto URI. - * @return int - */ - function _concat(s, d) { - s += (s.indexOf('?') === -1 ? '?' : '&') + d; - return s; - } +Y.Node.ATTRS.scrollLeft = { + getter: function() { + var node = Y.Node.getDOMNode(this); + return ('scrollLeft' in node) ? node.scrollLeft : Y.DOM.docScrollX(node); + }, - /** - * @description Method that stores default client headers for all transactions. - * If a label is passed with no value argument, the header will be deleted. - * - * @method _setHeader - * @private - * @static - * @param {string} l - HTTP header - * @param {string} v - HTTP header value - * @return int - */ - function _setHeader(l, v) { - if (v) { - _headers[l] = v; - } - else { - delete _headers[l]; + setter: function(val) { + var node = Y.Node.getDOMNode(this); + if (node) { + if ('scrollLeft' in node) { + node.scrollLeft = val; + } else if (node.document || node.nodeType === 9) { + Y.DOM._getWin(node).scrollTo(val, Y.DOM.docScrollY(node)); // scroll window if win or doc + } + } else { + Y.log('unable to set scrollLeft for ' + node, 'error', 'Node'); } } +}; - /** - * @description Method that sets all HTTP headers to be sent in a transaction. - * - * @method _setHeaders - * @private - * @static - * @param {object} o - XHR instance for the specific transaction. - * @param {object} h - HTTP headers for the specific transaction, as defined - * in the configuration object passed to YUI.io(). - * @return void - */ - function _setHeaders(o, h) { - var p; - h = h || {}; - - for (p in _headers) { - if (_headers.hasOwnProperty(p)) { - if (!h[p]) { - h[p] = _headers[p]; - } - } - } +Y.Node.ATTRS.scrollTop = { + getter: function() { + var node = Y.Node.getDOMNode(this); + return ('scrollTop' in node) ? node.scrollTop : Y.DOM.docScrollY(node); + }, - for (p in h) { - if (h.hasOwnProperty(p)) { - if (h[p] !== 'disable') { - o.setRequestHeader(p, h[p]); - } - } + setter: function(val) { + var node = Y.Node.getDOMNode(this); + if (node) { + if ('scrollTop' in node) { + node.scrollTop = val; + } else if (node.document || node.nodeType === 9) { + Y.DOM._getWin(node).scrollTo(Y.DOM.docScrollX(node), val); // scroll window if win or doc + } + } else { + Y.log('unable to set scrollTop for ' + node, 'error', 'Node'); } } +}; - /** - * @description Terminates a transaction due to an explicit abort or - * timeout. - * - * @method _ioCancel - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {string} s - Identifies timed out or aborted transaction. - * - * @return void - */ - function _ioCancel(o, s) { - if (o && o.c) { - o.e = s; - o.c.abort(); - } - } +Y.Node.importMethod(Y.DOM, [ +/** + * Gets the current position of the node in page coordinates. + * @method getXY + * @for Node + * @return {Array} The XY position of the node +*/ + 'getXY', - /** - * @description Starts timeout count if the configuration object - * has a defined timeout property. - * - * @method _startTimeout - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {object} t - Timeout in milliseconds. - * @return void - */ - function _startTimeout(o, t) { - _timeout[o.id] = w.setTimeout(function() { _ioCancel(o, 'timeout'); }, t); - } +/** + * Set the position of the node in page coordinates, regardless of how the node is positioned. + * @method setXY + * @param {Array} xy Contains X & Y values for new position (coordinates are page-based) + * @chainable + */ + 'setXY', - /** - * @description Clears the timeout interval started by _startTimeout(). - * - * @method _clearTimeout - * @private - * @static - * @param {number} id - Transaction id. - * @return void - */ - function _clearTimeout(id) { - w.clearTimeout(_timeout[id]); - delete _timeout[id]; - } +/** + * Gets the current position of the node in page coordinates. + * @method getX + * @return {Int} The X position of the node +*/ + 'getX', - /** - * @description Method that determines if a transaction response qualifies - * as success or failure, based on the response HTTP status code, and - * fires the appropriate success or failure events. - * - * @method _handleResponse - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {object} c - Configuration object passed to io(). - * @return void - */ - function _handleResponse(o, c) { - var status = o.c.status; +/** + * Set the position of the node in page coordinates, regardless of how the node is positioned. + * @method setX + * @param {Int} x X value for new position (coordinates are page-based) + * @chainable + */ + 'setX', - // IE reports HTTP 204 as HTTP 1223. - if (status === 0 && o.c.responseText || status === 1223) { - status = 200; - } +/** + * Gets the current position of the node in page coordinates. + * @method getY + * @return {Int} The Y position of the node +*/ + 'getY', - if (status >= 200 && status < 300) { - _ioSuccess(o, c); - } - else { - _ioFailure(o, c); - } - } +/** + * Set the position of the node in page coordinates, regardless of how the node is positioned. + * @method setY + * @param {Int} y Y value for new position (coordinates are page-based) + * @chainable + */ + 'setY', - /** - * @description Event handler bound to onreadystatechange. - * - * @method _readyState - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {object} c - Configuration object passed to YUI.io(). - * @return void - */ - function _readyState(o, c) { - if (o.c.readyState === 4) { - if (c.timeout) { - _clearTimeout(o.id); - } +/** + * Swaps the XY position of this node with another node. + * @method swapXY + * @param {Y.Node || HTMLElement} otherNode The node to swap with. + * @chainable + */ + 'swapXY' +]); - w.setTimeout( - function() { - _ioComplete(o, c); - _handleResponse(o, c); - }, 0); - } - } +/** + * @module node + * @submodule node-screen + */ - /** - * @description Method for requesting a transaction. _io() is implemented as - * yui.io(). Each transaction may include a configuration object. Its - * properties are: - * - * method: HTTP method verb (e.g., GET or POST). If this property is not - * not defined, the default value will be GET. - * - * data: This is the name-value string that will be sent as the transaction - * data. If the request is HTTP GET, the data become part of - * querystring. If HTTP POST, the data are sent in the message body. - * - * xdr: Defines the transport to be used for cross-domain requests. By - * setting this property, the transaction will use the specified - * transport instead of XMLHttpRequest. - * The properties are: - * { - * use: Specify the transport to be used: 'flash' and 'native' - * dataType: Set the value to 'XML' if that is the expected - * response content type. - * } - * - * - * form: This is a defined object used to process HTML form as data. The - * properties are: - * { - * id: Node object or id of HTML form. - * useDisabled: Boolean value to allow disabled HTML form field - * values to be sent as part of the data. - * } - * - * on: This is a defined object used to create and handle specific - * events during a transaction lifecycle. These events will fire in - * addition to the global io events. The events are: - * start - This event is fired when a request is sent to a resource. - * complete - This event fires when the transaction is complete. - * success - This event fires when the response status resolves to - * HTTP 2xx. - * failure - This event fires when the response status resolves to - * HTTP 4xx, 5xx; and, for all transaction exceptions, - * including aborted transactions and transaction timeouts. - * end - This even is fired at the conclusion of the transaction - * lifecycle, after a success or failure resolution. - * - * The properties are: - * { - * start: function(id, arguments){}, - * complete: function(id, responseobject, arguments){}, - * success: function(id, responseobject, arguments){}, - * failure: function(id, responseobject, arguments){}, - * end: function(id, arguments){} - * } - * Each property can reference a function or be written as an - * inline function. - * - * sync: To enable synchronous transactions, set the configuration property - * "sync" to true; the default behavior is false. Synchronous - * transactions are limited to same-domain requests only. - * - * context: Object reference for all defined transaction event handlers - * when it is implemented as a method of a base object. Defining - * "context" will set the reference of "this," used in the - * event handlers, to the context value. In the case where - * different event handlers all have different contexts, - * use Y.bind() to set the execution context, bypassing this - * configuration. - * - * headers: This is a defined object of client headers, as many as. - * desired for the transaction. The object pattern is: - * { 'header': 'value' }. - * - * timeout: This value, defined as milliseconds, is a time threshold for the - * transaction. When this threshold is reached, and the transaction's - * Complete event has not yet fired, the transaction will be aborted. - * - * arguments: Object, array, string, or number passed to all registered - * event handlers. This value is available as the second - * argument in the "start" and "abort" event handlers; and, it is - * the third argument in the "complete", "success", and "failure" - * event handlers. - * - * @method _io - * @private - * @static - * @param {string} uri - qualified path to transaction resource. - * @param {object} c - configuration object for the transaction. - * @param {number} i - transaction id, if already set. - * @return object - */ - function _io(uri, c, i) { - var f, o, d, m, r, s, oD, a, j, usr, pwd, - u = uri; - c = Y.Object(c) || {}; - o = _create(c.xdr || c.form, i); - usr = c.username || null; - pwd = c.password || null; - m = c.method ? c.method = c.method.toUpperCase() : c.method = 'GET'; - s = c.sync; - oD = c.data; - - // Serialize an object into a key-value string using - // querystring-stringify-simple. - c.data = (Y.Lang.isObject(c.data) && Y.QueryString) ? Y.QueryString.stringify(c.data) : c.data; - - if (c.form) { - if (c.form.upload) { - // This is a file upload transaction, calling - // upload() in io-upload-iframe. - return Y.io.upload(o, uri, c); - } - else { - // Serialize HTML form data into a key-value string. - f = Y.io._serialize(c.form, c.data); - if (m === 'POST' || m === 'PUT') { - c.data = f; - } - else if (m === 'GET') { - uri = _concat(uri, f); - } +/** + * Returns a region object for the node + * @config region + * @for Node + * @type Node + */ +Y.Node.ATTRS.region = { + getter: function() { + var node = this.getDOMNode(), + region; + + if (node && !node.tagName) { + if (node.nodeType === 9) { // document + node = node.documentElement; } } + if (Y.DOM.isWindow(node)) { + region = Y.DOM.viewportRegion(node); + } else { + region = Y.DOM.region(node); + } + return region; + } +}; - if (c.data) { - switch (m) { - case 'GET': - case 'HEAD': - case 'DELETE': - uri = _concat(uri, c.data); - c.data = null; - Y.log('HTTP' + m + ' with data. The querystring is: ' + uri, 'info', 'io'); - break; - case 'POST': - case 'PUT': - // If Content-Type is defined in the configuration object, or - // or as a default header, it will be used instead of - // 'application/x-www-form-urlencoded; charset=UTF-8' - c.headers = Y.merge({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, c.headers); - break; - } - } +/** + * Returns a region object for the node's viewport + * @config viewportRegion + * @type Node + */ +Y.Node.ATTRS.viewportRegion = { + getter: function() { + return Y.DOM.viewportRegion(Y.Node.getDOMNode(this)); + } +}; - if (o.t) { - // Cross-domain request or custom transport detected. - return Y.io.xdr(uri, o, c); - } +Y.Node.importMethod(Y.DOM, 'inViewportRegion'); - if (!s) { - o.c.onreadystatechange = function() { _readyState(o, c); }; - } +// these need special treatment to extract 2nd node arg +/** + * Compares the intersection of the node with another node or region + * @method intersect + * @for Node + * @param {Node|Object} node2 The node or region to compare with. + * @param {Object} altRegion An alternate region to use (rather than this node's). + * @return {Object} An object representing the intersection of the regions. + */ +Y.Node.prototype.intersect = function(node2, altRegion) { + var node1 = Y.Node.getDOMNode(this); + if (Y.instanceOf(node2, Y.Node)) { // might be a region object + node2 = Y.Node.getDOMNode(node2); + } + return Y.DOM.intersect(node1, node2, altRegion); +}; - try { - // Determine if request is to be set as - // synchronous or asynchronous. - o.c.open(m, uri, s ? false : true, usr, pwd); - _setHeaders(o.c, c.headers); - _ioStart(o.id, c); - - // Will work only in browsers that implement the - // Cross-Origin Resource Sharing draft. - if (c.xdr && c.xdr.credentials) { - if (!Y.UA.ie) { - o.c.withCredentials = true; - } - } +/** + * Determines whether or not the node is within the giving region. + * @method inRegion + * @param {Node|Object} node2 The node or region to compare with. + * @param {Boolean} all Whether or not all of the node must be in the region. + * @param {Object} altRegion An alternate region to use (rather than this node's). + * @return {Object} An object representing the intersection of the regions. + */ +Y.Node.prototype.inRegion = function(node2, all, altRegion) { + var node1 = Y.Node.getDOMNode(this); + if (Y.instanceOf(node2, Y.Node)) { // might be a region object + node2 = Y.Node.getDOMNode(node2); + } + return Y.DOM.inRegion(node1, node2, all, altRegion); +}; - // Using "null" with HTTP POST will result in a request - // with no Content-Length header defined. - o.c.send(c.data || ''); - if (s) { - // Create a response object for synchronous transactions, - // merging ID and arguments fields into a single object. - d = o.c; - a = ['status', 'statusText', 'responseText', 'responseXML']; - r = c.arguments ? { id: o.id, arguments: c.arguments } : { id: o.id }; - r.getAllResponseHeaders = function() { return d.getAllResponseHeaders(); }; - r.getResponseHeader = function(h) { return d.getResponseHeader(h); }; +}, '3.4.0' ,{requires:['node-base', 'dom-screen']}); +YUI.add('node-style', function(Y) { - for (j = 0; j < 4; j++) { - r[a[j]] = o.c[a[j]]; - } +(function(Y) { +/** + * Extended Node interface for managing node styles. + * @module node + * @submodule node-style + */ - _ioComplete(o, c); - _handleResponse(o, c); +var methods = [ + /** + * Returns the style's current value. + * @method getStyle + * @for Node + * @param {String} attr The style attribute to retrieve. + * @return {String} The current value of the style property for the element. + */ + 'getStyle', - return r; - } - } - catch(e) { - if (c.xdr && c.xdr.use === 'native') { - // This exception is usually thrown by browsers - // that do not support XMLHttpRequest Level 2. - // Retry the request with the XDR transport set - // to 'flash'. If the Flash transport is not - // initialized or available, the transaction - // will resolve to a transport error. - return _resend(o, u, c, oD); - } - else { - _ioComplete(o, c); - _handleResponse(o, c); - } - } + /** + * Returns the computed value for the given style property. + * @method getComputedStyle + * @param {String} attr The style attribute to retrieve. + * @return {String} The computed value of the style property for the element. + */ + 'getComputedStyle', - // If config.timeout is defined, and the request is standard XHR, - // initialize timeout polling. - if (c.timeout) { - _startTimeout(o, c.timeout); - Y.log('Configuration timeout set to: ' + c.timeout, 'info', 'io'); - } + /** + * Sets a style property of the node. + * @method setStyle + * @param {String} attr The style attribute to set. + * @param {String|Number} val The value. + * @chainable + */ + 'setStyle', - return { - id: o.id, - abort: function() { - return o.c ? _ioCancel(o, 'abort') : false; - }, - isInProgress: function() { - return o.c ? o.c.readyState !== 4 && o.c.readyState !== 0 : false; - } - }; - } + /** + * Sets multiple style properties on the node. + * @method setStyles + * @param {Object} hash An object literal of property:value pairs. + * @chainable + */ + 'setStyles' +]; +Y.Node.importMethod(Y.DOM, methods); +/** + * Returns an array of values for each node. + * @method getStyle + * @for NodeList + * @see Node.getStyle + * @param {String} attr The style attribute to retrieve. + * @return {Array} The current values of the style property for the element. + */ - _io.start = _ioStart; - _io.complete = _ioComplete; - _io.success = _ioSuccess; - _io.failure = _ioFailure; - _io.end = _ioEnd; - _io._id = _id; - _io._timeout = _timeout; - - //-------------------------------------- - // Begin public interface definition - //-------------------------------------- - /** - * @description Method that stores default client headers for all transactions. - * If a label is passed with no value argument, the header will be deleted. - * This is the interface for _setHeader(). - * - * @method header - * @public - * @static - * @param {string} l - HTTP header - * @param {string} v - HTTP header value - * @return int - */ - _io.header = _setHeader; +/** + * Returns an array of the computed value for each node. + * @method getComputedStyle + * @see Node.getComputedStyle + * @param {String} attr The style attribute to retrieve. + * @return {Array} The computed values for each node. + */ - /** - * @description Method for requesting a transaction. This - * is the interface for _io(). - * - * @method io - * @public - * @static - * @param {string} uri - qualified path to transaction resource. - * @param {object} c - configuration object for the transaction. - * @return object - */ - Y.io = _io; - Y.io.http = _io; +/** + * Sets a style property on each node. + * @method setStyle + * @see Node.setStyle + * @param {String} attr The style attribute to set. + * @param {String|Number} val The value. + * @chainable + */ +/** + * Sets multiple style properties on each node. + * @method setStyles + * @see Node.setStyles + * @param {Object} hash An object literal of property:value pairs. + * @chainable + */ +Y.NodeList.importMethod(Y.Node.prototype, methods); +})(Y); -}, '3.4.0' ,{requires:['event-custom-base', 'querystring-stringify-simple']}); +}, '3.4.0' ,{requires:['dom-style', 'node-base']}); YUI.add('querystring-stringify-simple', function(Y) { /*global Y */ @@ -19419,6 +15326,675 @@ QueryString.stringify = function (obj, c) { }, '3.4.0' ,{requires:['yui-base']}); +YUI.add('io-base', function(Y) { + + /** + * Base IO functionality. Provides basic XHR transport support. + * @module io + * @submodule io-base + */ + + // Window reference + var L = Y.Lang, + // List of events that comprise the IO event lifecycle. + E = ['start', 'complete', 'end', 'success', 'failure'], + // Whitelist of used XHR response object properties. + P = ['status', 'statusText', 'responseText', 'responseXML'], + aH = 'getAllResponseHeaders', + oH = 'getResponseHeader', + w = Y.config.win, + xhr = w.XMLHttpRequest, + xdr = w.XDomainRequest, + _i = 0; + + /** + * The io class is a utility that brokers HTTP requests through a simplified + * interface. Specifically, it allows JavaScript to make HTTP requests to + * a resource without a page reload. The underlying transport for making + * same-domain requests is the XMLHttpRequest object. YUI.io can also use + * Flash, if specified as a transport, for cross-domain requests. + * + * @class IO + * @constructor + * @param {object} c - Object of EventTarget's publish method configurations + * used to configure IO's events. + */ + function IO (c) { + var io = this; + + io._uid = 'io:' + _i++; + io._init(c); + Y.io._map[io._uid] = io; + } + + IO.prototype = { + //-------------------------------------- + // Properties + //-------------------------------------- + + /** + * @description A counter that increments for each transaction. + * + * @property _id + * @private + * @type int + */ + _id: 0, + + /** + * @description Object of IO HTTP headers sent with each transaction. + * + * @property _headers + * @private + * @type object + */ + _headers: { + 'X-Requested-With' : 'XMLHttpRequest' + }, + + /** + * @description Object that stores timeout values for any transaction with + * a defined "timeout" configuration property. + * + * @property _timeout + * @private + * @type object + */ + _timeout: {}, + + //-------------------------------------- + // Methods + //-------------------------------------- + + _init: function(c) { + var io = this, i; + + io.cfg = c || {}; + + Y.augment(io, Y.EventTarget); + for (i = 0; i < 5; i++) { + // Publish IO global events with configurations, if any. + // IO global events are set to broadcast by default. + // These events use the "io:" namespace. + io.publish('io:' + E[i], Y.merge({ broadcast: 1 }, c)); + // Publish IO transaction events with configurations, if + // any. These events use the "io-trn:" namespace. + io.publish('io-trn:' + E[i], c); + } + }, + + /** + * @description Method that creates a unique transaction object for each + * request. + * + * @method _create + * @private + * @param {number} c - configuration object subset to determine if + * the transaction is an XDR or file upload, + * requiring an alternate transport. + * @param {number} i - transaction id + * @return object + */ + _create: function(c, i) { + var io = this, + o = { id: L.isNumber(i) ? i : io._id++, uid: io._uid }, + x = c.xdr, + u = x ? x.use : c.form && c.form.upload ? 'iframe' : 'xhr', + ie = (x && x.use === 'native' && xdr), + t = io._transport; + + switch (u) { + case 'native': + case 'xhr': + o.c = ie ? new xdr() : xhr ? new xhr() : new ActiveXObject('Microsoft.XMLHTTP'); + o.t = ie ? true : false; + break; + default: + o.c = t ? t[u] : {}; + o.t = true; + } + + return o; + }, + + _destroy: function(o) { + if (w) { + if (xhr && o.t === true) { + o.c.onreadystatechange = null; + } + else if (Y.UA.ie) { + // IE, when using XMLHttpRequest as an ActiveX Object, will throw + // a "Type Mismatch" error if the event handler is set to "null". + o.c.abort(); + } + } + + o.c = null; + o = null; + }, + + /** + * @description Method for creating and firing events. + * + * @method _evt + * @private + * @param {string} e - event to be published. + * @param {object} o - transaction object. + * @param {object} c - configuration data subset for event subscription. + * + * @return void + */ + _evt: function(e, o, c) { + var io = this, + a = c['arguments'], + eF = io.cfg.emitFacade, + // Use old-style parameters or use an Event Facade + p = eF ? [{ id: o.id, data: o.c, cfg: c, arguments: a }] : [o.id], + // IO Global events namespace. + gE = "io:" + e, + // IO Transaction events namespace. + tE = "io-trn:" + e; + + if (!eF) { + if (e === E[0] || e === E[2]) { + if (a) { + p.push(a); + } + } + else { + a ? p.push(o.c, a) : p.push(o.c); + } + } + + p.unshift(gE); + io.fire.apply(io, p); + if (c.on) { + p[0] = tE; + io.once(tE, c.on[e], c.context || Y); + io.fire.apply(io, p); + } + }, + + /** + * @description Fires event "io:start" and creates, fires a + * transaction-specific start event, if config.on.start is + * defined. + * + * @method start + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + start: function(o, c) { + this._evt(E[0], o, c); + }, + + /** + * @description Fires event "io:complete" and creates, fires a + * transaction-specific "complete" event, if config.on.complete is + * defined. + * + * @method complete + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + complete: function(o, c) { + this._evt(E[1], o, c); + }, + + /** + * @description Fires event "io:end" and creates, fires a + * transaction-specific "end" event, if config.on.end is + * defined. + * + * @method end + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + end: function(o, c) { + this._evt(E[2], o, c); + this._destroy(o); + }, + + /** + * @description Fires event "io:success" and creates, fires a + * transaction-specific "success" event, if config.on.success is + * defined. + * + * @method success + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + success: function(o, c) { + this._evt(E[3], o, c); + this.end(o, c); + }, + + /** + * @description Fires event "io:failure" and creates, fires a + * transaction-specific "failure" event, if config.on.failure is + * defined. + * + * @method failure + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + failure: function(o, c) { + this._evt(E[4], o, c); + this.end(o, c); + }, + + /** + * @description Retry an XDR transaction, using the Flash tranport, + * if the native transport fails. + * + * @method _retry + * @private + + * @param {object} o - Transaction object generated by _create(). + * @param {string} uri - qualified path to transaction resource. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + _retry: function(o, uri, c) { + this._destroy(o); + c.xdr.use = 'flash'; + return this.send(uri, c, o.id); + }, + + /** + * @description Method that concatenates string data for HTTP GET transactions. + * + * @method _concat + * @private + * @param {string} s - URI or root data. + * @param {string} d - data to be concatenated onto URI. + * @return int + */ + _concat: function(s, d) { + s += (s.indexOf('?') === -1 ? '?' : '&') + d; + return s; + }, + + /** + * @description Method that stores default client headers for all transactions. + * If a label is passed with no value argument, the header will be deleted. + * + * @method _setHeader + * @private + * @param {string} l - HTTP header + * @param {string} v - HTTP header value + * @return int + */ + setHeader: function(l, v) { + if (v) { + this._headers[l] = v; + } + else { + delete this._headers[l]; + } + }, + + /** + * @description Method that sets all HTTP headers to be sent in a transaction. + * + * @method _setHeaders + * @private + * @param {object} o - XHR instance for the specific transaction. + * @param {object} h - HTTP headers for the specific transaction, as defined + * in the configuration object passed to YUI.io(). + * @return void + */ + _setHeaders: function(o, h) { + h = Y.merge(this._headers, h); + Y.Object.each(h, function(v, p) { + if (v !== 'disable') { + o.setRequestHeader(p, h[p]); + } + }); + }, + + /** + * @description Starts timeout count if the configuration object + * has a defined timeout property. + * + * @method _startTimeout + * @private + * @param {object} o - Transaction object generated by _create(). + * @param {object} t - Timeout in milliseconds. + * @return void + */ + _startTimeout: function(o, t) { + var io = this; + io._timeout[o.id] = w.setTimeout(function() { io._abort(o, 'timeout'); }, t); + }, + + /** + * @description Clears the timeout interval started by _startTimeout(). + * + * @method _clearTimeout + * @private + * @param {number} id - Transaction id. + * @return void + */ + _clearTimeout: function(id) { + w.clearTimeout(this._timeout[id]); + delete this._timeout[id]; + }, + + /** + * @description Method that determines if a transaction response qualifies + * as success or failure, based on the response HTTP status code, and + * fires the appropriate success or failure events. + * + * @method _result + * @private + * @static + * @param {object} o - Transaction object generated by _create(). + * @param {object} c - Configuration object passed to io(). + * @return void + */ + _result: function(o, c) { + var s = o.c.status; + + // IE reports HTTP 204 as HTTP 1223. + if (s >= 200 && s < 300 || s === 1223) { + this.success(o, c); + } + else { + this.failure(o, c); + } + }, + + /** + * @description Event handler bound to onreadystatechange. + * + * @method _rS + * @private + * @param {object} o - Transaction object generated by _create(). + * @param {object} c - Configuration object passed to YUI.io(). + * @return void + */ + _rS: function(o, c) { + var io = this; + + if (o.c.readyState === 4) { + if (c.timeout) { + io._clearTimeout(o.id); + } + + // Yield in the event of request timeout or abort. + w.setTimeout(function() { io.complete(o, c); io._result(o, c); }, 0); + } + }, + + /** + * @description Terminates a transaction due to an explicit abort or + * timeout. + * + * @method _abort + * @private + * @param {object} o - Transaction object generated by _create(). + * @param {string} s - Identifies timed out or aborted transaction. + * + * @return void + */ + _abort: function(o, s) { + if (o && o.c) { + o.e = s; + o.c.abort(); + } + }, + + /** + * @description Method for requesting a transaction. send() is implemented as + * yui.io(). Each transaction may include a configuration object. Its + * properties are: + * + * method: HTTP method verb (e.g., GET or POST). If this property is not + * not defined, the default value will be GET. + * + * data: This is the name-value string that will be sent as the transaction + * data. If the request is HTTP GET, the data become part of + * querystring. If HTTP POST, the data are sent in the message body. + * + * xdr: Defines the transport to be used for cross-domain requests. By + * setting this property, the transaction will use the specified + * transport instead of XMLHttpRequest. + * The properties are: + * { + * use: Specify the transport to be used: 'flash' and 'native' + * dataType: Set the value to 'XML' if that is the expected + * response content type. + * } + * + * + * form: This is a defined object used to process HTML form as data. The + * properties are: + * { + * id: Node object or id of HTML form. + * useDisabled: Boolean value to allow disabled HTML form field + * values to be sent as part of the data. + * } + * + * on: This is a defined object used to create and handle specific + * events during a transaction lifecycle. These events will fire in + * addition to the global io events. The events are: + * start - This event is fired when a request is sent to a resource. + * complete - This event fires when the transaction is complete. + * success - This event fires when the response status resolves to + * HTTP 2xx. + * failure - This event fires when the response status resolves to + * HTTP 4xx, 5xx; and, for all transaction exceptions, + * including aborted transactions and transaction timeouts. + * end - This even is fired at the conclusion of the transaction + * lifecycle, after a success or failure resolution. + * + * The properties are: + * { + * start: function(id, arguments){}, + * complete: function(id, responseobject, arguments){}, + * success: function(id, responseobject, arguments){}, + * failure: function(id, responseobject, arguments){}, + * end: function(id, arguments){} + * } + * Each property can reference a function or be written as an + * inline function. + * + * sync: To enable synchronous transactions, set the configuration property + * "sync" to true. Synchronous requests are limited to same-domain + * requests only. + * + * context: Object reference for all defined transaction event handlers + * when it is implemented as a method of a base object. Defining + * "context" will set the reference of "this," used in the + * event handlers, to the context value. In the case where + * different event handlers all have different contexts, + * use Y.bind() to set the execution context, instead. + * + * headers: This is a defined object of client headers, as many as + * desired for this specific transaction. The object pattern is: + * { 'header': 'value' }. + * + * timeout: This value, defined as milliseconds, is a time threshold for the + * transaction. When this threshold is reached, and the transaction's + * Complete event has not yet fired, the transaction will be aborted. + * + * arguments: User-defined data passed to all registered event handlers. + * This value is available as the second argument in the "start" + * and "end" event handlers. It is the third argument in the + * "complete", "success", and "failure" event handlers. + * + * @method send + * @private + * @ + * @param {string} uri - qualified path to transaction resource. + * @param {object} c - configuration object for the transaction. + * @param {number} i - transaction id, if already set. + * @return object + */ + send: function(uri, c, i) { + var o, m, r, s, d, io = this, + u = uri; + c = c ? Y.Object(c) : {}; + o = io._create(c, i); + m = c.method ? c.method.toUpperCase() : 'GET'; + s = c.sync; + d = c.data; + + // Serialize an object into a key-value string using + // querystring-stringify-simple. + if (L.isObject(d)) { + d = Y.QueryString.stringify(d); + } + + if (c.form) { + if (c.form.upload) { + // This is a file upload transaction, calling + // upload() in io-upload-iframe. + return io.upload(o, uri, c); + } + else { + // Serialize HTML form data into a key-value string. + d = io._serialize(c.form, d); + } + } + + if (d) { + switch (m) { + case 'GET': + case 'HEAD': + case 'DELETE': + u = io._concat(u, d); + d = ''; + Y.log('HTTP' + m + ' with data. The querystring is: ' + u, 'info', 'io'); + break; + case 'POST': + case 'PUT': + // If Content-Type is defined in the configuration object, or + // or as a default header, it will be used instead of + // 'application/x-www-form-urlencoded; charset=UTF-8' + c.headers = Y.merge({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, c.headers); + break; + } + } + + if (o.t) { + // Cross-domain request or custom transport configured. + return io.xdr(u, o, c); + } + + if (!s) { + o.c.onreadystatechange = function() { io._rS(o, c); }; + } + + try { + // Determine if request is to be set as + // synchronous or asynchronous. + o.c.open(m, u, s ? false : true, c.username || null, c.password || null); + io._setHeaders(o.c, c.headers || {}); + io.start(o, c); + + // Will work only in browsers that implement the + // Cross-Origin Resource Sharing draft. + if (c.xdr && c.xdr.credentials) { + if (!Y.UA.ie) { + o.c.withCredentials = true; + } + } + + // Using "null" with HTTP POST will result in a request + // with no Content-Length header defined. + o.c.send(d); + + if (s) { + // Create a response object for synchronous transactions, + // mixing id and arguments properties with the xhr + // properties whitelist. + r = Y.mix({ id: o.id, 'arguments': c['arguments'] }, o.c, false, P); + r[aH] = function() { return o.c[aH](); }; + r[oH] = function(h) { return o.c[oH](h); }; + io.complete(o, c); + io._result(o, c); + + return r; + } + } + catch(e) { + if (o.t) { + // This exception is usually thrown by browsers + // that do not support XMLHttpRequest Level 2. + // Retry the request with the XDR transport set + // to 'flash'. If the Flash transport is not + // initialized or available, the transaction + // will resolve to a transport error. + return io._retry(o, uri, c); + } + else { + io.complete(o, c); + io._result(o, c); + } + } + + // If config.timeout is defined, and the request is standard XHR, + // initialize timeout polling. + if (c.timeout) { + io._startTimeout(o, c.timeout); + Y.log('Configuration timeout set to: ' + c.timeout, 'info', 'io'); + } + + return { + id: o.id, + abort: function() { + return o.c ? io._abort(o, 'abort') : false; + }, + isInProgress: function() { + return o.c ? o.c.readyState !== 4 && o.c.readyState !== 0 : false; + }, + io: io + }; + } + }; + + /** + * @description Method for requesting a transaction. + * + * @method io + * @public + * @static + * @param {string} u - qualified path to transaction resource. + * @param {object} c - configuration object for the transaction. + * @return object + */ + Y.io = function(u, c) { + // Calling IO through the static interface will use and reuse + // an instance of IO. + var o = Y.io._map['io:0'] || new IO(); + return o.send.apply(o, [u, c]); + }; + + Y.IO = IO; + // Map of all IO instances created. + Y.io._map = {}; + + + +}, '3.4.0' ,{requires:['event-custom-base', 'querystring-stringify-simple']}); YUI.add('json-parse', function(Y) { /** @@ -19471,8 +16047,7 @@ function fromGlobal(ref) { * @private */ var _JSON = fromGlobal('JSON'), - // Create an indirect reference to eval to allow for minification - _eval = fromGlobal('eval'), + Native = (Object.prototype.toString.call(_JSON) === '[object JSON]' && _JSON), useNative = !!Native, @@ -19604,7 +16179,7 @@ var _JSON = fromGlobal('JSON'), // Eval the text into a JavaScript data structure, apply any // reviver function, and return - return _revive( _eval('(' + s + ')'), reviver ); + return _revive( eval('(' + s + ')'), reviver ); } throw new SyntaxError('JSON.parse'); @@ -19649,7 +16224,7 @@ Y.JSON.useNativeParse = useNative; }, '3.4.0' ); -YUI.add('transition-native', function(Y) { +YUI.add('transition', function(Y) { /** * Provides the transition method for Node. @@ -19659,19 +16234,32 @@ YUI.add('transition-native', function(Y) { * @requires node-style */ -var TRANSITION = '-webkit-transition', - TRANSITION_CAMEL = 'WebkitTransition', - TRANSITION_PROPERTY_CAMEL = 'WebkitTransitionProperty', - TRANSITION_PROPERTY = '-webkit-transition-property', - TRANSITION_DURATION = '-webkit-transition-duration', - TRANSITION_TIMING_FUNCTION = '-webkit-transition-timing-function', - TRANSITION_DELAY = '-webkit-transition-delay', - TRANSITION_END = 'webkitTransitionEnd', - ON_TRANSITION_END = 'onwebkittransitionend', - TRANSFORM_CAMEL = 'WebkitTransform', +var CAMEL_VENDOR_PREFIX = '', + VENDOR_PREFIX = '', + DOCUMENT = Y.config.doc, + DOCUMENT_ELEMENT = 'documentElement', + TRANSITION = 'transition', + TRANSITION_CAMEL = 'Transition', + TRANSITION_PROPERTY_CAMEL, + TRANSITION_PROPERTY, + TRANSITION_DURATION, + TRANSITION_TIMING_FUNCTION, + TRANSITION_DELAY, + TRANSITION_END, + ON_TRANSITION_END, + TRANSFORM_CAMEL, EMPTY_OBJ = {}, + VENDORS = [ + 'Webkit', + 'Moz' + ], + + VENDOR_TRANSITION_END = { + Webkit: 'webkitTransitionEnd' + }, + /** * A class for constructing transition instances. * Adds the "transition" method to Node. @@ -19683,11 +16271,6 @@ Transition = function() { this.init.apply(this, arguments); }; -Transition.fx = {}; -Transition.toggles = {}; - -Transition._hasEnd = {}; - Transition._toCamel = function(property) { property = property.replace(/-([a-z])/gi, function(m0, m1) { return m1.toUpperCase(); @@ -19698,11 +16281,7 @@ Transition._toCamel = function(property) { Transition._toHyphen = function(property) { property = property.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g, function(m0, m1, m2, m3) { - var str = ''; - if (m1) { - str += '-' + m1.toLowerCase(); - } - str += m2; + var str = ((m1) ? '-' + m1.toLowerCase() : '') + m2; if (m3) { str += '-' + m3.toLowerCase(); @@ -19714,15 +16293,42 @@ Transition._toHyphen = function(property) { return property; }; - -Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; +Transition.SHOW_TRANSITION = 'fadeIn'; +Transition.HIDE_TRANSITION = 'fadeOut'; Transition.useNative = false; -if (TRANSITION in Y.config.doc.documentElement.style) { - Transition.useNative = true; - Transition.supported = true; // TODO: remove -} +Y.Array.each(VENDORS, function(val) { // then vendor specific + var property = val + TRANSITION_CAMEL; + if (property in DOCUMENT[DOCUMENT_ELEMENT].style) { + CAMEL_VENDOR_PREFIX = val; + VENDOR_PREFIX = Transition._toHyphen(val) + '-'; + + Transition.useNative = true; + Transition.supported = true; // TODO: remove + Transition._VENDOR_PREFIX = val; + } +}); + +TRANSITION_CAMEL = CAMEL_VENDOR_PREFIX + TRANSITION_CAMEL; +TRANSITION_PROPERTY_CAMEL = CAMEL_VENDOR_PREFIX + 'TransitionProperty'; +TRANSITION_PROPERTY = VENDOR_PREFIX + 'transition-property'; +TRANSITION_DURATION = VENDOR_PREFIX + 'transition-duration'; +TRANSITION_TIMING_FUNCTION = VENDOR_PREFIX + 'transition-timing-function'; +TRANSITION_DELAY = VENDOR_PREFIX + 'transition-delay'; +TRANSITION_END = 'transitionend'; +ON_TRANSITION_END = 'on' + CAMEL_VENDOR_PREFIX.toLowerCase() + 'transitionend'; + +TRANSITION_END = VENDOR_TRANSITION_END[CAMEL_VENDOR_PREFIX] || TRANSITION_END; + +TRANSFORM_CAMEL = CAMEL_VENDOR_PREFIX + 'Transform'; + +Transition.fx = {}; +Transition.toggles = {}; + +Transition._hasEnd = {}; + +Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; Y.Node.DOM_EVENTS[TRANSITION_END] = 1; @@ -19915,7 +16521,7 @@ Transition.prototype = { computed = getComputedStyle(node), attrs = Transition._nodeAttrs[uid], cssText = '', - cssTransition = computed[TRANSITION_PROPERTY], + cssTransition = computed[Transition._toCamel(TRANSITION_PROPERTY)], transitionText = TRANSITION_PROPERTY + ': ', duration = TRANSITION_DURATION + ': ', @@ -19928,9 +16534,9 @@ Transition.prototype = { // preserve existing transitions if (cssTransition !== 'all') { transitionText += cssTransition + ','; - duration += computed[TRANSITION_DURATION] + ','; - easing += computed[TRANSITION_TIMING_FUNCTION] + ','; - delay += computed[TRANSITION_DELAY] + ','; + duration += computed[Transition._toCamel(TRANSITION_DURATION)] + ','; + easing += computed[Transition._toCamel(TRANSITION_TIMING_FUNCTION)] + ','; + delay += computed[Transition._toCamel(TRANSITION_DELAY)] + ','; } @@ -19938,7 +16544,7 @@ Transition.prototype = { for (name in attrs) { hyphy = Transition._toHyphen(name); attr = attrs[name]; - if (attrs.hasOwnProperty(name) && attr.transition === anim) { + if ((attr = attrs[name]) && attr.transition === anim) { if (name in node.style) { // only native styles allowed duration += anim._prepDur(attr.duration) + ','; delay += anim._prepDur(attr.delay) + ','; @@ -19961,7 +16567,7 @@ Transition.prototype = { if (!Transition._hasEnd[uid]) { //anim._detach = Y.on(TRANSITION_END, anim._onNativeEnd, node); //node[ON_TRANSITION_END] = anim._onNativeEnd; - node.addEventListener(TRANSITION_END, anim._onNativeEnd, false); + node.addEventListener(TRANSITION_END, anim._onNativeEnd, ''); Transition._hasEnd[uid] = true; } @@ -20011,7 +16617,7 @@ Transition.prototype = { _endNative: function(name) { var node = this._node, - value = node.ownerDocument.defaultView.getComputedStyle(node, '')[TRANSITION_PROPERTY]; + value = node.ownerDocument.defaultView.getComputedStyle(node, '')[Transition._toCamel(TRANSITION_PROPERTY)]; if (typeof value === 'string') { value = value.replace(new RegExp('(?:^|,\\s)' + name + ',?'), ','); @@ -20057,15 +16663,18 @@ Transition.prototype = { }, destroy: function() { - var anim = this; + var anim = this, + node = anim._node; /* if (anim._detach) { anim._detach.detach(); } */ //anim._node[ON_TRANSITION_END] = null; - node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); - anim._node = null; + if (node) { + node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); + anim._node = null; + } } }; @@ -20149,7 +16758,7 @@ Y.Node.prototype.show = function(name, config, callback) { callback = config; config = name; } - name = this.SHOW_TRANSITION; + name = Transition.SHOW_TRANSITION; } this.transition(name, config, callback); } @@ -20181,7 +16790,7 @@ Y.Node.prototype.hide = function(name, config, callback) { callback = config; config = name; } - name = this.HIDE_TRANSITION; + name = Transition.HIDE_TRANSITION; } this.transition(name, config, callback); } else if (name && !Y.Transition) { Y.log('unable to transition hide; missing transition module', 'warn', 'node'); // end if on nex @@ -20327,352 +16936,489 @@ Transition.DEFAULT_TOGGLE = 'fade'; -}, '3.4.0' ,{requires:['node-base']}); -YUI.add('transition-timer', function(Y) { - -/* -* The Transition Utility provides an API for creating advanced transitions. -* @module transition -*/ +}, '3.4.0' ,{requires:['node-style']}); +YUI.add('selector-css2', function(Y) { -/* -* Provides the base Transition class, for animating numeric properties. -* -* @module transition -* @submodule transition-timer -*/ +/** + * The selector module provides helper methods allowing CSS2 Selectors to be used with DOM elements. + * @module dom + * @submodule selector-css2 + * @for Selector + */ +/** + * Provides helper methods for collecting and filtering DOM elements. + */ -var Transition = Y.Transition; +var PARENT_NODE = 'parentNode', + TAG_NAME = 'tagName', + ATTRIBUTES = 'attributes', + COMBINATOR = 'combinator', + PSEUDOS = 'pseudos', + + Selector = Y.Selector, + + SelectorCSS2 = { + _reRegExpTokens: /([\^\$\?\[\]\*\+\-\.\(\)\|\\])/, // TODO: move? + SORT_RESULTS: true, + _children: function(node, tag) { + var ret = node.children, + i, + children = [], + childNodes, + child; + + if (node.children && tag && node.children.tags) { + children = node.children.tags(tag); + } else if ((!ret && node[TAG_NAME]) || (ret && tag)) { // only HTMLElements have children + childNodes = ret || node.childNodes; + ret = []; + for (i = 0; (child = childNodes[i++]);) { + if (child.tagName) { + if (!tag || tag === child.tagName) { + ret.push(child); + } + } + } + } -Y.mix(Transition.prototype, { - _start: function() { - if (Transition.useNative) { - this._runNative(); - } else { - this._runTimer(); - } - }, + return ret || []; + }, - _runTimer: function() { - var anim = this; - anim._initAttrs(); + _re: { + attr: /(\[[^\]]*\])/g, + esc: /\\[:\[\]\(\)#\.\'\>+~"]/gi, + pseudos: /(\([^\)]*\))/g + }, - Transition._running[Y.stamp(anim)] = anim; - anim._startTime = new Date(); - Transition._startTimer(); - }, + /** + * Mapping of shorthand tokens to corresponding attribute selector + * @property shorthand + * @type object + */ + shorthand: { + '\\#(-?[_a-z0-9]+[-\\w\\uE000]*)': '[id=$1]', + '\\.(-?[_a-z]+[-\\w\\uE000]*)': '[className~=$1]' + }, - _endTimer: function() { - var anim = this; - delete Transition._running[Y.stamp(anim)]; - anim._startTime = null; - }, + /** + * List of operators and corresponding boolean functions. + * These functions are passed the attribute and the current node's value of the attribute. + * @property operators + * @type object + */ + operators: { + '': function(node, attr) { return Y.DOM.getAttribute(node, attr) !== ''; }, // Just test for existence of attribute + //'': '.+', + //'=': '^{val}$', // equality + '~=': '(?:^|\\s+){val}(?:\\s+|$)', // space-delimited + '|=': '^{val}-?' // optional hyphen-delimited + }, - _runFrame: function() { - var t = new Date() - this._startTime; - this._runAttrs(t); - }, + pseudos: { + 'first-child': function(node) { + return Y.Selector._children(node[PARENT_NODE])[0] === node; + } + }, - _runAttrs: function(time) { - var anim = this, - node = anim._node, - config = anim._config, - uid = Y.stamp(node), - attrs = Transition._nodeAttrs[uid], - customAttr = Transition.behaviors, - done = false, - allDone = false, - data, - name, - attribute, - setter, - elapsed, - delay, - d, - t, - i; + _bruteQuery: function(selector, root, firstOnly) { + var ret = [], + nodes = [], + tokens = Selector._tokenize(selector), + token = tokens[tokens.length - 1], + rootDoc = Y.DOM._getDoc(root), + child, + id, + className, + tagName; - for (name in attrs) { - attribute = attrs[name]; - if ((attribute && attribute.transition === anim)) { - d = attribute.duration; - delay = attribute.delay; - elapsed = (time - delay) / 1000; - t = time; - data = { - type: 'propertyEnd', - propertyName: name, - config: config, - elapsedTime: elapsed - }; - setter = (i in customAttr && 'set' in customAttr[i]) ? - customAttr[i].set : Transition.DEFAULT_SETTER; + // if we have an initial ID, set to root when in document + /* + if (tokens[0] && rootDoc === root && + (id = tokens[0].id) && + rootDoc.getElementById(id)) { + root = rootDoc.getElementById(id); + } + */ - done = (t >= d); + if (token) { + // prefilter nodes + id = token.id; + className = token.className; + tagName = token.tagName || '*'; + + if (root.getElementsByTagName) { // non-IE lacks DOM api on doc frags + // try ID first, unless no root.all && root not in document + // (root.all works off document, but not getElementById) + // TODO: move to allById? + if (id && (root.all || (root.nodeType === 9 || Y.DOM.inDoc(root)))) { + nodes = Y.DOM.allById(id, root); + // try className + } else if (className) { + nodes = root.getElementsByClassName(className); + } else { // default to tagName + nodes = root.getElementsByTagName(tagName); + } - if (t > d) { - t = d; + } else { // brute getElementsByTagName('*') + child = root.firstChild; + while (child) { + if (child.tagName) { // only collect HTMLElements + nodes.push(child); + } + child = child.nextSilbing || child.firstChild; + } + } + if (nodes.length) { + ret = Selector._filterNodes(nodes, tokens, firstOnly); } + } - if (!delay || time >= delay) { - setter(anim, name, attribute.from, attribute.to, t - delay, d - delay, - attribute.easing, attribute.unit); + return ret; + }, + + _filterNodes: function(nodes, tokens, firstOnly) { + var i = 0, + j, + len = tokens.length, + n = len - 1, + result = [], + node = nodes[0], + tmpNode = node, + getters = Y.Selector.getters, + operator, + combinator, + token, + path, + pass, + //FUNCTION = 'function', + value, + tests, + test; + + //do { + for (i = 0; (tmpNode = node = nodes[i++]);) { + n = len - 1; + path = null; + + testLoop: + while (tmpNode && tmpNode.tagName) { + token = tokens[n]; + tests = token.tests; + j = tests.length; + if (j && !pass) { + while ((test = tests[--j])) { + operator = test[1]; + if (getters[test[0]]) { + value = getters[test[0]](tmpNode, test[0]); + } else { + value = tmpNode[test[0]]; + // use getAttribute for non-standard attributes + if (value === undefined && tmpNode.getAttribute) { + value = tmpNode.getAttribute(test[0]); + } + } - if (done) { - delete attrs[name]; - anim._count--; + if ((operator === '=' && value !== test[2]) || // fast path for equality + (typeof operator !== 'string' && // protect against String.test monkey-patch (Moo) + operator.test && !operator.test(value)) || // regex test + (!operator.test && // protect against RegExp as function (webkit) + typeof operator === 'function' && !operator(tmpNode, test[0], test[2]))) { // function test + + // skip non element nodes or non-matching tags + if ((tmpNode = tmpNode[path])) { + while (tmpNode && + (!tmpNode.tagName || + (token.tagName && token.tagName !== tmpNode.tagName)) + ) { + tmpNode = tmpNode[path]; + } + } + continue testLoop; + } + } + } - if (config[name] && config[name].on && config[name].on.end) { - config[name].on.end.call(Y.one(node), data); + n--; // move to next token + // now that we've passed the test, move up the tree by combinator + if (!pass && (combinator = token.combinator)) { + path = combinator.axis; + tmpNode = tmpNode[path]; + + // skip non element nodes + while (tmpNode && !tmpNode.tagName) { + tmpNode = tmpNode[path]; } - //node.fire('transition:propertyEnd', data); + if (combinator.direct) { // one pass only + path = null; + } - if (!allDone && anim._count <= 0) { - allDone = true; - anim._end(elapsed); - anim._endTimer(); + } else { // success if we made it this far + result.push(node); + if (firstOnly) { + return result; } + break; } } + }// while (tmpNode = node = nodes[++i]); + node = tmpNode = null; + return result; + }, + + combinators: { + ' ': { + axis: 'parentNode' + }, + + '>': { + axis: 'parentNode', + direct: true + }, + + '+': { + axis: 'previousSibling', + direct: true } - } - }, + }, - _initAttrs: function() { - var anim = this, - customAttr = Transition.behaviors, - uid = Y.stamp(anim._node), - attrs = Transition._nodeAttrs[uid], - attribute, - duration, - delay, - easing, - val, - name, - mTo, - mFrom, - unit, begin, end; + _parsers: [ + { + name: ATTRIBUTES, + re: /^\uE003(-?[a-z]+[\w\-]*)+([~\|\^\$\*!=]=?)?['"]?([^\uE004'"]*)['"]?\uE004/i, + fn: function(match, token) { + var operator = match[2] || '', + operators = Selector.operators, + escVal = (match[3]) ? match[3].replace(/\\/g, '') : '', + test; - for (name in attrs) { - attribute = attrs[name]; - if (attrs.hasOwnProperty(name) && (attribute && attribute.transition === anim)) { - duration = attribute.duration * 1000; - delay = attribute.delay * 1000; - easing = attribute.easing; - val = attribute.value; + // add prefiltering for ID and CLASS + if ((match[1] === 'id' && operator === '=') || + (match[1] === 'className' && + Y.config.doc.documentElement.getElementsByClassName && + (operator === '~=' || operator === '='))) { + token.prefilter = match[1]; - // only allow supported properties - if (name in anim._node.style || name in Y.DOM.CUSTOM_STYLES) { - begin = (name in customAttr && 'get' in customAttr[name]) ? - customAttr[name].get(anim, name) : Transition.DEFAULT_GETTER(anim, name); - mFrom = Transition.RE_UNITS.exec(begin); - mTo = Transition.RE_UNITS.exec(val); + match[3] = escVal; - begin = mFrom ? mFrom[1] : begin; - end = mTo ? mTo[1] : val; - unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units + // escape all but ID for prefilter, which may run through QSA (via Dom.allById) + token[match[1]] = (match[1] === 'id') ? match[3] : escVal; - if (!unit && Transition.RE_DEFAULT_UNIT.test(name)) { - unit = Transition.DEFAULT_UNIT; } - if (typeof easing === 'string') { - if (easing.indexOf('cubic-bezier') > -1) { - easing = easing.substring(13, easing.length - 1).split(','); - } else if (Transition.easings[easing]) { - easing = Transition.easings[easing]; + // add tests + if (operator in operators) { + test = operators[operator]; + if (typeof test === 'string') { + match[3] = escVal.replace(Selector._reRegExpTokens, '\\$1'); + test = new RegExp(test.replace('{val}', match[3])); } + match[2] = test; + } + if (!token.last || token.prefilter !== match[1]) { + return match.slice(1); + } + } + }, + { + name: TAG_NAME, + re: /^((?:-?[_a-z]+[\w-]*)|\*)/i, + fn: function(match, token) { + var tag = match[1].toUpperCase(); + token.tagName = tag; + + if (tag !== '*' && (!token.last || token.prefilter)) { + return [TAG_NAME, '=', tag]; + } + if (!token.prefilter) { + token.prefilter = 'tagName'; + } + } + }, + { + name: COMBINATOR, + re: /^\s*([>+~]|\s)\s*/, + fn: function(match, token) { + } + }, + { + name: PSEUDOS, + re: /^:([\-\w]+)(?:\uE005['"]?([^\uE005]*)['"]?\uE006)*/i, + fn: function(match, token) { + var test = Selector[PSEUDOS][match[1]]; + if (test) { // reorder match array and unescape special chars for tests + if (match[2]) { + match[2] = match[2].replace(/\\/g, ''); + } + return [match[2], test]; + } else { // selector token not supported (possibly missing CSS3 module) + return false; } - - attribute.from = Number(begin); - attribute.to = Number(end); - attribute.unit = unit; - attribute.easing = easing; - attribute.duration = duration + delay; - attribute.delay = delay; - } else { - delete attrs[name]; - anim._count--; } } - } - }, - - destroy: function() { - this.detachAll(); - this._node = null; - } -}, true); - -Y.mix(Y.Transition, { - _runtimeAttrs: {}, - /* - * Regex of properties that should use the default unit. - * - * @property RE_DEFAULT_UNIT - * @static - */ - RE_DEFAULT_UNIT: /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i, + ], - /* - * The default unit to use with properties that pass the RE_DEFAULT_UNIT test. - * - * @property DEFAULT_UNIT - * @static - */ - DEFAULT_UNIT: 'px', + _getToken: function(token) { + return { + tagName: null, + id: null, + className: null, + attributes: {}, + combinator: null, + tests: [] + }; + }, - /* - * Time in milliseconds passed to setInterval for frame processing - * - * @property intervalTime - * @default 20 - * @static - */ - intervalTime: 20, + /** + Break selector into token units per simple selector. + Combinator is attached to the previous token. + */ + _tokenize: function(selector) { + selector = selector || ''; + selector = Selector._replaceShorthand(Y.Lang.trim(selector)); + var token = Selector._getToken(), // one token per simple selector (left selector holds combinator) + query = selector, // original query for debug report + tokens = [], // array of tokens + found = false, // whether or not any matches were found this pass + match, // the regex match + test, + i, parser; - /* - * Bucket for custom getters and setters - * - * @property behaviors - * @static - */ - behaviors: { - left: { - get: function(anim, attr) { - return Y.DOM._getAttrOffset(anim._node, attr); - } - } - }, + /* + Search for selector patterns, store, and strip them from the selector string + until no patterns match (invalid selector) or we run out of chars. - /* - * The default setter to use when setting object properties. - * - * @property DEFAULT_SETTER - * @static - */ - DEFAULT_SETTER: function(anim, att, from, to, elapsed, duration, fn, unit) { - from = Number(from); - to = Number(to); + Multiple attributes and pseudos are allowed, in any order. + for example: + 'form:first-child[type=button]:not(button)[lang|=en]' + */ + outer: + do { + found = false; // reset after full pass + for (i = 0; (parser = Selector._parsers[i++]);) { + if ( (match = parser.re.exec(selector)) ) { // note assignment + if (parser.name !== COMBINATOR ) { + token.selector = selector; + } + selector = selector.replace(match[0], ''); // strip current match from selector + if (!selector.length) { + token.last = true; + } - var node = anim._node, - val = Transition.cubicBezier(fn, elapsed / duration); + if (Selector._attrFilters[match[1]]) { // convert class to className, etc. + match[1] = Selector._attrFilters[match[1]]; + } - val = from + val[0] * (to - from); + test = parser.fn(match, token); + if (test === false) { // selector not supported + found = false; + break outer; + } else if (test) { + token.tests.push(test); + } - if (node) { - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - unit = unit || ''; - Y.DOM.setStyle(node, att, val + unit); - } - } else { - anim._end(); - } - }, + if (!selector.length || parser.name === COMBINATOR) { + tokens.push(token); + token = Selector._getToken(token); + if (parser.name === COMBINATOR) { + token.combinator = Y.Selector.combinators[match[1]]; + } + } + found = true; + } + } + } while (found && selector.length); - /* - * The default getter to use when getting object properties. - * - * @property DEFAULT_GETTER - * @static - */ - DEFAULT_GETTER: function(anim, att) { - var node = anim._node, - val = ''; + if (!found || selector.length) { // not fully parsed + Y.log('query: ' + query + ' contains unsupported token in: ' + selector, 'warn', 'Selector'); + tokens = []; + } + return tokens; + }, - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - val = Y.DOM.getComputedStyle(node, att); - } + _replaceShorthand: function(selector) { + var shorthand = Selector.shorthand, + esc = selector.match(Selector._re.esc), // pull escaped colon, brackets, etc. + attrs, + pseudos, + re, i, len; - return val; - }, + if (esc) { + selector = selector.replace(Selector._re.esc, '\uE000'); + } - _startTimer: function() { - if (!Transition._timer) { - Transition._timer = setInterval(Transition._runFrame, Transition.intervalTime); - } - }, + attrs = selector.match(Selector._re.attr); + pseudos = selector.match(Selector._re.pseudos); - _stopTimer: function() { - clearInterval(Transition._timer); - Transition._timer = null; - }, + if (attrs) { + selector = selector.replace(Selector._re.attr, '\uE001'); + } - /* - * Called per Interval to handle each animation frame. - * @method _runFrame - * @private - * @static - */ - _runFrame: function() { - var done = true, - anim; - for (anim in Transition._running) { - if (Transition._running[anim]._runFrame) { - done = false; - Transition._running[anim]._runFrame(); + if (pseudos) { + selector = selector.replace(Selector._re.pseudos, '\uE002'); } - } - if (done) { - Transition._stopTimer(); - } - }, - cubicBezier: function(p, t) { - var x0 = 0, - y0 = 0, - x1 = p[0], - y1 = p[1], - x2 = p[2], - y2 = p[3], - x3 = 1, - y3 = 0, + for (re in shorthand) { + if (shorthand.hasOwnProperty(re)) { + selector = selector.replace(new RegExp(re, 'gi'), shorthand[re]); + } + } - A = x3 - 3 * x2 + 3 * x1 - x0, - B = 3 * x2 - 6 * x1 + 3 * x0, - C = 3 * x1 - 3 * x0, - D = x0, - E = y3 - 3 * y2 + 3 * y1 - y0, - F = 3 * y2 - 6 * y1 + 3 * y0, - G = 3 * y1 - 3 * y0, - H = y0, + if (attrs) { + for (i = 0, len = attrs.length; i < len; ++i) { + selector = selector.replace(/\uE001/, attrs[i]); + } + } - x = (((A*t) + B)*t + C)*t + D, - y = (((E*t) + F)*t + G)*t + H; + if (pseudos) { + for (i = 0, len = pseudos.length; i < len; ++i) { + selector = selector.replace(/\uE002/, pseudos[i]); + } + } - return [x, y]; - }, + selector = selector.replace(/\[/g, '\uE003'); + selector = selector.replace(/\]/g, '\uE004'); - easings: { - ease: [0.25, 0, 1, 0.25], - linear: [0, 0, 1, 1], - 'ease-in': [0.42, 0, 1, 1], - 'ease-out': [0, 0, 0.58, 1], - 'ease-in-out': [0.42, 0, 0.58, 1] - }, + selector = selector.replace(/\(/g, '\uE005'); + selector = selector.replace(/\)/g, '\uE006'); - _running: {}, - _timer: null, + if (esc) { + for (i = 0, len = esc.length; i < len; ++i) { + selector = selector.replace('\uE000', esc[i]); + } + } - RE_UNITS: /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/ -}, true); + return selector; + }, -Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.right = Transition.behaviors.left; + _attrFilters: { + 'class': 'className', + 'for': 'htmlFor' + }, -Y.Transition = Transition; + getters: { + href: function(node, attr) { + return Y.DOM.getAttribute(node, attr); + } + } + }; +Y.mix(Y.Selector, SelectorCSS2, true); +Y.Selector.getters.src = Y.Selector.getters.rel = Y.Selector.getters.href; -}, '3.4.0' ,{requires:['transition-native', 'node-style']}); +// IE wants class with native queries +if (Y.Selector.useNative && Y.config.doc.querySelector) { + Y.Selector.shorthand['\\.(-?[_a-z]+[-\\w]*)'] = '[class~=$1]'; +} -YUI.add('transition', function(Y){}, '3.4.0' ,{use:['transition-native', 'transition-timer']}); +}, '3.4.0' ,{requires:['selector-native']}); YUI.add('selector-css3', function(Y) { /** @@ -20825,312 +17571,559 @@ Y.Selector.combinators['~'] = { }, '3.4.0' ,{requires:['selector-native', 'selector-css2']}); -YUI.add('dom-style-ie', function(Y) { +YUI.add('yui-log', function(Y) { -(function(Y) { -var HAS_LAYOUT = 'hasLayout', - PX = 'px', - FILTER = 'filter', - FILTERS = 'filters', - OPACITY = 'opacity', - AUTO = 'auto', +/** + * Provides console log capability and exposes a custom event for + * console implementations. This module is a `core` YUI module, it's documentation is located under the YUI class. + * + * @module yui + * @submodule yui-log + */ - BORDER_WIDTH = 'borderWidth', - BORDER_TOP_WIDTH = 'borderTopWidth', - BORDER_RIGHT_WIDTH = 'borderRightWidth', - BORDER_BOTTOM_WIDTH = 'borderBottomWidth', - BORDER_LEFT_WIDTH = 'borderLeftWidth', - WIDTH = 'width', - HEIGHT = 'height', - TRANSPARENT = 'transparent', - VISIBLE = 'visible', - GET_COMPUTED_STYLE = 'getComputedStyle', - UNDEFINED = undefined, - documentElement = Y.config.doc.documentElement, +var INSTANCE = Y, + LOGEVENT = 'yui:log', + UNDEFINED = 'undefined', + LEVELS = { debug: 1, + info: 1, + warn: 1, + error: 1 }; + +/** + * If the 'debug' config is true, a 'yui:log' event will be + * dispatched, which the Console widget and anything else + * can consume. If the 'useBrowserConsole' config is true, it will + * write to the browser console if available. YUI-specific log + * messages will only be present in the -debug versions of the + * JS files. The build system is supposed to remove log statements + * from the raw and minified versions of the files. + * + * @method log + * @for YUI + * @param {String} msg The message to log. + * @param {String} cat The log category for the message. Default + * categories are "info", "warn", "error", time". + * Custom categories can be used as well. (opt). + * @param {String} src The source of the the message (opt). + * @param {boolean} silent If true, the log event won't fire. + * @return {YUI} YUI instance. + */ +INSTANCE.log = function(msg, cat, src, silent) { + var bail, excl, incl, m, f, + Y = INSTANCE, + c = Y.config, + publisher = (Y.fire) ? Y : YUI.Env.globalEvents; + // suppress log message if the config is off or the event stack + // or the event call stack contains a consumer of the yui:log event + if (c.debug) { + // apply source filters + if (src) { + excl = c.logExclude; + incl = c.logInclude; + if (incl && !(src in incl)) { + bail = 1; + } else if (incl && (src in incl)) { + bail = !incl[src]; + } else if (excl && (src in excl)) { + bail = excl[src]; + } + } + if (!bail) { + if (c.useBrowserConsole) { + m = (src) ? src + ': ' + msg : msg; + if (Y.Lang.isFunction(c.logFn)) { + c.logFn.call(Y, msg, cat, src); + } else if (typeof console != UNDEFINED && console.log) { + f = (cat && console[cat] && (cat in LEVELS)) ? cat : 'log'; + console[f](m); + } else if (typeof opera != UNDEFINED) { + opera.postError(m); + } + } + + if (publisher && !silent) { + + if (publisher == Y && (!publisher.getEvent(LOGEVENT))) { + publisher.publish(LOGEVENT, { + broadcast: 2 + }); + } + + publisher.fire(LOGEVENT, { + msg: msg, + cat: cat, + src: src + }); + } + } + } + + return Y; +}; + +/** + * Write a system message. This message will be preserved in the + * minified and raw versions of the YUI files, unlike log statements. + * @method message + * @for YUI + * @param {String} msg The message to log. + * @param {String} cat The log category for the message. Default + * categories are "info", "warn", "error", time". + * Custom categories can be used as well. (opt). + * @param {String} src The source of the the message (opt). + * @param {boolean} silent If true, the log event won't fire. + * @return {YUI} YUI instance. + */ +INSTANCE.message = function() { + return INSTANCE.log.apply(INSTANCE, arguments); +}; + + +}, '3.4.0' ,{requires:['yui-base']}); +YUI.add('dump', function(Y) { + +/** + * Returns a simple string representation of the object or array. + * Other types of objects will be returned unprocessed. Arrays + * are expected to be indexed. Use object notation for + * associative arrays. + * + * If included, the dump method is added to the YUI instance. + * + * @module dump + */ + + var L = Y.Lang, + OBJ = '{...}', + FUN = 'f(){...}', + COMMA = ', ', + ARROW = ' => ', + + /** + * Returns a simple string representation of the object or array. + * Other types of objects will be returned unprocessed. Arrays + * are expected to be indexed. + * + * @method dump + * @param {Object} o The object to dump. + * @param {Number} d How deep to recurse child objects, default 3. + * @return {String} the dump result. + * @for YUI + */ + dump = function(o, d) { + var i, len, s = [], type = L.type(o); + + // Cast non-objects to string + // Skip dates because the std toString is what we want + // Skip HTMLElement-like objects because trying to dump + // an element will cause an unhandled exception in FF 2.x + if (!L.isObject(o)) { + return o + ''; + } else if (type == 'date') { + return o; + } else if (o.nodeType && o.tagName) { + return o.tagName + '#' + o.id; + } else if (o.document && o.navigator) { + return 'window'; + } else if (o.location && o.body) { + return 'document'; + } else if (type == 'function') { + return FUN; + } + + // dig into child objects the depth specifed. Default 3 + d = (L.isNumber(d)) ? d : 3; + + // arrays [1, 2, 3] + if (type == 'array') { + s.push('['); + for (i = 0, len = o.length; i < len; i = i + 1) { + if (L.isObject(o[i])) { + s.push((d > 0) ? L.dump(o[i], d - 1) : OBJ); + } else { + s.push(o[i]); + } + s.push(COMMA); + } + if (s.length > 1) { + s.pop(); + } + s.push(']'); + // regexp /foo/ + } else if (type == 'regexp') { + s.push(o.toString()); + // objects {k1 => v1, k2 => v2} + } else { + s.push('{'); + for (i in o) { + if (o.hasOwnProperty(i)) { + try { + s.push(i + ARROW); + if (L.isObject(o[i])) { + s.push((d > 0) ? L.dump(o[i], d - 1) : OBJ); + } else { + s.push(o[i]); + } + s.push(COMMA); + } catch (e) { + s.push('Error: ' + e.message); + } + } + } + if (s.length > 1) { + s.pop(); + } + s.push('}'); + } - testFeature = Y.Features.test, - addFeature = Y.Features.add, + return s.join(''); + }; - // TODO: unit-less lineHeight (e.g. 1.22) - re_unit = /^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i, + Y.dump = dump; + L.dump = dump; - isIE8 = (Y.UA.ie >= 8), - _getStyleObj = function(node) { - return node.currentStyle || node.style; - }, - ComputedStyle = { - CUSTOM_STYLES: {}, +}, '3.4.0' ); +YUI.add('transition-timer', function(Y) { - get: function(el, property) { - var value = '', - current; +/* +* The Transition Utility provides an API for creating advanced transitions. +* @module transition +*/ - if (el) { - current = _getStyleObj(el)[property]; +/* +* Provides the base Transition class, for animating numeric properties. +* +* @module transition +* @submodule transition-timer +*/ - if (property === OPACITY && Y.DOM.CUSTOM_STYLES[OPACITY]) { - value = Y.DOM.CUSTOM_STYLES[OPACITY].get(el); - } else if (!current || (current.indexOf && current.indexOf(PX) > -1)) { // no need to convert - value = current; - } else if (Y.DOM.IE.COMPUTED[property]) { // use compute function - value = Y.DOM.IE.COMPUTED[property](el, property); - } else if (re_unit.test(current)) { // convert to pixel - value = ComputedStyle.getPixel(el, property) + PX; - } else { - value = current; - } - } - return value; - }, +var Transition = Y.Transition; - sizeOffsets: { - width: ['Left', 'Right'], - height: ['Top', 'Bottom'], - top: ['Top'], - bottom: ['Bottom'] - }, +Y.mix(Transition.prototype, { + _start: function() { + if (Transition.useNative) { + this._runNative(); + } else { + this._runTimer(); + } + }, - getOffset: function(el, prop) { - var current = _getStyleObj(el)[prop], // value of "width", "top", etc. - capped = prop.charAt(0).toUpperCase() + prop.substr(1), // "Width", "Top", etc. - offset = 'offset' + capped, // "offsetWidth", "offsetTop", etc. - pixel = 'pixel' + capped, // "pixelWidth", "pixelTop", etc. - sizeOffsets = ComputedStyle.sizeOffsets[prop], - mode = el.ownerDocument.compatMode, - value = ''; + _runTimer: function() { + var anim = this; + anim._initAttrs(); - // IE pixelWidth incorrect for percent - // manually compute by subtracting padding and border from offset size - // NOTE: clientWidth/Height (size minus border) is 0 when current === AUTO so offsetHeight is used - // reverting to auto from auto causes position stacking issues (old impl) - if (current === AUTO || current.indexOf('%') > -1) { - value = el['offset' + capped]; + Transition._running[Y.stamp(anim)] = anim; + anim._startTime = new Date(); + Transition._startTimer(); + }, - if (mode !== 'BackCompat') { - if (sizeOffsets[0]) { - value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[0]); - value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[0] + 'Width', 1); - } + _endTimer: function() { + var anim = this; + delete Transition._running[Y.stamp(anim)]; + anim._startTime = null; + }, - if (sizeOffsets[1]) { - value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[1]); - value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[1] + 'Width', 1); - } - } + _runFrame: function() { + var t = new Date() - this._startTime; + this._runAttrs(t); + }, - } else { // use style.pixelWidth, etc. to convert to pixels - // need to map style.width to currentStyle (no currentStyle.pixelWidth) - if (!el.style[pixel] && !el.style[prop]) { - el.style[prop] = current; - } - value = el.style[pixel]; - - } - return value + PX; - }, + _runAttrs: function(time) { + var anim = this, + node = anim._node, + config = anim._config, + uid = Y.stamp(node), + attrs = Transition._nodeAttrs[uid], + customAttr = Transition.behaviors, + done = false, + allDone = false, + data, + name, + attribute, + setter, + elapsed, + delay, + d, + t, + i; - borderMap: { - thin: (isIE8) ? '1px' : '2px', - medium: (isIE8) ? '3px': '4px', - thick: (isIE8) ? '5px' : '6px' - }, + for (name in attrs) { + if ((attribute = attrs[name]) && attribute.transition === anim) { + d = attribute.duration; + delay = attribute.delay; + elapsed = (time - delay) / 1000; + t = time; + data = { + type: 'propertyEnd', + propertyName: name, + config: config, + elapsedTime: elapsed + }; - getBorderWidth: function(el, property, omitUnit) { - var unit = omitUnit ? '' : PX, - current = el.currentStyle[property]; + setter = (i in customAttr && 'set' in customAttr[i]) ? + customAttr[i].set : Transition.DEFAULT_SETTER; - if (current.indexOf(PX) < 0) { // look up keywords if a border exists - if (ComputedStyle.borderMap[current] && - el.currentStyle.borderStyle !== 'none') { - current = ComputedStyle.borderMap[current]; - } else { // otherwise no border (default is "medium") - current = 0; + done = (t >= d); + + if (t > d) { + t = d; } - } - return (omitUnit) ? parseFloat(current) : current; - }, - getPixel: function(node, att) { - // use pixelRight to convert to px - var val = null, - style = _getStyleObj(node), - styleRight = style.right, - current = style[att]; + if (!delay || time >= delay) { + setter(anim, name, attribute.from, attribute.to, t - delay, d - delay, + attribute.easing, attribute.unit); - node.style.right = current; - val = node.style.pixelRight; - node.style.right = styleRight; // revert + if (done) { + delete attrs[name]; + anim._count--; - return val; - }, + if (config[name] && config[name].on && config[name].on.end) { + config[name].on.end.call(Y.one(node), data); + } - getMargin: function(node, att) { - var val, - style = _getStyleObj(node); + //node.fire('transition:propertyEnd', data); - if (style[att] == AUTO) { - val = 0; - } else { - val = ComputedStyle.getPixel(node, att); - } - return val + PX; - }, + if (!allDone && anim._count <= 0) { + allDone = true; + anim._end(elapsed); + anim._endTimer(); + } + } + } - getVisibility: function(node, att) { - var current; - while ( (current = node.currentStyle) && current[att] == 'inherit') { // NOTE: assignment in test - node = node.parentNode; } - return (current) ? current[att] : VISIBLE; - }, + } + }, - getColor: function(node, att) { - var current = _getStyleObj(node)[att]; + _initAttrs: function() { + var anim = this, + customAttr = Transition.behaviors, + uid = Y.stamp(anim._node), + attrs = Transition._nodeAttrs[uid], + attribute, + duration, + delay, + easing, + val, + name, + mTo, + mFrom, + unit, begin, end; - if (!current || current === TRANSPARENT) { - Y.DOM.elementByAxis(node, 'parentNode', null, function(parent) { - current = _getStyleObj(parent)[att]; - if (current && current !== TRANSPARENT) { - node = parent; - return true; + for (name in attrs) { + if ((attribute = attrs[name]) && attribute.transition === anim) { + duration = attribute.duration * 1000; + delay = attribute.delay * 1000; + easing = attribute.easing; + val = attribute.value; + + // only allow supported properties + if (name in anim._node.style || name in Y.DOM.CUSTOM_STYLES) { + begin = (name in customAttr && 'get' in customAttr[name]) ? + customAttr[name].get(anim, name) : Transition.DEFAULT_GETTER(anim, name); + + mFrom = Transition.RE_UNITS.exec(begin); + mTo = Transition.RE_UNITS.exec(val); + + begin = mFrom ? mFrom[1] : begin; + end = mTo ? mTo[1] : val; + unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units + + if (!unit && Transition.RE_DEFAULT_UNIT.test(name)) { + unit = Transition.DEFAULT_UNIT; } - }); - } - return Y.Color.toRGB(current); - }, + if (typeof easing === 'string') { + if (easing.indexOf('cubic-bezier') > -1) { + easing = easing.substring(13, easing.length - 1).split(','); + } else if (Transition.easings[easing]) { + easing = Transition.easings[easing]; + } + } - getBorderColor: function(node, att) { - var current = _getStyleObj(node), - val = current[att] || current.color; - return Y.Color.toRGB(Y.Color.toHex(val)); + attribute.from = Number(begin); + attribute.to = Number(end); + attribute.unit = unit; + attribute.easing = easing; + attribute.duration = duration + delay; + attribute.delay = delay; + } else { + delete attrs[name]; + anim._count--; + } + } } }, - //fontSize: getPixelFont, - IEComputed = {}; - -addFeature('style', 'computedStyle', { - test: function() { - return 'getComputedStyle' in Y.config.win; + destroy: function() { + this.detachAll(); + this._node = null; } -}); +}, true); -addFeature('style', 'opacity', { - test: function() { - return 'opacity' in documentElement.style; - } -}); +Y.mix(Y.Transition, { + _runtimeAttrs: {}, + /* + * Regex of properties that should use the default unit. + * + * @property RE_DEFAULT_UNIT + * @static + */ + RE_DEFAULT_UNIT: /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i, -addFeature('style', 'filter', { - test: function() { - return 'filters' in documentElement; - } -}); + /* + * The default unit to use with properties that pass the RE_DEFAULT_UNIT test. + * + * @property DEFAULT_UNIT + * @static + */ + DEFAULT_UNIT: 'px', -// use alpha filter for IE opacity -if (!testFeature('style', 'opacity') && testFeature('style', 'filter')) { - Y.DOM.CUSTOM_STYLES[OPACITY] = { - get: function(node) { - var val = 100; - try { // will error if no DXImageTransform - val = node[FILTERS]['DXImageTransform.Microsoft.Alpha'][OPACITY]; + /* + * Time in milliseconds passed to setInterval for frame processing + * + * @property intervalTime + * @default 20 + * @static + */ + intervalTime: 20, - } catch(e) { - try { // make sure its in the document - val = node[FILTERS]('alpha')[OPACITY]; - } catch(err) { - Y.log('getStyle: IE opacity filter not found; returning 1', 'warn', 'dom-style'); - } + /* + * Bucket for custom getters and setters + * + * @property behaviors + * @static + */ + behaviors: { + left: { + get: function(anim, attr) { + return Y.DOM._getAttrOffset(anim._node, attr); } - return val / 100; - }, + } + }, - set: function(node, val, style) { - var current, - styleObj = _getStyleObj(node), - currentFilter = styleObj[FILTER]; + /* + * The default setter to use when setting object properties. + * + * @property DEFAULT_SETTER + * @static + */ + DEFAULT_SETTER: function(anim, att, from, to, elapsed, duration, fn, unit) { + from = Number(from); + to = Number(to); - style = style || node.style; - if (val === '') { // normalize inline style behavior - current = (OPACITY in styleObj) ? styleObj[OPACITY] : 1; // revert to original opacity - val = current; + var node = anim._node, + val = Transition.cubicBezier(fn, elapsed / duration); + + val = from + val[0] * (to - from); + + if (node) { + if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { + unit = unit || ''; + Y.DOM.setStyle(node, att, val + unit); } + } else { + anim._end(); + } + }, - if (typeof currentFilter == 'string') { // in case not appended - style[FILTER] = currentFilter.replace(/alpha([^)]*\))/gi, '') + - ((val < 1) ? 'alpha(' + OPACITY + '=' + val * 100 + ')' : ''); + /* + * The default getter to use when getting object properties. + * + * @property DEFAULT_GETTER + * @static + */ + DEFAULT_GETTER: function(anim, att) { + var node = anim._node, + val = ''; - if (!style[FILTER]) { - style.removeAttribute(FILTER); - } + if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { + val = Y.DOM.getComputedStyle(node, att); + } - if (!styleObj[HAS_LAYOUT]) { - style.zoom = 1; // needs layout - } - } + return val; + }, + + _startTimer: function() { + if (!Transition._timer) { + Transition._timer = setInterval(Transition._runFrame, Transition.intervalTime); } - }; -} + }, -try { - Y.config.doc.createElement('div').style.height = '-1px'; -} catch(e) { // IE throws error on invalid style set; trap common cases - Y.DOM.CUSTOM_STYLES.height = { - set: function(node, val, style) { - var floatVal = parseFloat(val); - if (floatVal >= 0 || val === 'auto' || val === '') { - style.height = val; - } else { - Y.log('invalid style value for height: ' + val, 'warn', 'dom-style'); + _stopTimer: function() { + clearInterval(Transition._timer); + Transition._timer = null; + }, + + /* + * Called per Interval to handle each animation frame. + * @method _runFrame + * @private + * @static + */ + _runFrame: function() { + var done = true, + anim; + for (anim in Transition._running) { + if (Transition._running[anim]._runFrame) { + done = false; + Transition._running[anim]._runFrame(); } } - }; - Y.DOM.CUSTOM_STYLES.width = { - set: function(node, val, style) { - var floatVal = parseFloat(val); - if (floatVal >= 0 || val === 'auto' || val === '') { - style.width = val; - } else { - Y.log('invalid style value for width: ' + val, 'warn', 'dom-style'); - } + if (done) { + Transition._stopTimer(); } - }; -} + }, -if (!testFeature('style', 'computedStyle')) { - // TODO: top, right, bottom, left - IEComputed[WIDTH] = IEComputed[HEIGHT] = ComputedStyle.getOffset; + cubicBezier: function(p, t) { + var x0 = 0, + y0 = 0, + x1 = p[0], + y1 = p[1], + x2 = p[2], + y2 = p[3], + x3 = 1, + y3 = 0, - IEComputed.color = IEComputed.backgroundColor = ComputedStyle.getColor; + A = x3 - 3 * x2 + 3 * x1 - x0, + B = 3 * x2 - 6 * x1 + 3 * x0, + C = 3 * x1 - 3 * x0, + D = x0, + E = y3 - 3 * y2 + 3 * y1 - y0, + F = 3 * y2 - 6 * y1 + 3 * y0, + G = 3 * y1 - 3 * y0, + H = y0, - IEComputed[BORDER_WIDTH] = IEComputed[BORDER_TOP_WIDTH] = IEComputed[BORDER_RIGHT_WIDTH] = - IEComputed[BORDER_BOTTOM_WIDTH] = IEComputed[BORDER_LEFT_WIDTH] = - ComputedStyle.getBorderWidth; + x = (((A*t) + B)*t + C)*t + D, + y = (((E*t) + F)*t + G)*t + H; - IEComputed.marginTop = IEComputed.marginRight = IEComputed.marginBottom = - IEComputed.marginLeft = ComputedStyle.getMargin; + return [x, y]; + }, - IEComputed.visibility = ComputedStyle.getVisibility; - IEComputed.borderColor = IEComputed.borderTopColor = - IEComputed.borderRightColor = IEComputed.borderBottomColor = - IEComputed.borderLeftColor = ComputedStyle.getBorderColor; + easings: { + ease: [0.25, 0, 1, 0.25], + linear: [0, 0, 1, 1], + 'ease-in': [0.42, 0, 1, 1], + 'ease-out': [0, 0, 0.58, 1], + 'ease-in-out': [0.42, 0, 0.58, 1] + }, - Y.DOM[GET_COMPUTED_STYLE] = ComputedStyle.get; + _running: {}, + _timer: null, - Y.namespace('DOM.IE'); - Y.DOM.IE.COMPUTED = IEComputed; - Y.DOM.IE.ComputedStyle = ComputedStyle; -} + RE_UNITS: /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/ +}, true); -})(Y); +Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.right = Transition.behaviors.left; + +Y.Transition = Transition; -}, '3.4.0' ,{requires:['dom-style']}); +}, '3.4.0' ,{requires:['transition']}); YUI.add('simpleyui', function(Y) { // empty diff --git a/build/simpleyui/simpleyui-min.js b/build/simpleyui/simpleyui-min.js index d78959cd2dd..b4317e9e0af 100644 --- a/build/simpleyui/simpleyui-min.js +++ b/build/simpleyui/simpleyui-min.js @@ -5,30 +5,24 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","1",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","2",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","3",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","4",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","5",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d;},"trigger":"selector"});a("load","6",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude; -n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("loader-base",function(d){if(!YUI.Env[d.version]){(function(){var I=d.version,E="/build/",F=I+E,D=d.Env.base,A="gallery-2011.06.08-20-04",C="2in3",B="4",z="2.9.0",G=D+"combo?",H={version:I,root:F,base:d.Env.base,comboBase:G,skin:{defaultSkin:"sam",base:"assets/skins/",path:"skin.css",after:["cssreset","cssfonts","cssgrids","cssbase","cssreset-context","cssfonts-context"]},groups:{},patterns:{}},y=H.groups,x=function(K,L){var J=C+"."+(K||B)+"/"+(L||z)+E;y.yui2.base=D+J;y.yui2.root=J;},w=function(J){var K=(J||A)+E;y.gallery.base=D+K;y.gallery.root=K;};y[I]={};y.gallery={ext:false,combine:true,comboBase:G,update:w,patterns:{"gallery-":{},"gallerycss-":{type:"css"}}};y.yui2={combine:true,ext:false,comboBase:G,update:x,patterns:{"yui2-":{configFn:function(J){if(/-skin|reset|fonts|grids|base/.test(J.name)){J.type="css";J.path=J.path.replace(/\.js/,".css");J.path=J.path.replace(/\/yui2-skin/,"/assets/skins/sam/yui2-skin");}}}}};w();x();YUI.Env[I]=H;}());}var f={},c=[],m=(d.UA.ie)?2048:8192,a=YUI.Env,p=a._loaded,q="css",k="js",v="intl",s=d.version,u="",e=d.Object,r=e.each,j=d.Array,h=a._loaderQueue,t=a[s],b="skin-",i=d.Lang,n=a.mods,l,o,g=function(x,y,z,w){var A=x+"/"+y;if(!w){A+="-min";}A+="."+(z||q);return A;};d.Env.meta=t;d.Loader=function(A){var z=t.modules,x=this;l=t.md5;x.context=d;x.base=d.Env.meta.base;x.comboBase=d.Env.meta.comboBase;x.combine=A.base&&(A.base.indexOf(x.comboBase.substr(0,20))>-1);x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1){z=A;break;}}}if(z){if(A.action){A.action.call(this,B,x);}else{w=this.addModule(d.merge(z),B);w.temp=true;}}}return w;},_rollup:function(){},_reduce:function(B){B=B||this.required;var y,x,A,w,z=this.loadType;for(y in B){if(B.hasOwnProperty(y)){w=this.getModule(y);if(((this.loaded[y]||n[y])&&!this.forceMap[y]&&!this.ignoreRegistered)||(z&&w&&w.type!=z)){delete B[y];}A=w&&w.supersedes;if(A){for(x=0;x0){h.running=true;h.next()();}},insert:function(z,x,y){var w=this,A=d.merge(this);delete A.require;delete A.dirty;h.add(function(){w._insert(A,z,x,y);});this._continue();},loadNext:function(A){if(!this._loading){return;}var H,P,O,M,z,E,B,L,D,G,N,w,C,K,y,F,Q,R,J=this,x=J.loadType,S=function(T){J.loadNext(T.data);},I=function(V){J._combineComplete[x]=true;var U,T=F.length;for(U=0;UJ.maxURLLength)){Q.push(J._filter(z));z=N;}z+=w;if(O<(P-1)){z+="&";}F.push(M.name);}}if(F.length&&(z!=N)){Q.push(J._filter(z));}}}if(F.length){if(x===q){E=d.Get.css;L=J.cssAttributes;}else{E=d.Get.script;L=J.jsAttributes;}E(Q,{data:J._loading,onSuccess:I,onFailure:J._onFailure,onTimeout:J._onTimeout,insertBefore:J.insertBefore,charset:J.charset,attributes:L,timeout:J.timeout,autopurge:false,context:J});return;}else{J._combineComplete[x]=true;}}if(A){if(A!==J._loading){return;}J.inserted[A]=true;if(J.onProgress){J.onProgress.call(J.context,{name:A,data:J.data});}}H=J.sorted;P=H.length;for(O=0;O=g.rollup);if(e){break;}}}}if(e){b[k]=true;d=true;this.getRequires(g);}}}}if(!d){break;}}};},"3.4.0",{requires:["loader-base"]});YUI.add("loader-yui3",function(a){YUI.Env[a.version].modules=YUI.Env[a.version].modules||{"align-plugin":{"requires":["node-screen","node-pluginhost"]},"anim":{"use":["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"]},"anim-base":{"requires":["base-base","node-style"]},"anim-color":{"requires":["anim-base"]},"anim-curve":{"requires":["anim-xy"]},"anim-easing":{"requires":["anim-base"]},"anim-node-plugin":{"requires":["node-pluginhost","anim-base"]},"anim-scroll":{"requires":["anim-base"]},"anim-xy":{"requires":["anim-base","node-screen"]},"app":{"use":["controller","model","model-list","view"]},"array-extras":{},"array-invoke":{},"arraylist":{},"arraylist-add":{"requires":["arraylist"]},"arraylist-filter":{"requires":["arraylist"]},"arraysort":{"requires":["yui-base"]},"async-queue":{"requires":["event-custom"]},"attribute":{"use":["attribute-base","attribute-complex"]},"attribute-base":{"requires":["event-custom"]},"attribute-complex":{"requires":["attribute-base"]},"autocomplete":{"use":["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"]},"autocomplete-base":{"optional":["autocomplete-sources"],"requires":["array-extras","base-build","escape","event-valuechange","node-base"]},"autocomplete-filters":{"requires":["array-extras","text-wordbreak"]},"autocomplete-filters-accentfold":{"requires":["array-extras","text-accentfold","text-wordbreak"]},"autocomplete-highlighters":{"requires":["array-extras","highlight-base"]},"autocomplete-highlighters-accentfold":{"requires":["array-extras","highlight-accentfold"]},"autocomplete-list":{"after":["autocomplete-sources"],"lang":["en"],"requires":["autocomplete-base","event-resize","selector-css3","shim-plugin","widget","widget-position","widget-position-align"],"skinnable":true},"autocomplete-list-keys":{"condition":{"name":"autocomplete-list-keys","test":function(b){return !(b.UA.ios||b.UA.android); -},"trigger":"autocomplete-list"},"requires":["autocomplete-list","base-build"]},"autocomplete-plugin":{"requires":["autocomplete-list","node-pluginhost"]},"autocomplete-sources":{"optional":["io-base","json-parse","jsonp","yql"],"requires":["autocomplete-base"]},"base":{"use":["base-base","base-pluginhost","base-build"]},"base-base":{"after":["attribute-complex"],"requires":["attribute-base"]},"base-build":{"requires":["base-base"]},"base-pluginhost":{"requires":["base-base","pluginhost"]},"cache":{"use":["cache-base","cache-offline","cache-plugin"]},"cache-base":{"requires":["base"]},"cache-offline":{"requires":["cache-base","json"]},"cache-plugin":{"requires":["plugin","cache-base"]},"charts":{"requires":["dom","datatype","event-custom","event-mouseenter","widget","widget-position","widget-stack"]},"classnamemanager":{"requires":["yui-base"]},"clickable-rail":{"requires":["slider-base"]},"collection":{"use":["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"]},"compat":{"requires":["event-base","dom","dump","substitute"]},"console":{"lang":["en","es"],"requires":["yui-log","widget","substitute"],"skinnable":true},"console-filters":{"requires":["plugin","console"],"skinnable":true},"controller":{"optional":["querystring-parse"],"requires":["array-extras","base-build","history"]},"cookie":{"requires":["yui-base"]},"createlink-base":{"requires":["editor-base"]},"cssbase":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssbase-context":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssfonts":{"type":"css"},"cssfonts-context":{"type":"css"},"cssgrids":{"optional":["cssreset","cssfonts"],"type":"css"},"cssgrids-context-deprecated":{"optional":["cssreset-context"],"requires":["cssfonts-context"],"type":"css"},"cssgrids-deprecated":{"optional":["cssreset"],"requires":["cssfonts"],"type":"css"},"cssreset":{"type":"css"},"cssreset-context":{"type":"css"},"dataschema":{"use":["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"]},"dataschema-array":{"requires":["dataschema-base"]},"dataschema-base":{"requires":["base"]},"dataschema-json":{"requires":["dataschema-base","json"]},"dataschema-text":{"requires":["dataschema-base"]},"dataschema-xml":{"requires":["dataschema-base"]},"datasource":{"use":["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"]},"datasource-arrayschema":{"requires":["datasource-local","plugin","dataschema-array"]},"datasource-cache":{"requires":["datasource-local","plugin","cache-base"]},"datasource-function":{"requires":["datasource-local"]},"datasource-get":{"requires":["datasource-local","get"]},"datasource-io":{"requires":["datasource-local","io-base"]},"datasource-jsonschema":{"requires":["datasource-local","plugin","dataschema-json"]},"datasource-local":{"requires":["base"]},"datasource-polling":{"requires":["datasource-local"]},"datasource-textschema":{"requires":["datasource-local","plugin","dataschema-text"]},"datasource-xmlschema":{"requires":["datasource-local","plugin","dataschema-xml"]},"datatable":{"use":["datatable-base","datatable-datasource","datatable-sort","datatable-scroll"]},"datatable-base":{"requires":["recordset-base","widget","substitute","event-mouseenter"],"skinnable":true},"datatable-datasource":{"requires":["datatable-base","plugin","datasource-local"]},"datatable-scroll":{"requires":["datatable-base","plugin","stylesheet"]},"datatable-sort":{"lang":["en"],"requires":["datatable-base","plugin","recordset-sort"]},"datatype":{"use":["datatype-number","datatype-date","datatype-xml"]},"datatype-date":{"lang":["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"],"supersedes":["datatype-date-format"],"use2":["datatype-date-parse","datatype-date-format"]},"datatype-date-format":{},"datatype-date-parse":{},"datatype-number":{"use":["datatype-number-parse","datatype-number-format"]},"datatype-number-format":{},"datatype-number-parse":{},"datatype-xml":{"use":["datatype-xml-parse","datatype-xml-format"]},"datatype-xml-format":{},"datatype-xml-parse":{},"dd":{"use":["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"]},"dd-constrain":{"requires":["dd-drag"]},"dd-ddm":{"requires":["dd-ddm-base","event-resize"]},"dd-ddm-base":{"requires":["node","base","yui-throttle","classnamemanager"]},"dd-ddm-drop":{"requires":["dd-ddm"]},"dd-delegate":{"requires":["dd-drag","dd-drop-plugin","event-mouseenter"]},"dd-drag":{"requires":["dd-ddm-base"]},"dd-drop":{"requires":["dd-drag","dd-ddm-drop"]},"dd-drop-plugin":{"requires":["dd-drop"]},"dd-gestures":{"condition":{"name":"dd-gestures","test":function(b){return(b.config.win&&("ontouchstart" in b.config.win&&!b.UA.chrome));},"trigger":"dd-drag"},"requires":["dd-drag","event-synthetic","event-gestures"]},"dd-plugin":{"optional":["dd-constrain","dd-proxy"],"requires":["dd-drag"]},"dd-proxy":{"requires":["dd-drag"]},"dd-scroll":{"requires":["dd-drag"]},"dial":{"lang":["en","es"],"requires":["widget","dd-drag","substitute","event-mouseenter","event-move","transition","intl"],"skinnable":true},"dom":{"use":["dom-core","dom-base","dom-attrs","dom-create","dom-class","dom-size","dom-screen","dom-style","selector-native","selector"]},"dom-attrs":{"requires":["dom-core"]},"dom-base":{"requires":["dom-core","dom-attrs","dom-create","dom-class","dom-size"]},"dom-class":{"requires":["dom-core"]},"dom-core":{"requires":["oop","features"]},"dom-create":{"requires":["dom-core"]},"dom-deprecated":{"requires":["dom-core"]},"dom-screen":{"requires":["dom-core","dom-style"]},"dom-size":{"requires":["dom-core"]},"dom-style":{"requires":["dom-core"]},"dom-style-ie":{"condition":{"name":"dom-style-ie","test":function(h){var f=h.Features.test,g=h.Features.add,d=h.config.win,e=h.config.doc,b="documentElement",c=false; -g("style","computedStyle",{test:function(){return d&&"getComputedStyle" in d;}});g("style","opacity",{test:function(){return e&&"opacity" in e[b].style;}});c=(!f("style","opacity")&&!f("style","computedStyle"));return c;},"trigger":"dom-style"},"requires":["dom-style"]},"dump":{},"editor":{"use":["frame","selection","exec-command","editor-base","editor-para","editor-br","editor-bidi","editor-tab","createlink-base"]},"editor-base":{"requires":["base","frame","node","exec-command","selection"]},"editor-bidi":{"requires":["editor-base"]},"editor-br":{"requires":["editor-base"]},"editor-lists":{"requires":["editor-base"]},"editor-para":{"requires":["editor-base"]},"editor-tab":{"requires":["editor-base"]},"escape":{},"event":{"after":["node-base"],"use":["event-base","event-delegate","event-synthetic","event-mousewheel","event-mouseenter","event-key","event-focus","event-resize","event-hover"]},"event-base":{"after":["node-base"],"requires":["event-custom-base"]},"event-base-ie":{"after":["event-base"],"condition":{"name":"event-base-ie","test":function(c){var b=c.config.doc&&c.config.doc.implementation;return(b&&(!b.hasFeature("Events","2.0")));},"trigger":"node-base"},"requires":["node-base"]},"event-custom":{"use":["event-custom-base","event-custom-complex"]},"event-custom-base":{"requires":["oop"]},"event-custom-complex":{"requires":["event-custom-base"]},"event-delegate":{"requires":["node-base"]},"event-flick":{"requires":["node-base","event-touch","event-synthetic"]},"event-focus":{"requires":["event-synthetic"]},"event-gestures":{"use":["event-flick","event-move"]},"event-hover":{"requires":["event-mouseenter"]},"event-key":{"requires":["event-synthetic"]},"event-mouseenter":{"requires":["event-synthetic"]},"event-mousewheel":{"requires":["node-base"]},"event-move":{"requires":["node-base","event-touch","event-synthetic"]},"event-resize":{"requires":["node-base"]},"event-simulate":{"requires":["event-base"]},"event-synthetic":{"requires":["node-base","event-custom-complex"]},"event-touch":{"requires":["node-base"]},"event-valuechange":{"requires":["event-focus","event-synthetic"]},"exec-command":{"requires":["frame"]},"features":{"requires":["yui-base"]},"frame":{"requires":["base","node","selector-css3","substitute","yui-throttle"]},"get":{"requires":["yui-base"]},"highlight":{"use":["highlight-base","highlight-accentfold"]},"highlight-accentfold":{"requires":["highlight-base","text-accentfold"]},"highlight-base":{"requires":["array-extras","escape","text-wordbreak"]},"history":{"use":["history-base","history-hash","history-hash-ie","history-html5"]},"history-base":{"requires":["event-custom-complex"]},"history-hash":{"after":["history-html5"],"requires":["event-synthetic","history-base","yui-later"]},"history-hash-ie":{"condition":{"name":"history-hash-ie","test":function(c){var b=c.config.doc&&c.config.doc.documentMode;return c.UA.ie&&(!("onhashchange" in c.config.win)||!b||b<8);},"trigger":"history-hash"},"requires":["history-hash","node-base"]},"history-html5":{"optional":["json"],"requires":["event-base","history-base","node-base"]},"imageloader":{"requires":["base-base","node-style","node-screen"]},"intl":{"requires":["intl-base","event-custom"]},"intl-base":{"requires":["yui-base"]},"io":{"use":["io-base","io-xdr","io-form","io-upload-iframe","io-queue"]},"io-base":{"requires":["event-custom-base","querystring-stringify-simple"]},"io-form":{"requires":["io-base","node-base"]},"io-queue":{"requires":["io-base","queue-promote"]},"io-upload-iframe":{"requires":["io-base","node-base"]},"io-xdr":{"requires":["io-base","datatype-xml"]},"json":{"use":["json-parse","json-stringify"]},"json-parse":{},"json-stringify":{},"jsonp":{"requires":["get","oop"]},"jsonp-url":{"requires":["jsonp"]},"loader":{"use":["loader-base","loader-rollup","loader-yui3"]},"loader-base":{"requires":["get"]},"loader-rollup":{"requires":["loader-base"]},"loader-yui3":{"requires":["loader-base"]},"model":{"requires":["base-build","escape","json-parse"]},"model-list":{"requires":["array-extras","array-invoke","arraylist","base-build","json-parse","model"]},"node":{"use":["node-base","node-event-delegate","node-pluginhost","node-screen","node-style"]},"node-base":{"requires":["dom-base","selector-css2","event-base"]},"node-deprecated":{"requires":["node-base"]},"node-event-delegate":{"requires":["node-base","event-delegate"]},"node-event-simulate":{"requires":["node-base","event-simulate"]},"node-flick":{"requires":["classnamemanager","transition","event-flick","plugin"],"skinnable":true},"node-focusmanager":{"requires":["attribute","node","plugin","node-event-simulate","event-key","event-focus"]},"node-load":{"requires":["node-base","io-base"]},"node-menunav":{"requires":["node","classnamemanager","plugin","node-focusmanager"],"skinnable":true},"node-pluginhost":{"requires":["node-base","pluginhost"]},"node-screen":{"requires":["dom-screen","node-base"]},"node-style":{"requires":["dom-style","node-base"]},"oop":{"requires":["yui-base"]},"overlay":{"requires":["widget","widget-stdmod","widget-position","widget-position-align","widget-stack","widget-position-constrain"],"skinnable":true},"plugin":{"requires":["base-base"]},"pluginattr":{"requires":["plugin"]},"pluginhost":{"use":["pluginhost-base","pluginhost-config"]},"pluginhost-base":{"requires":["yui-base"]},"pluginhost-config":{"requires":["pluginhost-base"]},"profiler":{"requires":["yui-base"]},"querystring":{"use":["querystring-parse","querystring-stringify"]},"querystring-parse":{"requires":["yui-base","array-extras"]},"querystring-parse-simple":{"requires":["yui-base"]},"querystring-stringify":{"requires":["yui-base"]},"querystring-stringify-simple":{"requires":["yui-base"]},"queue-promote":{"requires":["yui-base"]},"range-slider":{"requires":["slider-base","slider-value-range","clickable-rail"]},"recordset":{"use":["recordset-base","recordset-sort","recordset-filter","recordset-indexer"]},"recordset-base":{"requires":["base","arraylist"]},"recordset-filter":{"requires":["recordset-base","array-extras","plugin"]},"recordset-indexer":{"requires":["recordset-base","plugin"]},"recordset-sort":{"requires":["arraysort","recordset-base","plugin"]},"resize":{"use":["resize-base","resize-proxy","resize-constrain"]},"resize-base":{"requires":["base","widget","substitute","event","oop","dd-drag","dd-delegate","dd-drop"],"skinnable":true},"resize-constrain":{"requires":["plugin","resize-base"]},"resize-plugin":{"optional":["resize-constrain"],"requires":["resize-base","plugin"]},"resize-proxy":{"requires":["plugin","resize-base"]},"rls":{"requires":["get","features"]},"scrollview":{"requires":["scrollview-base","scrollview-scrollbars"]},"scrollview-base":{"requires":["widget","event-gestures","transition"],"skinnable":true},"scrollview-base-ie":{"condition":{"name":"scrollview-base-ie","trigger":"scrollview-base","ua":"ie"},"requires":["scrollview-base"]},"scrollview-paginator":{"requires":["plugin"]},"scrollview-scrollbars":{"requires":["classnamemanager","transition","plugin"],"skinnable":true},"selection":{"requires":["node"]},"selector":{"requires":["selector-native"]},"selector-css2":{"condition":{"name":"selector-css2","test":function(d){var c=d.config.doc,b=c&&!("querySelectorAll" in c); -return b;},"trigger":"selector"},"requires":["selector-native"]},"selector-css3":{"requires":["selector-native","selector-css2"]},"selector-native":{"requires":["dom-core"]},"shim-plugin":{"requires":["node-style","node-pluginhost"]},"slider":{"use":["slider-base","slider-value-range","clickable-rail","range-slider"]},"slider-base":{"requires":["widget","dd-constrain","substitute"],"skinnable":true},"slider-value-range":{"requires":["slider-base"]},"sortable":{"requires":["dd-delegate","dd-drop-plugin","dd-proxy"]},"sortable-scroll":{"requires":["dd-scroll","sortable"]},"stylesheet":{},"substitute":{"optional":["dump"]},"swf":{"requires":["event-custom","node","swfdetect"]},"swfdetect":{},"tabview":{"requires":["widget","widget-parent","widget-child","tabview-base","node-pluginhost","node-focusmanager"],"skinnable":true},"tabview-base":{"requires":["node-event-delegate","classnamemanager","skin-sam-tabview"]},"tabview-plugin":{"requires":["tabview-base"]},"test":{"requires":["event-simulate","event-custom","substitute","json-stringify"],"skinnable":true},"text":{"use":["text-accentfold","text-wordbreak"]},"text-accentfold":{"requires":["array-extras","text-data-accentfold"]},"text-data-accentfold":{},"text-data-wordbreak":{},"text-wordbreak":{"requires":["array-extras","text-data-wordbreak"]},"transition":{"use":["transition-native","transition-timer"]},"transition-native":{"requires":["node-base"]},"transition-timer":{"requires":["transition-native","node-style"]},"uploader":{"requires":["event-custom","node","base","swf"]},"view":{"requires":["base-build","node-event-delegate"]},"widget":{"skinnable":true,"use":["widget-base","widget-htmlparser","widget-uievents","widget-skin"]},"widget-anim":{"requires":["plugin","anim-base","widget"]},"widget-base":{"requires":["attribute","event-focus","base-base","base-pluginhost","node-base","node-style","classnamemanager"]},"widget-base-ie":{"condition":{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"},"requires":["widget-base"]},"widget-child":{"requires":["base-build","widget"]},"widget-htmlparser":{"requires":["widget-base"]},"widget-locale":{"requires":["widget-base"]},"widget-modality":{"requires":["widget","plugin","gallery-outside-events","base-build"],"skinnable":false},"widget-parent":{"requires":["base-build","arraylist","widget"]},"widget-position":{"requires":["base-build","node-screen","widget"]},"widget-position-align":{"requires":["widget-position"]},"widget-position-constrain":{"requires":["widget-position"]},"widget-skin":{"requires":["widget-base"]},"widget-stack":{"requires":["base-build","widget"],"skinnable":true},"widget-stdmod":{"requires":["base-build","widget"]},"widget-uievents":{"requires":["widget-base","node-event-delegate"]},"yql":{"requires":["jsonp","jsonp-url"]},"yui":{"use":["yui-base","get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"]},"yui-base":{},"yui-later":{"requires":["yui-base"]},"yui-log":{"requires":["yui-base"]},"yui-rls":{"use":["yui-base","get","features","intl-base","rls","yui-log","yui-later"]},"yui-throttle":{"requires":["yui-base"]}};YUI.Env[a.version].md5="8deea7d26f0f85ddcacf3aa4da9bfed6";},"3.4.0",{requires:["loader-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"]});YUI.add("oop",function(h){var d=h.Lang,c=h.Array,b=Object.prototype,a="_~yuim~_",e=b.hasOwnProperty,g=b.toString;function f(l,k,m,i,j){if(l&&l[j]&&l!==h){return l[j].call(l,k,m);}else{switch(c.test(l)){case 1:return c[j](l,k,m);case 2:return c[j](h.Array(l,0,true),k,m);default:return h.Object[j](l,k,m,i);}}}h.augment=function(i,k,r,o,s){var n=i.prototype,m=n&&k,q=k.prototype,v=n||i,j,u,p,l,t;s=s?h.Array(s):[];if(m){u={};p={};l={};j=function(x,w){if(r||!(w in n)){if(g.call(x)==="[object Function]"){l[w]=x;u[w]=p[w]=function(){return t(this,x,arguments);};}else{u[w]=x;}}};t=function(w,y,z){for(var x in l){if(e.call(l,x)&&w[x]===p[x]){w[x]=l[x];}}k.apply(w,s);return y.apply(w,z);};if(o){h.Array.each(o,function(w){if(w in q){j(q[w],w);}});}else{h.Object.each(q,j,null,true);}}h.mix(v,u||q,r,o);if(!m){k.apply(v,s);}return i;};h.aggregate=function(k,j,i,l){return h.mix(k,j,i,l,0,true);};h.extend=function(l,k,i,n){if(!k||!l){h.error("extend failed, verify dependencies");}var m=k.prototype,j=h.Object(m);l.prototype=j;j.constructor=l;l.superclass=m;if(k!=Object&&m.constructor==b.constructor){m.constructor=k;}if(i){h.mix(j,i,true);}if(n){h.mix(l,n,true);}return l;};h.each=function(k,j,l,i){return f(k,j,l,i,"each");};h.some=function(k,j,l,i){return f(k,j,l,i,"some");};h.clone=function(l,m,r,s,k,q){if(!d.isObject(l)){return l;}if(h.instanceOf(l,YUI)){return l;}var n,j=q||{},i,p=h.each;switch(d.type(l)){case"date":return new Date(l);case"regexp":return l;case"function":return l;case"array":n=[];break;default:if(l[a]){return j[l[a]];}i=h.guid();n=(m)?{}:h.Object(l);l[a]=i;j[i]=l;}if(!l.addEventListener&&!l.attachEvent){p(l,function(t,o){if((o||o===0)&&(!r||(r.call(s||this,t,o,this,l)!==false))){if(o!==a){if(o=="prototype"){}else{this[o]=h.clone(t,m,r,s,k||l,j);}}}},n);}if(!q){h.Object.each(j,function(t,o){if(t[a]){try{delete t[a];}catch(u){t[a]=null;}}},this);j=null;}return n;};h.bind=function(i,k){var j=arguments.length>2?h.Array(arguments,2,true):null;return function(){var m=d.isString(i)?k[i]:i,l=(j)?j.concat(h.Array(arguments,0,true)):arguments;return m.apply(k||m,l);};};h.rbind=function(i,k){var j=arguments.length>2?h.Array(arguments,2,true):null;return function(){var m=d.isString(i)?k[i]:i,l=(j)?h.Array(arguments,0,true).concat(j):arguments;return m.apply(k||m,l);};};},"3.4.0",{requires:["yui-base"]});YUI.add("dom-core",function(e){var n="nodeType",c="ownerDocument",b="documentElement",a="defaultView",g="parentWindow",j="tagName",k="parentNode",i="previousSibling",l="nextSibling",h="contains",d="compareDocumentPosition",m=[],f={byId:function(p,o){return f.allById(p,o)[0]||null; -},ancestor:function(p,q,r){var o=null;if(r){o=(!q||q(p))?p:null;}return o||f.elementByAxis(p,k,q,null);},ancestors:function(q,r,s){var p=f.ancestor.apply(f,arguments),o=(p)?[p]:[];while((p=f.ancestor(p,r))){if(p){o.unshift(p);}}return o;},elementByAxis:function(o,r,q,p){while(o&&(o=o[r])){if((p||o[j])&&(!q||q(o))){return o;}}return null;},contains:function(p,q){var o=false;if(!q||!p||!q[n]||!p[n]){o=false;}else{if(p[h]){if(e.UA.opera||q[n]===1){o=p[h](q);}else{o=f._bruteContains(p,q);}}else{if(p[d]){if(p===q||!!(p[d](q)&16)){o=true;}}}}return o;},inDoc:function(q,r){var p=false,o;if(q&&q.nodeType){(r)||(r=q[c]);o=r[b];if(o&&o.contains&&q.tagName){p=o.contains(q);}else{p=f.contains(o,q);}}return p;},allById:function(t,o){o=o||e.config.doc;var p=[],q=[],r,s;if(o.querySelectorAll){q=o.querySelectorAll('[id="'+t+'"]');}else{if(o.all){p=o.all(t);if(p){if(p.nodeName){if(p.id===t){q.push(p);p=m;}else{p=[p];}}if(p.length){for(r=0;s=p[r++];){if(s.id===t||(s.attributes&&s.attributes.id&&s.attributes.id.value===t)){q.push(s);}}}}}else{q=[f._getDoc(o).getElementById(t)];}}return q;},isWindow:function(o){return !!(o&&o.alert&&o.document);},_removeChildNodes:function(o){while(o.firstChild){o.removeChild(o.firstChild);}},siblings:function(r,q){var o=[],p=r;while((p=p[i])){if(p[j]&&(!q||q(p))){o.unshift(p);}}p=r;while((p=p[l])){if(p[j]&&(!q||q(p))){o.push(p);}}return o;},_bruteContains:function(o,p){while(p){if(o===p){return true;}p=p.parentNode;}return false;},_getRegExp:function(p,o){o=o||"";f._regexCache=f._regexCache||{};if(!f._regexCache[p+o]){f._regexCache[p+o]=new RegExp(p,o);}return f._regexCache[p+o];},_getDoc:function(o){var p=e.config.doc;if(o){p=(o[n]===9)?o:o[c]||o.document||e.config.doc;}return p;},_getWin:function(o){var p=f._getDoc(o);return p[a]||p[g]||e.config.win;},_batch:function(o,w,u,t,s,q){w=(typeof w==="string")?f[w]:w;var x,r=0,p,v;if(w&&o){while((p=o[r++])){x=x=w.call(f,p,u,t,s,q);if(typeof x!=="undefined"){(v)||(v=[]);v.push(x);}}}return(typeof v!=="undefined")?v:o;},wrap:function(r,p){var q=e.DOM.create(p),o=q.getElementsByTagName("*");if(o.length){q=o[o.length-1];}if(r.parentNode){r.parentNode.replaceChild(q,r);}q.appendChild(r);},unwrap:function(r){var p=r.parentNode,q=p.lastChild,o=r,s;if(p){s=p.parentNode;if(s){while(r!==q){o=r.nextSibling;s.insertBefore(r,p);r=o;}s.replaceChild(q,p);}else{p.removeChild(r);}}},generateID:function(o){var p=o.id;if(!p){p=e.stamp(o);o.id=p;}return p;}};e.DOM=f;},"3.4.0",{requires:["oop","features"]});YUI.add("dom-attrs",function(h){var e=h.config.doc.documentElement,b=h.DOM,a="tagName",g="ownerDocument",c="",f=h.Features.add,d=h.Features.test;h.mix(b,{getText:(e.textContent!==undefined)?function(j){var i="";if(j){i=j.textContent;}return i||"";}:function(j){var i="";if(j){i=j.innerText||j.nodeValue;}return i||"";},setText:(e.textContent!==undefined)?function(i,j){if(i){i.textContent=j;}}:function(i,j){if("innerText" in i){i.innerText=j;}else{if("nodeValue" in i){i.nodeValue=j;}}},CUSTOM_ATTRIBUTES:(!e.hasAttribute)?{"for":"htmlFor","class":"className"}:{"htmlFor":"for","className":"class"},setAttribute:function(k,i,l,j){if(k&&i&&k.setAttribute){i=b.CUSTOM_ATTRIBUTES[i]||i;k.setAttribute(i,l,j);}},getAttribute:function(l,i,k){k=(k!==undefined)?k:2;var j="";if(l&&i&&l.getAttribute){i=b.CUSTOM_ATTRIBUTES[i]||i;j=l.getAttribute(i,k);if(j===null){j="";}}return j;},VALUE_SETTERS:{},VALUE_GETTERS:{},getValue:function(k){var j="",i;if(k&&k[a]){i=b.VALUE_GETTERS[k[a].toLowerCase()];if(i){j=i(k);}else{j=k.value;}}if(j===c){j=c;}return(typeof j==="string")?j:"";},setValue:function(i,j){var k;if(i&&i[a]){k=b.VALUE_SETTERS[i[a].toLowerCase()];if(k){k(i,j);}else{i.value=j;}}},creators:{}});f("value-set","select",{test:function(){var i=h.config.doc.createElement("select");i.innerHTML="";i.value="2";return(i.value&&i.value==="2");}});if(!d("value-set","select")){b.VALUE_SETTERS.select=function(m,n){for(var k=0,j=m.getElementsByTagName("option"),l;l=j[k++];){if(b.getValue(l)===n){l.selected=true;break;}}};}h.mix(b.VALUE_GETTERS,{button:function(i){return(i.attributes&&i.attributes.value)?i.attributes.value.value:"";}});h.mix(b.VALUE_SETTERS,{button:function(j,k){var i=j.attributes.value;if(!i){i=j[g].createAttribute("value");j.setAttributeNode(i);}i.value=k;}});h.mix(b.VALUE_GETTERS,{option:function(j){var i=j.attributes;return(i.value&&i.value.specified)?j.value:j.text;},select:function(j){var k=j.value,i=j.options;if(i&&i.length){if(j.multiple){}else{k=b.getValue(i[j.selectedIndex]);}}return k;}});},"3.4.0",{requires:["dom-core"]});YUI.add("dom-create",function(a){var c=/<([a-z]+)/i,d=a.DOM,i=a.Features.add,g=a.Features.test,f={},e=function(m,k){var n=a.config.doc.createElement("div"),l=true;n.innerHTML=m;if(!n.firstChild||n.firstChild.tagName!==k.toUpperCase()){l=false;}return l;},j=/(?:\/(?:thead|tfoot|tbody|caption|col|colgroup)>)+\s*";}catch(l){return false;}return(k.firstChild&&k.firstChild.nodeName==="TBODY");}});i("innerhtml-div","tr",{test:function(){return e("","tr");}});i("innerhtml-div","script",{test:function(){return e("', 'script'); + } +}); - // the default combo base - comboBase = self.comboBase; +if (!testFeature('innerhtml', 'table')) { + // TODO: thead/tfoot with nested tbody + // IE adds TBODY when creating TABLE elements (which may share this impl) + creators.tbody = function(html, doc) { + var frag = Y_DOM.create(TABLE_OPEN + html + TABLE_CLOSE, doc), + tb = frag.children.tags('tbody')[0]; - url = comboBase; - urls = []; + if (frag.children.length > 1 && tb && !re_tbody.test(html)) { + tb.parentNode.removeChild(tb); // strip extraneous tbody + } + return frag; + }; +} - comboSources = {}; +if (!testFeature('innerhtml-div', 'script')) { + creators.script = function(html, doc) { + var frag = doc.createElement('div'); - for (i = 0; i < len; i++) { - comboSource = comboBase; - m = self.getModule(s[i]); - groupName = m && m.group; - if (groupName) { + frag.innerHTML = '-' + html; + frag.removeChild(frag.firstChild); + return frag; + } - group = self.groups[groupName]; + creators.link = creators.style = creators.script; +} - if (!group.combine) { - m.combine = false; - continue; - } - m.combine = true; - if (group.comboBase) { - comboSource = group.comboBase; - } +if (!testFeature('innerhtml-div', 'tr')) { + Y.mix(creators, { + option: function(html, doc) { + return Y_DOM.create('', doc); + }, - if ("root" in group && L.isValue(group.root)) { - m.root = group.root; - } + tr: function(html, doc) { + return Y_DOM.create('' + html + '', doc); + }, - } + td: function(html, doc) { + return Y_DOM.create('' + html + '', doc); + }, - comboSources[comboSource] = comboSources[comboSource] || []; - comboSources[comboSource].push(m); - } + col: function(html, doc) { + return Y_DOM.create('' + html + '', doc); + }, - for (j in comboSources) { - if (comboSources.hasOwnProperty(j)) { - url = j; - mods = comboSources[j]; - len = mods.length; + tbody: 'table' + }); - for (i = 0; i < len; i++) { - // m = self.getModule(s[i]); - m = mods[i]; + Y.mix(creators, { + legend: 'fieldset', + th: creators.td, + thead: creators.tbody, + tfoot: creators.tbody, + caption: creators.tbody, + colgroup: creators.tbody, + optgroup: creators.option + }); +} - // Do not try to combine non-yui JS unless combo def - // is found - if (m && (m.type === type) && (m.combine || !m.ext)) { +Y_DOM.creators = creators; +Y.mix(Y.DOM, { + /** + * Sets the width of the element to the given size, regardless + * of box model, border, padding, etc. + * @method setWidth + * @param {HTMLElement} element The DOM element. + * @param {String|Int} size The pixel height to size to + */ - frag = ((L.isValue(m.root)) ? m.root : self.root) + m.path; + setWidth: function(node, size) { + Y.DOM._setSize(node, 'width', size); + }, - if ((url !== j) && (i < (len - 1)) && - ((frag.length + url.length) > self.maxURLLength)) { - urls.push(self._filter(url)); - url = j; - } + /** + * Sets the height of the element to the given size, regardless + * of box model, border, padding, etc. + * @method setHeight + * @param {HTMLElement} element The DOM element. + * @param {String|Int} size The pixel height to size to + */ - url += frag; - if (i < (len - 1)) { - url += '&'; - } + setHeight: function(node, size) { + Y.DOM._setSize(node, 'height', size); + }, - combining.push(m.name); - } + _setSize: function(node, prop, val) { + val = (val > 0) ? val : 0; + var size = 0; - } - - if (combining.length && (url != j)) { - urls.push(self._filter(url)); - } - } - } - - if (combining.length) { - - - // if (m.type === CSS) { - if (type === CSS) { - fn = Y.Get.css; - attr = self.cssAttributes; - } else { - fn = Y.Get.script; - attr = self.jsAttributes; - } - - fn(urls, { - data: self._loading, - onSuccess: handleCombo, - onFailure: self._onFailure, - onTimeout: self._onTimeout, - insertBefore: self.insertBefore, - charset: self.charset, - attributes: attr, - timeout: self.timeout, - autopurge: false, - context: self - }); + node.style[prop] = val + 'px'; + size = (prop === 'height') ? node.offsetHeight : node.offsetWidth; - return; + if (size > val) { + val = val - (size - val); - } else { - self._combineComplete[type] = true; + if (val < 0) { + val = 0; } + + node.style[prop] = val + 'px'; } + } +}); - if (mname) { - // if the module that was just loaded isn't what we were expecting, - // continue to wait - if (mname !== self._loading) { - return; - } +}, '3.4.0' ,{requires:['dom-core']}); +YUI.add('dom-style', function(Y) { +(function(Y) { +/** + * Add style management functionality to DOM. + * @module dom + * @submodule dom-style + * @for DOM + */ - // The global handler that is called when each module is loaded - // will pass that module name to this function. Storing this - // data to avoid loading the same module multiple times - // centralize this in the callback - self.inserted[mname] = true; - // self.loaded[mname] = true; +var DOCUMENT_ELEMENT = 'documentElement', + DEFAULT_VIEW = 'defaultView', + OWNER_DOCUMENT = 'ownerDocument', + STYLE = 'style', + FLOAT = 'float', + CSS_FLOAT = 'cssFloat', + STYLE_FLOAT = 'styleFloat', + TRANSPARENT = 'transparent', + GET_COMPUTED_STYLE = 'getComputedStyle', + GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', - // provided = self.getProvides(mname); - // Y.mix(self.loaded, provided); - // Y.mix(self.inserted, provided); + WINDOW = Y.config.win, + DOCUMENT = Y.config.doc, + UNDEFINED = undefined, - if (self.onProgress) { - self.onProgress.call(self.context, { - name: mname, - data: self.data - }); - } - } + Y_DOM = Y.DOM, - s = self.sorted; - len = s.length; + TRANSFORM = 'transform', + VENDOR_TRANSFORM = [ + 'WebkitTransform', + 'MozTransform', + 'OTransform' + ], - for (i = 0; i < len; i = i + 1) { - // this.inserted keeps track of what the loader has loaded. - // move on if this item is done. - if (s[i] in self.inserted) { - continue; - } + re_color = /color$/i, + re_unit = /width|height|top|left|right|bottom|margin|padding/i; - // Because rollups will cause multiple load notifications - // from Y, loadNext may be called multiple times for - // the same module when loading a rollup. We can safely - // skip the subsequent requests - if (s[i] === self._loading) { - return; - } +Y.Array.each(VENDOR_TRANSFORM, function(val) { + if (val in DOCUMENT[DOCUMENT_ELEMENT].style) { + TRANSFORM = val; + } +}); - // log("inserting " + s[i]); - m = self.getModule(s[i]); +Y.mix(Y_DOM, { + DEFAULT_UNIT: 'px', - if (!m) { - if (!self.skipped[s[i]]) { - msg = 'Undefined module ' + s[i] + ' skipped'; - // self.inserted[s[i]] = true; - self.skipped[s[i]] = true; - } - continue; + CUSTOM_STYLES: { + }, - } - group = (m.group && self.groups[m.group]) || NOT_FOUND; + /** + * Sets a style property for a given element. + * @method setStyle + * @param {HTMLElement} An HTMLElement to apply the style to. + * @param {String} att The style property to set. + * @param {String|Number} val The value. + */ + setStyle: function(node, att, val, style) { + style = style || node.style; + var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES; - // The load type is stored to offer the possibility to load - // the css separately from the script. - if (!type || type === m.type) { - self._loading = s[i]; + if (style) { + if (val === null || val === '') { // normalize unsetting + val = ''; + } else if (!isNaN(new Number(val)) && re_unit.test(att)) { // number values may need a unit + val += Y_DOM.DEFAULT_UNIT; + } - if (m.type === CSS) { - fn = Y.Get.css; - attr = self.cssAttributes; - } else { - fn = Y.Get.script; - attr = self.jsAttributes; + if (att in CUSTOM_STYLES) { + if (CUSTOM_STYLES[att].set) { + CUSTOM_STYLES[att].set(node, val, style); + return; // NOTE: return + } else if (typeof CUSTOM_STYLES[att] === 'string') { + att = CUSTOM_STYLES[att]; } - - url = (m.fullpath) ? self._filter(m.fullpath, s[i]) : - self._url(m.path, s[i], group.base || m.base); - - fn(url, { - data: s[i], - onSuccess: handleSuccess, - insertBefore: self.insertBefore, - charset: self.charset, - attributes: attr, - onFailure: self._onFailure, - onTimeout: self._onTimeout, - timeout: self.timeout, - autopurge: false, - context: self - }); - - return; + } else if (att === '') { // unset inline styles + att = 'cssText'; + val = ''; } - } - - // we are finished - self._loading = null; - - fn = self._internalCallback; - - // internal callback for loading css first - if (fn) { - self._internalCallback = null; - fn.call(self); - } else { - self._onSuccess(); + style[att] = val; } }, /** - * Apply filter defined for this instance to a url/path - * method _filter - * @param {string} u the string to filter. - * @param {string} name the name of the module, if we are processing - * a single module as opposed to a combined url. - * @return {string} the filtered string. - * @private + * Returns the current style value for the given property. + * @method getStyle + * @param {HTMLElement} An HTMLElement to get the style from. + * @param {String} att The style property to get. */ - _filter: function(u, name) { - var f = this.filter, - hasFilter = name && (name in this.filters), - modFilter = hasFilter && this.filters[name]; + getStyle: function(node, att, style) { + style = style || node.style; + var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES, + val = ''; - if (u) { - if (hasFilter) { - f = (L.isString(modFilter)) ? - this.FILTER_DEFS[modFilter.toUpperCase()] || null : - modFilter; + if (style) { + if (att in CUSTOM_STYLES) { + if (CUSTOM_STYLES[att].get) { + return CUSTOM_STYLES[att].get(node, att, style); // NOTE: return + } else if (typeof CUSTOM_STYLES[att] === 'string') { + att = CUSTOM_STYLES[att]; + } } - if (f) { - u = u.replace(new RegExp(f.searchExp, 'g'), f.replaceStr); + val = style[att]; + if (val === '') { // TODO: is empty string sufficient? + val = Y_DOM[GET_COMPUTED_STYLE](node, att); } } - return u; + return val; }, /** - * Generates the full url for a module - * method _url - * @param {string} path the path fragment. - * @return {string} the full url. - * @private + * Sets multiple style properties. + * @method setStyles + * @param {HTMLElement} node An HTMLElement to apply the styles to. + * @param {Object} hash An object literal of property:value pairs. */ - _url: function(path, name, base) { - return this._filter((base || this.base || '') + path, name); - } -}; + setStyles: function(node, hash) { + var style = node.style; + Y.each(hash, function(v, n) { + Y_DOM.setStyle(node, n, v, style); + }, Y_DOM); + }, + /** + * Returns the computed style for the given node. + * @method getComputedStyle + * @param {HTMLElement} An HTMLElement to get the style from. + * @param {String} att The style property to get. + * @return {String} The computed value of the style property. + */ + getComputedStyle: function(node, att) { + var val = '', + doc = node[OWNER_DOCUMENT]; + if (node[STYLE] && doc[DEFAULT_VIEW] && doc[DEFAULT_VIEW][GET_COMPUTED_STYLE]) { + val = doc[DEFAULT_VIEW][GET_COMPUTED_STYLE](node, null)[att]; + } + return val; + } +}); -}, '3.4.0' ,{requires:['get']}); -YUI.add('loader-rollup', function(Y) { +// normalize reserved word float alternatives ("cssFloat" or "styleFloat") +if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][CSS_FLOAT] !== UNDEFINED) { + Y_DOM.CUSTOM_STYLES[FLOAT] = CSS_FLOAT; +} else if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][STYLE_FLOAT] !== UNDEFINED) { + Y_DOM.CUSTOM_STYLES[FLOAT] = STYLE_FLOAT; +} -/** - * Optional automatic rollup logic for reducing http connections - * when not using a combo service. - * @module loader - * @submodule rollup - */ +// fix opera computedStyle default color unit (convert to rgb) +if (Y.UA.opera) { + Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { + var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], + val = view[GET_COMPUTED_STYLE](node, '')[att]; -/** - * Look for rollup packages to determine if all of the modules a - * rollup supersedes are required. If so, include the rollup to - * help reduce the total number of connections required. Called - * by calculate(). This is an optional feature, and requires the - * appropriate submodule to function. - * @method _rollup - * @for Loader - * @private - */ -Y.Loader.prototype._rollup = function() { - var i, j, m, s, r = this.required, roll, - info = this.moduleInfo, rolled, c, smod; - - // find and cache rollup modules - if (this.dirty || !this.rollups) { - this.rollups = {}; - for (i in info) { - if (info.hasOwnProperty(i)) { - m = this.getModule(i); - // if (m && m.rollup && m.supersedes) { - if (m && m.rollup) { - this.rollups[i] = m; - } - } + if (re_color.test(att)) { + val = Y.Color.toRGB(val); } - this.forceMap = (this.force) ? Y.Array.hash(this.force) : {}; - } + return val; + }; - // make as many passes as needed to pick up rollup rollups - for (;;) { - rolled = false; - - // go through the rollup candidates - for (i in this.rollups) { - if (this.rollups.hasOwnProperty(i)) { - // there can be only one, unless forced - if (!r[i] && ((!this.loaded[i]) || this.forceMap[i])) { - m = this.getModule(i); - s = m.supersedes || []; - roll = false; - - // @TODO remove continue - if (!m.rollup) { - continue; - } +} + +// safari converts transparent to rgba(), others use "transparent" +if (Y.UA.webkit) { + Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { + var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], + val = view[GET_COMPUTED_STYLE](node, '')[att]; - c = 0; + if (val === 'rgba(0, 0, 0, 0)') { + val = TRANSPARENT; + } - // check the threshold - for (j = 0; j < s.length; j++) { - smod = info[s[j]]; + return val; + }; - // if the superseded module is loaded, we can't - // load the rollup unless it has been forced. - if (this.loaded[s[j]] && !this.forceMap[s[j]]) { - roll = false; - break; - // increment the counter if this module is required. - // if we are beyond the rollup threshold, we will - // use the rollup module - } else if (r[s[j]] && m.type == smod.type) { - c++; - roll = (c >= m.rollup); - if (roll) { - break; - } - } - } +} - if (roll) { - // add the rollup - r[i] = true; - rolled = true; +Y.DOM._getAttrOffset = function(node, attr) { + var val = Y.DOM[GET_COMPUTED_STYLE](node, attr), + offsetParent = node.offsetParent, + position, + parentOffset, + offset; - // expand the rollup's dependencies - this.getRequires(m); - } - } + if (val === 'auto') { + position = Y.DOM.getStyle(node, 'position'); + if (position === 'static' || position === 'relative') { + val = 0; + } else if (offsetParent && offsetParent[GET_BOUNDING_CLIENT_RECT]) { + parentOffset = offsetParent[GET_BOUNDING_CLIENT_RECT]()[attr]; + offset = node[GET_BOUNDING_CLIENT_RECT]()[attr]; + if (attr === 'left' || attr === 'top') { + val = offset - parentOffset; + } else { + val = parentOffset - node[GET_BOUNDING_CLIENT_RECT]()[attr]; } } - - // if we made it here w/o rolling up something, we are done - if (!rolled) { - break; - } } + + return val; }; +Y.DOM._getOffset = function(node) { + var pos, + xy = null; -}, '3.4.0' ,{requires:['loader-base']}); -YUI.add('loader-yui3', function(Y) { + if (node) { + pos = Y_DOM.getStyle(node, 'position'); + xy = [ + parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'left'), 10), + parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'top'), 10) + ]; -/* This file is auto-generated by src/loader/meta_join.py */ + if ( isNaN(xy[0]) ) { // in case of 'auto' + xy[0] = parseInt(Y_DOM.getStyle(node, 'left'), 10); // try inline + if ( isNaN(xy[0]) ) { // default to offset value + xy[0] = (pos === 'relative') ? 0 : node.offsetLeft || 0; + } + } -/** - * YUI 3 module metadata - * @module loader - * @submodule yui3 - */ -YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { - "align-plugin": { - "requires": [ - "node-screen", - "node-pluginhost" - ] - }, - "anim": { - "use": [ - "anim-base", - "anim-color", - "anim-curve", - "anim-easing", - "anim-node-plugin", - "anim-scroll", - "anim-xy" - ] - }, - "anim-base": { - "requires": [ - "base-base", - "node-style" - ] - }, - "anim-color": { - "requires": [ - "anim-base" - ] - }, - "anim-curve": { - "requires": [ - "anim-xy" - ] - }, - "anim-easing": { - "requires": [ - "anim-base" - ] - }, - "anim-node-plugin": { - "requires": [ - "node-pluginhost", - "anim-base" - ] - }, - "anim-scroll": { - "requires": [ - "anim-base" - ] - }, - "anim-xy": { - "requires": [ - "anim-base", - "node-screen" - ] - }, - "app": { - "use": [ - "controller", - "model", - "model-list", - "view" - ] - }, - "array-extras": {}, - "array-invoke": {}, - "arraylist": {}, - "arraylist-add": { - "requires": [ - "arraylist" - ] - }, - "arraylist-filter": { - "requires": [ - "arraylist" - ] - }, - "arraysort": { - "requires": [ - "yui-base" - ] - }, - "async-queue": { - "requires": [ - "event-custom" - ] - }, - "attribute": { - "use": [ - "attribute-base", - "attribute-complex" - ] - }, - "attribute-base": { - "requires": [ - "event-custom" - ] - }, - "attribute-complex": { - "requires": [ - "attribute-base" - ] - }, - "autocomplete": { - "use": [ - "autocomplete-base", - "autocomplete-sources", - "autocomplete-list", - "autocomplete-plugin" - ] - }, - "autocomplete-base": { - "optional": [ - "autocomplete-sources" - ], - "requires": [ - "array-extras", - "base-build", - "escape", - "event-valuechange", - "node-base" - ] - }, - "autocomplete-filters": { - "requires": [ - "array-extras", - "text-wordbreak" - ] - }, - "autocomplete-filters-accentfold": { - "requires": [ - "array-extras", - "text-accentfold", - "text-wordbreak" - ] - }, - "autocomplete-highlighters": { - "requires": [ - "array-extras", - "highlight-base" - ] - }, - "autocomplete-highlighters-accentfold": { - "requires": [ - "array-extras", - "highlight-accentfold" - ] - }, - "autocomplete-list": { - "after": [ - "autocomplete-sources" - ], - "lang": [ - "en" - ], - "requires": [ - "autocomplete-base", - "event-resize", - "selector-css3", - "shim-plugin", - "widget", - "widget-position", - "widget-position-align" - ], - "skinnable": true - }, - "autocomplete-list-keys": { - "condition": { - "name": "autocomplete-list-keys", - "test": function (Y) { - // Only add keyboard support to autocomplete-list if this doesn't appear to - // be an iOS or Android-based mobile device. - // - // There's currently no feasible way to actually detect whether a device has - // a hardware keyboard, so this sniff will have to do. It can easily be - // overridden by manually loading the autocomplete-list-keys module. - // - // Worth noting: even though iOS supports bluetooth keyboards, Mobile Safari - // doesn't fire the keyboard events used by AutoCompleteList, so there's - // no point loading the -keys module even when a bluetooth keyboard may be - // available. - return !(Y.UA.ios || Y.UA.android); -}, - "trigger": "autocomplete-list" - }, - "requires": [ - "autocomplete-list", - "base-build" - ] - }, - "autocomplete-plugin": { - "requires": [ - "autocomplete-list", - "node-pluginhost" - ] - }, - "autocomplete-sources": { - "optional": [ - "io-base", - "json-parse", - "jsonp", - "yql" - ], - "requires": [ - "autocomplete-base" - ] - }, - "base": { - "use": [ - "base-base", - "base-pluginhost", - "base-build" - ] - }, - "base-base": { - "after": [ - "attribute-complex" - ], - "requires": [ - "attribute-base" - ] - }, - "base-build": { - "requires": [ - "base-base" - ] - }, - "base-pluginhost": { - "requires": [ - "base-base", - "pluginhost" - ] - }, - "cache": { - "use": [ - "cache-base", - "cache-offline", - "cache-plugin" - ] - }, - "cache-base": { - "requires": [ - "base" - ] - }, - "cache-offline": { - "requires": [ - "cache-base", - "json" - ] - }, - "cache-plugin": { - "requires": [ - "plugin", - "cache-base" - ] - }, - "charts": { - "requires": [ - "dom", - "datatype", - "event-custom", - "event-mouseenter", - "widget", - "widget-position", - "widget-stack" - ] - }, - "classnamemanager": { - "requires": [ - "yui-base" - ] - }, - "clickable-rail": { - "requires": [ - "slider-base" - ] - }, - "collection": { - "use": [ - "array-extras", - "arraylist", - "arraylist-add", - "arraylist-filter", - "array-invoke" - ] - }, - "compat": { - "requires": [ - "event-base", - "dom", - "dump", - "substitute" - ] - }, - "console": { - "lang": [ - "en", - "es" - ], - "requires": [ - "yui-log", - "widget", - "substitute" - ], - "skinnable": true - }, - "console-filters": { - "requires": [ - "plugin", - "console" - ], - "skinnable": true - }, - "controller": { - "optional": [ - "querystring-parse" - ], - "requires": [ - "array-extras", - "base-build", - "history" - ] - }, - "cookie": { - "requires": [ - "yui-base" - ] - }, - "createlink-base": { - "requires": [ - "editor-base" - ] - }, - "cssbase": { - "after": [ - "cssreset", - "cssfonts", - "cssgrids", - "cssreset-context", - "cssfonts-context", - "cssgrids-context" - ], - "type": "css" - }, - "cssbase-context": { - "after": [ - "cssreset", - "cssfonts", - "cssgrids", - "cssreset-context", - "cssfonts-context", - "cssgrids-context" - ], - "type": "css" - }, - "cssfonts": { - "type": "css" - }, - "cssfonts-context": { - "type": "css" - }, - "cssgrids": { - "optional": [ - "cssreset", - "cssfonts" - ], - "type": "css" - }, - "cssgrids-context-deprecated": { - "optional": [ - "cssreset-context" - ], - "requires": [ - "cssfonts-context" - ], - "type": "css" - }, - "cssgrids-deprecated": { - "optional": [ - "cssreset" - ], - "requires": [ - "cssfonts" - ], - "type": "css" - }, - "cssreset": { - "type": "css" - }, - "cssreset-context": { - "type": "css" - }, - "dataschema": { - "use": [ - "dataschema-base", - "dataschema-json", - "dataschema-xml", - "dataschema-array", - "dataschema-text" - ] - }, - "dataschema-array": { - "requires": [ - "dataschema-base" - ] - }, - "dataschema-base": { - "requires": [ - "base" - ] - }, - "dataschema-json": { - "requires": [ - "dataschema-base", - "json" - ] - }, - "dataschema-text": { - "requires": [ - "dataschema-base" - ] - }, - "dataschema-xml": { - "requires": [ - "dataschema-base" - ] - }, - "datasource": { - "use": [ - "datasource-local", - "datasource-io", - "datasource-get", - "datasource-function", - "datasource-cache", - "datasource-jsonschema", - "datasource-xmlschema", - "datasource-arrayschema", - "datasource-textschema", - "datasource-polling" - ] - }, - "datasource-arrayschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-array" - ] - }, - "datasource-cache": { - "requires": [ - "datasource-local", - "plugin", - "cache-base" - ] - }, - "datasource-function": { - "requires": [ - "datasource-local" - ] - }, - "datasource-get": { - "requires": [ - "datasource-local", - "get" - ] - }, - "datasource-io": { - "requires": [ - "datasource-local", - "io-base" - ] - }, - "datasource-jsonschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-json" - ] - }, - "datasource-local": { - "requires": [ - "base" - ] - }, - "datasource-polling": { - "requires": [ - "datasource-local" - ] - }, - "datasource-textschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-text" - ] - }, - "datasource-xmlschema": { - "requires": [ - "datasource-local", - "plugin", - "dataschema-xml" - ] - }, - "datatable": { - "use": [ - "datatable-base", - "datatable-datasource", - "datatable-sort", - "datatable-scroll" - ] - }, - "datatable-base": { - "requires": [ - "recordset-base", - "widget", - "substitute", - "event-mouseenter" - ], - "skinnable": true - }, - "datatable-datasource": { - "requires": [ - "datatable-base", - "plugin", - "datasource-local" - ] - }, - "datatable-scroll": { - "requires": [ - "datatable-base", - "plugin", - "stylesheet" - ] - }, - "datatable-sort": { - "lang": [ - "en" - ], - "requires": [ - "datatable-base", - "plugin", - "recordset-sort" - ] - }, - "datatype": { - "use": [ - "datatype-number", - "datatype-date", - "datatype-xml" - ] - }, - "datatype-date": { - "lang": [ - "ar", - "ar-JO", - "ca", - "ca-ES", - "da", - "da-DK", - "de", - "de-AT", - "de-DE", - "el", - "el-GR", - "en", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-JO", - "en-MY", - "en-NZ", - "en-PH", - "en-SG", - "en-US", - "es", - "es-AR", - "es-BO", - "es-CL", - "es-CO", - "es-EC", - "es-ES", - "es-MX", - "es-PE", - "es-PY", - "es-US", - "es-UY", - "es-VE", - "fi", - "fi-FI", - "fr", - "fr-BE", - "fr-CA", - "fr-FR", - "hi", - "hi-IN", - "id", - "id-ID", - "it", - "it-IT", - "ja", - "ja-JP", - "ko", - "ko-KR", - "ms", - "ms-MY", - "nb", - "nb-NO", - "nl", - "nl-BE", - "nl-NL", - "pl", - "pl-PL", - "pt", - "pt-BR", - "ro", - "ro-RO", - "ru", - "ru-RU", - "sv", - "sv-SE", - "th", - "th-TH", - "tr", - "tr-TR", - "vi", - "vi-VN", - "zh-Hans", - "zh-Hans-CN", - "zh-Hant", - "zh-Hant-HK", - "zh-Hant-TW" - ], - "supersedes": [ - "datatype-date-format" - ], - "use2": [ - "datatype-date-parse", - "datatype-date-format" - ] - }, - "datatype-date-format": {}, - "datatype-date-parse": {}, - "datatype-number": { - "use": [ - "datatype-number-parse", - "datatype-number-format" - ] - }, - "datatype-number-format": {}, - "datatype-number-parse": {}, - "datatype-xml": { - "use": [ - "datatype-xml-parse", - "datatype-xml-format" - ] - }, - "datatype-xml-format": {}, - "datatype-xml-parse": {}, - "dd": { - "use": [ - "dd-ddm-base", - "dd-ddm", - "dd-ddm-drop", - "dd-drag", - "dd-proxy", - "dd-constrain", - "dd-drop", - "dd-scroll", - "dd-delegate" - ] - }, - "dd-constrain": { - "requires": [ - "dd-drag" - ] - }, - "dd-ddm": { - "requires": [ - "dd-ddm-base", - "event-resize" - ] - }, - "dd-ddm-base": { - "requires": [ - "node", - "base", - "yui-throttle", - "classnamemanager" - ] - }, - "dd-ddm-drop": { - "requires": [ - "dd-ddm" - ] - }, - "dd-delegate": { - "requires": [ - "dd-drag", - "dd-drop-plugin", - "event-mouseenter" - ] - }, - "dd-drag": { - "requires": [ - "dd-ddm-base" - ] - }, - "dd-drop": { - "requires": [ - "dd-drag", - "dd-ddm-drop" - ] - }, - "dd-drop-plugin": { - "requires": [ - "dd-drop" - ] - }, - "dd-gestures": { - "condition": { - "name": "dd-gestures", - "test": function(Y) { - return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); -}, - "trigger": "dd-drag" - }, - "requires": [ - "dd-drag", - "event-synthetic", - "event-gestures" - ] - }, - "dd-plugin": { - "optional": [ - "dd-constrain", - "dd-proxy" - ], - "requires": [ - "dd-drag" - ] - }, - "dd-proxy": { - "requires": [ - "dd-drag" - ] - }, - "dd-scroll": { - "requires": [ - "dd-drag" - ] - }, - "dial": { - "lang": [ - "en", - "es" - ], - "requires": [ - "widget", - "dd-drag", - "substitute", - "event-mouseenter", - "event-move", - "transition", - "intl" - ], - "skinnable": true - }, - "dom": { - "use": [ - "dom-core", - "dom-base", - "dom-attrs", - "dom-create", - "dom-class", - "dom-size", - "dom-screen", - "dom-style", - "selector-native", - "selector" - ] - }, - "dom-attrs": { - "requires": [ - "dom-core" - ] - }, - "dom-base": { - "requires": [ - "dom-core", - "dom-attrs", - "dom-create", - "dom-class", - "dom-size" - ] - }, - "dom-class": { - "requires": [ - "dom-core" - ] - }, - "dom-core": { - "requires": [ - "oop", - "features" - ] - }, - "dom-create": { - "requires": [ - "dom-core" - ] - }, - "dom-deprecated": { - "requires": [ - "dom-core" - ] - }, - "dom-screen": { - "requires": [ - "dom-core", - "dom-style" - ] - }, - "dom-size": { - "requires": [ - "dom-core" - ] - }, - "dom-style": { - "requires": [ - "dom-core" - ] - }, - "dom-style-ie": { - "condition": { - "name": "dom-style-ie", - "test": function (Y) { - - var testFeature = Y.Features.test, - addFeature = Y.Features.add, - WINDOW = Y.config.win, - DOCUMENT = Y.config.doc, - DOCUMENT_ELEMENT = 'documentElement', - ret = false; - - addFeature('style', 'computedStyle', { - test: function() { - return WINDOW && 'getComputedStyle' in WINDOW; - } - }); - - addFeature('style', 'opacity', { - test: function() { - return DOCUMENT && 'opacity' in DOCUMENT[DOCUMENT_ELEMENT].style; - } - }); + if ( isNaN(xy[1]) ) { // in case of 'auto' + xy[1] = parseInt(Y_DOM.getStyle(node, 'top'), 10); // try inline + if ( isNaN(xy[1]) ) { // default to offset value + xy[1] = (pos === 'relative') ? 0 : node.offsetTop || 0; + } + } + } - ret = (!testFeature('style', 'opacity') && - !testFeature('style', 'computedStyle')); + return xy; - return ret; -}, - "trigger": "dom-style" - }, - "requires": [ - "dom-style" - ] - }, - "dump": {}, - "editor": { - "use": [ - "frame", - "selection", - "exec-command", - "editor-base", - "editor-para", - "editor-br", - "editor-bidi", - "editor-tab", - "createlink-base" - ] - }, - "editor-base": { - "requires": [ - "base", - "frame", - "node", - "exec-command", - "selection" - ] - }, - "editor-bidi": { - "requires": [ - "editor-base" - ] - }, - "editor-br": { - "requires": [ - "editor-base" - ] - }, - "editor-lists": { - "requires": [ - "editor-base" - ] - }, - "editor-para": { - "requires": [ - "editor-base" - ] - }, - "editor-tab": { - "requires": [ - "editor-base" - ] - }, - "escape": {}, - "event": { - "after": [ - "node-base" - ], - "use": [ - "event-base", - "event-delegate", - "event-synthetic", - "event-mousewheel", - "event-mouseenter", - "event-key", - "event-focus", - "event-resize", - "event-hover" - ] - }, - "event-base": { - "after": [ - "node-base" - ], - "requires": [ - "event-custom-base" - ] - }, - "event-base-ie": { - "after": [ - "event-base" - ], - "condition": { - "name": "event-base-ie", - "test": function(Y) { - var imp = Y.config.doc && Y.config.doc.implementation; - return (imp && (!imp.hasFeature('Events', '2.0'))); -}, - "trigger": "node-base" - }, - "requires": [ - "node-base" - ] - }, - "event-custom": { - "use": [ - "event-custom-base", - "event-custom-complex" - ] - }, - "event-custom-base": { - "requires": [ - "oop" - ] - }, - "event-custom-complex": { - "requires": [ - "event-custom-base" - ] - }, - "event-delegate": { - "requires": [ - "node-base" - ] - }, - "event-flick": { - "requires": [ - "node-base", - "event-touch", - "event-synthetic" - ] - }, - "event-focus": { - "requires": [ - "event-synthetic" - ] - }, - "event-gestures": { - "use": [ - "event-flick", - "event-move" - ] - }, - "event-hover": { - "requires": [ - "event-mouseenter" - ] - }, - "event-key": { - "requires": [ - "event-synthetic" - ] - }, - "event-mouseenter": { - "requires": [ - "event-synthetic" - ] - }, - "event-mousewheel": { - "requires": [ - "node-base" - ] - }, - "event-move": { - "requires": [ - "node-base", - "event-touch", - "event-synthetic" - ] - }, - "event-resize": { - "requires": [ - "node-base" - ] - }, - "event-simulate": { - "requires": [ - "event-base" - ] - }, - "event-synthetic": { - "requires": [ - "node-base", - "event-custom-complex" - ] - }, - "event-touch": { - "requires": [ - "node-base" - ] - }, - "event-valuechange": { - "requires": [ - "event-focus", - "event-synthetic" - ] - }, - "exec-command": { - "requires": [ - "frame" - ] - }, - "features": { - "requires": [ - "yui-base" - ] - }, - "frame": { - "requires": [ - "base", - "node", - "selector-css3", - "substitute", - "yui-throttle" - ] - }, - "get": { - "requires": [ - "yui-base" - ] - }, - "highlight": { - "use": [ - "highlight-base", - "highlight-accentfold" - ] - }, - "highlight-accentfold": { - "requires": [ - "highlight-base", - "text-accentfold" - ] - }, - "highlight-base": { - "requires": [ - "array-extras", - "escape", - "text-wordbreak" - ] - }, - "history": { - "use": [ - "history-base", - "history-hash", - "history-hash-ie", - "history-html5" - ] - }, - "history-base": { - "requires": [ - "event-custom-complex" - ] - }, - "history-hash": { - "after": [ - "history-html5" - ], - "requires": [ - "event-synthetic", - "history-base", - "yui-later" - ] - }, - "history-hash-ie": { - "condition": { - "name": "history-hash-ie", - "test": function (Y) { - var docMode = Y.config.doc && Y.config.doc.documentMode; +}; - return Y.UA.ie && (!('onhashchange' in Y.config.win) || - !docMode || docMode < 8); -}, - "trigger": "history-hash" - }, - "requires": [ - "history-hash", - "node-base" - ] - }, - "history-html5": { - "optional": [ - "json" - ], - "requires": [ - "event-base", - "history-base", - "node-base" - ] - }, - "imageloader": { - "requires": [ - "base-base", - "node-style", - "node-screen" - ] - }, - "intl": { - "requires": [ - "intl-base", - "event-custom" - ] - }, - "intl-base": { - "requires": [ - "yui-base" - ] - }, - "io": { - "use": [ - "io-base", - "io-xdr", - "io-form", - "io-upload-iframe", - "io-queue" - ] - }, - "io-base": { - "requires": [ - "event-custom-base", - "querystring-stringify-simple" - ] - }, - "io-form": { - "requires": [ - "io-base", - "node-base" - ] - }, - "io-queue": { - "requires": [ - "io-base", - "queue-promote" - ] - }, - "io-upload-iframe": { - "requires": [ - "io-base", - "node-base" - ] - }, - "io-xdr": { - "requires": [ - "io-base", - "datatype-xml" - ] - }, - "json": { - "use": [ - "json-parse", - "json-stringify" - ] - }, - "json-parse": {}, - "json-stringify": {}, - "jsonp": { - "requires": [ - "get", - "oop" - ] - }, - "jsonp-url": { - "requires": [ - "jsonp" - ] - }, - "loader": { - "use": [ - "loader-base", - "loader-rollup", - "loader-yui3" - ] - }, - "loader-base": { - "requires": [ - "get" - ] - }, - "loader-rollup": { - "requires": [ - "loader-base" - ] - }, - "loader-yui3": { - "requires": [ - "loader-base" - ] - }, - "model": { - "requires": [ - "base-build", - "escape", - "json-parse" - ] - }, - "model-list": { - "requires": [ - "array-extras", - "array-invoke", - "arraylist", - "base-build", - "json-parse", - "model" - ] - }, - "node": { - "use": [ - "node-base", - "node-event-delegate", - "node-pluginhost", - "node-screen", - "node-style" - ] - }, - "node-base": { - "requires": [ - "dom-base", - "selector-css2", - "event-base" - ] - }, - "node-deprecated": { - "requires": [ - "node-base" - ] - }, - "node-event-delegate": { - "requires": [ - "node-base", - "event-delegate" - ] - }, - "node-event-simulate": { - "requires": [ - "node-base", - "event-simulate" - ] - }, - "node-flick": { - "requires": [ - "classnamemanager", - "transition", - "event-flick", - "plugin" - ], - "skinnable": true - }, - "node-focusmanager": { - "requires": [ - "attribute", - "node", - "plugin", - "node-event-simulate", - "event-key", - "event-focus" - ] - }, - "node-load": { - "requires": [ - "node-base", - "io-base" - ] - }, - "node-menunav": { - "requires": [ - "node", - "classnamemanager", - "plugin", - "node-focusmanager" - ], - "skinnable": true - }, - "node-pluginhost": { - "requires": [ - "node-base", - "pluginhost" - ] - }, - "node-screen": { - "requires": [ - "dom-screen", - "node-base" - ] - }, - "node-style": { - "requires": [ - "dom-style", - "node-base" - ] - }, - "oop": { - "requires": [ - "yui-base" - ] - }, - "overlay": { - "requires": [ - "widget", - "widget-stdmod", - "widget-position", - "widget-position-align", - "widget-stack", - "widget-position-constrain" - ], - "skinnable": true - }, - "plugin": { - "requires": [ - "base-base" - ] - }, - "pluginattr": { - "requires": [ - "plugin" - ] - }, - "pluginhost": { - "use": [ - "pluginhost-base", - "pluginhost-config" - ] - }, - "pluginhost-base": { - "requires": [ - "yui-base" - ] - }, - "pluginhost-config": { - "requires": [ - "pluginhost-base" - ] - }, - "profiler": { - "requires": [ - "yui-base" - ] - }, - "querystring": { - "use": [ - "querystring-parse", - "querystring-stringify" - ] - }, - "querystring-parse": { - "requires": [ - "yui-base", - "array-extras" - ] - }, - "querystring-parse-simple": { - "requires": [ - "yui-base" - ] - }, - "querystring-stringify": { - "requires": [ - "yui-base" - ] - }, - "querystring-stringify-simple": { - "requires": [ - "yui-base" - ] - }, - "queue-promote": { - "requires": [ - "yui-base" - ] - }, - "range-slider": { - "requires": [ - "slider-base", - "slider-value-range", - "clickable-rail" - ] - }, - "recordset": { - "use": [ - "recordset-base", - "recordset-sort", - "recordset-filter", - "recordset-indexer" - ] - }, - "recordset-base": { - "requires": [ - "base", - "arraylist" - ] - }, - "recordset-filter": { - "requires": [ - "recordset-base", - "array-extras", - "plugin" - ] - }, - "recordset-indexer": { - "requires": [ - "recordset-base", - "plugin" - ] - }, - "recordset-sort": { - "requires": [ - "arraysort", - "recordset-base", - "plugin" - ] - }, - "resize": { - "use": [ - "resize-base", - "resize-proxy", - "resize-constrain" - ] - }, - "resize-base": { - "requires": [ - "base", - "widget", - "substitute", - "event", - "oop", - "dd-drag", - "dd-delegate", - "dd-drop" - ], - "skinnable": true - }, - "resize-constrain": { - "requires": [ - "plugin", - "resize-base" - ] - }, - "resize-plugin": { - "optional": [ - "resize-constrain" - ], - "requires": [ - "resize-base", - "plugin" - ] - }, - "resize-proxy": { - "requires": [ - "plugin", - "resize-base" - ] - }, - "rls": { - "requires": [ - "get", - "features" - ] - }, - "scrollview": { - "requires": [ - "scrollview-base", - "scrollview-scrollbars" - ] - }, - "scrollview-base": { - "requires": [ - "widget", - "event-gestures", - "transition" - ], - "skinnable": true - }, - "scrollview-base-ie": { - "condition": { - "name": "scrollview-base-ie", - "trigger": "scrollview-base", - "ua": "ie" - }, - "requires": [ - "scrollview-base" - ] - }, - "scrollview-paginator": { - "requires": [ - "plugin" - ] - }, - "scrollview-scrollbars": { - "requires": [ - "classnamemanager", - "transition", - "plugin" - ], - "skinnable": true - }, - "selection": { - "requires": [ - "node" - ] - }, - "selector": { - "requires": [ - "selector-native" - ] - }, - "selector-css2": { - "condition": { - "name": "selector-css2", - "test": function (Y) { - var DOCUMENT = Y.config.doc, - ret = DOCUMENT && !('querySelectorAll' in DOCUMENT); +Y_DOM.CUSTOM_STYLES.transform = { + set: function(node, val, style) { + style[TRANSFORM] = val; + }, - return ret; -}, - "trigger": "selector" - }, - "requires": [ - "selector-native" - ] - }, - "selector-css3": { - "requires": [ - "selector-native", - "selector-css2" - ] - }, - "selector-native": { - "requires": [ - "dom-core" - ] - }, - "shim-plugin": { - "requires": [ - "node-style", - "node-pluginhost" - ] - }, - "slider": { - "use": [ - "slider-base", - "slider-value-range", - "clickable-rail", - "range-slider" - ] - }, - "slider-base": { - "requires": [ - "widget", - "dd-constrain", - "substitute" - ], - "skinnable": true - }, - "slider-value-range": { - "requires": [ - "slider-base" - ] - }, - "sortable": { - "requires": [ - "dd-delegate", - "dd-drop-plugin", - "dd-proxy" - ] - }, - "sortable-scroll": { - "requires": [ - "dd-scroll", - "sortable" - ] - }, - "stylesheet": {}, - "substitute": { - "optional": [ - "dump" - ] - }, - "swf": { - "requires": [ - "event-custom", - "node", - "swfdetect" - ] - }, - "swfdetect": {}, - "tabview": { - "requires": [ - "widget", - "widget-parent", - "widget-child", - "tabview-base", - "node-pluginhost", - "node-focusmanager" - ], - "skinnable": true - }, - "tabview-base": { - "requires": [ - "node-event-delegate", - "classnamemanager", - "skin-sam-tabview" - ] - }, - "tabview-plugin": { - "requires": [ - "tabview-base" - ] - }, - "test": { - "requires": [ - "event-simulate", - "event-custom", - "substitute", - "json-stringify" - ], - "skinnable": true - }, - "text": { - "use": [ - "text-accentfold", - "text-wordbreak" - ] - }, - "text-accentfold": { - "requires": [ - "array-extras", - "text-data-accentfold" - ] - }, - "text-data-accentfold": {}, - "text-data-wordbreak": {}, - "text-wordbreak": { - "requires": [ - "array-extras", - "text-data-wordbreak" - ] - }, - "transition": { - "use": [ - "transition-native", - "transition-timer" - ] - }, - "transition-native": { - "requires": [ - "node-base" - ] - }, - "transition-timer": { - "requires": [ - "transition-native", - "node-style" - ] - }, - "uploader": { - "requires": [ - "event-custom", - "node", - "base", - "swf" - ] - }, - "view": { - "requires": [ - "base-build", - "node-event-delegate" - ] - }, - "widget": { - "skinnable": true, - "use": [ - "widget-base", - "widget-htmlparser", - "widget-uievents", - "widget-skin" - ] - }, - "widget-anim": { - "requires": [ - "plugin", - "anim-base", - "widget" - ] - }, - "widget-base": { - "requires": [ - "attribute", - "event-focus", - "base-base", - "base-pluginhost", - "node-base", - "node-style", - "classnamemanager" - ] - }, - "widget-base-ie": { - "condition": { - "name": "widget-base-ie", - "trigger": "widget-base", - "ua": "ie" - }, - "requires": [ - "widget-base" - ] - }, - "widget-child": { - "requires": [ - "base-build", - "widget" - ] - }, - "widget-htmlparser": { - "requires": [ - "widget-base" - ] - }, - "widget-locale": { - "requires": [ - "widget-base" - ] - }, - "widget-modality": { - "requires": [ - "widget", - "plugin", - "gallery-outside-events", - "base-build" - ], - "skinnable": false - }, - "widget-parent": { - "requires": [ - "base-build", - "arraylist", - "widget" - ] - }, - "widget-position": { - "requires": [ - "base-build", - "node-screen", - "widget" - ] - }, - "widget-position-align": { - "requires": [ - "widget-position" - ] - }, - "widget-position-constrain": { - "requires": [ - "widget-position" - ] - }, - "widget-skin": { - "requires": [ - "widget-base" - ] - }, - "widget-stack": { - "requires": [ - "base-build", - "widget" - ], - "skinnable": true - }, - "widget-stdmod": { - "requires": [ - "base-build", - "widget" - ] - }, - "widget-uievents": { - "requires": [ - "widget-base", - "node-event-delegate" - ] - }, - "yql": { - "requires": [ - "jsonp", - "jsonp-url" - ] - }, - "yui": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "yui-log", - "yui-later", - "loader-base", - "loader-rollup", - "loader-yui3" - ] - }, - "yui-base": {}, - "yui-later": { - "requires": [ - "yui-base" - ] - }, - "yui-log": { - "requires": [ - "yui-base" - ] - }, - "yui-rls": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "rls", - "yui-log", - "yui-later" - ] - }, - "yui-throttle": { - "requires": [ - "yui-base" - ] + get: function(node, style) { + return Y_DOM[GET_COMPUTED_STYLE](node, TRANSFORM); } }; -YUI.Env[Y.version].md5 = '8deea7d26f0f85ddcacf3aa4da9bfed6'; - -}, '3.4.0' ,{requires:['loader-base']}); +})(Y); +(function(Y) { +var PARSE_INT = parseInt, + RE = RegExp; -YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-base','yui-log','yui-later','loader-base', 'loader-rollup', 'loader-yui3' ]}); - -YUI.add('oop', function(Y) { +Y.Color = { + KEYWORDS: { + black: '000', + silver: 'c0c0c0', + gray: '808080', + white: 'fff', + maroon: '800000', + red: 'f00', + purple: '800080', + fuchsia: 'f0f', + green: '008000', + lime: '0f0', + olive: '808000', + yellow: 'ff0', + navy: '000080', + blue: '00f', + teal: '008080', + aqua: '0ff' + }, -/** -Supplies object inheritance and manipulation utilities. + re_RGB: /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i, + re_hex: /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i, + re_hex3: /([0-9A-F])/gi, -This adds additional functionaity to what is provided in `yui-base`, and the -methods are applied directly to the YUI instance. This module is required for -most YUI components. + toRGB: function(val) { + if (!Y.Color.re_RGB.test(val)) { + val = Y.Color.toHex(val); + } -@module oop -**/ + if(Y.Color.re_hex.exec(val)) { + val = 'rgb(' + [ + PARSE_INT(RE.$1, 16), + PARSE_INT(RE.$2, 16), + PARSE_INT(RE.$3, 16) + ].join(', ') + ')'; + } + return val; + }, -/** -These methods are added to the YUI instance by the `oop` module. + toHex: function(val) { + val = Y.Color.KEYWORDS[val] || val; + if (Y.Color.re_RGB.exec(val)) { + val = [ + Number(RE.$1).toString(16), + Number(RE.$2).toString(16), + Number(RE.$3).toString(16) + ]; -@class YUI~oop -**/ + for (var i = 0; i < val.length; i++) { + if (val[i].length < 2) { + val[i] = '0' + val[i]; + } + } -var L = Y.Lang, - A = Y.Array, - OP = Object.prototype, - CLONE_MARKER = '_~yuim~_', + val = val.join(''); + } - hasOwn = OP.hasOwnProperty, - toString = OP.toString; + if (val.length < 6) { + val = val.replace(Y.Color.re_hex3, '$1$1'); + } -function dispatch(o, f, c, proto, action) { - if (o && o[action] && o !== Y) { - return o[action].call(o, f, c); - } else { - switch (A.test(o)) { - case 1: - return A[action](o, f, c); - case 2: - return A[action](Y.Array(o, 0, true), f, c); - default: - return Y.Object[action](o, f, c, proto); + if (val !== 'transparent' && val.indexOf('#') < 0) { + val = '#' + val; } + + return val.toUpperCase(); } -} +}; +})(Y); - /** - Augments the _receiver_ with prototype properties from the _supplier_. The - receiver may be a constructor function or an object. The supplier must be a - constructor function. - - If the _receiver_ is an object, then the _supplier_ constructor will be called - immediately after _receiver_ is augmented, with _receiver_ as the `this` object. - - If the _receiver_ is a constructor function, then all prototype methods of - _supplier_ that are copied to _receiver_ will be sequestered, and the - _supplier_ constructor will not be called immediately. The first time any - sequestered method is called on the _receiver_'s prototype, all sequestered - methods will be immediately copied to the _receiver_'s prototype, the - _supplier_'s constructor will be executed, and finally the newly unsequestered - method that was called will be executed. - - This sequestering logic sounds like a bunch of complicated voodoo, but it makes - it cheap to perform frequent augmentation by ensuring that suppliers' - constructors are only called if a supplied method is actually used. If none of - the supplied methods is ever used, then there's no need to take the performance - hit of calling the _supplier_'s constructor. - - @method augment - @param {Function|Object} receiver Object or function to be augmented. - @param {Function} supplier Function that supplies the prototype properties with - which to augment the _receiver_. - @param {Boolean} [overwrite=false] If `true`, properties already on the receiver - will be overwritten if found on the supplier's prototype. - @param {String[]} [whitelist] An array of property names. If specified, - only the whitelisted prototype properties will be applied to the receiver, and - all others will be ignored. - @param {Array|any} [args] Argument or array of arguments to pass to the - supplier's constructor when initializing. - @return {Function} Augmented object. - **/ - Y.augment = function (receiver, supplier, overwrite, whitelist, args) { - var rProto = receiver.prototype, - sequester = rProto && supplier, - sProto = supplier.prototype, - to = rProto || receiver, - - copy, - newPrototype, - replacements, - sequestered, - unsequester; - - args = args ? Y.Array(args) : []; - - if (sequester) { - newPrototype = {}; - replacements = {}; - sequestered = {}; - - copy = function (value, key) { - if (overwrite || !(key in rProto)) { - if (toString.call(value) === '[object Function]') { - sequestered[key] = value; - - newPrototype[key] = replacements[key] = function () { - return unsequester(this, value, arguments); - }; - } else { - newPrototype[key] = value; - } - } - }; - unsequester = function (instance, fn, fnArgs) { - // Unsequester all sequestered functions. - for (var key in sequestered) { - if (hasOwn.call(sequestered, key) - && instance[key] === replacements[key]) { - instance[key] = sequestered[key]; - } - } +}, '3.4.0' ,{requires:['dom-base']}); +YUI.add('dom-style-ie', function(Y) { - // Execute the supplier constructor. - supplier.apply(instance, args); +(function(Y) { +var HAS_LAYOUT = 'hasLayout', + PX = 'px', + FILTER = 'filter', + FILTERS = 'filters', + OPACITY = 'opacity', + AUTO = 'auto', - // Finally, execute the original sequestered function. - return fn.apply(instance, fnArgs); - }; + BORDER_WIDTH = 'borderWidth', + BORDER_TOP_WIDTH = 'borderTopWidth', + BORDER_RIGHT_WIDTH = 'borderRightWidth', + BORDER_BOTTOM_WIDTH = 'borderBottomWidth', + BORDER_LEFT_WIDTH = 'borderLeftWidth', + WIDTH = 'width', + HEIGHT = 'height', + TRANSPARENT = 'transparent', + VISIBLE = 'visible', + GET_COMPUTED_STYLE = 'getComputedStyle', + UNDEFINED = undefined, + documentElement = Y.config.doc.documentElement, - if (whitelist) { - Y.Array.each(whitelist, function (name) { - if (name in sProto) { - copy(sProto[name], name); - } - }); - } else { - Y.Object.each(sProto, copy, null, true); - } - } + testFeature = Y.Features.test, + addFeature = Y.Features.add, - Y.mix(to, newPrototype || sProto, overwrite, whitelist); + // TODO: unit-less lineHeight (e.g. 1.22) + re_unit = /^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i, - if (!sequester) { - supplier.apply(to, args); - } + isIE8 = (Y.UA.ie >= 8), - return receiver; - }; + _getStyleObj = function(node) { + return node.currentStyle || node.style; + }, -/** - * Applies object properties from the supplier to the receiver. If - * the target has the property, and the property is an object, the target - * object will be augmented with the supplier's value. If the property - * is an array, the suppliers value will be appended to the target. - * @method aggregate - * @param {function} r the object to receive the augmentation. - * @param {function} s the object that supplies the properties to augment. - * @param {boolean} ov if true, properties already on the receiver - * will be overwritten if found on the supplier. - * @param {string[]} wl a whitelist. If supplied, only properties in - * this list will be applied to the receiver. - * @return {object} the extended object. - */ -Y.aggregate = function(r, s, ov, wl) { - return Y.mix(r, s, ov, wl, 0, true); -}; + ComputedStyle = { + CUSTOM_STYLES: {}, -/** - * Utility to set up the prototype, constructor and superclass properties to - * support an inheritance strategy that can chain constructors and methods. - * Static members will not be inherited. - * - * @method extend - * @param {function} r the object to modify. - * @param {function} s the object to inherit. - * @param {object} px prototype properties to add/override. - * @param {object} sx static properties to add/override. - * @return {object} the extended object. - */ -Y.extend = function(r, s, px, sx) { - if (!s || !r) { - Y.error('extend failed, verify dependencies'); - } + get: function(el, property) { + var value = '', + current; - var sp = s.prototype, rp = Y.Object(sp); - r.prototype = rp; + if (el) { + current = _getStyleObj(el)[property]; - rp.constructor = r; - r.superclass = sp; + if (property === OPACITY && Y.DOM.CUSTOM_STYLES[OPACITY]) { + value = Y.DOM.CUSTOM_STYLES[OPACITY].get(el); + } else if (!current || (current.indexOf && current.indexOf(PX) > -1)) { // no need to convert + value = current; + } else if (Y.DOM.IE.COMPUTED[property]) { // use compute function + value = Y.DOM.IE.COMPUTED[property](el, property); + } else if (re_unit.test(current)) { // convert to pixel + value = ComputedStyle.getPixel(el, property) + PX; + } else { + value = current; + } + } - // assign constructor property - if (s != Object && sp.constructor == OP.constructor) { - sp.constructor = s; - } + return value; + }, - // add prototype overrides - if (px) { - Y.mix(rp, px, true); - } + sizeOffsets: { + width: ['Left', 'Right'], + height: ['Top', 'Bottom'], + top: ['Top'], + bottom: ['Bottom'] + }, - // add object overrides - if (sx) { - Y.mix(r, sx, true); - } + getOffset: function(el, prop) { + var current = _getStyleObj(el)[prop], // value of "width", "top", etc. + capped = prop.charAt(0).toUpperCase() + prop.substr(1), // "Width", "Top", etc. + offset = 'offset' + capped, // "offsetWidth", "offsetTop", etc. + pixel = 'pixel' + capped, // "pixelWidth", "pixelTop", etc. + sizeOffsets = ComputedStyle.sizeOffsets[prop], + mode = el.ownerDocument.compatMode, + value = ''; - return r; -}; + // IE pixelWidth incorrect for percent + // manually compute by subtracting padding and border from offset size + // NOTE: clientWidth/Height (size minus border) is 0 when current === AUTO so offsetHeight is used + // reverting to auto from auto causes position stacking issues (old impl) + if (current === AUTO || current.indexOf('%') > -1) { + value = el['offset' + capped]; -/** - * Executes the supplied function for each item in - * a collection. Supports arrays, objects, and - * Y.NodeLists - * @method each - * @param {object} o the object to iterate. - * @param {function} f the function to execute. This function - * receives the value, key, and object as parameters. - * @param {object} c the execution context for the function. - * @param {boolean} proto if true, prototype properties are - * iterated on objects. - * @return {YUI} the YUI instance. - */ -Y.each = function(o, f, c, proto) { - return dispatch(o, f, c, proto, 'each'); -}; + if (mode !== 'BackCompat') { + if (sizeOffsets[0]) { + value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[0]); + value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[0] + 'Width', 1); + } -/** - * Executes the supplied function for each item in - * a collection. The operation stops if the function - * returns true. Supports arrays, objects, and - * Y.NodeLists. - * @method some - * @param {object} o the object to iterate. - * @param {function} f the function to execute. This function - * receives the value, key, and object as parameters. - * @param {object} c the execution context for the function. - * @param {boolean} proto if true, prototype properties are - * iterated on objects. - * @return {boolean} true if the function ever returns true, - * false otherwise. - */ -Y.some = function(o, f, c, proto) { - return dispatch(o, f, c, proto, 'some'); -}; + if (sizeOffsets[1]) { + value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[1]); + value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[1] + 'Width', 1); + } + } -/** - * Deep obj/array copy. Function clones are actually - * wrappers around the original function. - * Array-like objects are treated as arrays. - * Primitives are returned untouched. Optionally, a - * function can be provided to handle other data types, - * filter keys, validate values, etc. - * - * @method clone - * @param {object} o what to clone. - * @param {boolean} safe if true, objects will not have prototype - * items from the source. If false, they will. In this case, the - * original is initially protected, but the clone is not completely - * immune from changes to the source object prototype. Also, cloned - * prototype items that are deleted from the clone will result - * in the value of the source prototype being exposed. If operating - * on a non-safe clone, items should be nulled out rather than deleted. - * @param {function} f optional function to apply to each item in a - * collection; it will be executed prior to applying the value to - * the new object. Return false to prevent the copy. - * @param {object} c optional execution context for f. - * @param {object} owner Owner object passed when clone is iterating - * an object. Used to set up context for cloned functions. - * @param {object} cloned hash of previously cloned objects to avoid - * multiple clones. - * @return {Array|Object} the cloned object. - */ -Y.clone = function(o, safe, f, c, owner, cloned) { + } else { // use style.pixelWidth, etc. to convert to pixels + // need to map style.width to currentStyle (no currentStyle.pixelWidth) + if (!el.style[pixel] && !el.style[prop]) { + el.style[prop] = current; + } + value = el.style[pixel]; + + } + return value + PX; + }, - if (!L.isObject(o)) { - return o; - } + borderMap: { + thin: (isIE8) ? '1px' : '2px', + medium: (isIE8) ? '3px': '4px', + thick: (isIE8) ? '5px' : '6px' + }, - // @todo cloning YUI instances doesn't currently work - if (Y.instanceOf(o, YUI)) { - return o; - } + getBorderWidth: function(el, property, omitUnit) { + var unit = omitUnit ? '' : PX, + current = el.currentStyle[property]; - var o2, marked = cloned || {}, stamp, - yeach = Y.each; + if (current.indexOf(PX) < 0) { // look up keywords if a border exists + if (ComputedStyle.borderMap[current] && + el.currentStyle.borderStyle !== 'none') { + current = ComputedStyle.borderMap[current]; + } else { // otherwise no border (default is "medium") + current = 0; + } + } + return (omitUnit) ? parseFloat(current) : current; + }, - switch (L.type(o)) { - case 'date': - return new Date(o); - case 'regexp': - // if we do this we need to set the flags too - // return new RegExp(o.source); - return o; - case 'function': - // o2 = Y.bind(o, owner); - // break; - return o; - case 'array': - o2 = []; - break; - default: + getPixel: function(node, att) { + // use pixelRight to convert to px + var val = null, + style = _getStyleObj(node), + styleRight = style.right, + current = style[att]; - // #2528250 only one clone of a given object should be created. - if (o[CLONE_MARKER]) { - return marked[o[CLONE_MARKER]]; - } + node.style.right = current; + val = node.style.pixelRight; + node.style.right = styleRight; // revert - stamp = Y.guid(); + return val; + }, - o2 = (safe) ? {} : Y.Object(o); + getMargin: function(node, att) { + var val, + style = _getStyleObj(node); - o[CLONE_MARKER] = stamp; - marked[stamp] = o; - } + if (style[att] == AUTO) { + val = 0; + } else { + val = ComputedStyle.getPixel(node, att); + } + return val + PX; + }, - // #2528250 don't try to clone element properties - if (!o.addEventListener && !o.attachEvent) { - yeach(o, function(v, k) { -if ((k || k === 0) && (!f || (f.call(c || this, v, k, this, o) !== false))) { - if (k !== CLONE_MARKER) { - if (k == 'prototype') { - // skip the prototype - // } else if (o[k] === o) { - // this[k] = this; - } else { - this[k] = - Y.clone(v, safe, f, c, owner || o, marked); - } - } + getVisibility: function(node, att) { + var current; + while ( (current = node.currentStyle) && current[att] == 'inherit') { // NOTE: assignment in test + node = node.parentNode; } - }, o2); - } + return (current) ? current[att] : VISIBLE; + }, - if (!cloned) { - Y.Object.each(marked, function(v, k) { - if (v[CLONE_MARKER]) { - try { - delete v[CLONE_MARKER]; - } catch (e) { - v[CLONE_MARKER] = null; - } + getColor: function(node, att) { + var current = _getStyleObj(node)[att]; + + if (!current || current === TRANSPARENT) { + Y.DOM.elementByAxis(node, 'parentNode', null, function(parent) { + current = _getStyleObj(parent)[att]; + if (current && current !== TRANSPARENT) { + node = parent; + return true; + } + }); } - }, this); - marked = null; + + return Y.Color.toRGB(current); + }, + + getBorderColor: function(node, att) { + var current = _getStyleObj(node), + val = current[att] || current.color; + return Y.Color.toRGB(Y.Color.toHex(val)); + } + }, + + //fontSize: getPixelFont, + IEComputed = {}; + +addFeature('style', 'computedStyle', { + test: function() { + return 'getComputedStyle' in Y.config.win; } +}); - return o2; -}; +addFeature('style', 'opacity', { + test: function() { + return 'opacity' in documentElement.style; + } +}); +addFeature('style', 'filter', { + test: function() { + return 'filters' in documentElement; + } +}); -/** - * Returns a function that will execute the supplied function in the - * supplied object's context, optionally adding any additional - * supplied parameters to the beginning of the arguments collection the - * supplied to the function. - * - * @method bind - * @param {Function|String} f the function to bind, or a function name - * to execute on the context object. - * @param {object} c the execution context. - * @param {any} args* 0..n arguments to include before the arguments the - * function is executed with. - * @return {function} the wrapped function. - */ -Y.bind = function(f, c) { - var xargs = arguments.length > 2 ? - Y.Array(arguments, 2, true) : null; - return function() { - var fn = L.isString(f) ? c[f] : f, - args = (xargs) ? - xargs.concat(Y.Array(arguments, 0, true)) : arguments; - return fn.apply(c || fn, args); - }; -}; - -/** - * Returns a function that will execute the supplied function in the - * supplied object's context, optionally adding any additional - * supplied parameters to the end of the arguments the function - * is executed with. - * - * @method rbind - * @param {Function|String} f the function to bind, or a function name - * to execute on the context object. - * @param {object} c the execution context. - * @param {any} args* 0..n arguments to append to the end of - * arguments collection supplied to the function. - * @return {function} the wrapped function. - */ -Y.rbind = function(f, c) { - var xargs = arguments.length > 2 ? Y.Array(arguments, 2, true) : null; - return function() { - var fn = L.isString(f) ? c[f] : f, - args = (xargs) ? - Y.Array(arguments, 0, true).concat(xargs) : arguments; - return fn.apply(c || fn, args); - }; -}; - - -}, '3.4.0' ,{requires:['yui-base']}); -YUI.add('dom-core', function(Y) { - -var NODE_TYPE = 'nodeType', - OWNER_DOCUMENT = 'ownerDocument', - DOCUMENT_ELEMENT = 'documentElement', - DEFAULT_VIEW = 'defaultView', - PARENT_WINDOW = 'parentWindow', - TAG_NAME = 'tagName', - PARENT_NODE = 'parentNode', - PREVIOUS_SIBLING = 'previousSibling', - NEXT_SIBLING = 'nextSibling', - CONTAINS = 'contains', - COMPARE_DOCUMENT_POSITION = 'compareDocumentPosition', - EMPTY_ARRAY = [], +// use alpha filter for IE opacity +if (!testFeature('style', 'opacity') && testFeature('style', 'filter')) { + Y.DOM.CUSTOM_STYLES[OPACITY] = { + get: function(node) { + var val = 100; + try { // will error if no DXImageTransform + val = node[FILTERS]['DXImageTransform.Microsoft.Alpha'][OPACITY]; -/** - * The DOM utility provides a cross-browser abtraction layer - * normalizing DOM tasks, and adds extra helper functionality - * for other common tasks. - * @module dom - * @submodule dom-base - * @for DOM - * - */ + } catch(e) { + try { // make sure its in the document + val = node[FILTERS]('alpha')[OPACITY]; + } catch(err) { + } + } + return val / 100; + }, -/** - * Provides DOM helper methods. - * @class DOM - * - */ - -Y_DOM = { - /** - * Returns the HTMLElement with the given ID (Wrapper for document.getElementById). - * @method byId - * @param {String} id the id attribute - * @param {Object} doc optional The document to search. Defaults to current document - * @return {HTMLElement | null} The HTMLElement with the id, or null if none found. - */ - byId: function(id, doc) { - // handle dupe IDs and IE name collision - return Y_DOM.allById(id, doc)[0] || null; - }, + set: function(node, val, style) { + var current, + styleObj = _getStyleObj(node), + currentFilter = styleObj[FILTER]; - /* - * Finds the ancestor of the element. - * @method ancestor - * @param {HTMLElement} element The html element. - * @param {Function} fn optional An optional boolean test to apply. - * The optional function is passed the current DOM node being tested as its only argument. - * If no function is given, the parentNode is returned. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * @return {HTMLElement | null} The matching DOM node or null if none found. - */ - ancestor: function(element, fn, testSelf) { - var ret = null; - if (testSelf) { - ret = (!fn || fn(element)) ? element : null; + style = style || node.style; + if (val === '') { // normalize inline style behavior + current = (OPACITY in styleObj) ? styleObj[OPACITY] : 1; // revert to original opacity + val = current; + } - } - return ret || Y_DOM.elementByAxis(element, PARENT_NODE, fn, null); - }, + if (typeof currentFilter == 'string') { // in case not appended + style[FILTER] = currentFilter.replace(/alpha([^)]*\))/gi, '') + + ((val < 1) ? 'alpha(' + OPACITY + '=' + val * 100 + ')' : ''); - /* - * Finds the ancestors of the element. - * @method ancestors - * @param {HTMLElement} element The html element. - * @param {Function} fn optional An optional boolean test to apply. - * The optional function is passed the current DOM node being tested as its only argument. - * If no function is given, all ancestors are returned. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * @return {Array} An array containing all matching DOM nodes. - */ - ancestors: function(element, fn, testSelf) { - var ancestor = Y_DOM.ancestor.apply(Y_DOM, arguments), - ret = (ancestor) ? [ancestor] : []; + if (!style[FILTER]) { + style.removeAttribute(FILTER); + } - while ((ancestor = Y_DOM.ancestor(ancestor, fn))) { - if (ancestor) { - ret.unshift(ancestor); + if (!styleObj[HAS_LAYOUT]) { + style.zoom = 1; // needs layout + } } } + }; +} - return ret; - }, - - /** - * Searches the element by the given axis for the first matching element. - * @method elementByAxis - * @param {HTMLElement} element The html element. - * @param {String} axis The axis to search (parentNode, nextSibling, previousSibling). - * @param {Function} fn optional An optional boolean test to apply. - * @param {Boolean} all optional Whether all node types should be returned, or just element nodes. - * The optional function is passed the current HTMLElement being tested as its only argument. - * If no function is given, the first element is returned. - * @return {HTMLElement | null} The matching element or null if none found. - */ - elementByAxis: function(element, axis, fn, all) { - while (element && (element = element[axis])) { // NOTE: assignment - if ( (all || element[TAG_NAME]) && (!fn || fn(element)) ) { - return element; - } +try { + Y.config.doc.createElement('div').style.height = '-1px'; +} catch(e) { // IE throws error on invalid style set; trap common cases + Y.DOM.CUSTOM_STYLES.height = { + set: function(node, val, style) { + var floatVal = parseFloat(val); + if (floatVal >= 0 || val === 'auto' || val === '') { + style.height = val; + } else { + } } - return null; - }, - - /** - * Determines whether or not one HTMLElement is or contains another HTMLElement. - * @method contains - * @param {HTMLElement} element The containing html element. - * @param {HTMLElement} needle The html element that may be contained. - * @return {Boolean} Whether or not the element is or contains the needle. - */ - contains: function(element, needle) { - var ret = false; + }; - if ( !needle || !element || !needle[NODE_TYPE] || !element[NODE_TYPE]) { - ret = false; - } else if (element[CONTAINS]) { - if (Y.UA.opera || needle[NODE_TYPE] === 1) { // IE & SAF contains fail if needle not an ELEMENT_NODE - ret = element[CONTAINS](needle); + Y.DOM.CUSTOM_STYLES.width = { + set: function(node, val, style) { + var floatVal = parseFloat(val); + if (floatVal >= 0 || val === 'auto' || val === '') { + style.width = val; } else { - ret = Y_DOM._bruteContains(element, needle); - } - } else if (element[COMPARE_DOCUMENT_POSITION]) { // gecko - if (element === needle || !!(element[COMPARE_DOCUMENT_POSITION](needle) & 16)) { - ret = true; } } + }; +} - return ret; - }, - - /** - * Determines whether or not the HTMLElement is part of the document. - * @method inDoc - * @param {HTMLElement} element The containing html element. - * @param {HTMLElement} doc optional The document to check. - * @return {Boolean} Whether or not the element is attached to the document. - */ - inDoc: function(element, doc) { - var ret = false, - rootNode; +if (!testFeature('style', 'computedStyle')) { + // TODO: top, right, bottom, left + IEComputed[WIDTH] = IEComputed[HEIGHT] = ComputedStyle.getOffset; - if (element && element.nodeType) { - (doc) || (doc = element[OWNER_DOCUMENT]); + IEComputed.color = IEComputed.backgroundColor = ComputedStyle.getColor; - rootNode = doc[DOCUMENT_ELEMENT]; + IEComputed[BORDER_WIDTH] = IEComputed[BORDER_TOP_WIDTH] = IEComputed[BORDER_RIGHT_WIDTH] = + IEComputed[BORDER_BOTTOM_WIDTH] = IEComputed[BORDER_LEFT_WIDTH] = + ComputedStyle.getBorderWidth; - // contains only works with HTML_ELEMENT - if (rootNode && rootNode.contains && element.tagName) { - ret = rootNode.contains(element); - } else { - ret = Y_DOM.contains(rootNode, element); - } - } + IEComputed.marginTop = IEComputed.marginRight = IEComputed.marginBottom = + IEComputed.marginLeft = ComputedStyle.getMargin; - return ret; + IEComputed.visibility = ComputedStyle.getVisibility; + IEComputed.borderColor = IEComputed.borderTopColor = + IEComputed.borderRightColor = IEComputed.borderBottomColor = + IEComputed.borderLeftColor = ComputedStyle.getBorderColor; - }, + Y.DOM[GET_COMPUTED_STYLE] = ComputedStyle.get; - allById: function(id, root) { - root = root || Y.config.doc; - var nodes = [], - ret = [], - i, - node; + Y.namespace('DOM.IE'); + Y.DOM.IE.COMPUTED = IEComputed; + Y.DOM.IE.ComputedStyle = ComputedStyle; +} - if (root.querySelectorAll) { - ret = root.querySelectorAll('[id="' + id + '"]'); - } else if (root.all) { - nodes = root.all(id); +})(Y); - if (nodes) { - // root.all may return HTMLElement or HTMLCollection. - // some elements are also HTMLCollection (FORM, SELECT). - if (nodes.nodeName) { - if (nodes.id === id) { // avoid false positive on name - ret.push(nodes); - nodes = EMPTY_ARRAY; // done, no need to filter - } else { // prep for filtering - nodes = [nodes]; - } - } - if (nodes.length) { - // filter out matches on node.name - // and element.id as reference to element with id === 'id' - for (i = 0; node = nodes[i++];) { - if (node.id === id || - (node.attributes && node.attributes.id && - node.attributes.id.value === id)) { - ret.push(node); - } - } - } - } - } else { - ret = [Y_DOM._getDoc(root).getElementById(id)]; - } - - return ret; - }, +}, '3.4.0' ,{requires:['dom-style']}); +YUI.add('dom-screen', function(Y) { +(function(Y) { - isWindow: function(obj) { - return !!(obj && obj.alert && obj.document); - }, +/** + * Adds position and region management functionality to DOM. + * @module dom + * @submodule dom-screen + * @for DOM + */ - _removeChildNodes: function(node) { - while (node.firstChild) { - node.removeChild(node.firstChild); - } - }, +var DOCUMENT_ELEMENT = 'documentElement', + COMPAT_MODE = 'compatMode', + POSITION = 'position', + FIXED = 'fixed', + RELATIVE = 'relative', + LEFT = 'left', + TOP = 'top', + _BACK_COMPAT = 'BackCompat', + MEDIUM = 'medium', + BORDER_LEFT_WIDTH = 'borderLeftWidth', + BORDER_TOP_WIDTH = 'borderTopWidth', + GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', + GET_COMPUTED_STYLE = 'getComputedStyle', - siblings: function(node, fn) { - var nodes = [], - sibling = node; + Y_DOM = Y.DOM, - while ((sibling = sibling[PREVIOUS_SIBLING])) { - if (sibling[TAG_NAME] && (!fn || fn(sibling))) { - nodes.unshift(sibling); - } - } + // TODO: how about thead/tbody/tfoot/tr? + // TODO: does caption matter? + RE_TABLE = /^t(?:able|d|h)$/i, - sibling = node; - while ((sibling = sibling[NEXT_SIBLING])) { - if (sibling[TAG_NAME] && (!fn || fn(sibling))) { - nodes.push(sibling); - } - } + SCROLL_NODE; - return nodes; - }, +if (Y.UA.ie) { + if (Y.config.doc[COMPAT_MODE] !== 'BackCompat') { + SCROLL_NODE = DOCUMENT_ELEMENT; + } else { + SCROLL_NODE = 'body'; + } +} +Y.mix(Y_DOM, { /** - * Brute force version of contains. - * Used for browsers without contains support for non-HTMLElement Nodes (textNodes, etc). - * @method _bruteContains - * @private - * @param {HTMLElement} element The containing html element. - * @param {HTMLElement} needle The html element that may be contained. - * @return {Boolean} Whether or not the element is or contains the needle. + * Returns the inner height of the viewport (exludes scrollbar). + * @method winHeight + * @return {Number} The current height of the viewport. */ - _bruteContains: function(element, needle) { - while (needle) { - if (element === needle) { - return true; - } - needle = needle.parentNode; - } - return false; + winHeight: function(node) { + var h = Y_DOM._getWinSize(node).height; + return h; }, -// TODO: move to Lang? /** - * Memoizes dynamic regular expressions to boost runtime performance. - * @method _getRegExp - * @private - * @param {String} str The string to convert to a regular expression. - * @param {String} flags optional An optinal string of flags. - * @return {RegExp} An instance of RegExp + * Returns the inner width of the viewport (exludes scrollbar). + * @method winWidth + * @return {Number} The current width of the viewport. */ - _getRegExp: function(str, flags) { - flags = flags || ''; - Y_DOM._regexCache = Y_DOM._regexCache || {}; - if (!Y_DOM._regexCache[str + flags]) { - Y_DOM._regexCache[str + flags] = new RegExp(str, flags); - } - return Y_DOM._regexCache[str + flags]; + winWidth: function(node) { + var w = Y_DOM._getWinSize(node).width; + return w; }, -// TODO: make getDoc/Win true privates? /** - * returns the appropriate document. - * @method _getDoc - * @private - * @param {HTMLElement} element optional Target element. - * @return {Object} The document for the given element or the default document. + * Document height + * @method docHeight + * @return {Number} The current height of the document. */ - _getDoc: function(element) { - var doc = Y.config.doc; - if (element) { - doc = (element[NODE_TYPE] === 9) ? element : // element === document - element[OWNER_DOCUMENT] || // element === DOM node - element.document || // element === window - Y.config.doc; // default - } - - return doc; + docHeight: function(node) { + var h = Y_DOM._getDocSize(node).height; + return Math.max(h, Y_DOM._getWinSize(node).height); }, /** - * returns the appropriate window. - * @method _getWin - * @private - * @param {HTMLElement} element optional Target element. - * @return {Object} The window for the given element or the default window. + * Document width + * @method docWidth + * @return {Number} The current width of the document. */ - _getWin: function(element) { - var doc = Y_DOM._getDoc(element); - return doc[DEFAULT_VIEW] || doc[PARENT_WINDOW] || Y.config.win; + docWidth: function(node) { + var w = Y_DOM._getDocSize(node).width; + return Math.max(w, Y_DOM._getWinSize(node).width); }, - _batch: function(nodes, fn, arg1, arg2, arg3, etc) { - fn = (typeof fn === 'string') ? Y_DOM[fn] : fn; - var result, - i = 0, - node, - ret; - - if (fn && nodes) { - while ((node = nodes[i++])) { - result = result = fn.call(Y_DOM, node, arg1, arg2, arg3, etc); - if (typeof result !== 'undefined') { - (ret) || (ret = []); - ret.push(result); - } - } - } + /** + * Amount page has been scroll horizontally + * @method docScrollX + * @return {Number} The current amount the screen is scrolled horizontally. + */ + docScrollX: function(node, doc) { + doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization + var dv = doc.defaultView, + pageOffset = (dv) ? dv.pageXOffset : 0; + return Math.max(doc[DOCUMENT_ELEMENT].scrollLeft, doc.body.scrollLeft, pageOffset); + }, - return (typeof ret !== 'undefined') ? ret : nodes; + /** + * Amount page has been scroll vertically + * @method docScrollY + * @return {Number} The current amount the screen is scrolled vertically. + */ + docScrollY: function(node, doc) { + doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization + var dv = doc.defaultView, + pageOffset = (dv) ? dv.pageYOffset : 0; + return Math.max(doc[DOCUMENT_ELEMENT].scrollTop, doc.body.scrollTop, pageOffset); }, - wrap: function(node, html) { - var parent = Y.DOM.create(html), - nodes = parent.getElementsByTagName('*'); + /** + * Gets the current position of an element based on page coordinates. + * Element must be part of the DOM tree to have page coordinates + * (display:none or elements not appended return false). + * @method getXY + * @param element The target element + * @return {Array} The XY position of the element - if (nodes.length) { - parent = nodes[nodes.length - 1]; - } + TODO: test inDocument/display? + */ + getXY: function() { + if (Y.config.doc[DOCUMENT_ELEMENT][GET_BOUNDING_CLIENT_RECT]) { + return function(node) { + var xy = null, + scrollLeft, + scrollTop, + box, + off1, off2, + bLeft, bTop, + mode, + doc, + inDoc, + rootNode; - if (node.parentNode) { - node.parentNode.replaceChild(parent, node); - } - parent.appendChild(node); - }, + if (node && node.tagName) { + doc = node.ownerDocument; + rootNode = doc[DOCUMENT_ELEMENT]; - unwrap: function(node) { - var parent = node.parentNode, - lastChild = parent.lastChild, - next = node, - grandparent; + // inline inDoc check for perf + if (rootNode.contains) { + inDoc = rootNode.contains(node); + } else { + inDoc = Y.DOM.contains(rootNode, node); + } - if (parent) { - grandparent = parent.parentNode; - if (grandparent) { - while (node !== lastChild) { - next = node.nextSibling; - grandparent.insertBefore(node, parent); - node = next; + if (inDoc) { + scrollLeft = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollLeft : Y_DOM.docScrollX(node, doc); + scrollTop = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollTop : Y_DOM.docScrollY(node, doc); + box = node[GET_BOUNDING_CLIENT_RECT](); + xy = [box.left, box.top]; + + if (Y.UA.ie) { + off1 = 2; + off2 = 2; + mode = doc[COMPAT_MODE]; + bLeft = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_LEFT_WIDTH); + bTop = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_TOP_WIDTH); + + if (Y.UA.ie === 6) { + if (mode !== _BACK_COMPAT) { + off1 = 0; + off2 = 0; + } + } + + if ((mode == _BACK_COMPAT)) { + if (bLeft !== MEDIUM) { + off1 = parseInt(bLeft, 10); + } + if (bTop !== MEDIUM) { + off2 = parseInt(bTop, 10); + } + } + + xy[0] -= off1; + xy[1] -= off2; + + } + + if ((scrollTop || scrollLeft)) { + if (!Y.UA.ios || (Y.UA.ios >= 4.2)) { + xy[0] += scrollLeft; + xy[1] += scrollTop; + } + + } + } else { + xy = Y_DOM._getOffset(node); + } } - grandparent.replaceChild(lastChild, parent); - } else { - parent.removeChild(node); + return xy; } - } - }, - - generateID: function(el) { - var id = el.id; + } else { + return function(node) { // manually calculate by crawling up offsetParents + //Calculate the Top and Left border sizes (assumes pixels) + var xy = null, + doc, + parentNode, + bCheck, + scrollTop, + scrollLeft; - if (!id) { - id = Y.stamp(el); - el.id = id; - } + if (node) { + if (Y_DOM.inDoc(node)) { + xy = [node.offsetLeft, node.offsetTop]; + doc = node.ownerDocument; + parentNode = node; + // TODO: refactor with !! or just falsey + bCheck = ((Y.UA.gecko || Y.UA.webkit > 519) ? true : false); - return id; - } -}; + // TODO: worth refactoring for TOP/LEFT only? + while ((parentNode = parentNode.offsetParent)) { + xy[0] += parentNode.offsetLeft; + xy[1] += parentNode.offsetTop; + if (bCheck) { + xy = Y_DOM._calcBorders(parentNode, xy); + } + } + // account for any scrolled ancestors + if (Y_DOM.getStyle(node, POSITION) != FIXED) { + parentNode = node; -Y.DOM = Y_DOM; + while ((parentNode = parentNode.parentNode)) { + scrollTop = parentNode.scrollTop; + scrollLeft = parentNode.scrollLeft; + //Firefox does something funky with borders when overflow is not visible. + if (Y.UA.gecko && (Y_DOM.getStyle(parentNode, 'overflow') !== 'visible')) { + xy = Y_DOM._calcBorders(parentNode, xy); + } + -}, '3.4.0' ,{requires:['oop','features']}); -YUI.add('dom-attrs', function(Y) { + if (scrollTop || scrollLeft) { + xy[0] -= scrollLeft; + xy[1] -= scrollTop; + } + } + xy[0] += Y_DOM.docScrollX(node, doc); + xy[1] += Y_DOM.docScrollY(node, doc); -var documentElement = Y.config.doc.documentElement, - Y_DOM = Y.DOM, - TAG_NAME = 'tagName', - OWNER_DOCUMENT = 'ownerDocument', - EMPTY_STRING = '', - addFeature = Y.Features.add, - testFeature = Y.Features.test; + } else { + //Fix FIXED position -- add scrollbars + xy[0] += Y_DOM.docScrollX(node, doc); + xy[1] += Y_DOM.docScrollY(node, doc); + } + } else { + xy = Y_DOM._getOffset(node); + } + } -Y.mix(Y_DOM, { - /** - * Returns the text content of the HTMLElement. - * @method getText - * @param {HTMLElement} element The html element. - * @return {String} The text content of the element (includes text of any descending elements). - */ - getText: (documentElement.textContent !== undefined) ? - function(element) { - var ret = ''; - if (element) { - ret = element.textContent; - } - return ret || ''; - } : function(element) { - var ret = ''; - if (element) { - ret = element.innerText || element.nodeValue; // might be a textNode - } - return ret || ''; - }, + return xy; + }; + } + }(),// NOTE: Executing for loadtime branching /** - * Sets the text content of the HTMLElement. - * @method setText - * @param {HTMLElement} element The html element. - * @param {String} content The content to add. + * Gets the current X position of an element based on page coordinates. + * Element must be part of the DOM tree to have page coordinates + * (display:none or elements not appended return false). + * @method getX + * @param element The target element + * @return {Int} The X position of the element */ - setText: (documentElement.textContent !== undefined) ? - function(element, content) { - if (element) { - element.textContent = content; - } - } : function(element, content) { - if ('innerText' in element) { - element.innerText = content; - } else if ('nodeValue' in element) { - element.nodeValue = content; - } - }, - CUSTOM_ATTRIBUTES: (!documentElement.hasAttribute) ? { // IE < 8 - 'for': 'htmlFor', - 'class': 'className' - } : { // w3c - 'htmlFor': 'for', - 'className': 'class' + getX: function(node) { + return Y_DOM.getXY(node)[0]; }, /** - * Provides a normalized attribute interface. - * @method setAttribute - * @param {HTMLElement} el The target element for the attribute. - * @param {String} attr The attribute to set. - * @param {String} val The value of the attribute. + * Gets the current Y position of an element based on page coordinates. + * Element must be part of the DOM tree to have page coordinates + * (display:none or elements not appended return false). + * @method getY + * @param element The target element + * @return {Int} The Y position of the element */ - setAttribute: function(el, attr, val, ieAttr) { - if (el && attr && el.setAttribute) { - attr = Y_DOM.CUSTOM_ATTRIBUTES[attr] || attr; - el.setAttribute(attr, val, ieAttr); - } - }, + getY: function(node) { + return Y_DOM.getXY(node)[1]; + }, /** - * Provides a normalized attribute interface. - * @method getAttibute - * @param {HTMLElement} el The target element for the attribute. - * @param {String} attr The attribute to get. - * @return {String} The current value of the attribute. + * Set the position of an html element in page coordinates. + * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). + * @method setXY + * @param element The target element + * @param {Array} xy Contains X & Y values for new position (coordinates are page-based) + * @param {Boolean} noRetry By default we try and set the position a second time if the first fails */ - getAttribute: function(el, attr, ieAttr) { - ieAttr = (ieAttr !== undefined) ? ieAttr : 2; - var ret = ''; - if (el && attr && el.getAttribute) { - attr = Y_DOM.CUSTOM_ATTRIBUTES[attr] || attr; - ret = el.getAttribute(attr, ieAttr); + setXY: function(node, xy, noRetry) { + var setStyle = Y_DOM.setStyle, + pos, + delta, + newXY, + currentXY; - if (ret === null) { - ret = ''; // per DOM spec + if (node && xy) { + pos = Y_DOM.getStyle(node, POSITION); + + delta = Y_DOM._getOffset(node); + if (pos == 'static') { // default to relative + pos = RELATIVE; + setStyle(node, POSITION, pos); } - } - return ret; - }, + currentXY = Y_DOM.getXY(node); - VALUE_SETTERS: {}, + if (xy[0] !== null) { + setStyle(node, LEFT, xy[0] - currentXY[0] + delta[0] + 'px'); + } - VALUE_GETTERS: {}, + if (xy[1] !== null) { + setStyle(node, TOP, xy[1] - currentXY[1] + delta[1] + 'px'); + } - getValue: function(node) { - var ret = '', // TODO: return null? - getter; - - if (node && node[TAG_NAME]) { - getter = Y_DOM.VALUE_GETTERS[node[TAG_NAME].toLowerCase()]; - - if (getter) { - ret = getter(node); - } else { - ret = node.value; + if (!noRetry) { + newXY = Y_DOM.getXY(node); + if (newXY[0] !== xy[0] || newXY[1] !== xy[1]) { + Y_DOM.setXY(node, xy, true); + } } + + } else { } + }, - // workaround for IE8 JSON stringify bug - // which converts empty string values to null - if (ret === EMPTY_STRING) { - ret = EMPTY_STRING; // for real - } - - return (typeof ret === 'string') ? ret : ''; + /** + * Set the X position of an html element in page coordinates, regardless of how the element is positioned. + * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). + * @method setX + * @param element The target element + * @param {Int} x The X values for new position (coordinates are page-based) + */ + setX: function(node, x) { + return Y_DOM.setXY(node, [x, null]); }, - setValue: function(node, val) { - var setter; + /** + * Set the Y position of an html element in page coordinates, regardless of how the element is positioned. + * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). + * @method setY + * @param element The target element + * @param {Int} y The Y values for new position (coordinates are page-based) + */ + setY: function(node, y) { + return Y_DOM.setXY(node, [null, y]); + }, - if (node && node[TAG_NAME]) { - setter = Y_DOM.VALUE_SETTERS[node[TAG_NAME].toLowerCase()]; + /** + * @method swapXY + * @description Swap the xy position with another node + * @param {Node} node The node to swap with + * @param {Node} otherNode The other node to swap with + * @return {Node} + */ + swapXY: function(node, otherNode) { + var xy = Y_DOM.getXY(node); + Y_DOM.setXY(node, Y_DOM.getXY(otherNode)); + Y_DOM.setXY(otherNode, xy); + }, - if (setter) { - setter(node, val); - } else { - node.value = val; + _calcBorders: function(node, xy2) { + var t = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_TOP_WIDTH), 10) || 0, + l = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_LEFT_WIDTH), 10) || 0; + if (Y.UA.gecko) { + if (RE_TABLE.test(node.tagName)) { + t = 0; + l = 0; } } + xy2[0] += l; + xy2[1] += t; + return xy2; }, - creators: {} -}); - -addFeature('value-set', 'select', { - test: function() { - var node = Y.config.doc.createElement('select'); - node.innerHTML = ''; - node.value = '2'; - return (node.value && node.value === '2'); - } -}); + _getWinSize: function(node, doc) { + doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; + var win = doc.defaultView || doc.parentWindow, + mode = doc[COMPAT_MODE], + h = win.innerHeight, + w = win.innerWidth, + root = doc[DOCUMENT_ELEMENT]; -if (!testFeature('value-set', 'select')) { - Y_DOM.VALUE_SETTERS.select = function(node, val) { - for (var i = 0, options = node.getElementsByTagName('option'), option; - option = options[i++];) { - if (Y_DOM.getValue(option) === val) { - option.selected = true; - //Y_DOM.setAttribute(option, 'selected', 'selected'); - break; + if ( mode && !Y.UA.opera ) { // IE, Gecko + if (mode != 'CSS1Compat') { // Quirks + root = doc.body; } + h = root.clientHeight; + w = root.clientWidth; } - } -} - -Y.mix(Y_DOM.VALUE_GETTERS, { - button: function(node) { - return (node.attributes && node.attributes.value) ? node.attributes.value.value : ''; - } -}); - -Y.mix(Y_DOM.VALUE_SETTERS, { - // IE: node.value changes the button text, which should be handled via innerHTML - button: function(node, val) { - var attr = node.attributes.value; - if (!attr) { - attr = node[OWNER_DOCUMENT].createAttribute('value'); - node.setAttributeNode(attr); - } - - attr.value = val; - } -}); - - -Y.mix(Y_DOM.VALUE_GETTERS, { - option: function(node) { - var attrs = node.attributes; - return (attrs.value && attrs.value.specified) ? node.value : node.text; + return { height: h, width: w }; }, - select: function(node) { - var val = node.value, - options = node.options; + _getDocSize: function(node) { + var doc = (node) ? Y_DOM._getDoc(node) : Y.config.doc, + root = doc[DOCUMENT_ELEMENT]; - if (options && options.length) { - // TODO: implement multipe select - if (node.multiple) { - } else { - val = Y_DOM.getValue(options[node.selectedIndex]); - } + if (doc[COMPAT_MODE] != 'CSS1Compat') { + root = doc.body; } - return val; + return { height: root.scrollHeight, width: root.scrollWidth }; } }); +})(Y); +(function(Y) { +var TOP = 'top', + RIGHT = 'right', + BOTTOM = 'bottom', + LEFT = 'left', -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-create', function(Y) { - -var re_tag = /<([a-z]+)/i, - - Y_DOM = Y.DOM, - - addFeature = Y.Features.add, - testFeature = Y.Features.test, - - creators = {}, + getOffsets = function(r1, r2) { + var t = Math.max(r1[TOP], r2[TOP]), + r = Math.min(r1[RIGHT], r2[RIGHT]), + b = Math.min(r1[BOTTOM], r2[BOTTOM]), + l = Math.max(r1[LEFT], r2[LEFT]), + ret = {}; + + ret[TOP] = t; + ret[RIGHT] = r; + ret[BOTTOM] = b; + ret[LEFT] = l; + return ret; + }, - createFromDIV = function(html, tag) { - var div = Y.config.doc.createElement('div'), - ret = true; + DOM = Y.DOM; - div.innerHTML = html; - if (!div.firstChild || div.firstChild.tagName !== tag.toUpperCase()) { +Y.mix(DOM, { + /** + * Returns an Object literal containing the following about this element: (top, right, bottom, left) + * @for DOM + * @method region + * @param {HTMLElement} element The DOM element. + * @return {Object} Object literal containing the following about this element: (top, right, bottom, left) + */ + region: function(node) { + var xy = DOM.getXY(node), ret = false; + + if (node && xy) { + ret = DOM._getRegion( + xy[1], // top + xy[0] + node.offsetWidth, // right + xy[1] + node.offsetHeight, // bottom + xy[0] // left + ); } return ret; }, - re_tbody = /(?:\/(?:thead|tfoot|tbody|caption|col|colgroup)>)+\s*= region[LEFT] && + r[RIGHT] <= region[RIGHT] && + r[TOP] >= region[TOP] && + r[BOTTOM] <= region[BOTTOM] ); + } else { + off = getOffsets(region, r); + if (off[BOTTOM] >= off[TOP] && off[RIGHT] >= off[LEFT]) { + return true; + } else { + return false; } + } - - return ret; }, - _nl2frag: function(nodes, doc) { - var ret = null, - i, len; + /** + * Check if any part of this element is in the viewport + * @method inViewportRegion + * @for DOM + * @param {HTMLElement} element The DOM element. + * @param {Boolean} all Should all of the node be inside the region + * @param {Object} altRegion An object literal containing the region for this node if we already have the data (for performance i.e. DragDrop) + * @return {Boolean} True if in region, false if not. + */ + inViewportRegion: function(node, all, altRegion) { + return DOM.inRegion(node, DOM.viewportRegion(node), all, altRegion); + + }, - if (nodes && (nodes.push || nodes.item) && nodes[0]) { - doc = doc || nodes[0].ownerDocument; - ret = doc.createDocumentFragment(); + _getRegion: function(t, r, b, l) { + var region = {}; - if (nodes.item) { // convert live list to static array - nodes = Y.Array(nodes, 0, true); - } + region[TOP] = region[1] = t; + region[LEFT] = region[0] = l; + region[BOTTOM] = b; + region[RIGHT] = r; + region.width = region[RIGHT] - region[LEFT]; + region.height = region[BOTTOM] - region[TOP]; - for (i = 0, len = nodes.length; i < len; i++) { - ret.appendChild(nodes[i]); - } - } // else inline with log for minification - return ret; + return region; }, /** - * Inserts content in a node at the given location - * @method addHTML - * @param {HTMLElement} node The node to insert into - * @param {HTMLElement | Array | HTMLCollection} content The content to be inserted - * @param {HTMLElement} where Where to insert the content - * If no "where" is given, content is appended to the node - * Possible values for "where" - *

                              - *
                              HTMLElement
                              - *
                              The element to insert before
                              - *
                              "replace"
                              - *
                              Replaces the existing HTML
                              - *
                              "before"
                              - *
                              Inserts before the existing HTML
                              - *
                              "before"
                              - *
                              Inserts content before the node
                              - *
                              "after"
                              - *
                              Inserts content after the node
                              - *
                              + * Returns an Object literal containing the following about the visible region of viewport: (top, right, bottom, left) + * @method viewportRegion + * @for DOM + * @return {Object} Object literal containing the following about the visible region of the viewport: (top, right, bottom, left) */ - addHTML: function(node, content, where) { - var nodeParent = node.parentNode, - i = 0, - item, - ret = content, - newNode; - + viewportRegion: function(node) { + node = node || Y.config.doc.documentElement; + var ret = false, + scrollX, + scrollY; - if (content != undefined) { // not null or undefined (maybe 0) - if (content.nodeType) { // DOM node, just add it - newNode = content; - } else if (typeof content == 'string' || typeof content == 'number') { - ret = newNode = Y_DOM.create(content); - } else if (content[0] && content[0].nodeType) { // array or collection - newNode = Y.config.doc.createDocumentFragment(); - while ((item = content[i++])) { - newNode.appendChild(item); // append to fragment for insertion - } - } - } + if (node) { + scrollX = DOM.docScrollX(node); + scrollY = DOM.docScrollY(node); - if (where) { - if (where.nodeType) { // insert regardless of relationship to node - where.parentNode.insertBefore(newNode, where); - } else { - switch (where) { - case 'replace': - while (node.firstChild) { - node.removeChild(node.firstChild); - } - if (newNode) { // allow empty content to clear node - node.appendChild(newNode); - } - break; - case 'before': - nodeParent.insertBefore(newNode, node); - break; - case 'after': - if (node.nextSibling) { // IE errors if refNode is null - nodeParent.insertBefore(newNode, node.nextSibling); - } else { - nodeParent.appendChild(newNode); - } - break; - default: - node.appendChild(newNode); - } - } - } else if (newNode) { - node.appendChild(newNode); + ret = DOM._getRegion(scrollY, // top + DOM.winWidth(node) + scrollX, // right + scrollY + DOM.winHeight(node), // bottom + scrollX); // left } return ret; } }); +})(Y); -addFeature('innerhtml', 'table', { - test: function() { - var node = Y.config.doc.createElement('table'); - try { - node.innerHTML = ''; - } catch(e) { - return false; - } - return (node.firstChild && node.firstChild.nodeName === 'TBODY'); - } -}); -addFeature('innerhtml-div', 'tr', { - test: function() { - return createFromDIV('', 'tr'); - } -}); +}, '3.4.0' ,{requires:['dom-base', 'dom-style']}); +YUI.add('selector-native', function(Y) { -addFeature('innerhtml-div', 'script', { - test: function() { - return createFromDIV('', 'script'); - } -}); +(function(Y) { +/** + * The selector-native module provides support for native querySelector + * @module dom + * @submodule selector-native + * @for Selector + */ -if (!testFeature('innerhtml', 'table')) { - // TODO: thead/tfoot with nested tbody - // IE adds TBODY when creating TABLE elements (which may share this impl) - creators.tbody = function(html, doc) { - var frag = Y_DOM.create(TABLE_OPEN + html + TABLE_CLOSE, doc), - tb = frag.children.tags('tbody')[0]; +/** + * Provides support for using CSS selectors to query the DOM + * @class Selector + * @static + * @for Selector + */ - if (frag.children.length > 1 && tb && !re_tbody.test(html)) { - tb.parentNode.removeChild(tb); // strip extraneous tbody - } - return frag; - }; -} +Y.namespace('Selector'); // allow native module to standalone -if (!testFeature('innerhtml-div', 'script')) { - creators.script = function(html, doc) { - var frag = doc.createElement('div'); +var COMPARE_DOCUMENT_POSITION = 'compareDocumentPosition', + OWNER_DOCUMENT = 'ownerDocument'; - frag.innerHTML = '-' + html; - frag.removeChild(frag.firstChild); - return frag; - } +var Selector = { + _foundCache: [], - creators.link = creators.style = creators.script; -} + useNative: true, -if (!testFeature('innerhtml-div', 'tr')) { - Y.mix(creators, { - option: function(html, doc) { - return Y_DOM.create('', doc); - }, - - tr: function(html, doc) { - return Y_DOM.create('' + html + '', doc); - }, - - td: function(html, doc) { - return Y_DOM.create('' + html + '', doc); - }, + _compare: ('sourceIndex' in Y.config.doc.documentElement) ? + function(nodeA, nodeB) { + var a = nodeA.sourceIndex, + b = nodeB.sourceIndex; - col: function(html, doc) { - return Y_DOM.create('' + html + '', doc); - }, + if (a === b) { + return 0; + } else if (a > b) { + return 1; + } - tbody: 'table' - }); + return -1; - Y.mix(creators, { - legend: 'fieldset', - th: creators.td, - thead: creators.tbody, - tfoot: creators.tbody, - caption: creators.tbody, - colgroup: creators.tbody, - optgroup: creators.option - }); -} + } : (Y.config.doc.documentElement[COMPARE_DOCUMENT_POSITION] ? + function(nodeA, nodeB) { + if (nodeA[COMPARE_DOCUMENT_POSITION](nodeB) & 4) { + return -1; + } else { + return 1; + } + } : + function(nodeA, nodeB) { + var rangeA, rangeB, compare; + if (nodeA && nodeB) { + rangeA = nodeA[OWNER_DOCUMENT].createRange(); + rangeA.setStart(nodeA, 0); + rangeB = nodeB[OWNER_DOCUMENT].createRange(); + rangeB.setStart(nodeB, 0); + compare = rangeA.compareBoundaryPoints(1, rangeB); // 1 === Range.START_TO_END + } -Y_DOM.creators = creators; + return compare; + + }), + _sort: function(nodes) { + if (nodes) { + nodes = Y.Array(nodes, 0, true); + if (nodes.sort) { + nodes.sort(Selector._compare); + } + } -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-class', function(Y) { + return nodes; + }, -var addClass, hasClass, removeClass; + _deDupe: function(nodes) { + var ret = [], + i, node; -Y.mix(Y.DOM, { - /** - * Determines whether a DOM element has the given className. - * @method hasClass - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {String} className the class name to search for - * @return {Boolean} Whether or not the element has the given class. - */ - hasClass: function(node, className) { - var re = Y.DOM._getRegExp('(?:^|\\s+)' + className + '(?:\\s+|$)'); - return re.test(node.className); - }, + for (i = 0; (node = nodes[i++]);) { + if (!node._found) { + ret[ret.length] = node; + node._found = true; + } + } - /** - * Adds a class name to a given DOM element. - * @method addClass - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {String} className the class name to add to the class attribute - */ - addClass: function(node, className) { - if (!Y.DOM.hasClass(node, className)) { // skip if already present - node.className = Y.Lang.trim([node.className, className].join(' ')); + for (i = 0; (node = ret[i++]);) { + node._found = null; + node.removeAttribute('_found'); } + + return ret; }, /** - * Removes a class name from a given element. - * @method removeClass - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {String} className the class name to remove from the class attribute + * Retrieves a set of nodes based on a given CSS selector. + * @method query + * + * @param {string} selector The CSS Selector to test the node against. + * @param {HTMLElement} root optional An HTMLElement to start the query from. Defaults to Y.config.doc + * @param {Boolean} firstOnly optional Whether or not to return only the first match. + * @return {Array} An array of nodes that match the given selector. + * @static */ - removeClass: function(node, className) { - if (className && hasClass(node, className)) { - node.className = Y.Lang.trim(node.className.replace(Y.DOM._getRegExp('(?:^|\\s+)' + - className + '(?:\\s+|$)'), ' ')); + query: function(selector, root, firstOnly, skipNative) { + root = root || Y.config.doc; + var ret = [], + useNative = (Y.Selector.useNative && Y.config.doc.querySelector && !skipNative), + queries = [[selector, root]], + query, + result, + i, + fn = (useNative) ? Y.Selector._nativeQuery : Y.Selector._bruteQuery; - if ( hasClass(node, className) ) { // in case of multiple adjacent - removeClass(node, className); + if (selector && fn) { + // split group into seperate queries + if (!skipNative && // already done if skipping + (!useNative || root.tagName)) { // split native when element scoping is needed + queries = Selector._splitQueries(selector, root); } - } - }, - - /** - * Replace a class with another class for a given element. - * If no oldClassName is present, the newClassName is simply added. - * @method replaceClass - * @for DOM - * @param {HTMLElement} element The DOM element - * @param {String} oldClassName the class name to be replaced - * @param {String} newClassName the class name that will be replacing the old class name - */ - replaceClass: function(node, oldC, newC) { - removeClass(node, oldC); // remove first in case oldC === newC - addClass(node, newC); - }, - /** - * If the className exists on the node it is removed, if it doesn't exist it is added. - * @method toggleClass - * @for DOM - * @param {HTMLElement} element The DOM element - * @param {String} className the class name to be toggled - * @param {Boolean} addClass optional boolean to indicate whether class - * should be added or removed regardless of current state - */ - toggleClass: function(node, className, force) { - var add = (force !== undefined) ? force : - !(hasClass(node, className)); + for (i = 0; (query = queries[i++]);) { + result = fn(query[0], query[1], firstOnly); + if (!firstOnly) { // coerce DOM Collection to Array + result = Y.Array(result, 0, true); + } + if (result) { + ret = ret.concat(result); + } + } - if (add) { - addClass(node, className); - } else { - removeClass(node, className); + if (queries.length > 1) { // remove dupes and sort by doc order + ret = Selector._sort(Selector._deDupe(ret)); + } } - } -}); -hasClass = Y.DOM.hasClass; -removeClass = Y.DOM.removeClass; -addClass = Y.DOM.addClass; + return (firstOnly) ? (ret[0] || null) : ret; + }, + // allows element scoped queries to begin with combinator + // e.g. query('> p', document.body) === query('body > p') + _splitQueries: function(selector, node) { + var groups = selector.split(','), + queries = [], + prefix = '', + i, len; -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-size', function(Y) { + if (node) { + // enforce for element scoping + if (node.tagName) { + node.id = node.id || Y.guid(); + prefix = '[id="' + node.id + '"] '; + } -Y.mix(Y.DOM, { - /** - * Sets the width of the element to the given size, regardless - * of box model, border, padding, etc. - * @method setWidth - * @param {HTMLElement} element The DOM element. - * @param {String|Int} size The pixel height to size to - */ + for (i = 0, len = groups.length; i < len; ++i) { + selector = prefix + groups[i]; + queries.push([selector, node]); + } + } - setWidth: function(node, size) { - Y.DOM._setSize(node, 'width', size); + return queries; }, - /** - * Sets the height of the element to the given size, regardless - * of box model, border, padding, etc. - * @method setHeight - * @param {HTMLElement} element The DOM element. - * @param {String|Int} size The pixel height to size to - */ - - setHeight: function(node, size) { - Y.DOM._setSize(node, 'height', size); + _nativeQuery: function(selector, root, one) { + if (Y.UA.webkit && selector.indexOf(':checked') > -1 && + (Y.Selector.pseudos && Y.Selector.pseudos.checked)) { // webkit (chrome, safari) fails to pick up "selected" with "checked" + return Y.Selector.query(selector, root, one, true); // redo with skipNative true to try brute query + } + try { + return root['querySelector' + (one ? '' : 'All')](selector); + } catch(e) { // fallback to brute if available + return Y.Selector.query(selector, root, one, true); // redo with skipNative true + } }, - _setSize: function(node, prop, val) { - val = (val > 0) ? val : 0; - var size = 0; - - node.style[prop] = val + 'px'; - size = (prop === 'height') ? node.offsetHeight : node.offsetWidth; - - if (size > val) { - val = val - (size - val); + filter: function(nodes, selector) { + var ret = [], + i, node; - if (val < 0) { - val = 0; + if (nodes && selector) { + for (i = 0; (node = nodes[i++]);) { + if (Y.Selector.test(node, selector)) { + ret[ret.length] = node; + } } + } else { + } - node.style[prop] = val + 'px'; - } - } -}); + return ret; + }, + test: function(node, selector, root) { + var ret = false, + useFrag = false, + groups, + parent, + item, + items, + frag, + i, j, group; -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-base', function(Y) { + if (node && node.tagName) { // only test HTMLElements + if (typeof selector == 'function') { // test with function + ret = selector.call(node, node); + } else { // test with query + // we need a root if off-doc + groups = selector.split(','); + if (!root && !Y.DOM.inDoc(node)) { + parent = node.parentNode; + if (parent) { + root = parent; + } else { // only use frag when no parent to query + frag = node[OWNER_DOCUMENT].createDocumentFragment(); + frag.appendChild(node); + root = frag; + useFrag = true; + } + } + root = root || node[OWNER_DOCUMENT]; + if (!node.id) { + node.id = Y.guid(); + } + for (i = 0; (group = groups[i++]);) { // TODO: off-dom test + group += '[id="' + node.id + '"]'; + items = Y.Selector.query(group, root); + for (j = 0; item = items[j++];) { + if (item === node) { + ret = true; + break; + } + } + if (ret) { + break; + } + } -}, '3.4.0' ,{requires:['dom-core', 'dom-attrs', 'dom-class', 'dom-create', 'dom-size']}); -YUI.add('dom-style', function(Y) { + if (useFrag) { // cleanup + frag.removeChild(node); + } + }; + } -(function(Y) { -/** - * Add style management functionality to DOM. - * @module dom - * @submodule dom-style - * @for DOM - */ + return ret; + }, -var DOCUMENT_ELEMENT = 'documentElement', - DEFAULT_VIEW = 'defaultView', - OWNER_DOCUMENT = 'ownerDocument', - STYLE = 'style', - FLOAT = 'float', - CSS_FLOAT = 'cssFloat', - STYLE_FLOAT = 'styleFloat', - TRANSPARENT = 'transparent', - GET_COMPUTED_STYLE = 'getComputedStyle', - GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', + /** + * A convenience function to emulate Y.Node's aNode.ancestor(selector). + * @param {HTMLElement} element An HTMLElement to start the query from. + * @param {String} selector The CSS selector to test the node against. + * @return {HTMLElement} The ancestor node matching the selector, or null. + * @param {Boolean} testSelf optional Whether or not to include the element in the scan + * @static + * @method ancestor + */ + ancestor: function (element, selector, testSelf) { + return Y.DOM.ancestor(element, function(n) { + return Y.Selector.test(n, selector); + }, testSelf); + } +}; - WINDOW = Y.config.win, - DOCUMENT = Y.config.doc, - UNDEFINED = undefined, +Y.mix(Y.Selector, Selector, true); - Y_DOM = Y.DOM, +})(Y); - TRANSFORM = 'transform', - VENDOR_TRANSFORM = [ - 'WebkitTransform', - 'MozTransform', - 'OTransform' - ], - re_color = /color$/i, - re_unit = /width|height|top|left|right|bottom|margin|padding/i; +}, '3.4.0' ,{requires:['dom-base']}); +YUI.add('selector', function(Y) { -Y.Array.each(VENDOR_TRANSFORM, function(val) { - if (val in DOCUMENT[DOCUMENT_ELEMENT].style) { - TRANSFORM = val; - } -}); -Y.mix(Y_DOM, { - DEFAULT_UNIT: 'px', - CUSTOM_STYLES: { - }, +}, '3.4.0' ,{requires:['selector-native']}); +YUI.add('event-custom-base', function(Y) { - /** - * Sets a style property for a given element. - * @method setStyle - * @param {HTMLElement} An HTMLElement to apply the style to. - * @param {String} att The style property to set. - * @param {String|Number} val The value. - */ - setStyle: function(node, att, val, style) { - style = style || node.style; - var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES; +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event-custom + */ - if (style) { - if (val === null || val === '') { // normalize unsetting - val = ''; - } else if (!isNaN(new Number(val)) && re_unit.test(att)) { // number values may need a unit - val += Y_DOM.DEFAULT_UNIT; - } +Y.Env.evt = { + handles: {}, + plugins: {} +}; - if (att in CUSTOM_STYLES) { - if (CUSTOM_STYLES[att].set) { - CUSTOM_STYLES[att].set(node, val, style); - return; // NOTE: return - } else if (typeof CUSTOM_STYLES[att] === 'string') { - att = CUSTOM_STYLES[att]; - } - } else if (att === '') { // unset inline styles - att = 'cssText'; - val = ''; - } - style[att] = val; - } - }, - /** - * Returns the current style value for the given property. - * @method getStyle - * @param {HTMLElement} An HTMLElement to get the style from. - * @param {String} att The style property to get. - */ - getStyle: function(node, att, style) { - style = style || node.style; - var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES, - val = ''; +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event-custom + * @submodule event-custom-base + */ - if (style) { - if (att in CUSTOM_STYLES) { - if (CUSTOM_STYLES[att].get) { - return CUSTOM_STYLES[att].get(node, att, style); // NOTE: return - } else if (typeof CUSTOM_STYLES[att] === 'string') { - att = CUSTOM_STYLES[att]; - } - } - val = style[att]; - if (val === '') { // TODO: is empty string sufficient? - val = Y_DOM[GET_COMPUTED_STYLE](node, att); - } - } +/** + * Allows for the insertion of methods that are executed before or after + * a specified method + * @class Do + * @static + */ - return val; - }, +var DO_BEFORE = 0, + DO_AFTER = 1, + +DO = { /** - * Sets multiple style properties. - * @method setStyles - * @param {HTMLElement} node An HTMLElement to apply the styles to. - * @param {Object} hash An object literal of property:value pairs. + * Cache of objects touched by the utility + * @property objs + * @static */ - setStyles: function(node, hash) { - var style = node.style; - Y.each(hash, function(v, n) { - Y_DOM.setStyle(node, n, v, style); - }, Y_DOM); - }, + objs: {}, /** - * Returns the computed style for the given node. - * @method getComputedStyle - * @param {HTMLElement} An HTMLElement to get the style from. - * @param {String} att The style property to get. - * @return {String} The computed value of the style property. + *

                              Execute the supplied method before the specified function. Wrapping + * function may optionally return an instance of the following classes to + * further alter runtime behavior:

                              + *
                              + *
                              Y.Do.Halt(message, returnValue)
                              + *
                              Immediatly stop execution and return + * returnValue. No other wrapping functions will be + * executed.
                              + *
                              Y.Do.AlterArgs(message, newArgArray)
                              + *
                              Replace the arguments that the original function will be + * called with.
                              + *
                              Y.Do.Prevent(message)
                              + *
                              Don't execute the wrapped function. Other before phase + * wrappers will be executed.
                              + *
                              + * + * @method before + * @param fn {Function} the function to execute + * @param obj the object hosting the method to displace + * @param sFn {string} the name of the method to displace + * @param c The execution context for fn + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {string} handle for the subscription + * @static */ - getComputedStyle: function(node, att) { - var val = '', - doc = node[OWNER_DOCUMENT]; - - if (node[STYLE] && doc[DEFAULT_VIEW] && doc[DEFAULT_VIEW][GET_COMPUTED_STYLE]) { - val = doc[DEFAULT_VIEW][GET_COMPUTED_STYLE](node, null)[att]; + before: function(fn, obj, sFn, c) { + var f = fn, a; + if (c) { + a = [fn, c].concat(Y.Array(arguments, 4, true)); + f = Y.rbind.apply(Y, a); } - return val; - } -}); -// normalize reserved word float alternatives ("cssFloat" or "styleFloat") -if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][CSS_FLOAT] !== UNDEFINED) { - Y_DOM.CUSTOM_STYLES[FLOAT] = CSS_FLOAT; -} else if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][STYLE_FLOAT] !== UNDEFINED) { - Y_DOM.CUSTOM_STYLES[FLOAT] = STYLE_FLOAT; -} - -// fix opera computedStyle default color unit (convert to rgb) -if (Y.UA.opera) { - Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { - var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], - val = view[GET_COMPUTED_STYLE](node, '')[att]; + return this._inject(DO_BEFORE, f, obj, sFn); + }, - if (re_color.test(att)) { - val = Y.Color.toRGB(val); + /** + *

                              Execute the supplied method after the specified function. Wrapping + * function may optionally return an instance of the following classes to + * further alter runtime behavior:

                              + *
                              + *
                              Y.Do.Halt(message, returnValue)
                              + *
                              Immediatly stop execution and return + * returnValue. No other wrapping functions will be + * executed.
                              + *
                              Y.Do.AlterReturn(message, returnValue)
                              + *
                              Return returnValue instead of the wrapped + * method's original return value. This can be further altered by + * other after phase wrappers.
                              + *
                              + * + *

                              The static properties Y.Do.originalRetVal and + * Y.Do.currentRetVal will be populated for reference.

                              + * + * @method after + * @param fn {Function} the function to execute + * @param obj the object hosting the method to displace + * @param sFn {string} the name of the method to displace + * @param c The execution context for fn + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return {string} handle for the subscription + * @static + */ + after: function(fn, obj, sFn, c) { + var f = fn, a; + if (c) { + a = [fn, c].concat(Y.Array(arguments, 4, true)); + f = Y.rbind.apply(Y, a); } - return val; - }; + return this._inject(DO_AFTER, f, obj, sFn); + }, -} + /** + * Execute the supplied method before or after the specified function. + * Used by before and after. + * + * @method _inject + * @param when {string} before or after + * @param fn {Function} the function to execute + * @param obj the object hosting the method to displace + * @param sFn {string} the name of the method to displace + * @param c The execution context for fn + * @return {string} handle for the subscription + * @private + * @static + */ + _inject: function(when, fn, obj, sFn) { -// safari converts transparent to rgba(), others use "transparent" -if (Y.UA.webkit) { - Y_DOM[GET_COMPUTED_STYLE] = function(node, att) { - var view = node[OWNER_DOCUMENT][DEFAULT_VIEW], - val = view[GET_COMPUTED_STYLE](node, '')[att]; + // object id + var id = Y.stamp(obj), o, sid; - if (val === 'rgba(0, 0, 0, 0)') { - val = TRANSPARENT; + if (! this.objs[id]) { + // create a map entry for the obj if it doesn't exist + this.objs[id] = {}; } - return val; - }; - -} + o = this.objs[id]; -Y.DOM._getAttrOffset = function(node, attr) { - var val = Y.DOM[GET_COMPUTED_STYLE](node, attr), - offsetParent = node.offsetParent, - position, - parentOffset, - offset; + if (! o[sFn]) { + // create a map entry for the method if it doesn't exist + o[sFn] = new Y.Do.Method(obj, sFn); - if (val === 'auto') { - position = Y.DOM.getStyle(node, 'position'); - if (position === 'static' || position === 'relative') { - val = 0; - } else if (offsetParent && offsetParent[GET_BOUNDING_CLIENT_RECT]) { - parentOffset = offsetParent[GET_BOUNDING_CLIENT_RECT]()[attr]; - offset = node[GET_BOUNDING_CLIENT_RECT]()[attr]; - if (attr === 'left' || attr === 'top') { - val = offset - parentOffset; - } else { - val = parentOffset - node[GET_BOUNDING_CLIENT_RECT]()[attr]; - } + // re-route the method to our wrapper + obj[sFn] = + function() { + return o[sFn].exec.apply(o[sFn], arguments); + }; } - } - - return val; -}; - -Y.DOM._getOffset = function(node) { - var pos, - xy = null; - - if (node) { - pos = Y_DOM.getStyle(node, 'position'); - xy = [ - parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'left'), 10), - parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'top'), 10) - ]; - - if ( isNaN(xy[0]) ) { // in case of 'auto' - xy[0] = parseInt(Y_DOM.getStyle(node, 'left'), 10); // try inline - if ( isNaN(xy[0]) ) { // default to offset value - xy[0] = (pos === 'relative') ? 0 : node.offsetLeft || 0; - } - } - - if ( isNaN(xy[1]) ) { // in case of 'auto' - xy[1] = parseInt(Y_DOM.getStyle(node, 'top'), 10); // try inline - if ( isNaN(xy[1]) ) { // default to offset value - xy[1] = (pos === 'relative') ? 0 : node.offsetTop || 0; - } - } - } - - return xy; - -}; -Y_DOM.CUSTOM_STYLES.transform = { - set: function(node, val, style) { - style[TRANSFORM] = val; - }, - - get: function(node, style) { - return Y_DOM[GET_COMPUTED_STYLE](node, TRANSFORM); - } -}; + // subscriber id + sid = id + Y.stamp(fn) + sFn; + // register the callback + o[sFn].register(sid, fn, when); -})(Y); -(function(Y) { -var PARSE_INT = parseInt, - RE = RegExp; + return new Y.EventHandle(o[sFn], sid); -Y.Color = { - KEYWORDS: { - black: '000', - silver: 'c0c0c0', - gray: '808080', - white: 'fff', - maroon: '800000', - red: 'f00', - purple: '800080', - fuchsia: 'f0f', - green: '008000', - lime: '0f0', - olive: '808000', - yellow: 'ff0', - navy: '000080', - blue: '00f', - teal: '008080', - aqua: '0ff' }, - re_RGB: /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i, - re_hex: /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i, - re_hex3: /([0-9A-F])/gi, + /** + * Detach a before or after subscription. + * + * @method detach + * @param handle {string} the subscription handle + * @static + */ + detach: function(handle) { - toRGB: function(val) { - if (!Y.Color.re_RGB.test(val)) { - val = Y.Color.toHex(val); + if (handle.detach) { + handle.detach(); } - if(Y.Color.re_hex.exec(val)) { - val = 'rgb(' + [ - PARSE_INT(RE.$1, 16), - PARSE_INT(RE.$2, 16), - PARSE_INT(RE.$3, 16) - ].join(', ') + ')'; - } - return val; }, - toHex: function(val) { - val = Y.Color.KEYWORDS[val] || val; - if (Y.Color.re_RGB.exec(val)) { - val = [ - Number(RE.$1).toString(16), - Number(RE.$2).toString(16), - Number(RE.$3).toString(16) - ]; - - for (var i = 0; i < val.length; i++) { - if (val[i].length < 2) { - val[i] = '0' + val[i]; - } - } - - val = val.join(''); - } - - if (val.length < 6) { - val = val.replace(Y.Color.re_hex3, '$1$1'); - } - - if (val !== 'transparent' && val.indexOf('#') < 0) { - val = '#' + val; - } + _unload: function(e, me) { - return val.toUpperCase(); } }; -})(Y); +Y.Do = DO; - -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('dom-screen', function(Y) { - -(function(Y) { +////////////////////////////////////////////////////////////////////////// /** - * Adds position and region management functionality to DOM. - * @module dom - * @submodule dom-screen - * @for DOM + * Contains the return value from the wrapped method, accessible + * by 'after' event listeners. + * + * @property Do.originalRetVal + * @static + * @since 3.2.0 */ -var DOCUMENT_ELEMENT = 'documentElement', - COMPAT_MODE = 'compatMode', - POSITION = 'position', - FIXED = 'fixed', - RELATIVE = 'relative', - LEFT = 'left', - TOP = 'top', - _BACK_COMPAT = 'BackCompat', - MEDIUM = 'medium', - BORDER_LEFT_WIDTH = 'borderLeftWidth', - BORDER_TOP_WIDTH = 'borderTopWidth', - GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect', - GET_COMPUTED_STYLE = 'getComputedStyle', - - Y_DOM = Y.DOM, +/** + * Contains the current state of the return value, consumable by + * 'after' event listeners, and updated if an after subscriber + * changes the return value generated by the wrapped function. + * + * @property Do.currentRetVal + * @static + * @since 3.2.0 + */ - // TODO: how about thead/tbody/tfoot/tr? - // TODO: does caption matter? - RE_TABLE = /^t(?:able|d|h)$/i, +////////////////////////////////////////////////////////////////////////// - SCROLL_NODE; +/** + * Wrapper for a displaced method with aop enabled + * @class Do.Method + * @constructor + * @param obj The object to operate on + * @param sFn The name of the method to displace + */ +DO.Method = function(obj, sFn) { + this.obj = obj; + this.methodName = sFn; + this.method = obj[sFn]; + this.before = {}; + this.after = {}; +}; -if (Y.UA.ie) { - if (Y.config.doc[COMPAT_MODE] !== 'BackCompat') { - SCROLL_NODE = DOCUMENT_ELEMENT; +/** + * Register a aop subscriber + * @method register + * @param sid {string} the subscriber id + * @param fn {Function} the function to execute + * @param when {string} when to execute the function + */ +DO.Method.prototype.register = function (sid, fn, when) { + if (when) { + this.after[sid] = fn; } else { - SCROLL_NODE = 'body'; + this.before[sid] = fn; } -} +}; -Y.mix(Y_DOM, { - /** - * Returns the inner height of the viewport (exludes scrollbar). - * @method winHeight - * @return {Number} The current height of the viewport. - */ - winHeight: function(node) { - var h = Y_DOM._getWinSize(node).height; - return h; - }, +/** + * Unregister a aop subscriber + * @method delete + * @param sid {string} the subscriber id + * @param fn {Function} the function to execute + * @param when {string} when to execute the function + */ +DO.Method.prototype._delete = function (sid) { + delete this.before[sid]; + delete this.after[sid]; +}; - /** - * Returns the inner width of the viewport (exludes scrollbar). - * @method winWidth - * @return {Number} The current width of the viewport. - */ - winWidth: function(node) { - var w = Y_DOM._getWinSize(node).width; - return w; - }, +/** + *

                              Execute the wrapped method. All arguments are passed into the wrapping + * functions. If any of the before wrappers return an instance of + * Y.Do.Halt or Y.Do.Prevent, neither the wrapped + * function nor any after phase subscribers will be executed.

                              + * + *

                              The return value will be the return value of the wrapped function or one + * provided by a wrapper function via an instance of Y.Do.Halt or + * Y.Do.AlterReturn. + * + * @method exec + * @param arg* {any} Arguments are passed to the wrapping and wrapped functions + * @return {any} Return value of wrapped function unless overwritten (see above) + */ +DO.Method.prototype.exec = function () { - /** - * Document height - * @method docHeight - * @return {Number} The current height of the document. - */ - docHeight: function(node) { - var h = Y_DOM._getDocSize(node).height; - return Math.max(h, Y_DOM._getWinSize(node).height); - }, + var args = Y.Array(arguments, 0, true), + i, ret, newRet, + bf = this.before, + af = this.after, + prevented = false; - /** - * Document width - * @method docWidth - * @return {Number} The current width of the document. - */ - docWidth: function(node) { - var w = Y_DOM._getDocSize(node).width; - return Math.max(w, Y_DOM._getWinSize(node).width); - }, + // execute before + for (i in bf) { + if (bf.hasOwnProperty(i)) { + ret = bf[i].apply(this.obj, args); + if (ret) { + switch (ret.constructor) { + case DO.Halt: + return ret.retVal; + case DO.AlterArgs: + args = ret.newArgs; + break; + case DO.Prevent: + prevented = true; + break; + default: + } + } + } + } - /** - * Amount page has been scroll horizontally - * @method docScrollX - * @return {Number} The current amount the screen is scrolled horizontally. - */ - docScrollX: function(node, doc) { - doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization - var dv = doc.defaultView, - pageOffset = (dv) ? dv.pageXOffset : 0; - return Math.max(doc[DOCUMENT_ELEMENT].scrollLeft, doc.body.scrollLeft, pageOffset); - }, + // execute method + if (!prevented) { + ret = this.method.apply(this.obj, args); + } - /** - * Amount page has been scroll vertically - * @method docScrollY - * @return {Number} The current amount the screen is scrolled vertically. - */ - docScrollY: function(node, doc) { - doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; // perf optimization - var dv = doc.defaultView, - pageOffset = (dv) ? dv.pageYOffset : 0; - return Math.max(doc[DOCUMENT_ELEMENT].scrollTop, doc.body.scrollTop, pageOffset); - }, + DO.originalRetVal = ret; + DO.currentRetVal = ret; - /** - * Gets the current position of an element based on page coordinates. - * Element must be part of the DOM tree to have page coordinates - * (display:none or elements not appended return false). - * @method getXY - * @param element The target element - * @return {Array} The XY position of the element + // execute after methods. + for (i in af) { + if (af.hasOwnProperty(i)) { + newRet = af[i].apply(this.obj, args); + // Stop processing if a Halt object is returned + if (newRet && newRet.constructor == DO.Halt) { + return newRet.retVal; + // Check for a new return value + } else if (newRet && newRet.constructor == DO.AlterReturn) { + ret = newRet.newRetVal; + // Update the static retval state + DO.currentRetVal = ret; + } + } + } - TODO: test inDocument/display? - */ - getXY: function() { - if (Y.config.doc[DOCUMENT_ELEMENT][GET_BOUNDING_CLIENT_RECT]) { - return function(node) { - var xy = null, - scrollLeft, - scrollTop, - box, - off1, off2, - bLeft, bTop, - mode, - doc, - inDoc, - rootNode; + return ret; +}; - if (node && node.tagName) { - doc = node.ownerDocument; - rootNode = doc[DOCUMENT_ELEMENT]; +////////////////////////////////////////////////////////////////////////// - // inline inDoc check for perf - if (rootNode.contains) { - inDoc = rootNode.contains(node); - } else { - inDoc = Y.DOM.contains(rootNode, node); - } +/** + * Return an AlterArgs object when you want to change the arguments that + * were passed into the function. Useful for Do.before subscribers. An + * example would be a service that scrubs out illegal characters prior to + * executing the core business logic. + * @class Do.AlterArgs + * @constructor + * @param msg {String} (optional) Explanation of the altered return value + * @param newArgs {Array} Call parameters to be used for the original method + * instead of the arguments originally passed in. + */ +DO.AlterArgs = function(msg, newArgs) { + this.msg = msg; + this.newArgs = newArgs; +}; - if (inDoc) { - scrollLeft = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollLeft : Y_DOM.docScrollX(node, doc); - scrollTop = (SCROLL_NODE) ? doc[SCROLL_NODE].scrollTop : Y_DOM.docScrollY(node, doc); - box = node[GET_BOUNDING_CLIENT_RECT](); - xy = [box.left, box.top]; +/** + * Return an AlterReturn object when you want to change the result returned + * from the core method to the caller. Useful for Do.after subscribers. + * @class Do.AlterReturn + * @constructor + * @param msg {String} (optional) Explanation of the altered return value + * @param newRetVal {any} Return value passed to code that invoked the wrapped + * function. + */ +DO.AlterReturn = function(msg, newRetVal) { + this.msg = msg; + this.newRetVal = newRetVal; +}; - if (Y.UA.ie) { - off1 = 2; - off2 = 2; - mode = doc[COMPAT_MODE]; - bLeft = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_LEFT_WIDTH); - bTop = Y_DOM[GET_COMPUTED_STYLE](doc[DOCUMENT_ELEMENT], BORDER_TOP_WIDTH); +/** + * Return a Halt object when you want to terminate the execution + * of all subsequent subscribers as well as the wrapped method + * if it has not exectued yet. Useful for Do.before subscribers. + * @class Do.Halt + * @constructor + * @param msg {String} (optional) Explanation of why the termination was done + * @param retVal {any} Return value passed to code that invoked the wrapped + * function. + */ +DO.Halt = function(msg, retVal) { + this.msg = msg; + this.retVal = retVal; +}; - if (Y.UA.ie === 6) { - if (mode !== _BACK_COMPAT) { - off1 = 0; - off2 = 0; - } - } - - if ((mode == _BACK_COMPAT)) { - if (bLeft !== MEDIUM) { - off1 = parseInt(bLeft, 10); - } - if (bTop !== MEDIUM) { - off2 = parseInt(bTop, 10); - } - } - - xy[0] -= off1; - xy[1] -= off2; +/** + * Return a Prevent object when you want to prevent the wrapped function + * from executing, but want the remaining listeners to execute. Useful + * for Do.before subscribers. + * @class Do.Prevent + * @constructor + * @param msg {String} (optional) Explanation of why the termination was done + */ +DO.Prevent = function(msg) { + this.msg = msg; +}; - } +/** + * Return an Error object when you want to terminate the execution + * of all subsequent method calls. + * @class Do.Error + * @constructor + * @param msg {String} (optional) Explanation of the altered return value + * @param retVal {any} Return value passed to code that invoked the wrapped + * function. + * @deprecated use Y.Do.Halt or Y.Do.Prevent + */ +DO.Error = DO.Halt; - if ((scrollTop || scrollLeft)) { - if (!Y.UA.ios || (Y.UA.ios >= 4.2)) { - xy[0] += scrollLeft; - xy[1] += scrollTop; - } - - } - } else { - xy = Y_DOM._getOffset(node); - } - } - return xy; - } - } else { - return function(node) { // manually calculate by crawling up offsetParents - //Calculate the Top and Left border sizes (assumes pixels) - var xy = null, - doc, - parentNode, - bCheck, - scrollTop, - scrollLeft; - if (node) { - if (Y_DOM.inDoc(node)) { - xy = [node.offsetLeft, node.offsetTop]; - doc = node.ownerDocument; - parentNode = node; - // TODO: refactor with !! or just falsey - bCheck = ((Y.UA.gecko || Y.UA.webkit > 519) ? true : false); +////////////////////////////////////////////////////////////////////////// - // TODO: worth refactoring for TOP/LEFT only? - while ((parentNode = parentNode.offsetParent)) { - xy[0] += parentNode.offsetLeft; - xy[1] += parentNode.offsetTop; - if (bCheck) { - xy = Y_DOM._calcBorders(parentNode, xy); - } - } +// Y["Event"] && Y.Event.addListener(window, "unload", Y.Do._unload, Y.Do); - // account for any scrolled ancestors - if (Y_DOM.getStyle(node, POSITION) != FIXED) { - parentNode = node; - while ((parentNode = parentNode.parentNode)) { - scrollTop = parentNode.scrollTop; - scrollLeft = parentNode.scrollLeft; +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event-custom + * @submodule event-custom-base + */ - //Firefox does something funky with borders when overflow is not visible. - if (Y.UA.gecko && (Y_DOM.getStyle(parentNode, 'overflow') !== 'visible')) { - xy = Y_DOM._calcBorders(parentNode, xy); - } - - if (scrollTop || scrollLeft) { - xy[0] -= scrollLeft; - xy[1] -= scrollTop; - } - } - xy[0] += Y_DOM.docScrollX(node, doc); - xy[1] += Y_DOM.docScrollY(node, doc); +// var onsubscribeType = "_event:onsub", +var AFTER = 'after', + CONFIGS = [ + 'broadcast', + 'monitored', + 'bubbles', + 'context', + 'contextFn', + 'currentTarget', + 'defaultFn', + 'defaultTargetOnly', + 'details', + 'emitFacade', + 'fireOnce', + 'async', + 'host', + 'preventable', + 'preventedFn', + 'queuable', + 'silent', + 'stoppedFn', + 'target', + 'type' + ], - } else { - //Fix FIXED position -- add scrollbars - xy[0] += Y_DOM.docScrollX(node, doc); - xy[1] += Y_DOM.docScrollY(node, doc); - } - } else { - xy = Y_DOM._getOffset(node); - } - } + YUI3_SIGNATURE = 9, + YUI_LOG = 'yui:log'; - return xy; - }; - } - }(),// NOTE: Executing for loadtime branching +/** + * The CustomEvent class lets you define events for your application + * that can be subscribed to by one or more independent component. + * + * @param {String} type The type of event, which is passed to the callback + * when the event fires. + * @param {object} o configuration object. + * @class CustomEvent + * @constructor + */ +Y.CustomEvent = function(type, o) { + + // if (arguments.length > 2) { +// this.log('CustomEvent context and silent are now in the config', 'warn', 'Event'); + // } + + o = o || {}; + + this.id = Y.stamp(this); /** - * Gets the current X position of an element based on page coordinates. - * Element must be part of the DOM tree to have page coordinates - * (display:none or elements not appended return false). - * @method getX - * @param element The target element - * @return {Int} The X position of the element + * The type of event, returned to subscribers when the event fires + * @property type + * @type string */ + this.type = type; - getX: function(node) { - return Y_DOM.getXY(node)[0]; - }, + /** + * The context the the event will fire from by default. Defaults to the YUI + * instance. + * @property context + * @type object + */ + this.context = Y; /** - * Gets the current Y position of an element based on page coordinates. - * Element must be part of the DOM tree to have page coordinates - * (display:none or elements not appended return false). - * @method getY - * @param element The target element - * @return {Int} The Y position of the element + * Monitor when an event is attached or detached. + * + * @property monitored + * @type boolean */ + // this.monitored = false; - getY: function(node) { - return Y_DOM.getXY(node)[1]; - }, + this.logSystem = (type == YUI_LOG); /** - * Set the position of an html element in page coordinates. - * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setXY - * @param element The target element - * @param {Array} xy Contains X & Y values for new position (coordinates are page-based) - * @param {Boolean} noRetry By default we try and set the position a second time if the first fails + * If 0, this event does not broadcast. If 1, the YUI instance is notified + * every time this event fires. If 2, the YUI instance and the YUI global + * (if event is enabled on the global) are notified every time this event + * fires. + * @property broadcast + * @type int */ - setXY: function(node, xy, noRetry) { - var setStyle = Y_DOM.setStyle, - pos, - delta, - newXY, - currentXY; + // this.broadcast = 0; - if (node && xy) { - pos = Y_DOM.getStyle(node, POSITION); + /** + * By default all custom events are logged in the debug build, set silent + * to true to disable debug outpu for this event. + * @property silent + * @type boolean + */ + this.silent = this.logSystem; - delta = Y_DOM._getOffset(node); - if (pos == 'static') { // default to relative - pos = RELATIVE; - setStyle(node, POSITION, pos); - } - currentXY = Y_DOM.getXY(node); + /** + * Specifies whether this event should be queued when the host is actively + * processing an event. This will effect exectution order of the callbacks + * for the various events. + * @property queuable + * @type boolean + * @default false + */ + // this.queuable = false; - if (xy[0] !== null) { - setStyle(node, LEFT, xy[0] - currentXY[0] + delta[0] + 'px'); - } - - if (xy[1] !== null) { - setStyle(node, TOP, xy[1] - currentXY[1] + delta[1] + 'px'); - } + /** + * The subscribers to this event + * @property subscribers + * @type Subscriber {} + */ + this.subscribers = {}; - if (!noRetry) { - newXY = Y_DOM.getXY(node); - if (newXY[0] !== xy[0] || newXY[1] !== xy[1]) { - Y_DOM.setXY(node, xy, true); - } - } - - } else { - } - }, + /** + * 'After' subscribers + * @property afters + * @type Subscriber {} + */ + this.afters = {}; /** - * Set the X position of an html element in page coordinates, regardless of how the element is positioned. - * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setX - * @param element The target element - * @param {Int} x The X values for new position (coordinates are page-based) + * This event has fired if true + * + * @property fired + * @type boolean + * @default false; */ - setX: function(node, x) { - return Y_DOM.setXY(node, [x, null]); - }, + // this.fired = false; /** - * Set the Y position of an html element in page coordinates, regardless of how the element is positioned. - * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false). - * @method setY - * @param element The target element - * @param {Int} y The Y values for new position (coordinates are page-based) + * An array containing the arguments the custom event + * was last fired with. + * @property firedWith + * @type Array */ - setY: function(node, y) { - return Y_DOM.setXY(node, [null, y]); - }, + // this.firedWith; /** - * @method swapXY - * @description Swap the xy position with another node - * @param {Node} node The node to swap with - * @param {Node} otherNode The other node to swap with - * @return {Node} + * This event should only fire one time if true, and if + * it has fired, any new subscribers should be notified + * immediately. + * + * @property fireOnce + * @type boolean + * @default false; */ - swapXY: function(node, otherNode) { - var xy = Y_DOM.getXY(node); - Y_DOM.setXY(node, Y_DOM.getXY(otherNode)); - Y_DOM.setXY(otherNode, xy); - }, + // this.fireOnce = false; - _calcBorders: function(node, xy2) { - var t = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_TOP_WIDTH), 10) || 0, - l = parseInt(Y_DOM[GET_COMPUTED_STYLE](node, BORDER_LEFT_WIDTH), 10) || 0; - if (Y.UA.gecko) { - if (RE_TABLE.test(node.tagName)) { - t = 0; - l = 0; - } - } - xy2[0] += l; - xy2[1] += t; - return xy2; - }, + /** + * fireOnce listeners will fire syncronously unless async + * is set to true + * @property async + * @type boolean + * @default false + */ + //this.async = false; - _getWinSize: function(node, doc) { - doc = doc || (node) ? Y_DOM._getDoc(node) : Y.config.doc; - var win = doc.defaultView || doc.parentWindow, - mode = doc[COMPAT_MODE], - h = win.innerHeight, - w = win.innerWidth, - root = doc[DOCUMENT_ELEMENT]; + /** + * Flag for stopPropagation that is modified during fire() + * 1 means to stop propagation to bubble targets. 2 means + * to also stop additional subscribers on this target. + * @property stopped + * @type int + */ + // this.stopped = 0; - if ( mode && !Y.UA.opera ) { // IE, Gecko - if (mode != 'CSS1Compat') { // Quirks - root = doc.body; - } - h = root.clientHeight; - w = root.clientWidth; - } - return { height: h, width: w }; - }, + /** + * Flag for preventDefault that is modified during fire(). + * if it is not 0, the default behavior for this event + * @property prevented + * @type int + */ + // this.prevented = 0; - _getDocSize: function(node) { - var doc = (node) ? Y_DOM._getDoc(node) : Y.config.doc, - root = doc[DOCUMENT_ELEMENT]; + /** + * Specifies the host for this custom event. This is used + * to enable event bubbling + * @property host + * @type EventTarget + */ + // this.host = null; - if (doc[COMPAT_MODE] != 'CSS1Compat') { - root = doc.body; - } + /** + * The default function to execute after event listeners + * have fire, but only if the default action was not + * prevented. + * @property defaultFn + * @type Function + */ + // this.defaultFn = null; - return { height: root.scrollHeight, width: root.scrollWidth }; - } -}); + /** + * The function to execute if a subscriber calls + * stopPropagation or stopImmediatePropagation + * @property stoppedFn + * @type Function + */ + // this.stoppedFn = null; -})(Y); -(function(Y) { -var TOP = 'top', - RIGHT = 'right', - BOTTOM = 'bottom', - LEFT = 'left', + /** + * The function to execute if a subscriber calls + * preventDefault + * @property preventedFn + * @type Function + */ + // this.preventedFn = null; - getOffsets = function(r1, r2) { - var t = Math.max(r1[TOP], r2[TOP]), - r = Math.min(r1[RIGHT], r2[RIGHT]), - b = Math.min(r1[BOTTOM], r2[BOTTOM]), - l = Math.max(r1[LEFT], r2[LEFT]), - ret = {}; - - ret[TOP] = t; - ret[RIGHT] = r; - ret[BOTTOM] = b; - ret[LEFT] = l; - return ret; - }, + /** + * Specifies whether or not this event's default function + * can be cancelled by a subscriber by executing preventDefault() + * on the event facade + * @property preventable + * @type boolean + * @default true + */ + this.preventable = true; - DOM = Y.DOM; + /** + * Specifies whether or not a subscriber can stop the event propagation + * via stopPropagation(), stopImmediatePropagation(), or halt() + * + * Events can only bubble if emitFacade is true. + * + * @property bubbles + * @type boolean + * @default true + */ + this.bubbles = true; -Y.mix(DOM, { /** - * Returns an Object literal containing the following about this element: (top, right, bottom, left) - * @for DOM - * @method region - * @param {HTMLElement} element The DOM element. - * @return {Object} Object literal containing the following about this element: (top, right, bottom, left) + * Supports multiple options for listener signatures in order to + * port YUI 2 apps. + * @property signature + * @type int + * @default 9 */ - region: function(node) { - var xy = DOM.getXY(node), - ret = false; - - if (node && xy) { - ret = DOM._getRegion( - xy[1], // top - xy[0] + node.offsetWidth, // right - xy[1] + node.offsetHeight, // bottom - xy[0] // left - ); - } + this.signature = YUI3_SIGNATURE; - return ret; - }, + this.subCount = 0; + this.afterCount = 0; + + // this.hasSubscribers = false; + + // this.hasAfters = false; /** - * Find the intersect information for the passes nodes. - * @method intersect - * @for DOM - * @param {HTMLElement} element The first element - * @param {HTMLElement | Object} element2 The element or region to check the interect with - * @param {Object} altRegion An object literal containing the region for the first element if we already have the data (for performance i.e. DragDrop) - * @return {Object} Object literal containing the following intersection data: (top, right, bottom, left, area, yoff, xoff, inRegion) + * If set to true, the custom event will deliver an EventFacade object + * that is similar to a DOM event object. + * @property emitFacade + * @type boolean + * @default false */ - intersect: function(node, node2, altRegion) { - var r = altRegion || DOM.region(node), region = {}, - n = node2, - off; + // this.emitFacade = false; + + this.applyConfig(o, true); + + // this.log("Creating " + this.type); + +}; + +Y.CustomEvent.prototype = { + constructor: Y.CustomEvent, - if (n.tagName) { - region = DOM.region(n); - } else if (Y.Lang.isObject(node2)) { - region = node2; - } else { - return false; - } - - off = getOffsets(region, r); - return { - top: off[TOP], - right: off[RIGHT], - bottom: off[BOTTOM], - left: off[LEFT], - area: ((off[BOTTOM] - off[TOP]) * (off[RIGHT] - off[LEFT])), - yoff: ((off[BOTTOM] - off[TOP])), - xoff: (off[RIGHT] - off[LEFT]), - inRegion: DOM.inRegion(node, node2, false, altRegion) - }; - - }, /** - * Check if any part of this node is in the passed region - * @method inRegion - * @for DOM - * @param {Object} node2 The node to get the region from or an Object literal of the region - * $param {Boolean} all Should all of the node be inside the region - * @param {Object} altRegion An object literal containing the region for this node if we already have the data (for performance i.e. DragDrop) - * @return {Boolean} True if in region, false if not. + * Returns the number of subscribers for this event as the sum of the on() + * subscribers and after() subscribers. + * + * @method hasSubs + * @return Number */ - inRegion: function(node, node2, all, altRegion) { - var region = {}, - r = altRegion || DOM.region(node), - n = node2, - off; + hasSubs: function(when) { + var s = this.subCount, a = this.afterCount, sib = this.sibling; - if (n.tagName) { - region = DOM.region(n); - } else if (Y.Lang.isObject(node2)) { - region = node2; - } else { - return false; + if (sib) { + s += sib.subCount; + a += sib.afterCount; } - - if (all) { - return ( - r[LEFT] >= region[LEFT] && - r[RIGHT] <= region[RIGHT] && - r[TOP] >= region[TOP] && - r[BOTTOM] <= region[BOTTOM] ); - } else { - off = getOffsets(region, r); - if (off[BOTTOM] >= off[TOP] && off[RIGHT] >= off[LEFT]) { - return true; - } else { - return false; - } - + + if (when) { + return (when == 'after') ? a : s; } + + return (s + a); }, /** - * Check if any part of this element is in the viewport - * @method inViewportRegion - * @for DOM - * @param {HTMLElement} element The DOM element. - * @param {Boolean} all Should all of the node be inside the region - * @param {Object} altRegion An object literal containing the region for this node if we already have the data (for performance i.e. DragDrop) - * @return {Boolean} True if in region, false if not. + * Monitor the event state for the subscribed event. The first parameter + * is what should be monitored, the rest are the normal parameters when + * subscribing to an event. + * @method monitor + * @param what {string} what to monitor ('detach', 'attach', 'publish'). + * @return {EventHandle} return value from the monitor event subscription. */ - inViewportRegion: function(node, all, altRegion) { - return DOM.inRegion(node, DOM.viewportRegion(node), all, altRegion); - + monitor: function(what) { + this.monitored = true; + var type = this.id + '|' + this.type + '_' + what, + args = Y.Array(arguments, 0, true); + args[0] = type; + return this.host.on.apply(this.host, args); }, - _getRegion: function(t, r, b, l) { - var region = {}; + /** + * Get all of the subscribers to this event and any sibling event + * @method getSubs + * @return {Array} first item is the on subscribers, second the after. + */ + getSubs: function() { + var s = Y.merge(this.subscribers), a = Y.merge(this.afters), sib = this.sibling; - region[TOP] = region[1] = t; - region[LEFT] = region[0] = l; - region[BOTTOM] = b; - region[RIGHT] = r; - region.width = region[RIGHT] - region[LEFT]; - region.height = region[BOTTOM] - region[TOP]; + if (sib) { + Y.mix(s, sib.subscribers); + Y.mix(a, sib.afters); + } - return region; + return [s, a]; }, /** - * Returns an Object literal containing the following about the visible region of viewport: (top, right, bottom, left) - * @method viewportRegion - * @for DOM - * @return {Object} Object literal containing the following about the visible region of the viewport: (top, right, bottom, left) + * Apply configuration properties. Only applies the CONFIG whitelist + * @method applyConfig + * @param o hash of properties to apply. + * @param force {boolean} if true, properties that exist on the event + * will be overwritten. */ - viewportRegion: function(node) { - node = node || Y.config.doc.documentElement; - var ret = false, - scrollX, - scrollY; - - if (node) { - scrollX = DOM.docScrollX(node); - scrollY = DOM.docScrollY(node); - - ret = DOM._getRegion(scrollY, // top - DOM.winWidth(node) + scrollX, // right - scrollY + DOM.winHeight(node), // bottom - scrollX); // left + applyConfig: function(o, force) { + if (o) { + Y.mix(this, o, force, CONFIGS); } + }, - return ret; - } -}); -})(Y); - - -}, '3.4.0' ,{requires:['dom-core', 'dom-style']}); -YUI.add('selector-native', function(Y) { - -(function(Y) { -/** - * The selector-native module provides support for native querySelector - * @module dom - * @submodule selector-native - * @for Selector - */ - -/** - * Provides support for using CSS selectors to query the DOM - * @class Selector - * @static - * @for Selector - */ - -Y.namespace('Selector'); // allow native module to standalone - -var COMPARE_DOCUMENT_POSITION = 'compareDocumentPosition', - OWNER_DOCUMENT = 'ownerDocument'; - -var Selector = { - _foundCache: [], - - useNative: true, - - _compare: ('sourceIndex' in Y.config.doc.documentElement) ? - function(nodeA, nodeB) { - var a = nodeA.sourceIndex, - b = nodeB.sourceIndex; + /** + * Create the Subscription for subscribing function, context, and bound + * arguments. If this is a fireOnce event, the subscriber is immediately + * notified. + * + * @method _on + * @param fn {Function} Subscription callback + * @param [context] {Object} Override `this` in the callback + * @param [args] {Array} bound arguments that will be passed to the callback after the arguments generated by fire() + * @param [when] {String} "after" to slot into after subscribers + * @return {EventHandle} + * @protected + */ + _on: function(fn, context, args, when) { - if (a === b) { - return 0; - } else if (a > b) { - return 1; - } + if (!fn) { + this.log('Invalid callback for CE: ' + this.type); + } - return -1; + var s = new Y.Subscriber(fn, context, args, when); - } : (Y.config.doc.documentElement[COMPARE_DOCUMENT_POSITION] ? - function(nodeA, nodeB) { - if (nodeA[COMPARE_DOCUMENT_POSITION](nodeB) & 4) { - return -1; + if (this.fireOnce && this.fired) { + if (this.async) { + setTimeout(Y.bind(this._notify, this, s, this.firedWith), 0); } else { - return 1; - } - } : - function(nodeA, nodeB) { - var rangeA, rangeB, compare; - if (nodeA && nodeB) { - rangeA = nodeA[OWNER_DOCUMENT].createRange(); - rangeA.setStart(nodeA, 0); - rangeB = nodeB[OWNER_DOCUMENT].createRange(); - rangeB.setStart(nodeB, 0); - compare = rangeA.compareBoundaryPoints(1, rangeB); // 1 === Range.START_TO_END - } - - return compare; - - }), - - _sort: function(nodes) { - if (nodes) { - nodes = Y.Array(nodes, 0, true); - if (nodes.sort) { - nodes.sort(Selector._compare); + this._notify(s, this.firedWith); } } - return nodes; - }, - - _deDupe: function(nodes) { - var ret = [], - i, node; - - for (i = 0; (node = nodes[i++]);) { - if (!node._found) { - ret[ret.length] = node; - node._found = true; - } + if (when == AFTER) { + this.afters[s.id] = s; + this.afterCount++; + } else { + this.subscribers[s.id] = s; + this.subCount++; } - for (i = 0; (node = ret[i++]);) { - node._found = null; - node.removeAttribute('_found'); - } + return new Y.EventHandle(this, s); - return ret; }, /** - * Retrieves a set of nodes based on a given CSS selector. - * @method query - * - * @param {string} selector The CSS Selector to test the node against. - * @param {HTMLElement} root optional An HTMLElement to start the query from. Defaults to Y.config.doc - * @param {Boolean} firstOnly optional Whether or not to return only the first match. - * @return {Array} An array of nodes that match the given selector. - * @static - */ - query: function(selector, root, firstOnly, skipNative) { - root = root || Y.config.doc; - var ret = [], - useNative = (Y.Selector.useNative && Y.config.doc.querySelector && !skipNative), - queries = [[selector, root]], - query, - result, - i, - fn = (useNative) ? Y.Selector._nativeQuery : Y.Selector._bruteQuery; - - if (selector && fn) { - // split group into seperate queries - if (!skipNative && // already done if skipping - (!useNative || root.tagName)) { // split native when element scoping is needed - queries = Selector._splitQueries(selector, root); - } - - for (i = 0; (query = queries[i++]);) { - result = fn(query[0], query[1], firstOnly); - if (!firstOnly) { // coerce DOM Collection to Array - result = Y.Array(result, 0, true); - } - if (result) { - ret = ret.concat(result); - } - } - - if (queries.length > 1) { // remove dupes and sort by doc order - ret = Selector._sort(Selector._deDupe(ret)); - } - } - - return (firstOnly) ? (ret[0] || null) : ret; - + * Listen for this event + * @method subscribe + * @param {Function} fn The function to execute. + * @return {EventHandle} Unsubscribe handle. + * @deprecated use on. + */ + subscribe: function(fn, context) { + var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; + return this._on(fn, context, a, true); }, - // allows element scoped queries to begin with combinator - // e.g. query('> p', document.body) === query('body > p') - _splitQueries: function(selector, node) { - var groups = selector.split(','), - queries = [], - prefix = '', - i, len; - - if (node) { - // enforce for element scoping - if (node.tagName) { - node.id = node.id || Y.guid(); - prefix = '[id="' + node.id + '"] '; - } - - for (i = 0, len = groups.length; i < len; ++i) { - selector = prefix + groups[i]; - queries.push([selector, node]); - } + /** + * Listen for this event + * @method on + * @param {Function} fn The function to execute. + * @param {object} context optional execution context. + * @param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {EventHandle} An object with a detach method to detch the handler(s). + */ + on: function(fn, context) { + var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; + if (this.host) { + this.host._monitor('attach', this.type, { + args: arguments + }); } + return this._on(fn, context, a, true); + }, - return queries; + /** + * Listen for this event after the normal subscribers have been notified and + * the default behavior has been applied. If a normal subscriber prevents the + * default behavior, it also prevents after listeners from firing. + * @method after + * @param {Function} fn The function to execute. + * @param {object} context optional execution context. + * @param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {EventHandle} handle Unsubscribe handle. + */ + after: function(fn, context) { + var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; + return this._on(fn, context, a, AFTER); }, - _nativeQuery: function(selector, root, one) { - if (Y.UA.webkit && selector.indexOf(':checked') > -1 && - (Y.Selector.pseudos && Y.Selector.pseudos.checked)) { // webkit (chrome, safari) fails to find "selected" - return Y.Selector.query(selector, root, one, true); // redo with skipNative true to try brute query - } - try { - return root['querySelector' + (one ? '' : 'All')](selector); - } catch(e) { // fallback to brute if available - return Y.Selector.query(selector, root, one, true); // redo with skipNative true + /** + * Detach listeners. + * @method detach + * @param {Function} fn The subscribed function to remove, if not supplied + * all will be removed. + * @param {Object} context The context object passed to subscribe. + * @return {int} returns the number of subscribers unsubscribed. + */ + detach: function(fn, context) { + // unsubscribe handle + if (fn && fn.detach) { + return fn.detach(); } - }, - filter: function(nodes, selector) { - var ret = [], - i, node; + var i, s, + found = 0, + subs = Y.merge(this.subscribers, this.afters); - if (nodes && selector) { - for (i = 0; (node = nodes[i++]);) { - if (Y.Selector.test(node, selector)) { - ret[ret.length] = node; + for (i in subs) { + if (subs.hasOwnProperty(i)) { + s = subs[i]; + if (s && (!fn || fn === s.fn)) { + this._delete(s); + found++; } } - } else { } - return ret; + return found; }, - test: function(node, selector, root) { - var ret = false, - useFrag = false, - groups, - parent, - item, - items, - frag, - i, j, group; + /** + * Detach listeners. + * @method unsubscribe + * @param {Function} fn The subscribed function to remove, if not supplied + * all will be removed. + * @param {Object} context The context object passed to subscribe. + * @return {int|undefined} returns the number of subscribers unsubscribed. + * @deprecated use detach. + */ + unsubscribe: function() { + return this.detach.apply(this, arguments); + }, - if (node && node.tagName) { // only test HTMLElements + /** + * Notify a single subscriber + * @method _notify + * @param {Subscriber} s the subscriber. + * @param {Array} args the arguments array to apply to the listener. + * @protected + */ + _notify: function(s, args, ef) { - if (typeof selector == 'function') { // test with function - ret = selector.call(node, node); - } else { // test with query - // we need a root if off-doc - groups = selector.split(','); - if (!root && !Y.DOM.inDoc(node)) { - parent = node.parentNode; - if (parent) { - root = parent; - } else { // only use frag when no parent to query - frag = node[OWNER_DOCUMENT].createDocumentFragment(); - frag.appendChild(node); - root = frag; - useFrag = true; - } - } - root = root || node[OWNER_DOCUMENT]; + this.log(this.type + '->' + 'sub: ' + s.id); - if (!node.id) { - node.id = Y.guid(); - } - for (i = 0; (group = groups[i++]);) { // TODO: off-dom test - group += '[id="' + node.id + '"]'; - items = Y.Selector.query(group, root); + var ret; - for (j = 0; item = items[j++];) { - if (item === node) { - ret = true; - break; - } - } - if (ret) { - break; - } - } + ret = s.notify(args, this); - if (useFrag) { // cleanup - frag.removeChild(node); - } - }; + if (false === ret || this.stopped > 1) { + this.log(this.type + ' cancelled by subscriber'); + return false; } - return ret; + return true; }, /** - * A convenience function to emulate Y.Node's aNode.ancestor(selector). - * @param {HTMLElement} element An HTMLElement to start the query from. - * @param {String} selector The CSS selector to test the node against. - * @return {HTMLElement} The ancestor node matching the selector, or null. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * @static - * @method ancestor + * Logger abstraction to centralize the application of the silent flag + * @method log + * @param {string} msg message to log. + * @param {string} cat log category. */ - ancestor: function (element, selector, testSelf) { - return Y.DOM.ancestor(element, function(n) { - return Y.Selector.test(n, selector); - }, testSelf); - } -}; + log: function(msg, cat) { + if (!this.silent) { + } + }, -Y.mix(Y.Selector, Selector, true); + /** + * Notifies the subscribers. The callback functions will be executed + * from the context specified when the event was created, and with the + * following parameters: + *

                                + *
                              • The type of event
                              • + *
                              • All of the arguments fire() was executed with as an array
                              • + *
                              • The custom object (if any) that was passed into the subscribe() + * method
                              • + *
                              + * @method fire + * @param {Object*} arguments an arbitrary set of parameters to pass to + * the handler. + * @return {boolean} false if one of the subscribers returned false, + * true otherwise. + * + */ + fire: function() { + if (this.fireOnce && this.fired) { + this.log('fireOnce event: ' + this.type + ' already fired'); + return true; + } else { -})(Y); + var args = Y.Array(arguments, 0, true); + // this doesn't happen if the event isn't published + // this.host._monitor('fire', this.type, args); -}, '3.4.0' ,{requires:['dom-core']}); -YUI.add('selector', function(Y) { - - - - -}, '3.4.0' ,{requires:['selector-native']}); - - -YUI.add('dom', function(Y){}, '3.4.0' ,{use:['dom-core', 'dom-base', 'dom-attrs', 'dom-create', 'dom-class', 'dom-size', 'dom-style', 'dom-screen', 'selector-native', 'selector']}); - -YUI.add('event-custom-base', function(Y) { - -/** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event-custom - */ - -Y.Env.evt = { - handles: {}, - plugins: {} -}; - - -/** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event-custom - * @submodule event-custom-base - */ - -/** - * Allows for the insertion of methods that are executed before or after - * a specified method - * @class Do - * @static - */ - -var DO_BEFORE = 0, - DO_AFTER = 1, - -DO = { + this.fired = true; + this.firedWith = args; - /** - * Cache of objects touched by the utility - * @property objs - * @static - */ - objs: {}, + if (this.emitFacade) { + return this.fireComplex(args); + } else { + return this.fireSimple(args); + } + } + }, /** - *

                              Execute the supplied method before the specified function. Wrapping - * function may optionally return an instance of the following classes to - * further alter runtime behavior:

                              - *
                              - *
                              Y.Do.Halt(message, returnValue)
                              - *
                              Immediatly stop execution and return - * returnValue. No other wrapping functions will be - * executed.
                              - *
                              Y.Do.AlterArgs(message, newArgArray)
                              - *
                              Replace the arguments that the original function will be - * called with.
                              - *
                              Y.Do.Prevent(message)
                              - *
                              Don't execute the wrapped function. Other before phase - * wrappers will be executed.
                              - *
                              + * Set up for notifying subscribers of non-emitFacade events. * - * @method before - * @param fn {Function} the function to execute - * @param obj the object hosting the method to displace - * @param sFn {string} the name of the method to displace - * @param c The execution context for fn - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * when the event fires. - * @return {string} handle for the subscription - * @static + * @method fireSimple + * @param args {Array} Arguments passed to fire() + * @return Boolean false if a subscriber returned false + * @protected */ - before: function(fn, obj, sFn, c) { - var f = fn, a; - if (c) { - a = [fn, c].concat(Y.Array(arguments, 4, true)); - f = Y.rbind.apply(Y, a); + fireSimple: function(args) { + this.stopped = 0; + this.prevented = 0; + if (this.hasSubs()) { + // this._procSubs(Y.merge(this.subscribers, this.afters), args); + var subs = this.getSubs(); + this._procSubs(subs[0], args); + this._procSubs(subs[1], args); } + this._broadcast(args); + return this.stopped ? false : true; + }, - return this._inject(DO_BEFORE, f, obj, sFn); + // Requires the event-custom-complex module for full funcitonality. + fireComplex: function(args) { + args[0] = args[0] || {}; + return this.fireSimple(args); }, /** - *

                              Execute the supplied method after the specified function. Wrapping - * function may optionally return an instance of the following classes to - * further alter runtime behavior:

                              - *
                              - *
                              Y.Do.Halt(message, returnValue)
                              - *
                              Immediatly stop execution and return - * returnValue. No other wrapping functions will be - * executed.
                              - *
                              Y.Do.AlterReturn(message, returnValue)
                              - *
                              Return returnValue instead of the wrapped - * method's original return value. This can be further altered by - * other after phase wrappers.
                              - *
                              - * - *

                              The static properties Y.Do.originalRetVal and - * Y.Do.currentRetVal will be populated for reference.

                              + * Notifies a list of subscribers. * - * @method after - * @param fn {Function} the function to execute - * @param obj the object hosting the method to displace - * @param sFn {string} the name of the method to displace - * @param c The execution context for fn - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return {string} handle for the subscription - * @static + * @method _procSubs + * @param subs {Array} List of subscribers + * @param args {Array} Arguments passed to fire() + * @param ef {} + * @return Boolean false if a subscriber returns false or stops the event + * propagation via e.stopPropagation(), + * e.stopImmediatePropagation(), or e.halt() + * @private */ - after: function(fn, obj, sFn, c) { - var f = fn, a; - if (c) { - a = [fn, c].concat(Y.Array(arguments, 4, true)); - f = Y.rbind.apply(Y, a); + _procSubs: function(subs, args, ef) { + var s, i; + for (i in subs) { + if (subs.hasOwnProperty(i)) { + s = subs[i]; + if (s && s.fn) { + if (false === this._notify(s, args, ef)) { + this.stopped = 2; + } + if (this.stopped == 2) { + return false; + } + } + } } - return this._inject(DO_AFTER, f, obj, sFn); + return true; }, /** - * Execute the supplied method before or after the specified function. - * Used by before and after. + * Notifies the YUI instance if the event is configured with broadcast = 1, + * and both the YUI instance and Y.Global if configured with broadcast = 2. * - * @method _inject - * @param when {string} before or after - * @param fn {Function} the function to execute - * @param obj the object hosting the method to displace - * @param sFn {string} the name of the method to displace - * @param c The execution context for fn - * @return {string} handle for the subscription + * @method _broadcast + * @param args {Array} Arguments sent to fire() * @private - * @static */ - _inject: function(when, fn, obj, sFn) { - - // object id - var id = Y.stamp(obj), o, sid; - - if (! this.objs[id]) { - // create a map entry for the obj if it doesn't exist - this.objs[id] = {}; - } + _broadcast: function(args) { + if (!this.stopped && this.broadcast) { - o = this.objs[id]; + var a = Y.Array(args); + a.unshift(this.type); - if (! o[sFn]) { - // create a map entry for the method if it doesn't exist - o[sFn] = new Y.Do.Method(obj, sFn); + if (this.host !== Y) { + Y.fire.apply(Y, a); + } - // re-route the method to our wrapper - obj[sFn] = - function() { - return o[sFn].exec.apply(o[sFn], arguments); - }; + if (this.broadcast == 2) { + Y.Global.fire.apply(Y.Global, a); + } } + }, - // subscriber id - sid = id + Y.stamp(fn) + sFn; - - // register the callback - o[sFn].register(sid, fn, when); - - return new Y.EventHandle(o[sFn], sid); + /** + * Removes all listeners + * @method unsubscribeAll + * @return {int} The number of listeners unsubscribed. + * @deprecated use detachAll. + */ + unsubscribeAll: function() { + return this.detachAll.apply(this, arguments); + }, + /** + * Removes all listeners + * @method detachAll + * @return {int} The number of listeners unsubscribed. + */ + detachAll: function() { + return this.detach(); }, /** - * Detach a before or after subscription. + * Deletes the subscriber from the internal store of on() and after() + * subscribers. * - * @method detach - * @param handle {string} the subscription handle - * @static + * @method _delete + * @param subscriber object. + * @private */ - detach: function(handle) { - - if (handle.detach) { - handle.detach(); + _delete: function(s) { + if (s) { + if (this.subscribers[s.id]) { + delete this.subscribers[s.id]; + this.subCount--; + } + if (this.afters[s.id]) { + delete this.afters[s.id]; + this.afterCount--; + } } - }, - - _unload: function(e, me) { + if (this.host) { + this.host._monitor('detach', this.type, { + ce: this, + sub: s + }); + } + if (s) { + // delete s.fn; + // delete s.context; + s.deleted = true; + } } }; - -Y.Do = DO; - -////////////////////////////////////////////////////////////////////////// - /** - * Contains the return value from the wrapped method, accessible - * by 'after' event listeners. + * Stores the subscriber information to be used when the event fires. + * @param {Function} fn The wrapped function to execute. + * @param {Object} context The value of the keyword 'this' in the listener. + * @param {Array} args* 0..n additional arguments to supply the listener. * - * @property Do.originalRetVal - * @static - * @since 3.2.0 + * @class Subscriber + * @constructor */ +Y.Subscriber = function(fn, context, args) { -/** - * Contains the current state of the return value, consumable by - * 'after' event listeners, and updated if an after subscriber - * changes the return value generated by the wrapped function. - * - * @property Do.currentRetVal - * @static - * @since 3.2.0 - */ + /** + * The callback that will be execute when the event fires + * This is wrapped by Y.rbind if obj was supplied. + * @property fn + * @type Function + */ + this.fn = fn; -////////////////////////////////////////////////////////////////////////// + /** + * Optional 'this' keyword for the listener + * @property context + * @type Object + */ + this.context = context; -/** - * Wrapper for a displaced method with aop enabled - * @class Do.Method - * @constructor - * @param obj The object to operate on - * @param sFn The name of the method to displace - */ -DO.Method = function(obj, sFn) { - this.obj = obj; - this.methodName = sFn; - this.method = obj[sFn]; - this.before = {}; - this.after = {}; -}; + /** + * Unique subscriber id + * @property id + * @type String + */ + this.id = Y.stamp(this); -/** - * Register a aop subscriber - * @method register - * @param sid {string} the subscriber id - * @param fn {Function} the function to execute - * @param when {string} when to execute the function - */ -DO.Method.prototype.register = function (sid, fn, when) { - if (when) { - this.after[sid] = fn; - } else { - this.before[sid] = fn; - } -}; + /** + * Additional arguments to propagate to the subscriber + * @property args + * @type Array + */ + this.args = args; -/** - * Unregister a aop subscriber - * @method delete - * @param sid {string} the subscriber id - * @param fn {Function} the function to execute - * @param when {string} when to execute the function - */ -DO.Method.prototype._delete = function (sid) { - delete this.before[sid]; - delete this.after[sid]; -}; + /** + * Custom events for a given fire transaction. + * @property events + * @type {EventTarget} + */ + // this.events = null; -/** - *

                              Execute the wrapped method. All arguments are passed into the wrapping - * functions. If any of the before wrappers return an instance of - * Y.Do.Halt or Y.Do.Prevent, neither the wrapped - * function nor any after phase subscribers will be executed.

                              - * - *

                              The return value will be the return value of the wrapped function or one - * provided by a wrapper function via an instance of Y.Do.Halt or - * Y.Do.AlterReturn. - * - * @method exec - * @param arg* {any} Arguments are passed to the wrapping and wrapped functions - * @return {any} Return value of wrapped function unless overwritten (see above) - */ -DO.Method.prototype.exec = function () { + /** + * This listener only reacts to the event once + * @property once + */ + // this.once = false; - var args = Y.Array(arguments, 0, true), - i, ret, newRet, - bf = this.before, - af = this.after, - prevented = false; +}; - // execute before - for (i in bf) { - if (bf.hasOwnProperty(i)) { - ret = bf[i].apply(this.obj, args); - if (ret) { - switch (ret.constructor) { - case DO.Halt: - return ret.retVal; - case DO.AlterArgs: - args = ret.newArgs; - break; - case DO.Prevent: - prevented = true; - break; - default: - } +Y.Subscriber.prototype = { + constructor: Y.Subscriber, + + _notify: function(c, args, ce) { + if (this.deleted && !this.postponed) { + if (this.postponed) { + delete this.fn; + delete this.context; + } else { + delete this.postponed; + return null; } } - } + var a = this.args, ret; + switch (ce.signature) { + case 0: + ret = this.fn.call(c, ce.type, args, c); + break; + case 1: + ret = this.fn.call(c, args[0] || null, c); + break; + default: + if (a || args) { + args = args || []; + a = (a) ? args.concat(a) : args; + ret = this.fn.apply(c, a); + } else { + ret = this.fn.call(c); + } + } - // execute method - if (!prevented) { - ret = this.method.apply(this.obj, args); - } + if (this.once) { + ce._delete(this); + } - DO.originalRetVal = ret; - DO.currentRetVal = ret; + return ret; + }, - // execute after methods. - for (i in af) { - if (af.hasOwnProperty(i)) { - newRet = af[i].apply(this.obj, args); - // Stop processing if a Halt object is returned - if (newRet && newRet.constructor == DO.Halt) { - return newRet.retVal; - // Check for a new return value - } else if (newRet && newRet.constructor == DO.AlterReturn) { - ret = newRet.newRetVal; - // Update the static retval state - DO.currentRetVal = ret; + /** + * Executes the subscriber. + * @method notify + * @param args {Array} Arguments array for the subscriber. + * @param ce {CustomEvent} The custom event that sent the notification. + */ + notify: function(args, ce) { + var c = this.context, + ret = true; + + if (!c) { + c = (ce.contextFn) ? ce.contextFn() : ce.context; + } + + // only catch errors if we will not re-throw them. + if (Y.config.throwFail) { + ret = this._notify(c, args, ce); + } else { + try { + ret = this._notify(c, args, ce); + } catch (e) { + Y.error(this + ' failed: ' + e.message, e); } } - } - return ret; -}; + return ret; + }, -////////////////////////////////////////////////////////////////////////// + /** + * Returns true if the fn and obj match this objects properties. + * Used by the unsubscribe method to match the right subscriber. + * + * @method contains + * @param {Function} fn the function to execute. + * @param {Object} context optional 'this' keyword for the listener. + * @return {boolean} true if the supplied arguments match this + * subscriber's signature. + */ + contains: function(fn, context) { + if (context) { + return ((this.fn == fn) && this.context == context); + } else { + return (this.fn == fn); + } + } -/** - * Return an AlterArgs object when you want to change the arguments that - * were passed into the function. Useful for Do.before subscribers. An - * example would be a service that scrubs out illegal characters prior to - * executing the core business logic. - * @class Do.AlterArgs - * @constructor - * @param msg {String} (optional) Explanation of the altered return value - * @param newArgs {Array} Call parameters to be used for the original method - * instead of the arguments originally passed in. - */ -DO.AlterArgs = function(msg, newArgs) { - this.msg = msg; - this.newArgs = newArgs; }; - /** - * Return an AlterReturn object when you want to change the result returned - * from the core method to the caller. Useful for Do.after subscribers. - * @class Do.AlterReturn + * Return value from all subscribe operations + * @class EventHandle * @constructor - * @param msg {String} (optional) Explanation of the altered return value - * @param newRetVal {any} Return value passed to code that invoked the wrapped - * function. + * @param {CustomEvent} evt the custom event. + * @param {Subscriber} sub the subscriber. */ -DO.AlterReturn = function(msg, newRetVal) { - this.msg = msg; - this.newRetVal = newRetVal; -}; - -/** - * Return a Halt object when you want to terminate the execution - * of all subsequent subscribers as well as the wrapped method - * if it has not exectued yet. Useful for Do.before subscribers. - * @class Do.Halt - * @constructor - * @param msg {String} (optional) Explanation of why the termination was done - * @param retVal {any} Return value passed to code that invoked the wrapped - * function. - */ -DO.Halt = function(msg, retVal) { - this.msg = msg; - this.retVal = retVal; -}; - -/** - * Return a Prevent object when you want to prevent the wrapped function - * from executing, but want the remaining listeners to execute. Useful - * for Do.before subscribers. - * @class Do.Prevent - * @constructor - * @param msg {String} (optional) Explanation of why the termination was done - */ -DO.Prevent = function(msg) { - this.msg = msg; -}; - -/** - * Return an Error object when you want to terminate the execution - * of all subsequent method calls. - * @class Do.Error - * @constructor - * @param msg {String} (optional) Explanation of the altered return value - * @param retVal {any} Return value passed to code that invoked the wrapped - * function. - * @deprecated use Y.Do.Halt or Y.Do.Prevent - */ -DO.Error = DO.Halt; - - -////////////////////////////////////////////////////////////////////////// - -// Y["Event"] && Y.Event.addListener(window, "unload", Y.Do._unload, Y.Do); - - -/** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event-custom - * @submodule event-custom-base - */ - - -// var onsubscribeType = "_event:onsub", -var AFTER = 'after', - CONFIGS = [ - 'broadcast', - 'monitored', - 'bubbles', - 'context', - 'contextFn', - 'currentTarget', - 'defaultFn', - 'defaultTargetOnly', - 'details', - 'emitFacade', - 'fireOnce', - 'async', - 'host', - 'preventable', - 'preventedFn', - 'queuable', - 'silent', - 'stoppedFn', - 'target', - 'type' - ], - - YUI3_SIGNATURE = 9, - YUI_LOG = 'yui:log'; - -/** - * Return value from all subscribe operations - * @class EventHandle - * @constructor - * @param {CustomEvent} evt the custom event. - * @param {Subscriber} sub the subscriber. - */ -Y.EventHandle = function(evt, sub) { +Y.EventHandle = function(evt, sub) { /** * The custom event @@ -11907,6204 +8993,5445 @@ Y.EventHandle.prototype = { }; /** - * The CustomEvent class lets you define events for your application - * that can be subscribed to by one or more independent component. - * - * @param {String} type The type of event, which is passed to the callback - * when the event fires. - * @param {object} o configuration object. - * @class CustomEvent - * @constructor + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event-custom + * @submodule event-custom-base */ -Y.CustomEvent = function(type, o) { - // if (arguments.length > 2) { -// this.log('CustomEvent context and silent are now in the config', 'warn', 'Event'); - // } +/** + * EventTarget provides the implementation for any object to + * publish, subscribe and fire to custom events, and also + * alows other EventTargets to target the object with events + * sourced from the other object. + * EventTarget is designed to be used with Y.augment to wrap + * EventCustom in an interface that allows events to be listened to + * and fired by name. This makes it possible for implementing code to + * subscribe to an event that either has not been created yet, or will + * not be created at all. + * @class EventTarget + * @param opts a configuration object + * @config emitFacade {boolean} if true, all events will emit event + * facade payloads by default (default false) + * @config prefix {string} the prefix to apply to non-prefixed event names + * @config chain {boolean} if true, on/after/detach return the host to allow + * chaining, otherwise they return an EventHandle (default false) + */ - o = o || {}; +var L = Y.Lang, + PREFIX_DELIMITER = ':', + CATEGORY_DELIMITER = '|', + AFTER_PREFIX = '~AFTER~', + YArray = Y.Array, - this.id = Y.stamp(this); + _wildType = Y.cached(function(type) { + return type.replace(/(.*)(:)(.*)/, "*$2$3"); + }), /** - * The type of event, returned to subscribers when the event fires - * @property type - * @type string + * If the instance has a prefix attribute and the + * event type is not prefixed, the instance prefix is + * applied to the supplied type. + * @method _getType + * @private */ - this.type = type; + _getType = Y.cached(function(type, pre) { - /** - * The context the the event will fire from by default. Defaults to the YUI - * instance. - * @property context - * @type object - */ - this.context = Y; + if (!pre || !L.isString(type) || type.indexOf(PREFIX_DELIMITER) > -1) { + return type; + } + + return pre + PREFIX_DELIMITER + type; + }), /** - * Monitor when an event is attached or detached. - * - * @property monitored - * @type boolean + * Returns an array with the detach key (if provided), + * and the prefixed event name from _getType + * Y.on('detachcategory| menu:click', fn) + * @method _parseType + * @private */ - // this.monitored = false; + _parseType = Y.cached(function(type, pre) { - this.logSystem = (type == YUI_LOG); + var t = type, detachcategory, after, i; - /** - * If 0, this event does not broadcast. If 1, the YUI instance is notified - * every time this event fires. If 2, the YUI instance and the YUI global - * (if event is enabled on the global) are notified every time this event - * fires. - * @property broadcast - * @type int - */ - // this.broadcast = 0; + if (!L.isString(t)) { + return t; + } - /** - * By default all custom events are logged in the debug build, set silent - * to true to disable debug outpu for this event. - * @property silent - * @type boolean - */ - this.silent = this.logSystem; + i = t.indexOf(AFTER_PREFIX); - /** - * Specifies whether this event should be queued when the host is actively - * processing an event. This will effect exectution order of the callbacks - * for the various events. - * @property queuable - * @type boolean - * @default false - */ - // this.queuable = false; + if (i > -1) { + after = true; + t = t.substr(AFTER_PREFIX.length); + } - /** - * The subscribers to this event - * @property subscribers - * @type Subscriber {} - */ - this.subscribers = {}; + i = t.indexOf(CATEGORY_DELIMITER); - /** - * 'After' subscribers - * @property afters - * @type Subscriber {} - */ - this.afters = {}; + if (i > -1) { + detachcategory = t.substr(0, (i)); + t = t.substr(i+1); + if (t == '*') { + t = null; + } + } - /** - * This event has fired if true - * - * @property fired - * @type boolean - * @default false; - */ - // this.fired = false; + // detach category, full type with instance prefix, is this an after listener, short type + return [detachcategory, (pre) ? _getType(t, pre) : t, after, t]; + }), - /** - * An array containing the arguments the custom event - * was last fired with. - * @property firedWith - * @type Array - */ - // this.firedWith; + ET = function(opts) { - /** - * This event should only fire one time if true, and if - * it has fired, any new subscribers should be notified - * immediately. - * - * @property fireOnce - * @type boolean - * @default false; - */ - // this.fireOnce = false; - /** - * fireOnce listeners will fire syncronously unless async - * is set to true - * @property async - * @type boolean - * @default false - */ - //this.async = false; + var o = (L.isObject(opts)) ? opts : {}; - /** - * Flag for stopPropagation that is modified during fire() - * 1 means to stop propagation to bubble targets. 2 means - * to also stop additional subscribers on this target. - * @property stopped - * @type int - */ - // this.stopped = 0; + this._yuievt = this._yuievt || { - /** - * Flag for preventDefault that is modified during fire(). - * if it is not 0, the default behavior for this event - * @property prevented - * @type int - */ - // this.prevented = 0; + id: Y.guid(), - /** - * Specifies the host for this custom event. This is used - * to enable event bubbling - * @property host - * @type EventTarget - */ - // this.host = null; + events: {}, - /** - * The default function to execute after event listeners - * have fire, but only if the default action was not - * prevented. - * @property defaultFn - * @type Function - */ - // this.defaultFn = null; + targets: {}, + + config: o, + + chain: ('chain' in o) ? o.chain : Y.config.chain, + + bubbling: false, + + defaults: { + context: o.context || this, + host: this, + emitFacade: o.emitFacade, + fireOnce: o.fireOnce, + queuable: o.queuable, + monitored: o.monitored, + broadcast: o.broadcast, + defaultTargetOnly: o.defaultTargetOnly, + bubbles: ('bubbles' in o) ? o.bubbles : true + } + }; + + }; - /** - * The function to execute if a subscriber calls - * stopPropagation or stopImmediatePropagation - * @property stoppedFn - * @type Function - */ - // this.stoppedFn = null; + +ET.prototype = { + constructor: ET, /** - * The function to execute if a subscriber calls - * preventDefault - * @property preventedFn - * @type Function + * Listen to a custom event hosted by this object one time. + * This is the equivalent to on except the + * listener is immediatelly detached when it is executed. + * @method once + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config */ - // this.preventedFn = null; + once: function() { + var handle = this.on.apply(this, arguments); + handle.batch(function(hand) { + if (hand.sub) { + hand.sub.once = true; + } + }); + return handle; + }, /** - * Specifies whether or not this event's default function - * can be cancelled by a subscriber by executing preventDefault() - * on the event facade - * @property preventable - * @type boolean - * @default true + * Listen to a custom event hosted by this object one time. + * This is the equivalent to after except the + * listener is immediatelly detached when it is executed. + * @method onceAfter + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config */ - this.preventable = true; + onceAfter: function() { + var args = YArray(arguments, 0, true); + args[0] = AFTER_PREFIX + args[0]; + + return this.once.apply(this, args); + }, /** - * Specifies whether or not a subscriber can stop the event propagation - * via stopPropagation(), stopImmediatePropagation(), or halt() - * - * Events can only bubble if emitFacade is true. - * - * @property bubbles - * @type boolean - * @default true + * Takes the type parameter passed to 'on' and parses out the + * various pieces that could be included in the type. If the + * event type is passed without a prefix, it will be expanded + * to include the prefix one is supplied or the event target + * is configured with a default prefix. + * @method parseType + * @param {string} type the type + * @param {string} [pre=this._yuievt.config.prefix] the prefix + * @since 3.3.0 + * @return {Array} an array containing: + * * the detach category, if supplied, + * * the prefixed event type, + * * whether or not this is an after listener, + * * the supplied event type */ - this.bubbles = true; + parseType: function(type, pre) { + return _parseType(type, pre || this._yuievt.config.prefix); + }, /** - * Supports multiple options for listener signatures in order to - * port YUI 2 apps. - * @property signature - * @type int - * @default 9 + * Subscribe to a custom event hosted by this object + * @method on + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config */ - this.signature = YUI3_SIGNATURE; + on: function(type, fn, context) { - this.subCount = 0; - this.afterCount = 0; + var parts = _parseType(type, this._yuievt.config.prefix), f, c, args, ret, ce, + detachcategory, handle, store = Y.Env.evt.handles, after, adapt, shorttype, + Node = Y.Node, n, domevent, isArr; - // this.hasSubscribers = false; + // full name, args, detachcategory, after + this._monitor('attach', parts[1], { + args: arguments, + category: parts[0], + after: parts[2] + }); - // this.hasAfters = false; + if (L.isObject(type)) { - /** - * If set to true, the custom event will deliver an EventFacade object - * that is similar to a DOM event object. - * @property emitFacade - * @type boolean - * @default false - */ - // this.emitFacade = false; + if (L.isFunction(type)) { + return Y.Do.before.apply(Y.Do, arguments); + } - this.applyConfig(o, true); + f = fn; + c = context; + args = YArray(arguments, 0, true); + ret = []; - // this.log("Creating " + this.type); + if (L.isArray(type)) { + isArr = true; + } -}; + after = type._after; + delete type._after; -Y.CustomEvent.prototype = { + Y.each(type, function(v, k) { - hasSubs: function(when) { - var s = this.subCount, a = this.afterCount, sib = this.sibling; + if (L.isObject(v)) { + f = v.fn || ((L.isFunction(v)) ? v : f); + c = v.context || c; + } - if (sib) { - s += sib.subCount; - a += sib.afterCount; - } + var nv = (after) ? AFTER_PREFIX : ''; - if (when) { - return (when == 'after') ? a : s; - } + args[0] = nv + ((isArr) ? v : k); + args[1] = f; + args[2] = c; - return (s + a); - }, + ret.push(this.on.apply(this, args)); - /** - * Monitor the event state for the subscribed event. The first parameter - * is what should be monitored, the rest are the normal parameters when - * subscribing to an event. - * @method monitor - * @param what {string} what to monitor ('detach', 'attach', 'publish'). - * @return {EventHandle} return value from the monitor event subscription. - */ - monitor: function(what) { - this.monitored = true; - var type = this.id + '|' + this.type + '_' + what, - args = Y.Array(arguments, 0, true); - args[0] = type; - return this.host.on.apply(this.host, args); - }, + }, this); - /** - * Get all of the subscribers to this event and any sibling event - * @method getSubs - * @return {Array} first item is the on subscribers, second the after. - */ - getSubs: function() { - var s = Y.merge(this.subscribers), a = Y.merge(this.afters), sib = this.sibling; + return (this._yuievt.chain) ? this : new Y.EventHandle(ret); - if (sib) { - Y.mix(s, sib.subscribers); - Y.mix(a, sib.afters); } - return [s, a]; - }, - - /** - * Apply configuration properties. Only applies the CONFIG whitelist - * @method applyConfig - * @param o hash of properties to apply. - * @param force {boolean} if true, properties that exist on the event - * will be overwritten. - */ - applyConfig: function(o, force) { - if (o) { - Y.mix(this, o, force, CONFIGS); - } - }, + detachcategory = parts[0]; + after = parts[2]; + shorttype = parts[3]; - _on: function(fn, context, args, when) { - - if (!fn) { - this.log('Invalid callback for CE: ' + this.type); + // extra redirection so we catch adaptor events too. take a look at this. + if (Node && Y.instanceOf(this, Node) && (shorttype in Node.DOM_EVENTS)) { + args = YArray(arguments, 0, true); + args.splice(2, 0, Node.getDOMNode(this)); + return Y.on.apply(Y, args); } - var s = new Y.Subscriber(fn, context, args, when); + type = parts[1]; - if (this.fireOnce && this.fired) { - if (this.async) { - setTimeout(Y.bind(this._notify, this, s, this.firedWith), 0); - } else { - this._notify(s, this.firedWith); + if (Y.instanceOf(this, YUI)) { + + adapt = Y.Env.evt.plugins[type]; + args = YArray(arguments, 0, true); + args[0] = shorttype; + + if (Node) { + n = args[2]; + + if (Y.instanceOf(n, Y.NodeList)) { + n = Y.NodeList.getDOMNodes(n); + } else if (Y.instanceOf(n, Node)) { + n = Node.getDOMNode(n); + } + + domevent = (shorttype in Node.DOM_EVENTS); + + // Captures both DOM events and event plugins. + if (domevent) { + args[2] = n; + } + } + + // check for the existance of an event adaptor + if (adapt) { + handle = adapt.on.apply(Y, args); + } else if ((!type) || domevent) { + handle = Y.Event._attach(args); } + } - if (when == AFTER) { - this.afters[s.id] = s; - this.afterCount++; - } else { - this.subscribers[s.id] = s; - this.subCount++; + if (!handle) { + ce = this._yuievt.events[type] || this.publish(type); + handle = ce._on(fn, context, (arguments.length > 3) ? YArray(arguments, 3, true) : null, (after) ? 'after' : true); } - return new Y.EventHandle(this, s); + if (detachcategory) { + store[detachcategory] = store[detachcategory] || {}; + store[detachcategory][type] = store[detachcategory][type] || []; + store[detachcategory][type].push(handle); + } + + return (this._yuievt.chain) ? this : handle; }, /** - * Listen for this event + * subscribe to an event * @method subscribe - * @param {Function} fn The function to execute. - * @return {EventHandle} Unsubscribe handle. - * @deprecated use on. + * @deprecated use on */ - subscribe: function(fn, context) { - var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; - return this._on(fn, context, a, true); + subscribe: function() { + return this.on.apply(this, arguments); }, /** - * Listen for this event - * @method on - * @param {Function} fn The function to execute. - * @param {object} context optional execution context. - * @param {mixed} arg* 0..n additional arguments to supply to the subscriber - * when the event fires. - * @return {EventHandle} An object with a detach method to detch the handler(s). + * Detach one or more listeners the from the specified event + * @method detach + * @param type {string|Object} Either the handle to the subscriber or the + * type of event. If the type + * is not specified, it will attempt to remove + * the listener from all hosted events. + * @param fn {Function} The subscribed function to unsubscribe, if not + * supplied, all subscribers will be removed. + * @param context {Object} The custom object passed to subscribe. This is + * optional, but if supplied will be used to + * disambiguate multiple listeners that are the same + * (e.g., you subscribe many object using a function + * that lives on the prototype) + * @return {EventTarget} the host */ - on: function(fn, context) { - var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; - if (this.host) { - this.host._monitor('attach', this.type, { - args: arguments - }); - } - return this._on(fn, context, a, true); - }, + detach: function(type, fn, context) { + var evts = this._yuievt.events, i, + Node = Y.Node, isNode = Node && (Y.instanceOf(this, Node)); - /** - * Listen for this event after the normal subscribers have been notified and - * the default behavior has been applied. If a normal subscriber prevents the - * default behavior, it also prevents after listeners from firing. - * @method after - * @param {Function} fn The function to execute. - * @param {object} context optional execution context. - * @param {mixed} arg* 0..n additional arguments to supply to the subscriber - * when the event fires. - * @return {EventHandle} handle Unsubscribe handle. - */ - after: function(fn, context) { - var a = (arguments.length > 2) ? Y.Array(arguments, 2, true) : null; - return this._on(fn, context, a, AFTER); - }, + // detachAll disabled on the Y instance. + if (!type && (this !== Y)) { + for (i in evts) { + if (evts.hasOwnProperty(i)) { + evts[i].detach(fn, context); + } + } + if (isNode) { + Y.Event.purgeElement(Node.getDOMNode(this)); + } - /** - * Detach listeners. - * @method detach - * @param {Function} fn The subscribed function to remove, if not supplied - * all will be removed. - * @param {Object} context The context object passed to subscribe. - * @return {int} returns the number of subscribers unsubscribed. - */ - detach: function(fn, context) { - // unsubscribe handle - if (fn && fn.detach) { - return fn.detach(); + return this; } - var i, s, - found = 0, - subs = Y.merge(this.subscribers, this.afters); + var parts = _parseType(type, this._yuievt.config.prefix), + detachcategory = L.isArray(parts) ? parts[0] : null, + shorttype = (parts) ? parts[3] : null, + adapt, store = Y.Env.evt.handles, detachhost, cat, args, + ce, - for (i in subs) { - if (subs.hasOwnProperty(i)) { - s = subs[i]; - if (s && (!fn || fn === s.fn)) { - this._delete(s); - found++; + keyDetacher = function(lcat, ltype, host) { + var handles = lcat[ltype], ce, i; + if (handles) { + for (i = handles.length - 1; i >= 0; --i) { + ce = handles[i].evt; + if (ce.host === host || ce.el === host) { + handles[i].detach(); + } } } - } + }; - return found; - }, + if (detachcategory) { - /** - * Detach listeners. - * @method unsubscribe - * @param {Function} fn The subscribed function to remove, if not supplied - * all will be removed. - * @param {Object} context The context object passed to subscribe. - * @return {int|undefined} returns the number of subscribers unsubscribed. - * @deprecated use detach. - */ - unsubscribe: function() { - return this.detach.apply(this, arguments); - }, + cat = store[detachcategory]; + type = parts[1]; + detachhost = (isNode) ? Y.Node.getDOMNode(this) : this; - /** - * Notify a single subscriber - * @method _notify - * @param {Subscriber} s the subscriber. - * @param {Array} args the arguments array to apply to the listener. - * @private - */ - _notify: function(s, args, ef) { + if (cat) { + if (type) { + keyDetacher(cat, type, detachhost); + } else { + for (i in cat) { + if (cat.hasOwnProperty(i)) { + keyDetacher(cat, i, detachhost); + } + } + } - this.log(this.type + '->' + 'sub: ' + s.id); + return this; + } - var ret; + // If this is an event handle, use it to detach + } else if (L.isObject(type) && type.detach) { + type.detach(); + return this; + // extra redirection so we catch adaptor events too. take a look at this. + } else if (isNode && ((!shorttype) || (shorttype in Node.DOM_EVENTS))) { + args = YArray(arguments, 0, true); + args[2] = Node.getDOMNode(this); + Y.detach.apply(Y, args); + return this; + } - ret = s.notify(args, this); + adapt = Y.Env.evt.plugins[shorttype]; - if (false === ret || this.stopped > 1) { - this.log(this.type + ' cancelled by subscriber'); - return false; + // The YUI instance handles DOM events and adaptors + if (Y.instanceOf(this, YUI)) { + args = YArray(arguments, 0, true); + // use the adaptor specific detach code if + if (adapt && adapt.detach) { + adapt.detach.apply(Y, args); + return this; + // DOM event fork + } else if (!type || (!adapt && Node && (type in Node.DOM_EVENTS))) { + args[0] = type; + Y.Event.detach.apply(Y.Event, args); + return this; + } } - return true; + // ce = evts[type]; + ce = evts[parts[1]]; + if (ce) { + ce.detach(fn, context); + } + + return this; }, /** - * Logger abstraction to centralize the application of the silent flag - * @method log - * @param {string} msg message to log. - * @param {string} cat log category. + * detach a listener + * @method unsubscribe + * @deprecated use detach */ - log: function(msg, cat) { - if (!this.silent) { - } + unsubscribe: function() { + return this.detach.apply(this, arguments); }, /** - * Notifies the subscribers. The callback functions will be executed - * from the context specified when the event was created, and with the - * following parameters: - *

                                - *
                              • The type of event
                              • - *
                              • All of the arguments fire() was executed with as an array
                              • - *
                              • The custom object (if any) that was passed into the subscribe() - * method
                              • - *
                              - * @method fire - * @param {Object*} arguments an arbitrary set of parameters to pass to - * the handler. - * @return {boolean} false if one of the subscribers returned false, - * true otherwise. - * + * Removes all listeners from the specified event. If the event type + * is not specified, all listeners from all hosted custom events will + * be removed. + * @method detachAll + * @param type {string} The type, or name of the event */ - fire: function() { - if (this.fireOnce && this.fired) { - this.log('fireOnce event: ' + this.type + ' already fired'); - return true; - } else { - - var args = Y.Array(arguments, 0, true); - - // this doesn't happen if the event isn't published - // this.host._monitor('fire', this.type, args); - - this.fired = true; - this.firedWith = args; - - if (this.emitFacade) { - return this.fireComplex(args); - } else { - return this.fireSimple(args); - } - } + detachAll: function(type) { + return this.detach(type); }, - fireSimple: function(args) { - this.stopped = 0; - this.prevented = 0; - if (this.hasSubs()) { - // this._procSubs(Y.merge(this.subscribers, this.afters), args); - var subs = this.getSubs(); - this._procSubs(subs[0], args); - this._procSubs(subs[1], args); - } - this._broadcast(args); - return this.stopped ? false : true; + /** + * Removes all listeners from the specified event. If the event type + * is not specified, all listeners from all hosted custom events will + * be removed. + * @method unsubscribeAll + * @param type {string} The type, or name of the event + * @deprecated use detachAll + */ + unsubscribeAll: function() { + return this.detachAll.apply(this, arguments); }, - // Requires the event-custom-complex module for full funcitonality. - fireComplex: function(args) { - args[0] = args[0] || {}; - return this.fireSimple(args); - }, + /** + * Creates a new custom event of the specified type. If a custom event + * by that name already exists, it will not be re-created. In either + * case the custom event is returned. + * + * @method publish + * + * @param type {string} the type, or name of the event + * @param opts {object} optional config params. Valid properties are: + * + *
                                + *
                              • + * 'broadcast': whether or not the YUI instance and YUI global are notified when the event is fired (false) + *
                              • + *
                              • + * 'bubbles': whether or not this event bubbles (true) + * Events can only bubble if emitFacade is true. + *
                              • + *
                              • + * 'context': the default execution context for the listeners (this) + *
                              • + *
                              • + * 'defaultFn': the default function to execute when this event fires if preventDefault was not called + *
                              • + *
                              • + * 'emitFacade': whether or not this event emits a facade (false) + *
                              • + *
                              • + * 'prefix': the prefix for this targets events, e.g., 'menu' in 'menu:click' + *
                              • + *
                              • + * 'fireOnce': if an event is configured to fire once, new subscribers after + * the fire will be notified immediately. + *
                              • + *
                              • + * 'async': fireOnce event listeners will fire synchronously if the event has already + * fired unless async is true. + *
                              • + *
                              • + * 'preventable': whether or not preventDefault() has an effect (true) + *
                              • + *
                              • + * 'preventedFn': a function that is executed when preventDefault is called + *
                              • + *
                              • + * 'queuable': whether or not this event can be queued during bubbling (false) + *
                              • + *
                              • + * 'silent': if silent is true, debug messages are not provided for this event. + *
                              • + *
                              • + * 'stoppedFn': a function that is executed when stopPropagation is called + *
                              • + * + *
                              • + * 'monitored': specifies whether or not this event should send notifications about + * when the event has been attached, detached, or published. + *
                              • + *
                              • + * 'type': the event type (valid option if not provided as the first parameter to publish) + *
                              • + *
                              + * + * @return {CustomEvent} the custom event + * + */ + publish: function(type, opts) { + var events, ce, ret, defaults, + edata = this._yuievt, + pre = edata.config.prefix; - _procSubs: function(subs, args, ef) { - var s, i; - for (i in subs) { - if (subs.hasOwnProperty(i)) { - s = subs[i]; - if (s && s.fn) { - if (false === this._notify(s, args, ef)) { - this.stopped = 2; - } - if (this.stopped == 2) { - return false; - } - } - } - } + type = (pre) ? _getType(type, pre) : type; - return true; - }, + this._monitor('publish', type, { + args: arguments + }); - _broadcast: function(args) { - if (!this.stopped && this.broadcast) { + if (L.isObject(type)) { + ret = {}; + Y.each(type, function(v, k) { + ret[k] = this.publish(k, v || opts); + }, this); - var a = Y.Array(args); - a.unshift(this.type); + return ret; + } - if (this.host !== Y) { - Y.fire.apply(Y, a); - } + events = edata.events; + ce = events[type]; - if (this.broadcast == 2) { - Y.Global.fire.apply(Y.Global, a); + if (ce) { +// ce.log("publish applying new config to published event: '"+type+"' exists", 'info', 'event'); + if (opts) { + ce.applyConfig(opts, true); } + } else { + + defaults = edata.defaults; + + // apply defaults + ce = new Y.CustomEvent(type, + (opts) ? Y.merge(defaults, opts) : defaults); + events[type] = ce; } - }, - /** - * Removes all listeners - * @method unsubscribeAll - * @return {int} The number of listeners unsubscribed. - * @deprecated use detachAll. - */ - unsubscribeAll: function() { - return this.detachAll.apply(this, arguments); - }, + // make sure we turn the broadcast flag off if this + // event was published as a result of bubbling + // if (opts instanceof Y.CustomEvent) { + // events[type].broadcast = false; + // } - /** - * Removes all listeners - * @method detachAll - * @return {int} The number of listeners unsubscribed. - */ - detachAll: function() { - return this.detach(); + return events[type]; }, /** - * @method _delete - * @param subscriber object. + * This is the entry point for the event monitoring system. + * You can monitor 'attach', 'detach', 'fire', and 'publish'. + * When configured, these events generate an event. click -> + * click_attach, click_detach, click_publish -- these can + * be subscribed to like other events to monitor the event + * system. Inividual published events can have monitoring + * turned on or off (publish can't be turned off before it + * it published) by setting the events 'monitor' config. + * + * @method _monitor + * @param what {String} 'attach', 'detach', 'fire', or 'publish' + * @param type {String} Name of the event being monitored + * @param o {Object} Information about the event interaction, such as + * fire() args, subscription category, publish config * @private */ - _delete: function(s) { - if (s) { - if (this.subscribers[s.id]) { - delete this.subscribers[s.id]; - this.subCount--; - } - if (this.afters[s.id]) { - delete this.afters[s.id]; - this.afterCount--; - } - } - - if (this.host) { - this.host._monitor('detach', this.type, { - ce: this, - sub: s - }); - } - - if (s) { - // delete s.fn; - // delete s.context; - s.deleted = true; + _monitor: function(what, type, o) { + var monitorevt, ce = this.getEvent(type); + if ((this._yuievt.config.monitored && (!ce || ce.monitored)) || (ce && ce.monitored)) { + monitorevt = type + '_' + what; + o.monitored = what; + this.fire.call(this, monitorevt, o); } - } -}; - -///////////////////////////////////////////////////////////////////// + }, -/** - * Stores the subscriber information to be used when the event fires. - * @param {Function} fn The wrapped function to execute. - * @param {Object} context The value of the keyword 'this' in the listener. - * @param {Array} args* 0..n additional arguments to supply the listener. - * - * @class Subscriber - * @constructor - */ -Y.Subscriber = function(fn, context, args) { - - /** - * The callback that will be execute when the event fires - * This is wrapped by Y.rbind if obj was supplied. - * @property fn - * @type Function + /** + * Fire a custom event by name. The callback functions will be executed + * from the context specified when the event was created, and with the + * following parameters. + * + * If the custom event object hasn't been created, then the event hasn't + * been published and it has no subscribers. For performance sake, we + * immediate exit in this case. This means the event won't bubble, so + * if the intention is that a bubble target be notified, the event must + * be published on this object first. + * + * The first argument is the event type, and any additional arguments are + * passed to the listeners as parameters. If the first of these is an + * object literal, and the event is configured to emit an event facade, + * that object is mixed into the event facade and the facade is provided + * in place of the original object. + * + * @method fire + * @param type {String|Object} The type of the event, or an object that contains + * a 'type' property. + * @param arguments {Object*} an arbitrary set of parameters to pass to + * the handler. If the first of these is an object literal and the event is + * configured to emit an event facade, the event facade will replace that + * parameter after the properties the object literal contains are copied to + * the event facade. + * @return {EventTarget} the event host + * */ - this.fn = fn; + fire: function(type) { - /** - * Optional 'this' keyword for the listener - * @property context - * @type Object - */ - this.context = context; + var typeIncluded = L.isString(type), + t = (typeIncluded) ? type : (type && type.type), + ce, ret, pre = this._yuievt.config.prefix, ce2, + args = (typeIncluded) ? YArray(arguments, 1, true) : arguments; - /** - * Unique subscriber id - * @property id - * @type String - */ - this.id = Y.stamp(this); + t = (pre) ? _getType(t, pre) : t; - /** - * Additional arguments to propagate to the subscriber - * @property args - * @type Array - */ - this.args = args; + this._monitor('fire', t, { + args: args + }); - /** - * Custom events for a given fire transaction. - * @property events - * @type {EventTarget} - */ - // this.events = null; + ce = this.getEvent(t, true); + ce2 = this.getSibling(t, ce); - /** - * This listener only reacts to the event once - * @property once - */ - // this.once = false; + if (ce2 && !ce) { + ce = this.publish(t); + } -}; + // this event has not been published or subscribed to + if (!ce) { + if (this._yuievt.hasTargets) { + return this.bubble({ type: t }, args, this); + } -Y.Subscriber.prototype = { + // otherwise there is nothing to be done + ret = true; + } else { + ce.sibling = ce2; + ret = ce.fire.apply(ce, args); + } - _notify: function(c, args, ce) { - if (this.deleted && !this.postponed) { - if (this.postponed) { - delete this.fn; - delete this.context; - } else { - delete this.postponed; - return null; + return (this._yuievt.chain) ? this : ret; + }, + + getSibling: function(type, ce) { + var ce2; + // delegate to *:type events if there are subscribers + if (type.indexOf(PREFIX_DELIMITER) > -1) { + type = _wildType(type); + // console.log(type); + ce2 = this.getEvent(type, true); + if (ce2) { + // console.log("GOT ONE: " + type); + ce2.applyConfig(ce); + ce2.bubbles = false; + ce2.broadcast = 0; + // ret = ce2.fire.apply(ce2, a); } } - var a = this.args, ret; - switch (ce.signature) { - case 0: - ret = this.fn.call(c, ce.type, args, c); - break; - case 1: - ret = this.fn.call(c, args[0] || null, c); - break; - default: - if (a || args) { - args = args || []; - a = (a) ? args.concat(a) : args; - ret = this.fn.apply(c, a); - } else { - ret = this.fn.call(c); - } - } - if (this.once) { - ce._delete(this); - } + return ce2; + }, - return ret; + /** + * Returns the custom event of the provided type has been created, a + * falsy value otherwise + * @method getEvent + * @param type {string} the type, or name of the event + * @param prefixed {string} if true, the type is prefixed already + * @return {CustomEvent} the custom event or null + */ + getEvent: function(type, prefixed) { + var pre, e; + if (!prefixed) { + pre = this._yuievt.config.prefix; + type = (pre) ? _getType(type, pre) : type; + } + e = this._yuievt.events; + return e[type] || null; }, /** - * Executes the subscriber. - * @method notify - * @param args {Array} Arguments array for the subscriber. - * @param ce {CustomEvent} The custom event that sent the notification. + * Subscribe to a custom event hosted by this object. The + * supplied callback will execute after any listeners add + * via the subscribe method, and after the default function, + * if configured for the event, has executed. + * @method after + * @param type {string} The type of the event + * @param fn {Function} The callback + * @param context {object} optional execution context. + * @param arg* {mixed} 0..n additional arguments to supply to the subscriber + * @return the event target or a detach handle per 'chain' config */ - notify: function(args, ce) { - var c = this.context, - ret = true; + after: function(type, fn) { - if (!c) { - c = (ce.contextFn) ? ce.contextFn() : ce.context; - } + var a = YArray(arguments, 0, true); - // only catch errors if we will not re-throw them. - if (Y.config.throwFail) { - ret = this._notify(c, args, ce); - } else { - try { - ret = this._notify(c, args, ce); - } catch (e) { - Y.error(this + ' failed: ' + e.message, e); - } + switch (L.type(type)) { + case 'function': + return Y.Do.after.apply(Y.Do, arguments); + case 'array': + // YArray.each(a[0], function(v) { + // v = AFTER_PREFIX + v; + // }); + // break; + case 'object': + a[0]._after = true; + break; + default: + a[0] = AFTER_PREFIX + type; } - return ret; + return this.on.apply(this, a); + }, /** - * Returns true if the fn and obj match this objects properties. - * Used by the unsubscribe method to match the right subscriber. + * Executes the callback before a DOM event, custom event + * or method. If the first argument is a function, it + * is assumed the target is a method. For DOM and custom + * events, this is an alias for Y.on. * - * @method contains - * @param {Function} fn the function to execute. - * @param {Object} context optional 'this' keyword for the listener. - * @return {boolean} true if the supplied arguments match this - * subscriber's signature. + * For DOM and custom events: + * type, callback, context, 0-n arguments + * + * For methods: + * callback, object (method host), methodName, context, 0-n arguments + * + * @method before + * @return detach handle */ - contains: function(fn, context) { - if (context) { - return ((this.fn == fn) && this.context == context); - } else { - return (this.fn == fn); - } + before: function() { + return this.on.apply(this, arguments); } }; +Y.EventTarget = ET; + +// make Y an event target +Y.mix(Y, ET.prototype); +ET.call(Y, { bubbles: false }); + +YUI.Env.globalEvents = YUI.Env.globalEvents || new ET(); + /** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event-custom - * @submodule event-custom-base + * Hosts YUI page level events. This is where events bubble to + * when the broadcast config is set to 2. This property is + * only available if the custom event module is loaded. + * @property Global + * @type EventTarget + * @for YUI */ +Y.Global = YUI.Env.globalEvents; + +// @TODO implement a global namespace function on Y.Global? /** - * EventTarget provides the implementation for any object to - * publish, subscribe and fire to custom events, and also - * alows other EventTargets to target the object with events - * sourced from the other object. - * EventTarget is designed to be used with Y.augment to wrap - * EventCustom in an interface that allows events to be listened to - * and fired by name. This makes it possible for implementing code to - * subscribe to an event that either has not been created yet, or will - * not be created at all. - * @class EventTarget - * @param opts a configuration object - * @config emitFacade {boolean} if true, all events will emit event - * facade payloads by default (default false) - * @config prefix {string} the prefix to apply to non-prefixed event names - * @config chain {boolean} if true, on/after/detach return the host to allow - * chaining, otherwise they return an EventHandle (default false) + * YUI's on method is a unified interface for subscribing to + * most events exposed by YUI. This includes custom events, DOM events, and + * function events. detach is also provided to remove listeners + * serviced by this function. + * + * The signature that on accepts varies depending on the type + * of event being consumed. Refer to the specific methods that will + * service a specific request for additional information about subscribing + * to that type of event. + * + *
                                + *
                              • Custom events. These events are defined by various + * modules in the library. This type of event is delegated to + * EventTarget's on method. + *
                                  + *
                                • The type of the event
                                • + *
                                • The callback to execute
                                • + *
                                • An optional context object
                                • + *
                                • 0..n additional arguments to supply the callback.
                                • + *
                                + * Example: + * Y.on('drag:drophit', function() { // start work }); + *
                              • + *
                              • DOM events. These are moments reported by the browser related + * to browser functionality and user interaction. + * This type of event is delegated to Event's + * attach method. + *
                                  + *
                                • The type of the event
                                • + *
                                • The callback to execute
                                • + *
                                • The specification for the Node(s) to attach the listener + * to. This can be a selector, collections, or Node/Element + * refereces.
                                • + *
                                • An optional context object
                                • + *
                                • 0..n additional arguments to supply the callback.
                                • + *
                                + * Example: + * Y.on('click', function(e) { // something was clicked }, '#someelement'); + *
                              • + *
                              • Function events. These events can be used to react before or after a + * function is executed. This type of event is delegated to Event.Do's + * before method. + *
                                  + *
                                • The callback to execute
                                • + *
                                • The object that has the function that will be listened for.
                                • + *
                                • The name of the function to listen for.
                                • + *
                                • An optional context object
                                • + *
                                • 0..n additional arguments to supply the callback.
                                • + *
                                + * Example Y.on(function(arg1, arg2, etc) { // obj.methodname was executed }, obj 'methodname'); + *
                              • + *
                              + * + * on corresponds to the moment before any default behavior of + * the event. after works the same way, but these listeners + * execute after the event's default behavior. before is an + * alias for on. + * + * @method on + * @param type event type (this parameter does not apply for function events) + * @param fn the callback + * @param context optionally change the value of 'this' in the callback + * @param args* 0..n additional arguments to pass to the callback. + * @return the event target or a detach handle per 'chain' config + * @for YUI */ -var L = Y.Lang, - PREFIX_DELIMITER = ':', - CATEGORY_DELIMITER = '|', - AFTER_PREFIX = '~AFTER~', - YArray = Y.Array, + /** + * Listen for an event one time. Equivalent to on, except that + * the listener is immediately detached when executed. + * @see on + * @method once + * @param type event type (this parameter does not apply for function events) + * @param fn the callback + * @param context optionally change the value of 'this' in the callback + * @param args* 0..n additional arguments to pass to the callback. + * @return the event target or a detach handle per 'chain' config + * @for YUI + */ - _wildType = Y.cached(function(type) { - return type.replace(/(.*)(:)(.*)/, "*$2$3"); - }), +/** + * after() is a unified interface for subscribing to + * most events exposed by YUI. This includes custom events, + * DOM events, and AOP events. This works the same way as + * the on() function, only it operates after any default + * behavior for the event has executed. @see on for more + * information. + * @method after + * @param type event type (this parameter does not apply for function events) + * @param fn the callback + * @param context optionally change the value of 'this' in the callback + * @param args* 0..n additional arguments to pass to the callback. + * @return the event target or a detach handle per 'chain' config + * @for YUI + */ + + +}, '3.4.0' ,{requires:['oop']}); +YUI.add('event-custom-complex', function(Y) { + + +/** + * Adds event facades, preventable default behavior, and bubbling. + * events. + * @module event-custom + * @submodule event-custom-complex + */ + +var FACADE, + FACADE_KEYS, + EMPTY = {}, + CEProto = Y.CustomEvent.prototype, + ETProto = Y.EventTarget.prototype; + +/** + * Wraps and protects a custom event for use when emitFacade is set to true. + * Requires the event-custom-complex module + * @class EventFacade + * @param e {Event} the custom event + * @param currentTarget {HTMLElement} the element the listener was attached to + */ + +Y.EventFacade = function(e, currentTarget) { + + e = e || EMPTY; + + this._event = e; /** - * If the instance has a prefix attribute and the - * event type is not prefixed, the instance prefix is - * applied to the supplied type. - * @method _getType - * @private + * The arguments passed to fire + * @property details + * @type Array */ - _getType = Y.cached(function(type, pre) { + this.details = e.details; - if (!pre || !L.isString(type) || type.indexOf(PREFIX_DELIMITER) > -1) { - return type; - } + /** + * The event type, this can be overridden by the fire() payload + * @property type + * @type string + */ + this.type = e.type; - return pre + PREFIX_DELIMITER + type; - }), + /** + * The real event type + * @property type + * @type string + */ + this._type = e.type; + + ////////////////////////////////////////////////////// /** - * Returns an array with the detach key (if provided), - * and the prefixed event name from _getType - * Y.on('detachcategory| menu:click', fn) - * @method _parseType - * @private + * Node reference for the targeted eventtarget + * @property target + * @type Node */ - _parseType = Y.cached(function(type, pre) { + this.target = e.target; - var t = type, detachcategory, after, i; + /** + * Node reference for the element that the listener was attached to. + * @property currentTarget + * @type Node + */ + this.currentTarget = currentTarget; - if (!L.isString(t)) { - return t; - } + /** + * Node reference to the relatedTarget + * @property relatedTarget + * @type Node + */ + this.relatedTarget = e.relatedTarget; - i = t.indexOf(AFTER_PREFIX); +}; - if (i > -1) { - after = true; - t = t.substr(AFTER_PREFIX.length); - } +Y.extend(Y.EventFacade, Object, { - i = t.indexOf(CATEGORY_DELIMITER); + /** + * Stops the propagation to the next bubble target + * @method stopPropagation + */ + stopPropagation: function() { + this._event.stopPropagation(); + this.stopped = 1; + }, - if (i > -1) { - detachcategory = t.substr(0, (i)); - t = t.substr(i+1); - if (t == '*') { - t = null; - } - } + /** + * Stops the propagation to the next bubble target and + * prevents any additional listeners from being exectued + * on the current target. + * @method stopImmediatePropagation + */ + stopImmediatePropagation: function() { + this._event.stopImmediatePropagation(); + this.stopped = 2; + }, - // detach category, full type with instance prefix, is this an after listener, short type - return [detachcategory, (pre) ? _getType(t, pre) : t, after, t]; - }), + /** + * Prevents the event's default behavior + * @method preventDefault + */ + preventDefault: function() { + this._event.preventDefault(); + this.prevented = 1; + }, - ET = function(opts) { + /** + * Stops the event propagation and prevents the default + * event behavior. + * @method halt + * @param immediate {boolean} if true additional listeners + * on the current target will not be executed + */ + halt: function(immediate) { + this._event.halt(immediate); + this.prevented = 1; + this.stopped = (immediate) ? 2 : 1; + } +}); - var o = (L.isObject(opts)) ? opts : {}; +CEProto.fireComplex = function(args) { - this._yuievt = this._yuievt || { + var es, ef, q, queue, ce, ret, events, subs, postponed, + self = this, host = self.host || self, next, oldbubble; - id: Y.guid(), + if (self.stack) { + // queue this event if the current item in the queue bubbles + if (self.queuable && self.type != self.stack.next.type) { + self.log('queue ' + self.type); + self.stack.queue.push([self, args]); + return true; + } + } - events: {}, + es = self.stack || { + // id of the first event in the stack + id: self.id, + next: self, + silent: self.silent, + stopped: 0, + prevented: 0, + bubbling: null, + type: self.type, + // defaultFnQueue: new Y.Queue(), + afterQueue: new Y.Queue(), + defaultTargetOnly: self.defaultTargetOnly, + queue: [] + }; - targets: {}, + subs = self.getSubs(); - config: o, + self.stopped = (self.type !== es.type) ? 0 : es.stopped; + self.prevented = (self.type !== es.type) ? 0 : es.prevented; - chain: ('chain' in o) ? o.chain : Y.config.chain, + self.target = self.target || host; - bubbling: false, + events = new Y.EventTarget({ + fireOnce: true, + context: host + }); - defaults: { - context: o.context || this, - host: this, - emitFacade: o.emitFacade, - fireOnce: o.fireOnce, - queuable: o.queuable, - monitored: o.monitored, - broadcast: o.broadcast, - defaultTargetOnly: o.defaultTargetOnly, - bubbles: ('bubbles' in o) ? o.bubbles : true - } - }; + self.events = events; - }; + if (self.stoppedFn) { + events.on('stopped', self.stoppedFn); + } + self.currentTarget = host; -ET.prototype = { + self.details = args.slice(); // original arguments in the details - /** - * Listen to a custom event hosted by this object one time. - * This is the equivalent to on except the - * listener is immediatelly detached when it is executed. - * @method once - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - once: function() { - var handle = this.on.apply(this, arguments); - handle.batch(function(hand) { - if (hand.sub) { - hand.sub.once = true; - } - }); - return handle; - }, + // self.log("Firing " + self + ", " + "args: " + args); + self.log("Firing " + self.type); - /** - * Listen to a custom event hosted by this object one time. - * This is the equivalent to after except the - * listener is immediatelly detached when it is executed. - * @method onceAfter - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - onceAfter: function() { - var args = YArray(arguments, 0, true); - args[0] = AFTER_PREFIX + args[0]; + self._facade = null; // kill facade to eliminate stale properties - return this.once.apply(this, args); - }, + ef = self._getFacade(args); - /** - * Takes the type parameter passed to 'on' and parses out the - * various pieces that could be included in the type. If the - * event type is passed without a prefix, it will be expanded - * to include the prefix one is supplied or the event target - * is configured with a default prefix. - * @method parseType - * @param {string} type the type - * @param {string} [pre=this._yuievt.config.prefix] the prefix - * @since 3.3.0 - * @return {Array} an array containing: - * * the detach category, if supplied, - * * the prefixed event type, - * * whether or not this is an after listener, - * * the supplied event type - */ - parseType: function(type, pre) { - return _parseType(type, pre || this._yuievt.config.prefix); - }, + if (Y.Lang.isObject(args[0])) { + args[0] = ef; + } else { + args.unshift(ef); + } - /** - * Subscribe to a custom event hosted by this object - * @method on - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - on: function(type, fn, context) { + // if (subCount) { + if (subs[0]) { + // self._procSubs(Y.merge(self.subscribers), args, ef); + self._procSubs(subs[0], args, ef); + } - var parts = _parseType(type, this._yuievt.config.prefix), f, c, args, ret, ce, - detachcategory, handle, store = Y.Env.evt.handles, after, adapt, shorttype, - Node = Y.Node, n, domevent, isArr; + // bubble if this is hosted in an event target and propagation has not been stopped + if (self.bubbles && host.bubble && !self.stopped) { - // full name, args, detachcategory, after - this._monitor('attach', parts[1], { - args: arguments, - category: parts[0], - after: parts[2] - }); + oldbubble = es.bubbling; - if (L.isObject(type)) { + // self.bubbling = true; + es.bubbling = self.type; - if (L.isFunction(type)) { - return Y.Do.before.apply(Y.Do, arguments); - } + // if (host !== ef.target || es.type != self.type) { + if (es.type != self.type) { + es.stopped = 0; + es.prevented = 0; + } - f = fn; - c = context; - args = YArray(arguments, 0, true); - ret = []; + ret = host.bubble(self, args, null, es); - if (L.isArray(type)) { - isArr = true; - } + self.stopped = Math.max(self.stopped, es.stopped); + self.prevented = Math.max(self.prevented, es.prevented); - after = type._after; - delete type._after; + // self.bubbling = false; + es.bubbling = oldbubble; - Y.each(type, function(v, k) { + } - if (L.isObject(v)) { - f = v.fn || ((L.isFunction(v)) ? v : f); - c = v.context || c; - } + if (self.prevented) { + if (self.preventedFn) { + self.preventedFn.apply(host, args); + } + } else if (self.defaultFn && + ((!self.defaultTargetOnly && !es.defaultTargetOnly) || + host === ef.target)) { + self.defaultFn.apply(host, args); + } - var nv = (after) ? AFTER_PREFIX : ''; + // broadcast listeners are fired as discreet events on the + // YUI instance and potentially the YUI global. + self._broadcast(args); - args[0] = nv + ((isArr) ? v : k); - args[1] = f; - args[2] = c; + // Queue the after + if (subs[1] && !self.prevented && self.stopped < 2) { + if (es.id === self.id || self.type != host._yuievt.bubbling) { + self._procSubs(subs[1], args, ef); + while ((next = es.afterQueue.last())) { + next(); + } + } else { + postponed = subs[1]; + if (es.execDefaultCnt) { + postponed = Y.merge(postponed); + Y.each(postponed, function(s) { + s.postponed = true; + }); + } - ret.push(this.on.apply(this, args)); + es.afterQueue.add(function() { + self._procSubs(postponed, args, ef); + }); + } + } - }, this); + self.target = null; - return (this._yuievt.chain) ? this : new Y.EventHandle(ret); + if (es.id === self.id) { + queue = es.queue; + while (queue.length) { + q = queue.pop(); + ce = q[0]; + // set up stack to allow the next item to be processed + es.next = ce; + ce.fire.apply(ce, q[1]); } - detachcategory = parts[0]; - after = parts[2]; - shorttype = parts[3]; + self.stack = null; + } - // extra redirection so we catch adaptor events too. take a look at this. - if (Node && Y.instanceOf(this, Node) && (shorttype in Node.DOM_EVENTS)) { - args = YArray(arguments, 0, true); - args.splice(2, 0, Node.getDOMNode(this)); - return Y.on.apply(Y, args); - } + ret = !(self.stopped); - type = parts[1]; + if (self.type != host._yuievt.bubbling) { + es.stopped = 0; + es.prevented = 0; + self.stopped = 0; + self.prevented = 0; + } - if (Y.instanceOf(this, YUI)) { + return ret; +}; - adapt = Y.Env.evt.plugins[type]; - args = YArray(arguments, 0, true); - args[0] = shorttype; +CEProto._getFacade = function() { - if (Node) { - n = args[2]; + var ef = this._facade, o, o2, + args = this.details; - if (Y.instanceOf(n, Y.NodeList)) { - n = Y.NodeList.getDOMNodes(n); - } else if (Y.instanceOf(n, Node)) { - n = Node.getDOMNode(n); - } + if (!ef) { + ef = new Y.EventFacade(this, this.currentTarget); + } - domevent = (shorttype in Node.DOM_EVENTS); + // if the first argument is an object literal, apply the + // properties to the event facade + o = args && args[0]; - // Captures both DOM events and event plugins. - if (domevent) { - args[2] = n; - } - } + if (Y.Lang.isObject(o, true)) { - // check for the existance of an event adaptor - if (adapt) { - handle = adapt.on.apply(Y, args); - } else if ((!type) || domevent) { - handle = Y.Event._attach(args); - } + o2 = {}; - } + // protect the event facade properties + Y.mix(o2, ef, true, FACADE_KEYS); - if (!handle) { - ce = this._yuievt.events[type] || this.publish(type); - handle = ce._on(fn, context, (arguments.length > 3) ? YArray(arguments, 3, true) : null, (after) ? 'after' : true); - } + // mix the data + Y.mix(ef, o, true); - if (detachcategory) { - store[detachcategory] = store[detachcategory] || {}; - store[detachcategory][type] = store[detachcategory][type] || []; - store[detachcategory][type].push(handle); - } + // restore ef + Y.mix(ef, o2, true, FACADE_KEYS); - return (this._yuievt.chain) ? this : handle; + // Allow the event type to be faked + // http://yuilibrary.com/projects/yui3/ticket/2528376 + ef.type = o.type || ef.type; + } - }, + // update the details field with the arguments + // ef.type = this.type; + ef.details = this.details; - /** - * subscribe to an event - * @method subscribe - * @deprecated use on - */ - subscribe: function() { - return this.on.apply(this, arguments); - }, + // use the original target when the event bubbled to this target + ef.target = this.originalTarget || this.target; - /** - * Detach one or more listeners the from the specified event - * @method detach - * @param type {string|Object} Either the handle to the subscriber or the - * type of event. If the type - * is not specified, it will attempt to remove - * the listener from all hosted events. - * @param fn {Function} The subscribed function to unsubscribe, if not - * supplied, all subscribers will be removed. - * @param context {Object} The custom object passed to subscribe. This is - * optional, but if supplied will be used to - * disambiguate multiple listeners that are the same - * (e.g., you subscribe many object using a function - * that lives on the prototype) - * @return {EventTarget} the host - */ - detach: function(type, fn, context) { - var evts = this._yuievt.events, i, - Node = Y.Node, isNode = Node && (Y.instanceOf(this, Node)); + ef.currentTarget = this.currentTarget; + ef.stopped = 0; + ef.prevented = 0; - // detachAll disabled on the Y instance. - if (!type && (this !== Y)) { - for (i in evts) { - if (evts.hasOwnProperty(i)) { - evts[i].detach(fn, context); - } - } - if (isNode) { - Y.Event.purgeElement(Node.getDOMNode(this)); - } + this._facade = ef; - return this; + return this._facade; +}; + +/** + * Stop propagation to bubble targets + * @for CustomEvent + * @method stopPropagation + */ +CEProto.stopPropagation = function() { + this.stopped = 1; + if (this.stack) { + this.stack.stopped = 1; + } + this.events.fire('stopped', this); +}; + +/** + * Stops propagation to bubble targets, and prevents any remaining + * subscribers on the current target from executing. + * @method stopImmediatePropagation + */ +CEProto.stopImmediatePropagation = function() { + this.stopped = 2; + if (this.stack) { + this.stack.stopped = 2; + } + this.events.fire('stopped', this); +}; + +/** + * Prevents the execution of this event's defaultFn + * @method preventDefault + */ +CEProto.preventDefault = function() { + if (this.preventable) { + this.prevented = 1; + if (this.stack) { + this.stack.prevented = 1; } + } +}; - var parts = _parseType(type, this._yuievt.config.prefix), - detachcategory = L.isArray(parts) ? parts[0] : null, - shorttype = (parts) ? parts[3] : null, - adapt, store = Y.Env.evt.handles, detachhost, cat, args, - ce, +/** + * Stops the event propagation and prevents the default + * event behavior. + * @method halt + * @param immediate {boolean} if true additional listeners + * on the current target will not be executed + */ +CEProto.halt = function(immediate) { + if (immediate) { + this.stopImmediatePropagation(); + } else { + this.stopPropagation(); + } + this.preventDefault(); +}; - keyDetacher = function(lcat, ltype, host) { - var handles = lcat[ltype], ce, i; - if (handles) { - for (i = handles.length - 1; i >= 0; --i) { - ce = handles[i].evt; - if (ce.host === host || ce.el === host) { - handles[i].detach(); - } - } - } - }; +/** + * Registers another EventTarget as a bubble target. Bubble order + * is determined by the order registered. Multiple targets can + * be specified. + * + * Events can only bubble if emitFacade is true. + * + * Included in the event-custom-complex submodule. + * + * @method addTarget + * @param o {EventTarget} the target to add + * @for EventTarget + */ +ETProto.addTarget = function(o) { + this._yuievt.targets[Y.stamp(o)] = o; + this._yuievt.hasTargets = true; +}; - if (detachcategory) { +/** + * Returns an array of bubble targets for this object. + * @method getTargets + * @return EventTarget[] + */ +ETProto.getTargets = function() { + return Y.Object.values(this._yuievt.targets); +}; - cat = store[detachcategory]; - type = parts[1]; - detachhost = (isNode) ? Y.Node.getDOMNode(this) : this; +/** + * Removes a bubble target + * @method removeTarget + * @param o {EventTarget} the target to remove + * @for EventTarget + */ +ETProto.removeTarget = function(o) { + delete this._yuievt.targets[Y.stamp(o)]; +}; - if (cat) { - if (type) { - keyDetacher(cat, type, detachhost); - } else { - for (i in cat) { - if (cat.hasOwnProperty(i)) { - keyDetacher(cat, i, detachhost); - } - } +/** + * Propagate an event. Requires the event-custom-complex module. + * @method bubble + * @param evt {CustomEvent} the custom event to propagate + * @return {boolean} the aggregated return value from Event.Custom.fire + * @for EventTarget + */ +ETProto.bubble = function(evt, args, target, es) { + + var targs = this._yuievt.targets, ret = true, + t, type = evt && evt.type, ce, i, bc, ce2, + originalTarget = target || (evt && evt.target) || this, + oldbubble; + + if (!evt || ((!evt.stopped) && targs)) { + + for (i in targs) { + if (targs.hasOwnProperty(i)) { + t = targs[i]; + ce = t.getEvent(type, true); + ce2 = t.getSibling(type, ce); + + if (ce2 && !ce) { + ce = t.publish(type); } - return this; - } + oldbubble = t._yuievt.bubbling; + t._yuievt.bubbling = type; - // If this is an event handle, use it to detach - } else if (L.isObject(type) && type.detach) { - type.detach(); - return this; - // extra redirection so we catch adaptor events too. take a look at this. - } else if (isNode && ((!shorttype) || (shorttype in Node.DOM_EVENTS))) { - args = YArray(arguments, 0, true); - args[2] = Node.getDOMNode(this); - Y.detach.apply(Y, args); - return this; - } + // if this event was not published on the bubble target, + // continue propagating the event. + if (!ce) { + if (t._yuievt.hasTargets) { + t.bubble(evt, args, originalTarget, es); + } + } else { - adapt = Y.Env.evt.plugins[shorttype]; + ce.sibling = ce2; - // The YUI instance handles DOM events and adaptors - if (Y.instanceOf(this, YUI)) { - args = YArray(arguments, 0, true); - // use the adaptor specific detach code if - if (adapt && adapt.detach) { - adapt.detach.apply(Y, args); - return this; - // DOM event fork - } else if (!type || (!adapt && Node && (type in Node.DOM_EVENTS))) { - args[0] = type; - Y.Event.detach.apply(Y.Event, args); - return this; + // set the original target to that the target payload on the + // facade is correct. + ce.target = originalTarget; + ce.originalTarget = originalTarget; + ce.currentTarget = t; + bc = ce.broadcast; + ce.broadcast = false; + + // default publish may not have emitFacade true -- that + // shouldn't be what the implementer meant to do + ce.emitFacade = true; + + ce.stack = es; + + ret = ret && ce.fire.apply(ce, args || evt.details || []); + ce.broadcast = bc; + ce.originalTarget = null; + + + // stopPropagation() was called + if (ce.stopped) { + break; + } + } + + t._yuievt.bubbling = oldbubble; } } + } - // ce = evts[type]; - ce = evts[parts[1]]; - if (ce) { - ce.detach(fn, context); - } + return ret; +}; - return this; - }, +FACADE = new Y.EventFacade(); +FACADE_KEYS = Y.Object.keys(FACADE); - /** - * detach a listener - * @method unsubscribe - * @deprecated use detach - */ - unsubscribe: function() { - return this.detach.apply(this, arguments); - }, - /** - * Removes all listeners from the specified event. If the event type - * is not specified, all listeners from all hosted custom events will - * be removed. - * @method detachAll - * @param type {string} The type, or name of the event - */ - detachAll: function(type) { - return this.detach(type); - }, - /** - * Removes all listeners from the specified event. If the event type - * is not specified, all listeners from all hosted custom events will - * be removed. - * @method unsubscribeAll - * @param type {string} The type, or name of the event - * @deprecated use detachAll - */ - unsubscribeAll: function() { - return this.detachAll.apply(this, arguments); - }, +}, '3.4.0' ,{requires:['event-custom-base']}); +YUI.add('node-core', function(Y) { - /** - * Creates a new custom event of the specified type. If a custom event - * by that name already exists, it will not be re-created. In either - * case the custom event is returned. - * - * @method publish - * - * @param type {string} the type, or name of the event - * @param opts {object} optional config params. Valid properties are: - * - *
                                - *
                              • - * 'broadcast': whether or not the YUI instance and YUI global are notified when the event is fired (false) - *
                              • - *
                              • - * 'bubbles': whether or not this event bubbles (true) - * Events can only bubble if emitFacade is true. - *
                              • - *
                              • - * 'context': the default execution context for the listeners (this) - *
                              • - *
                              • - * 'defaultFn': the default function to execute when this event fires if preventDefault was not called - *
                              • - *
                              • - * 'emitFacade': whether or not this event emits a facade (false) - *
                              • - *
                              • - * 'prefix': the prefix for this targets events, e.g., 'menu' in 'menu:click' - *
                              • - *
                              • - * 'fireOnce': if an event is configured to fire once, new subscribers after - * the fire will be notified immediately. - *
                              • - *
                              • - * 'async': fireOnce event listeners will fire synchronously if the event has already - * fired unless async is true. - *
                              • - *
                              • - * 'preventable': whether or not preventDefault() has an effect (true) - *
                              • - *
                              • - * 'preventedFn': a function that is executed when preventDefault is called - *
                              • - *
                              • - * 'queuable': whether or not this event can be queued during bubbling (false) - *
                              • - *
                              • - * 'silent': if silent is true, debug messages are not provided for this event. - *
                              • - *
                              • - * 'stoppedFn': a function that is executed when stopPropagation is called - *
                              • - * - *
                              • - * 'monitored': specifies whether or not this event should send notifications about - * when the event has been attached, detached, or published. - *
                              • - *
                              • - * 'type': the event type (valid option if not provided as the first parameter to publish) - *
                              • - *
                              - * - * @return {CustomEvent} the custom event - * - */ - publish: function(type, opts) { - var events, ce, ret, defaults, - edata = this._yuievt, - pre = edata.config.prefix; +/** + * The Node Utility provides a DOM-like interface for interacting with DOM nodes. + * @module node + * @submodule node-core + */ - type = (pre) ? _getType(type, pre) : type; +/** + * The Node class provides a wrapper for manipulating DOM Nodes. + * Node properties can be accessed via the set/get methods. + * Use `Y.one()` to retrieve Node instances. + * + * NOTE: Node properties are accessed using + * the set and get methods. + * + * @class Node + * @constructor + * @param {DOMNode} node the DOM node to be mapped to the Node instance. + * @uses EventTarget + */ - this._monitor('publish', type, { - args: arguments - }); +// "globals" +var DOT = '.', + NODE_NAME = 'nodeName', + NODE_TYPE = 'nodeType', + OWNER_DOCUMENT = 'ownerDocument', + TAG_NAME = 'tagName', + UID = '_yuid', + EMPTY_OBJ = {}, - if (L.isObject(type)) { - ret = {}; - Y.each(type, function(v, k) { - ret[k] = this.publish(k, v || opts); - }, this); + _slice = Array.prototype.slice, - return ret; - } + Y_DOM = Y.DOM, - events = edata.events; - ce = events[type]; + Y_Node = function(node) { + if (!this.getDOMNode) { // support optional "new" + return new Y_Node(node); + } - if (ce) { -// ce.log("publish applying new config to published event: '"+type+"' exists", 'info', 'event'); - if (opts) { - ce.applyConfig(opts, true); + if (typeof node == 'string') { + node = Y_Node._fromString(node); + if (!node) { + return null; // NOTE: return } - } else { + } - defaults = edata.defaults; + var uid = (node.nodeType !== 9) ? node.uniqueID : node[UID]; - // apply defaults - ce = new Y.CustomEvent(type, - (opts) ? Y.merge(defaults, opts) : defaults); - events[type] = ce; + if (uid && Y_Node._instances[uid] && Y_Node._instances[uid]._node !== node) { + node[UID] = null; // unset existing uid to prevent collision (via clone or hack) } - // make sure we turn the broadcast flag off if this - // event was published as a result of bubbling - // if (opts instanceof Y.CustomEvent) { - // events[type].broadcast = false; - // } + uid = uid || Y.stamp(node); + if (!uid) { // stamp failed; likely IE non-HTMLElement + uid = Y.guid(); + } - return events[type]; + this[UID] = uid; + + /** + * The underlying DOM node bound to the Y.Node instance + * @property _node + * @private + */ + this._node = node; + + this._stateProxy = node; // when augmented with Attribute + + if (this._initPlugins) { // when augmented with Plugin.Host + this._initPlugins(); + } }, - /** - * This is the entry point for the event monitoring system. - * You can monitor 'attach', 'detach', 'fire', and 'publish'. - * When configured, these events generate an event. click -> - * click_attach, click_detach, click_publish -- these can - * be subscribed to like other events to monitor the event - * system. Inividual published events can have monitoring - * turned on or off (publish can't be turned off before it - * it published) by setting the events 'monitor' config. - * - * @private - */ - _monitor: function(what, type, o) { - var monitorevt, ce = this.getEvent(type); - if ((this._yuievt.config.monitored && (!ce || ce.monitored)) || (ce && ce.monitored)) { - monitorevt = type + '_' + what; - o.monitored = what; - this.fire.call(this, monitorevt, o); + // used with previous/next/ancestor tests + _wrapFn = function(fn) { + var ret = null; + if (fn) { + ret = (typeof fn == 'string') ? + function(n) { + return Y.Selector.test(n, fn); + } : + function(n) { + return fn(Y.one(n)); + }; } - }, - /** - * Fire a custom event by name. The callback functions will be executed - * from the context specified when the event was created, and with the - * following parameters. - * - * If the custom event object hasn't been created, then the event hasn't - * been published and it has no subscribers. For performance sake, we - * immediate exit in this case. This means the event won't bubble, so - * if the intention is that a bubble target be notified, the event must - * be published on this object first. - * - * The first argument is the event type, and any additional arguments are - * passed to the listeners as parameters. If the first of these is an - * object literal, and the event is configured to emit an event facade, - * that object is mixed into the event facade and the facade is provided - * in place of the original object. - * - * @method fire - * @param type {String|Object} The type of the event, or an object that contains - * a 'type' property. - * @param arguments {Object*} an arbitrary set of parameters to pass to - * the handler. If the first of these is an object literal and the event is - * configured to emit an event facade, the event facade will replace that - * parameter after the properties the object literal contains are copied to - * the event facade. - * @return {EventTarget} the event host - * - */ - fire: function(type) { + return ret; + }; +// end "globals" - var typeIncluded = L.isString(type), - t = (typeIncluded) ? type : (type && type.type), - ce, ret, pre = this._yuievt.config.prefix, ce2, - args = (typeIncluded) ? YArray(arguments, 1, true) : arguments; +Y_Node.ATTRS = {}; +Y_Node.DOM_EVENTS = {}; - t = (pre) ? _getType(t, pre) : t; +Y_Node._fromString = function(node) { + if (node) { + if (node.indexOf('doc') === 0) { // doc OR document + node = Y.config.doc; + } else if (node.indexOf('win') === 0) { // win OR window + node = Y.config.win; + } else { + node = Y.Selector.query(node, null, true); + } + } - this._monitor('fire', t, { - args: args - }); + return node || null; +}; - ce = this.getEvent(t, true); - ce2 = this.getSibling(t, ce); +/** + * The name of the component + * @static + * @property NAME + */ +Y_Node.NAME = 'node'; - if (ce2 && !ce) { - ce = this.publish(t); - } +/* + * The pattern used to identify ARIA attributes + */ +Y_Node.re_aria = /^(?:role$|aria-)/; - // this event has not been published or subscribed to - if (!ce) { - if (this._yuievt.hasTargets) { - return this.bubble({ type: t }, args, this); - } +Y_Node.SHOW_TRANSITION = 'fadeIn'; +Y_Node.HIDE_TRANSITION = 'fadeOut'; - // otherwise there is nothing to be done - ret = true; - } else { - ce.sibling = ce2; - ret = ce.fire.apply(ce, args); - } +/** + * A list of Node instances that have been created + * @private + * @property _instances + * @static + * + */ +Y_Node._instances = {}; - return (this._yuievt.chain) ? this : ret; - }, +/** + * Retrieves the DOM node bound to a Node instance + * @method getDOMNode + * @static + * + * @param {Y.Node || HTMLNode} node The Node instance or an HTMLNode + * @return {HTMLNode} The DOM node bound to the Node instance. If a DOM node is passed + * as the node argument, it is simply returned. + */ +Y_Node.getDOMNode = function(node) { + if (node) { + return (node.nodeType) ? node : node._node || null; + } + return null; +}; - getSibling: function(type, ce) { - var ce2; - // delegate to *:type events if there are subscribers - if (type.indexOf(PREFIX_DELIMITER) > -1) { - type = _wildType(type); - // console.log(type); - ce2 = this.getEvent(type, true); - if (ce2) { - // console.log("GOT ONE: " + type); - ce2.applyConfig(ce); - ce2.bubbles = false; - ce2.broadcast = 0; - // ret = ce2.fire.apply(ce2, a); +/** + * Checks Node return values and wraps DOM Nodes as Y.Node instances + * and DOM Collections / Arrays as Y.NodeList instances. + * Other return values just pass thru. If undefined is returned (e.g. no return) + * then the Node instance is returned for chainability. + * @method scrubVal + * @static + * + * @param {any} node The Node instance or an HTMLNode + * @return {Y.Node | Y.NodeList | any} Depends on what is returned from the DOM node. + */ +Y_Node.scrubVal = function(val, node) { + if (val) { // only truthy values are risky + if (typeof val == 'object' || typeof val == 'function') { // safari nodeList === function + if (NODE_TYPE in val || Y_DOM.isWindow(val)) {// node || window + val = Y.one(val); + } else if ((val.item && !val._nodes) || // dom collection or Node instance + (val[0] && val[0][NODE_TYPE])) { // array of DOM Nodes + val = Y.all(val); } } + } else if (typeof val === 'undefined') { + val = node; // for chaining + } else if (val === null) { + val = null; // IE: DOM null not the same as null + } - return ce2; - }, + return val; +}; - /** - * Returns the custom event of the provided type has been created, a - * falsy value otherwise - * @method getEvent - * @param type {string} the type, or name of the event - * @param prefixed {string} if true, the type is prefixed already - * @return {CustomEvent} the custom event or null - */ - getEvent: function(type, prefixed) { - var pre, e; - if (!prefixed) { - pre = this._yuievt.config.prefix; - type = (pre) ? _getType(type, pre) : type; - } - e = this._yuievt.events; - return e[type] || null; - }, +/** + * Adds methods to the Y.Node prototype, routing through scrubVal. + * @method addMethod + * @static + * + * @param {String} name The name of the method to add + * @param {Function} fn The function that becomes the method + * @param {Object} context An optional context to call the method with + * (defaults to the Node instance) + * @return {any} Depends on what is returned from the DOM node. + */ +Y_Node.addMethod = function(name, fn, context) { + if (name && fn && typeof fn == 'function') { + Y_Node.prototype[name] = function() { + var args = _slice.call(arguments), + node = this, + ret; - /** - * Subscribe to a custom event hosted by this object. The - * supplied callback will execute after any listeners add - * via the subscribe method, and after the default function, - * if configured for the event, has executed. - * @method after - * @param type {string} The type of the event - * @param fn {Function} The callback - * @param context {object} optional execution context. - * @param arg* {mixed} 0..n additional arguments to supply to the subscriber - * @return the event target or a detach handle per 'chain' config - */ - after: function(type, fn) { + if (args[0] && Y.instanceOf(args[0], Y_Node)) { + args[0] = args[0]._node; + } - var a = YArray(arguments, 0, true); + if (args[1] && Y.instanceOf(args[1], Y_Node)) { + args[1] = args[1]._node; + } + args.unshift(node._node); - switch (L.type(type)) { - case 'function': - return Y.Do.after.apply(Y.Do, arguments); - case 'array': - // YArray.each(a[0], function(v) { - // v = AFTER_PREFIX + v; - // }); - // break; - case 'object': - a[0]._after = true; - break; - default: - a[0] = AFTER_PREFIX + type; - } + ret = fn.apply(node, args); - return this.on.apply(this, a); + if (ret) { // scrub truthy + ret = Y_Node.scrubVal(ret, node); + } - }, + (typeof ret != 'undefined') || (ret = node); + return ret; + }; + } else { + } +}; - /** - * Executes the callback before a DOM event, custom event - * or method. If the first argument is a function, it - * is assumed the target is a method. For DOM and custom - * events, this is an alias for Y.on. - * - * For DOM and custom events: - * type, callback, context, 0-n arguments - * - * For methods: - * callback, object (method host), methodName, context, 0-n arguments - * - * @method before - * @return detach handle - */ - before: function() { - return this.on.apply(this, arguments); +/** + * Imports utility methods to be added as Y.Node methods. + * @method importMethod + * @static + * + * @param {Object} host The object that contains the method to import. + * @param {String} name The name of the method to import + * @param {String} altName An optional name to use in place of the host name + * @param {Object} context An optional context to call the method with + */ +Y_Node.importMethod = function(host, name, altName) { + if (typeof name == 'string') { + altName = altName || name; + Y_Node.addMethod(altName, host[name], host); + } else { + Y.Array.each(name, function(n) { + Y_Node.importMethod(host, n); + }); } - }; -Y.EventTarget = ET; - -// make Y an event target -Y.mix(Y, ET.prototype); -ET.call(Y, { bubbles: false }); - -YUI.Env.globalEvents = YUI.Env.globalEvents || new ET(); - /** - * Hosts YUI page level events. This is where events bubble to - * when the broadcast config is set to 2. This property is - * only available if the custom event module is loaded. - * @property Global - * @type EventTarget + * Retrieves a NodeList based on the given CSS selector. + * @method all + * + * @param {string} selector The CSS selector to test against. + * @return {NodeList} A NodeList instance for the matching HTMLCollection/Array. * @for YUI */ -Y.Global = YUI.Env.globalEvents; - -// @TODO implement a global namespace function on Y.Global? /** - * YUI's on method is a unified interface for subscribing to - * most events exposed by YUI. This includes custom events, DOM events, and - * function events. detach is also provided to remove listeners - * serviced by this function. - * - * The signature that on accepts varies depending on the type - * of event being consumed. Refer to the specific methods that will - * service a specific request for additional information about subscribing - * to that type of event. - * - *
                                - *
                              • Custom events. These events are defined by various - * modules in the library. This type of event is delegated to - * EventTarget's on method. - *
                                  - *
                                • The type of the event
                                • - *
                                • The callback to execute
                                • - *
                                • An optional context object
                                • - *
                                • 0..n additional arguments to supply the callback.
                                • - *
                                - * Example: - * Y.on('drag:drophit', function() { // start work }); - *
                              • - *
                              • DOM events. These are moments reported by the browser related - * to browser functionality and user interaction. - * This type of event is delegated to Event's - * attach method. - *
                                  - *
                                • The type of the event
                                • - *
                                • The callback to execute
                                • - *
                                • The specification for the Node(s) to attach the listener - * to. This can be a selector, collections, or Node/Element - * refereces.
                                • - *
                                • An optional context object
                                • - *
                                • 0..n additional arguments to supply the callback.
                                • - *
                                - * Example: - * Y.on('click', function(e) { // something was clicked }, '#someelement'); - *
                              • - *
                              • Function events. These events can be used to react before or after a - * function is executed. This type of event is delegated to Event.Do's - * before method. - *
                                  - *
                                • The callback to execute
                                • - *
                                • The object that has the function that will be listened for.
                                • - *
                                • The name of the function to listen for.
                                • - *
                                • An optional context object
                                • - *
                                • 0..n additional arguments to supply the callback.
                                • - *
                                - * Example Y.on(function(arg1, arg2, etc) { // obj.methodname was executed }, obj 'methodname'); - *
                              • - *
                              - * - * on corresponds to the moment before any default behavior of - * the event. after works the same way, but these listeners - * execute after the event's default behavior. before is an - * alias for on. - * - * @method on - * @param type event type (this parameter does not apply for function events) - * @param fn the callback - * @param context optionally change the value of 'this' in the callback - * @param args* 0..n additional arguments to pass to the callback. - * @return the event target or a detach handle per 'chain' config + * Returns a single Node instance bound to the node or the + * first element matching the given selector. Returns null if no match found. + * Note: For chaining purposes you may want to + * use Y.all, which returns a NodeList when no match is found. + * @method one + * @param {String | HTMLElement} node a node or Selector + * @return {Y.Node | null} a Node instance or null if no match found. * @for YUI */ - /** - * Listen for an event one time. Equivalent to on, except that - * the listener is immediately detached when executed. - * @see on - * @method once - * @param type event type (this parameter does not apply for function events) - * @param fn the callback - * @param context optionally change the value of 'this' in the callback - * @param args* 0..n additional arguments to pass to the callback. - * @return the event target or a detach handle per 'chain' config - * @for YUI - */ - /** - * after() is a unified interface for subscribing to - * most events exposed by YUI. This includes custom events, - * DOM events, and AOP events. This works the same way as - * the on() function, only it operates after any default - * behavior for the event has executed. @see on for more - * information. - * @method after - * @param type event type (this parameter does not apply for function events) - * @param fn the callback - * @param context optionally change the value of 'this' in the callback - * @param args* 0..n additional arguments to pass to the callback. - * @return the event target or a detach handle per 'chain' config - * @for YUI + * Returns a single Node instance bound to the node or the + * first element matching the given selector. Returns null if no match found. + * Note: For chaining purposes you may want to + * use Y.all, which returns a NodeList when no match is found. + * @method one + * @static + * @param {String | HTMLElement} node a node or Selector + * @return {Y.Node | null} a Node instance or null if no match found. + * @for Node */ +Y_Node.one = function(node) { + var instance = null, + cachedNode, + uid; + if (node) { + if (typeof node == 'string') { + node = Y_Node._fromString(node); + if (!node) { + return null; // NOTE: return + } + } else if (node.getDOMNode) { + return node; // NOTE: return + } -}, '3.4.0' ,{requires:['oop']}); -(function () { -var GLOBAL_ENV = YUI.Env; - -if (!GLOBAL_ENV._ready) { - GLOBAL_ENV._ready = function() { - GLOBAL_ENV.DOMReady = true; - GLOBAL_ENV.remove(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); - }; - - GLOBAL_ENV.add(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); -} -})(); -YUI.add('event-base', function(Y) { + if (node.nodeType || Y.DOM.isWindow(node)) { // avoid bad input (numbers, boolean, etc) + uid = (node.uniqueID && node.nodeType !== 9) ? node.uniqueID : node._yuid; + instance = Y_Node._instances[uid]; // reuse exising instances + cachedNode = instance ? instance._node : null; + if (!instance || (cachedNode && node !== cachedNode)) { // new Node when nodes don't match + instance = new Y_Node(node); + if (node.nodeType != 11) { // dont cache document fragment + Y_Node._instances[instance[UID]] = instance; // cache node + } + } + } + } -/* - * DOM event listener abstraction layer - * @module event - * @submodule event-base - */ + return instance; +}; /** - * The domready event fires at the moment the browser's DOM is - * usable. In most cases, this is before images are fully - * downloaded, allowing you to provide a more responsive user - * interface. - * - * In YUI 3, domready subscribers will be notified immediately if - * that moment has already passed when the subscription is created. - * - * One exception is if the yui.js file is dynamically injected into - * the page. If this is done, you must tell the YUI instance that - * you did this in order for DOMReady (and window load events) to - * fire normally. That configuration option is 'injected' -- set - * it to true if the yui.js script is not included inline. - * - * This method is part of the 'event-ready' module, which is a - * submodule of 'event'. - * - * @event domready - * @for YUI + * The default setter for DOM properties + * Called with instance context (this === the Node instance) + * @method DEFAULT_SETTER + * @static + * @param {String} name The attribute/property being set + * @param {any} val The value to be set + * @return {any} The value */ -Y.publish('domready', { - fireOnce: true, - async: true -}); +Y_Node.DEFAULT_SETTER = function(name, val) { + var node = this._stateProxy, + strPath; -if (YUI.Env.DOMReady) { - Y.fire('domready'); -} else { - Y.Do.before(function() { Y.fire('domready'); }, YUI.Env, '_ready'); -} + if (name.indexOf(DOT) > -1) { + strPath = name; + name = name.split(DOT); + // only allow when defined on node + Y.Object.setValue(node, name, val); + } else if (typeof node[name] != 'undefined') { // pass thru DOM properties + node[name] = val; + } + + return val; +}; /** - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event - * @submodule event-base + * The default getter for DOM properties + * Called with instance context (this === the Node instance) + * @method DEFAULT_GETTER + * @static + * @param {String} name The attribute/property to look up + * @return {any} The current value */ +Y_Node.DEFAULT_GETTER = function(name) { + var node = this._stateProxy, + val; -/** - * Wraps a DOM event, properties requiring browser abstraction are - * fixed here. Provids a security layer when required. - * @class DOMEventFacade - * @param ev {Event} the DOM event - * @param currentTarget {HTMLElement} the element the listener was attached to - * @param wrapper {Event.Custom} the custom event wrapper for this DOM event - */ - - var ua = Y.UA, - - EMPTY = {}, + if (name.indexOf && name.indexOf(DOT) > -1) { + val = Y.Object.getValue(node, name.split(DOT)); + } else if (typeof node[name] != 'undefined') { // pass thru from DOM + val = node[name]; + } - /** - * webkit key remapping required for Safari < 3.1 - * @property webkitKeymap - * @private - */ - webkitKeymap = { - 63232: 38, // up - 63233: 40, // down - 63234: 37, // left - 63235: 39, // right - 63276: 33, // page up - 63277: 34, // page down - 25: 9, // SHIFT-TAB (Safari provides a different key code in - // this case, even though the shiftKey modifier is set) - 63272: 46, // delete - 63273: 36, // home - 63275: 35 // end - }, + return val; +}; +Y.mix(Y_Node.prototype, { /** - * Returns a wrapped node. Intended to be used on event targets, - * so it will return the node's parent if the target is a text - * node. - * - * If accessing a property of the node throws an error, this is - * probably the anonymous div wrapper Gecko adds inside text - * nodes. This likely will only occur when attempting to access - * the relatedTarget. In this case, we now return null because - * the anonymous div is completely useless and we do not know - * what the related target was because we can't even get to - * the element's parent node. - * - * @method resolve - * @private + * The method called when outputting Node instances as strings + * @method toString + * @return {String} A string representation of the Node instance */ - resolve = function(n) { - if (!n) { - return n; - } - try { - if (n && 3 == n.nodeType) { - n = n.parentNode; - } - } catch(e) { - return null; - } - - return Y.one(n); - }, - - DOMEventFacade = function(ev, currentTarget, wrapper) { - this._event = ev; - this._currentTarget = currentTarget; - this._wrapper = wrapper || EMPTY; - - // if not lazy init - this.init(); - }; - -Y.extend(DOMEventFacade, Object, { - - init: function() { - - var e = this._event, - overrides = this._wrapper.overrides, - x = e.pageX, - y = e.pageY, - c, - currentTarget = this._currentTarget; + toString: function() { + var str = this[UID] + ': not bound to a node', + node = this._node, + attrs, id, className; - this.altKey = e.altKey; - this.ctrlKey = e.ctrlKey; - this.metaKey = e.metaKey; - this.shiftKey = e.shiftKey; - this.type = (overrides && overrides.type) || e.type; - this.clientX = e.clientX; - this.clientY = e.clientY; + if (node) { + attrs = node.attributes; + id = (attrs && attrs.id) ? node.getAttribute('id') : null; + className = (attrs && attrs.className) ? node.getAttribute('className') : null; + str = node[NODE_NAME]; - this.pageX = x; - this.pageY = y; + if (id) { + str += '#' + id; + } - c = e.keyCode || e.charCode; + if (className) { + str += '.' + className.replace(' ', '.'); + } - if (ua.webkit && (c in webkitKeymap)) { - c = webkitKeymap[c]; + // TODO: add yuid? + str += ' ' + this[UID]; } + return str; + }, - this.keyCode = c; - this.charCode = c; - this.which = e.which || e.charCode || c; - // this.button = e.button; - this.button = this.which; - - this.target = resolve(e.target); - this.currentTarget = resolve(currentTarget); - this.relatedTarget = resolve(e.relatedTarget); + /** + * Returns an attribute value on the Node instance. + * Unless pre-configured (via `Node.ATTRS`), get hands + * off to the underlying DOM node. Only valid + * attributes/properties for the node will be queried. + * @method get + * @param {String} attr The attribute + * @return {any} The current value of the attribute + */ + get: function(attr) { + var val; - if (e.type == "mousewheel" || e.type == "DOMMouseScroll") { - this.wheelDelta = (e.detail) ? (e.detail * -1) : Math.round(e.wheelDelta / 80) || ((e.wheelDelta < 0) ? -1 : 1); + if (this._getAttr) { // use Attribute imple + val = this._getAttr(attr); + } else { + val = this._get(attr); } - if (this._touch) { - this._touch(e, currentTarget, this._wrapper); + if (val) { + val = Y_Node.scrubVal(val, this); + } else if (val === null) { + val = null; // IE: DOM null is not true null (even though they ===) } + return val; }, - stopPropagation: function() { - this._event.stopPropagation(); - this._wrapper.stopped = 1; - this.stopped = 1; - }, + /** + * Helper method for get. + * @method _get + * @private + * @param {String} attr The attribute + * @return {any} The current value of the attribute + */ + _get: function(attr) { + var attrConfig = Y_Node.ATTRS[attr], + val; - stopImmediatePropagation: function() { - var e = this._event; - if (e.stopImmediatePropagation) { - e.stopImmediatePropagation(); + if (attrConfig && attrConfig.getter) { + val = attrConfig.getter.call(this); + } else if (Y_Node.re_aria.test(attr)) { + val = this._node.getAttribute(attr, 2); } else { - this.stopPropagation(); + val = Y_Node.DEFAULT_GETTER.apply(this, arguments); } - this._wrapper.stopped = 2; - this.stopped = 2; - }, - preventDefault: function(returnValue) { - var e = this._event; - e.preventDefault(); - e.returnValue = returnValue || false; - this._wrapper.prevented = 1; - this.prevented = 1; + return val; }, - halt: function(immediate) { - if (immediate) { - this.stopImmediatePropagation(); - } else { - this.stopPropagation(); - } - - this.preventDefault(); - } - -}); - -DOMEventFacade.resolve = resolve; -Y.DOM2EventFacade = DOMEventFacade; -Y.DOMEventFacade = DOMEventFacade; - /** - * The native event - * @property _event + * Sets an attribute on the Node instance. + * Unless pre-configured (via Node.ATTRS), set hands + * off to the underlying DOM node. Only valid + * attributes/properties for the node will be set. + * To set custom attributes use setAttribute. + * @method set + * @param {String} attr The attribute to be set. + * @param {any} val The value to set the attribute to. + * @chainable */ + set: function(attr, val) { + var attrConfig = Y_Node.ATTRS[attr]; - /** - * The X location of the event on the page (including scroll) - * @property pageX - * @type int - */ + if (this._setAttr) { // use Attribute imple + this._setAttr.apply(this, arguments); + } else { // use setters inline + if (attrConfig && attrConfig.setter) { + attrConfig.setter.call(this, val, attr); + } else if (Y_Node.re_aria.test(attr)) { // special case Aria + this._node.setAttribute(attr, val); + } else { + Y_Node.DEFAULT_SETTER.apply(this, arguments); + } + } - /** - * The Y location of the event on the page (including scroll) - * @property pageY - * @type int - */ + return this; + }, /** - * The keyCode for key events. Uses charCode if keyCode is not available - * @property keyCode - * @type int + * Sets multiple attributes. + * @method setAttrs + * @param {Object} attrMap an object of name/value pairs to set + * @chainable */ + setAttrs: function(attrMap) { + if (this._setAttrs) { // use Attribute imple + this._setAttrs(attrMap); + } else { // use setters inline + Y.Object.each(attrMap, function(v, n) { + this.set(n, v); + }, this); + } + + return this; + }, /** - * The charCode for key events. Same as keyCode - * @property charCode - * @type int + * Returns an object containing the values for the requested attributes. + * @method getAttrs + * @param {Array} attrs an array of attributes to get values + * @return {Object} An object with attribute name/value pairs. */ + getAttrs: function(attrs) { + var ret = {}; + if (this._getAttrs) { // use Attribute imple + this._getAttrs(attrs); + } else { // use setters inline + Y.Array.each(attrs, function(v, n) { + ret[v] = this.get(v); + }, this); + } - /** - * The button that was pushed. - * @property button - * @type int - */ + return ret; + }, /** - * The button that was pushed. Same as button. - * @property which - * @type int + * Compares nodes to determine if they match. + * Node instances can be compared to each other and/or HTMLElements. + * @method compareTo + * @param {HTMLElement | Node} refNode The reference node to compare to the node. + * @return {Boolean} True if the nodes match, false if they do not. */ + compareTo: function(refNode) { + var node = this._node; + + if (Y.instanceOf(refNode, Y_Node)) { + refNode = refNode._node; + } + return node === refNode; + }, /** - * Node reference for the targeted element - * @propery target - * @type Node + * Determines whether the node is appended to the document. + * @method inDoc + * @param {Node|HTMLElement} doc optional An optional document to check against. + * Defaults to current document. + * @return {Boolean} Whether or not this node is appended to the document. */ + inDoc: function(doc) { + var node = this._node; + doc = (doc) ? doc._node || doc : node[OWNER_DOCUMENT]; + if (doc.documentElement) { + return Y_DOM.contains(doc.documentElement, node); + } + }, - /** - * Node reference for the element that the listener was attached to. - * @propery currentTarget - * @type Node + getById: function(id) { + var node = this._node, + ret = Y_DOM.byId(id, node[OWNER_DOCUMENT]); + if (ret && Y_DOM.contains(node, ret)) { + ret = Y.one(ret); + } else { + ret = null; + } + return ret; + }, + + /** + * Returns the nearest ancestor that passes the test applied by supplied boolean method. + * @method ancestor + * @param {String | Function} fn A selector string or boolean method for testing elements. + * @param {Boolean} testSelf optional Whether or not to include the element in the scan + * If a function is used, it receives the current node being tested as the only argument. + * @return {Node} The matching Node instance or null if not found */ + ancestor: function(fn, testSelf) { + return Y.one(Y_DOM.ancestor(this._node, _wrapFn(fn), testSelf)); + }, - /** - * Node reference to the relatedTarget - * @propery relatedTarget - * @type Node + /** + * Returns the ancestors that pass the test applied by supplied boolean method. + * @method ancestors + * @param {String | Function} fn A selector string or boolean method for testing elements. + * @param {Boolean} testSelf optional Whether or not to include the element in the scan + * If a function is used, it receives the current node being tested as the only argument. + * @return {NodeList} A NodeList instance containing the matching elements */ + ancestors: function(fn, testSelf) { + return Y.all(Y_DOM.ancestors(this._node, _wrapFn(fn), testSelf)); + }, /** - * Number representing the direction and velocity of the movement of the mousewheel. - * Negative is down, the higher the number, the faster. Applies to the mousewheel event. - * @property wheelDelta - * @type int + * Returns the previous matching sibling. + * Returns the nearest element node sibling if no method provided. + * @method previous + * @param {String | Function} fn A selector or boolean method for testing elements. + * If a function is used, it receives the current node being tested as the only argument. + * @return {Node} Node instance or null if not found */ + previous: function(fn, all) { + return Y.one(Y_DOM.elementByAxis(this._node, 'previousSibling', _wrapFn(fn), all)); + }, /** - * Stops the propagation to the next bubble target - * @method stopPropagation + * Returns the next matching sibling. + * Returns the nearest element node sibling if no method provided. + * @method next + * @param {String | Function} fn A selector or boolean method for testing elements. + * If a function is used, it receives the current node being tested as the only argument. + * @return {Node} Node instance or null if not found */ + next: function(fn, all) { + return Y.one(Y_DOM.elementByAxis(this._node, 'nextSibling', _wrapFn(fn), all)); + }, /** - * Stops the propagation to the next bubble target and - * prevents any additional listeners from being exectued - * on the current target. - * @method stopImmediatePropagation + * Returns all matching siblings. + * Returns all siblings if no method provided. + * @method siblings + * @param {String | Function} fn A selector or boolean method for testing elements. + * If a function is used, it receives the current node being tested as the only argument. + * @return {NodeList} NodeList instance bound to found siblings */ + siblings: function(fn) { + return Y.all(Y_DOM.siblings(this._node, _wrapFn(fn))); + }, /** - * Prevents the event's default behavior - * @method preventDefault - * @param returnValue {string} sets the returnValue of the event to this value - * (rather than the default false value). This can be used to add a customized - * confirmation query to the beforeunload event). + * Retrieves a Node instance of nodes based on the given CSS selector. + * @method one + * + * @param {string} selector The CSS selector to test against. + * @return {Node} A Node instance for the matching HTMLElement. */ + one: function(selector) { + return Y.one(Y.Selector.query(selector, this._node, true)); + }, /** - * Stops the event propagation and prevents the default - * event behavior. - * @method halt - * @param immediate {boolean} if true additional listeners - * on the current target will not be executed + * Retrieves a NodeList based on the given CSS selector. + * @method all + * + * @param {string} selector The CSS selector to test against. + * @return {NodeList} A NodeList instance for the matching HTMLCollection/Array. */ -(function() { -/** - * DOM event listener abstraction layer - * @module event - * @submodule event-base - */ - -/** - * The event utility provides functions to add and remove event listeners, - * event cleansing. It also tries to automatically remove listeners it - * registers during the unload event. - * - * @class Event - * @static - */ - -Y.Env.evt.dom_wrappers = {}; -Y.Env.evt.dom_map = {}; - -var _eventenv = Y.Env.evt, - config = Y.config, - win = config.win, - add = YUI.Env.add, - remove = YUI.Env.remove, - - onLoad = function() { - YUI.Env.windowLoaded = true; - Y.Event._load(); - remove(win, "load", onLoad); + all: function(selector) { + var nodelist = Y.all(Y.Selector.query(selector, this._node)); + nodelist._query = selector; + nodelist._queryRoot = this._node; + return nodelist; }, - onUnload = function() { - Y.Event._unload(); + // TODO: allow fn test + /** + * Test if the supplied node matches the supplied selector. + * @method test + * + * @param {string} selector The CSS selector to test against. + * @return {boolean} Whether or not the node matches the selector. + */ + test: function(selector) { + return Y.Selector.test(this._node, selector); }, - EVENT_READY = 'domready', + /** + * Removes the node from its parent. + * Shortcut for myNode.get('parentNode').removeChild(myNode); + * @method remove + * @param {Boolean} destroy whether or not to call destroy() on the node + * after removal. + * @chainable + * + */ + remove: function(destroy) { + var node = this._node; - COMPAT_ARG = '~yui|2|compat~', + if (node && node.parentNode) { + node.parentNode.removeChild(node); + } - shouldIterate = function(o) { - try { - return (o && typeof o !== "string" && Y.Lang.isNumber(o.length) && - !o.tagName && !o.alert); - } catch(ex) { - return false; + if (destroy) { + this.destroy(); } + return this; }, - // aliases to support DOM event subscription clean up when the last - // subscriber is detached. deleteAndClean overrides the DOM event's wrapper - // CustomEvent _delete method. - _ceProtoDelete = Y.CustomEvent.prototype._delete, - _deleteAndClean = function(s) { - var ret = _ceProtoDelete.apply(this, arguments); - - if (!this.subCount && !this.afterCount) { - Y.Event._clean(this); + /** + * Replace the node with the other node. This is a DOM update only + * and does not change the node bound to the Node instance. + * Shortcut for myNode.get('parentNode').replaceChild(newNode, myNode); + * @method replace + * @param {Y.Node || HTMLNode} newNode Node to be inserted + * @chainable + * + */ + replace: function(newNode) { + var node = this._node; + if (typeof newNode == 'string') { + newNode = Y_Node.create(newNode); } - - return ret; + node.parentNode.replaceChild(Y_Node.getDOMNode(newNode), node); + return this; }, -Event = function() { - /** - * True after the onload event has fired - * @property _loadComplete - * @type boolean - * @static - * @private - */ - var _loadComplete = false, - - /** - * The number of times to poll after window.onload. This number is - * increased if additional late-bound handlers are requested after - * the page load. - * @property _retryCount - * @static - * @private + * @method replaceChild + * @for Node + * @param {String | HTMLElement | Node} node Node to be inserted + * @param {HTMLElement | Node} refNode Node to be replaced + * @return {Node} The replaced node */ - _retryCount = 0, + replaceChild: function(node, refNode) { + if (typeof node == 'string') { + node = Y_DOM.create(node); + } - /** - * onAvailable listeners - * @property _avail - * @static - * @private - */ - _avail = [], + return Y.one(this._node.replaceChild(Y_Node.getDOMNode(node), Y_Node.getDOMNode(refNode))); + }, /** - * Custom event wrappers for DOM events. Key is - * 'event:' + Element uid stamp + event type - * @property _wrappers - * @type Y.Event.Custom - * @static - * @private + * Nulls internal node references, removes any plugins and event listeners + * @method destroy + * @param {Boolean} recursivePurge (optional) Whether or not to remove listeners from the + * node's subtree (default is false) + * */ - _wrappers = _eventenv.dom_wrappers, + destroy: function(recursive) { + var UID = Y.config.doc.uniqueID ? 'uniqueID' : '_yuid', + instance; - _windowLoadKey = null, + this.purge(); // TODO: only remove events add via this Node - /** - * Custom event wrapper map DOM events. Key is - * Element uid stamp. Each item is a hash of custom event - * wrappers as provided in the _wrappers collection. This - * provides the infrastructure for getListeners. - * @property _el_events - * @static - * @private - */ - _el_events = _eventenv.dom_map; + if (this.unplug) { // may not be a PluginHost + this.unplug(); + } - return { + this.clearData(); - /** - * The number of times we should look for elements that are not - * in the DOM at the time the event is requested after the document - * has been loaded. The default is 1000@amp;40 ms, so it will poll - * for 40 seconds or until all outstanding handlers are bound - * (whichever comes first). - * @property POLL_RETRYS - * @type int - * @static - * @final - */ - POLL_RETRYS: 1000, + if (recursive) { + Y.NodeList.each(this.all('*'), function(node) { + instance = Y_Node._instances[node[UID]]; + if (instance) { + instance.destroy(); + } + }); + } - /** - * The poll interval in milliseconds - * @property POLL_INTERVAL - * @type int - * @static - * @final - */ - POLL_INTERVAL: 40, + this._node = null; + this._stateProxy = null; - /** - * addListener/removeListener can throw errors in unexpected scenarios. - * These errors are suppressed, the method returns false, and this property - * is set - * @property lastError - * @static - * @type Error - */ - lastError: null, + delete Y_Node._instances[this._yuid]; + }, + /** + * Invokes a method on the Node instance + * @method invoke + * @param {String} method The name of the method to invoke + * @param {Any} a, b, c, etc. Arguments to invoke the method with. + * @return Whatever the underly method returns. + * DOM Nodes and Collections return values + * are converted to Node/NodeList instances. + * + */ + invoke: function(method, a, b, c, d, e) { + var node = this._node, + ret; - /** - * poll handle - * @property _interval - * @static - * @private - */ - _interval: null, + if (a && Y.instanceOf(a, Y_Node)) { + a = a._node; + } - /** - * document readystate poll handle - * @property _dri - * @static - * @private - */ - _dri: null, + if (b && Y.instanceOf(b, Y_Node)) { + b = b._node; + } - /** - * True when the document is initially usable - * @property DOMReady - * @type boolean - * @static - */ - DOMReady: false, + ret = node[method](a, b, c, d, e); + return Y_Node.scrubVal(ret, this); + }, - /** - * @method startInterval - * @static - * @private - */ - startInterval: function() { - if (!Event._interval) { -Event._interval = setInterval(Event._poll, Event.POLL_INTERVAL); + /** + * @method swap + * @description Swap DOM locations with the given node. + * This does not change which DOM node each Node instance refers to. + * @param {Node} otherNode The node to swap with + * @chainable + */ + swap: Y.config.doc.documentElement.swapNode ? + function(otherNode) { + this._node.swapNode(Y_Node.getDOMNode(otherNode)); + } : + function(otherNode) { + otherNode = Y_Node.getDOMNode(otherNode); + var node = this._node, + parent = otherNode.parentNode, + nextSibling = otherNode.nextSibling; + + if (nextSibling === node) { + parent.insertBefore(node, otherNode); + } else if (otherNode === node.nextSibling) { + parent.insertBefore(otherNode, node); + } else { + node.parentNode.replaceChild(otherNode, node); + Y_DOM.addHTML(parent, node, nextSibling); } + return this; }, - /** - * Executes the supplied callback when the item with the supplied - * id is found. This is meant to be used to execute behavior as - * soon as possible as the page loads. If you use this after the - * initial page load it will poll for a fixed time for the element. - * The number of times it will poll and the frequency are - * configurable. By default it will poll for 10 seconds. - * - *

                              The callback is executed with a single parameter: - * the custom object parameter, if provided.

                              - * - * @method onAvailable - * - * @param {string||string[]} id the id of the element, or an array - * of ids to look for. - * @param {function} fn what to execute when the element is found. - * @param {object} p_obj an optional object to be passed back as - * a parameter to fn. - * @param {boolean|object} p_override If set to true, fn will execute - * in the context of p_obj, if set to an object it - * will execute in the context of that object - * @param checkContent {boolean} check child node readiness (onContentReady) - * @static - * @deprecated Use Y.on("available") - */ - // @TODO fix arguments - onAvailable: function(id, fn, p_obj, p_override, checkContent, compat) { - var a = Y.Array(id), i, availHandle; + /** + * @method getData + * @description Retrieves arbitrary data stored on a Node instance. + * This is not stored with the DOM node. + * @param {string} name Optional name of the data field to retrieve. + * If no name is given, all data is returned. + * @return {any | Object} Whatever is stored at the given field, + * or an object hash of all fields. + */ + getData: function(name) { + var ret; + this._data = this._data || {}; + if (arguments.length) { + ret = this._data[name]; + } else { + ret = this._data; + } + return ret; - for (i=0; i 1) { + this._data[name] = val; + } else { + this._data = name; + } - availHandle = new Y.EventHandle({ + return this; + }, - _delete: function() { - // set by the event system for lazy DOM listeners - if (availHandle.handle) { - availHandle.handle.detach(); - return; - } - - var i, j; - - // otherwise try to remove the onAvailable listener(s) - for (i = 0; i < a.length; i++) { - for (j = 0; j < _avail.length; j++) { - if (a[i] === _avail[j].id) { - _avail.splice(j, 1); - } - } - } - } + /** + * @method clearData + * @description Clears stored data. + * @param {string} name The name of the field to clear. If no name + * is given, all data is cleared. + * @chainable + */ + clearData: function(name) { + if ('_data' in this) { + if (name) { + delete this._data[name]; + } else { + delete this._data; + } + } - }); + return this; + }, - return availHandle; - }, + hasMethod: function(method) { + var node = this._node; + return !!(node && method in node && + typeof node[method] != 'unknown' && + (typeof node[method] == 'function' || + String(node[method]).indexOf('function') === 1)); // IE reports as object, prepends space + }, - /** - * Works the same way as onAvailable, but additionally checks the - * state of sibling elements to determine if the content of the - * available element is safe to modify. - * - *

                              The callback is executed with a single parameter: - * the custom object parameter, if provided.

                              - * - * @method onContentReady - * - * @param {string} id the id of the element to look for. - * @param {function} fn what to execute when the element is ready. - * @param {object} obj an optional object to be passed back as - * a parameter to fn. - * @param {boolean|object} override If set to true, fn will execute - * in the context of p_obj. If an object, fn will - * exectute in the context of that object - * - * @static - * @deprecated Use Y.on("contentready") - */ - // @TODO fix arguments - onContentReady: function(id, fn, obj, override, compat) { - return Event.onAvailable(id, fn, obj, override, true, compat); - }, + isFragment: function() { + return (this.get('nodeType') === 11); + }, - /** - * Adds an event listener - * - * @method attach - * - * @param {String} type The type of event to append - * @param {Function} fn The method the event invokes - * @param {String|HTMLElement|Array|NodeList} el An id, an element - * reference, or a collection of ids and/or elements to assign the - * listener to. - * @param {Object} context optional context object - * @param {Boolean|object} args 0..n arguments to pass to the callback - * @return {EventHandle} an object to that can be used to detach the listener - * - * @static - */ + /** + * Removes and destroys all of the nodes within the node. + * @method empty + * @chainable + */ + empty: function() { + this.get('childNodes').remove().destroy(true); + return this; + }, - attach: function(type, fn, el, context) { - return Event._attach(Y.Array(arguments, 0, true)); - }, + /** + * Returns the DOM node bound to the Node instance + * @method getDOMNode + * @return {DOMNode} + */ + getDOMNode: function() { + return this._node; + } +}, true); - _createWrapper: function (el, type, capture, compat, facade) { +Y.Node = Y_Node; +Y.one = Y_Node.one; +/** + * The NodeList module provides support for managing collections of Nodes. + * @module node + * @submodule node-core + */ - var cewrapper, - ek = Y.stamp(el), - key = 'event:' + ek + type; +/** + * The NodeList class provides a wrapper for manipulating DOM NodeLists. + * NodeList properties can be accessed via the set/get methods. + * Use Y.all() to retrieve NodeList instances. + * + * @class NodeList + * @constructor + */ - if (false === facade) { - key += 'native'; - } - if (capture) { - key += 'capture'; +var NodeList = function(nodes) { + var tmp = []; + if (typeof nodes === 'string') { // selector query + this._query = nodes; + nodes = Y.Selector.query(nodes); + } else if (nodes.nodeType || Y_DOM.isWindow(nodes)) { // domNode || window + nodes = [nodes]; + } else if (Y.instanceOf(nodes, Y.Node)) { + nodes = [nodes._node]; + } else if (Y.instanceOf(nodes[0], Y.Node)) { // allow array of Y.Nodes + Y.Array.each(nodes, function(node) { + if (node._node) { + tmp.push(node._node); } + }); + nodes = tmp; + } else { // array of domNodes or domNodeList (no mixed array of Y.Node/domNodes) + nodes = Y.Array(nodes, 0, true); + } + /** + * The underlying array of DOM nodes bound to the Y.NodeList instance + * @property _nodes + * @private + */ + this._nodes = nodes; +}; - cewrapper = _wrappers[key]; +NodeList.NAME = 'NodeList'; +/** + * Retrieves the DOM nodes bound to a NodeList instance + * @method getDOMNodes + * @static + * + * @param {Y.NodeList} nodelist The NodeList instance + * @return {Array} The array of DOM nodes bound to the NodeList + */ +NodeList.getDOMNodes = function(nodelist) { + return (nodelist && nodelist._nodes) ? nodelist._nodes : nodelist; +}; - if (!cewrapper) { - // create CE wrapper - cewrapper = Y.publish(key, { - silent: true, - bubbles: false, - contextFn: function() { - if (compat) { - return cewrapper.el; - } else { - cewrapper.nodeRef = cewrapper.nodeRef || Y.one(cewrapper.el); - return cewrapper.nodeRef; - } - } - }); +NodeList.each = function(instance, fn, context) { + var nodes = instance._nodes; + if (nodes && nodes.length) { + Y.Array.each(nodes, fn, context || instance); + } else { + } +}; - cewrapper.overrides = {}; +NodeList.addMethod = function(name, fn, context) { + if (name && fn) { + NodeList.prototype[name] = function() { + var ret = [], + args = arguments; - // for later removeListener calls - cewrapper.el = el; - cewrapper.key = key; - cewrapper.domkey = ek; - cewrapper.type = type; - cewrapper.fn = function(e) { - cewrapper.fire(Event.getEvent(e, el, (compat || (false === facade)))); - }; - cewrapper.capture = capture; + Y.Array.each(this._nodes, function(node) { + var UID = (node.uniqueID && node.nodeType !== 9 ) ? 'uniqueID' : '_yuid', + instance = Y.Node._instances[node[UID]], + ctx, + result; - if (el == win && type == "load") { - // window load happens once - cewrapper.fireOnce = true; - _windowLoadKey = key; + if (!instance) { + instance = NodeList._getTempNode(node); } - cewrapper._delete = _deleteAndClean; - - _wrappers[key] = cewrapper; - _el_events[ek] = _el_events[ek] || {}; - _el_events[ek][key] = cewrapper; + ctx = context || instance; + result = fn.apply(ctx, args); + if (result !== undefined && result !== instance) { + ret[ret.length] = result; + } + }); - add(el, type, cewrapper.fn, capture); - } + // TODO: remove tmp pointer + return ret.length ? ret : this; + }; + } else { + } +}; - return cewrapper; +NodeList.importMethod = function(host, name, altName) { + if (typeof name === 'string') { + altName = altName || name; + NodeList.addMethod(name, host[name]); + } else { + Y.Array.each(name, function(n) { + NodeList.importMethod(host, n); + }); + } +}; - }, +NodeList._getTempNode = function(node) { + var tmp = NodeList._tempNode; + if (!tmp) { + tmp = Y.Node.create('
                              '); + NodeList._tempNode = tmp; + } - _attach: function(args, conf) { + tmp._node = node; + tmp._stateProxy = node; + return tmp; +}; - var compat, - handles, oEl, cewrapper, context, - fireNow = false, ret, - type = args[0], - fn = args[1], - el = args[2] || win, - facade = conf && conf.facade, - capture = conf && conf.capture, - overrides = conf && conf.overrides; - - if (args[args.length-1] === COMPAT_ARG) { - compat = true; - } - - if (!fn || !fn.call) { -// throw new TypeError(type + " attach call failed, callback undefined"); - return false; - } - - // The el argument can be an array of elements or element ids. - if (shouldIterate(el)) { +Y.mix(NodeList.prototype, { + /** + * Retrieves the Node instance at the given index. + * @method item + * + * @param {Number} index The index of the target Node. + * @return {Node} The Node instance at the given index. + */ + item: function(index) { + return Y.one((this._nodes || [])[index]); + }, - handles=[]; + /** + * Applies the given function to each Node in the NodeList. + * @method each + * @param {Function} fn The function to apply. It receives 3 arguments: + * the current node instance, the node's index, and the NodeList instance + * @param {Object} context optional An optional context to apply the function with + * Default context is the current Node instance + * @chainable + */ + each: function(fn, context) { + var instance = this; + Y.Array.each(this._nodes, function(node, index) { + node = Y.one(node); + return fn.call(context || node, node, index, instance); + }); + return instance; + }, - Y.each(el, function(v, k) { - args[2] = v; - handles.push(Event._attach(args.slice(), conf)); - }); + batch: function(fn, context) { + var nodelist = this; - // return (handles.length === 1) ? handles[0] : handles; - return new Y.EventHandle(handles); + Y.Array.each(this._nodes, function(node, index) { + var instance = Y.Node._instances[node[UID]]; + if (!instance) { + instance = NodeList._getTempNode(node); + } - // If the el argument is a string, we assume it is - // actually the id of the element. If the page is loaded - // we convert el to the actual element, otherwise we - // defer attaching the event until the element is - // ready - } else if (Y.Lang.isString(el)) { + return fn.call(context || instance, instance, index, nodelist); + }); + return nodelist; + }, - // oEl = (compat) ? Y.DOM.byId(el) : Y.Selector.query(el); + /** + * Executes the function once for each node until a true value is returned. + * @method some + * @param {Function} fn The function to apply. It receives 3 arguments: + * the current node instance, the node's index, and the NodeList instance + * @param {Object} context optional An optional context to execute the function from. + * Default context is the current Node instance + * @return {Boolean} Whether or not the function returned true for any node. + */ + some: function(fn, context) { + var instance = this; + return Y.Array.some(this._nodes, function(node, index) { + node = Y.one(node); + context = context || node; + return fn.call(context, node, index, instance); + }); + }, - if (compat) { - oEl = Y.DOM.byId(el); - } else { + /** + * Creates a documenFragment from the nodes bound to the NodeList instance + * @method toFrag + * @return Node a Node instance bound to the documentFragment + */ + toFrag: function() { + return Y.one(Y.DOM._nl2frag(this._nodes)); + }, - oEl = Y.Selector.query(el); + /** + * Returns the index of the node in the NodeList instance + * or -1 if the node isn't found. + * @method indexOf + * @param {Y.Node || DOMNode} node the node to search for + * @return {Int} the index of the node value or -1 if not found + */ + indexOf: function(node) { + return Y.Array.indexOf(this._nodes, Y.Node.getDOMNode(node)); + }, - switch (oEl.length) { - case 0: - oEl = null; - break; - case 1: - oEl = oEl[0]; - break; - default: - args[2] = oEl; - return Event._attach(args, conf); - } - } + /** + * Filters the NodeList instance down to only nodes matching the given selector. + * @method filter + * @param {String} selector The selector to filter against + * @return {NodeList} NodeList containing the updated collection + * @see Selector + */ + filter: function(selector) { + return Y.all(Y.Selector.filter(this._nodes, selector)); + }, - if (oEl) { - el = oEl; + /** + * Creates a new NodeList containing all nodes at every n indices, where + * remainder n % index equals r. + * (zero-based index). + * @method modulus + * @param {Int} n The offset to use (return every nth node) + * @param {Int} r An optional remainder to use with the modulus operation (defaults to zero) + * @return {NodeList} NodeList containing the updated collection + */ + modulus: function(n, r) { + r = r || 0; + var nodes = []; + NodeList.each(this, function(node, i) { + if (i % n === r) { + nodes.push(node); + } + }); - // Not found = defer adding the event until the element is available - } else { + return Y.all(nodes); + }, - ret = Event.onAvailable(el, function() { + /** + * Creates a new NodeList containing all nodes at odd indices + * (zero-based index). + * @method odd + * @return {NodeList} NodeList containing the updated collection + */ + odd: function() { + return this.modulus(2, 1); + }, - ret.handle = Event._attach(args, conf); + /** + * Creates a new NodeList containing all nodes at even indices + * (zero-based index), including zero. + * @method even + * @return {NodeList} NodeList containing the updated collection + */ + even: function() { + return this.modulus(2); + }, - }, Event, true, false, compat); + destructor: function() { + }, - return ret; + /** + * Reruns the initial query, when created using a selector query + * @method refresh + * @chainable + */ + refresh: function() { + var doc, + nodes = this._nodes, + query = this._query, + root = this._queryRoot; + if (query) { + if (!root) { + if (nodes && nodes[0] && nodes[0].ownerDocument) { + root = nodes[0].ownerDocument; } } - // Element should be an html element or node - if (!el) { - return false; - } - - if (Y.Node && Y.instanceOf(el, Y.Node)) { - el = Y.Node.getDOMNode(el); - } - - cewrapper = Event._createWrapper(el, type, capture, compat, facade); - if (overrides) { - Y.mix(cewrapper.overrides, overrides); - } + this._nodes = Y.Selector.query(query, root); + } - if (el == win && type == "load") { + return this; + }, - // if the load is complete, fire immediately. - // all subscribers, including the current one - // will be notified. - if (YUI.Env.windowLoaded) { - fireNow = true; - } - } + _prepEvtArgs: function(type, fn, context) { + // map to Y.on/after signature (type, fn, nodes, context, arg1, arg2, etc) + var args = Y.Array(arguments, 0, true); - if (compat) { - args.pop(); - } + if (args.length < 2) { // type only (event hash) just add nodes + args[2] = this._nodes; + } else { + args.splice(2, 0, this._nodes); + } - context = args[3]; + args[3] = context || this; // default to NodeList instance as context - // set context to the Node if not specified - // ret = cewrapper.on.apply(cewrapper, trimmedArgs); - ret = cewrapper._on(fn, context, (args.length > 4) ? args.slice(4) : null); + return args; + }, - if (fireNow) { - cewrapper.fire(); - } + /** + * Applies an event listener to each Node bound to the NodeList. + * @method on + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @param {Object} context The context to call the handler with. + * param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + on: function(type, fn, context) { + return Y.on.apply(Y, this._prepEvtArgs.apply(this, arguments)); + }, - return ret; + /** + * Applies an one-time event listener to each Node bound to the NodeList. + * @method once + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + once: function(type, fn, context) { + return Y.once.apply(Y, this._prepEvtArgs.apply(this, arguments)); + }, - }, + /** + * Applies an event listener to each Node bound to the NodeList. + * The handler is called only after all on() handlers are called + * and the event is not prevented. + * @method after + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + */ + after: function(type, fn, context) { + return Y.after.apply(Y, this._prepEvtArgs.apply(this, arguments)); + }, - /** - * Removes an event listener. Supports the signature the event was bound - * with, but the preferred way to remove listeners is using the handle - * that is returned when using Y.on - * - * @method detach - * - * @param {String} type the type of event to remove. - * @param {Function} fn the method the event invokes. If fn is - * undefined, then all event handlers for the type of event are - * removed. - * @param {String|HTMLElement|Array|NodeList|EventHandle} el An - * event handle, an id, an element reference, or a collection - * of ids and/or elements to remove the listener from. - * @return {boolean} true if the unbind was successful, false otherwise. - * @static - */ - detach: function(type, fn, el, obj) { + /** + * Returns the current number of items in the NodeList. + * @method size + * @return {Int} The number of items in the NodeList. + */ + size: function() { + return this._nodes.length; + }, - var args=Y.Array(arguments, 0, true), compat, l, ok, i, - id, ce; + /** + * Determines if the instance is bound to any nodes + * @method isEmpty + * @return {Boolean} Whether or not the NodeList is bound to any nodes + */ + isEmpty: function() { + return this._nodes.length < 1; + }, - if (args[args.length-1] === COMPAT_ARG) { - compat = true; - // args.pop(); - } + toString: function() { + var str = '', + errorMsg = this[UID] + ': not bound to any nodes', + nodes = this._nodes, + node; - if (type && type.detach) { - return type.detach(); + if (nodes && nodes[0]) { + node = nodes[0]; + str += node[NODE_NAME]; + if (node.id) { + str += '#' + node.id; } - // The el argument can be a string - if (typeof el == "string") { - - // el = (compat) ? Y.DOM.byId(el) : Y.all(el); - if (compat) { - el = Y.DOM.byId(el); - } else { - el = Y.Selector.query(el); - l = el.length; - if (l < 1) { - el = null; - } else if (l == 1) { - el = el[0]; - } - } - // return Event.detach.apply(Event, args); + if (node.className) { + str += '.' + node.className.replace(' ', '.'); } - if (!el) { - return false; + if (nodes.length > 1) { + str += '...[' + nodes.length + ' items]'; } + } + return str || errorMsg; + }, - if (el.detach) { - args.splice(2, 1); - return el.detach.apply(el, args); - // The el argument can be an array of elements or element ids. - } else if (shouldIterate(el)) { - ok = true; - for (i=0, l=el.length; i 0); - } +var Y_NodeList = Y.NodeList, + ArrayProto = Array.prototype, + ArrayMethods = { + /** Returns a new NodeList combining the given NodeList(s) + * @for NodeList + * @method concat + * @param {NodeList | Array} valueN Arrays/NodeLists and/or values to + * concatenate to the resulting NodeList + * @return {NodeList} A new NodeList comprised of this NodeList joined with the input. + */ + 'concat': 1, + /** Removes the first last from the NodeList and returns it. + * @for NodeList + * @method pop + * @return {Node} The last item in the NodeList. + */ + 'pop': 0, + /** Adds the given Node(s) to the end of the NodeList. + * @for NodeList + * @method push + * @param {Node | DOMNode} nodes One or more nodes to add to the end of the NodeList. + */ + 'push': 0, + /** Removes the first item from the NodeList and returns it. + * @for NodeList + * @method shift + * @return {Node} The first item in the NodeList. + */ + 'shift': 0, + /** Returns a new NodeList comprising the Nodes in the given range. + * @for NodeList + * @method slice + * @param {Number} begin Zero-based index at which to begin extraction. + As a negative index, start indicates an offset from the end of the sequence. slice(-2) extracts the second-to-last element and the last element in the sequence. + * @param {Number} end Zero-based index at which to end extraction. slice extracts up to but not including end. + slice(1,4) extracts the second element through the fourth element (elements indexed 1, 2, and 3). + As a negative index, end indicates an offset from the end of the sequence. slice(2,-1) extracts the third element through the second-to-last element in the sequence. + If end is omitted, slice extracts to the end of the sequence. + * @return {NodeList} A new NodeList comprised of this NodeList joined with the input. + */ + 'slice': 1, + /** Changes the content of the NodeList, adding new elements while removing old elements. + * @for NodeList + * @method splice + * @param {Number} index Index at which to start changing the array. If negative, will begin that many elements from the end. + * @param {Number} howMany An integer indicating the number of old array elements to remove. If howMany is 0, no elements are removed. In this case, you should specify at least one new element. If no howMany parameter is specified (second syntax above, which is a SpiderMonkey extension), all elements after index are removed. + * {Node | DOMNode| element1, ..., elementN + The elements to add to the array. If you don't specify any elements, splice simply removes elements from the array. + * @return {NodeList} The element(s) removed. + */ + 'splice': 1, + /** Adds the given Node(s) to the beginning of the NodeList. + * @for NodeList + * @method push + * @param {Node | DOMNode} nodes One or more nodes to add to the NodeList. + */ + 'unshift': 0 + }; - // onAvailable - notAvail = []; - executeItem = function (el, item) { - var context, ov = item.override; - if (item.compat) { - if (item.override) { - if (ov === true) { - context = item.obj; - } else { - context = ov; - } - } else { - context = el; - } - item.fn.call(context, item.obj); - } else { - context = item.obj || Y.one(el); - item.fn.apply(context, (Y.Lang.isArray(ov)) ? ov : []); - } - }; +Y.Object.each(ArrayMethods, function(returnNodeList, name) { + Y_NodeList.prototype[name] = function() { + var args = [], + i = 0, + arg, + ret; - // onAvailable - for (i=0,len=_avail.length; i 4 ? Y.Array(arguments, 4, true) : null; - return Y.Event.onAvailable.call(Y.Event, id, fn, o, a); - } -}; - -/** - * Executes the callback as soon as the specified element - * is detected in the DOM with a nextSibling property - * (indicating that the element's children are available). - * This function expects a selector - * string for the element(s) to detect. If you already have - * an element reference, you don't need this event. - * @event contentready - * @param type {string} 'contentready' - * @param fn {function} the callback function to execute. - * @param el {string} an selector for the element(s) to attach. - * @param context optional argument that specifies what 'this' refers to. - * @param args* 0..n additional arguments to pass on to the callback function. - * These arguments will be added after the event object. - * @return {EventHandle} the detach handle - * @for YUI - */ -Y.Env.evt.plugins.contentready = { - on: function(type, fn, id, o) { - var a = arguments.length > 4 ? Y.Array(arguments, 4, true) : null; - return Y.Event.onContentReady.call(Y.Event, id, fn, o, a); - } -}; - - -}, '3.4.0' ,{requires:['event-custom-base']}); -(function() { - -var stateChangeListener, - GLOBAL_ENV = YUI.Env, - config = YUI.config, - doc = config.doc, - docElement = doc && doc.documentElement, - EVENT_NAME = 'onreadystatechange', - pollInterval = config.pollInterval || 40; - -if (docElement.doScroll && !GLOBAL_ENV._ieready) { - GLOBAL_ENV._ieready = function() { - GLOBAL_ENV._ready(); - }; - -/*! DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller/Diego Perini */ -// Internet Explorer: use the doScroll() method on the root element. -// This isolates what appears to be a safe moment to manipulate the -// DOM prior to when the document's readyState suggests it is safe to do so. - if (self !== self.top) { - stateChangeListener = function() { - if (doc.readyState == 'complete') { - GLOBAL_ENV.remove(doc, EVENT_NAME, stateChangeListener); - GLOBAL_ENV.ieready(); - } - }; - GLOBAL_ENV.add(doc, EVENT_NAME, stateChangeListener); - } else { - GLOBAL_ENV._dri = setInterval(function() { - try { - docElement.doScroll('left'); - clearInterval(GLOBAL_ENV._dri); - GLOBAL_ENV._dri = null; - GLOBAL_ENV._ieready(); - } catch (domNotReady) { } - }, pollInterval); - } -} - -})(); -YUI.add('event-base-ie', function(Y) { - -/* - * Custom event engine, DOM event listener abstraction layer, synthetic DOM - * events. - * @module event - * @submodule event-base - */ - -function IEEventFacade() { - // IEEventFacade.superclass.constructor.apply(this, arguments); - Y.DOM2EventFacade.apply(this, arguments); -} - -/* - * (intentially left out of API docs) - * Alternate Facade implementation that is based on Object.defineProperty, which - * is partially supported in IE8. Properties that involve setup work are - * deferred to temporary getters using the static _define method. - */ -function IELazyFacade(e) { - var proxy = Y.config.doc.createEventObject(e), - proto = IELazyFacade.prototype; - - // TODO: necessary? - proxy.hasOwnProperty = function () { return true; }; - - proxy.init = proto.init; - proxy.halt = proto.halt; - proxy.preventDefault = proto.preventDefault; - proxy.stopPropagation = proto.stopPropagation; - proxy.stopImmediatePropagation = proto.stopImmediatePropagation; - - Y.DOM2EventFacade.apply(proxy, arguments); - - return proxy; -} - - -var imp = Y.config.doc && Y.config.doc.implementation, - useLazyFacade = Y.config.lazyEventFacade, - - buttonMap = { - 2: 3, - 4: 2 - }, - relatedTargetMap = { - mouseout: 'toElement', - mouseover: 'fromElement' - }, - - resolve = Y.DOM2EventFacade.resolve, - - proto = { - init: function() { - - IEEventFacade.superclass.init.apply(this, arguments); - - var e = this._event, - x, y, d, b, de, t; - - this.target = resolve(e.srcElement); - - if (('clientX' in e) && (!x) && (0 !== x)) { - x = e.clientX; - y = e.clientY; - - d = Y.config.doc; - b = d.body; - de = d.documentElement; - - x += (de.scrollLeft || (b && b.scrollLeft) || 0); - y += (de.scrollTop || (b && b.scrollTop) || 0); - - this.pageX = x; - this.pageY = y; - } - - if (e.type == "mouseout") { - t = e.toElement; - } else if (e.type == "mouseover") { - t = e.fromElement; - } - - // fallback to t.relatedTarget to support simulated events. - // IE doesn't support setting toElement or fromElement on generic - // events, so Y.Event.simulate sets relatedTarget instead. - this.relatedTarget = resolve(t || e.relatedTarget); - - // which should contain the unicode key code if this is a key event - // if (e.charCode) { - // this.which = e.charCode; - // } - - // for click events, which is normalized for which mouse button was - // clicked. - if (e.button) { - this.which = this.button = buttonMap[e.button] || e.button; - } - - }, - - stopPropagation: function() { - this._event.cancelBubble = true; - this._wrapper.stopped = 1; - this.stopped = 1; - }, - - stopImmediatePropagation: function() { - this.stopPropagation(); - this._wrapper.stopped = 2; - this.stopped = 2; - }, - - preventDefault: function(returnValue) { - this._event.returnValue = returnValue || false; - this._wrapper.prevented = 1; - this.prevented = 1; - } - }; - -Y.extend(IEEventFacade, Y.DOM2EventFacade, proto); - -Y.extend(IELazyFacade, Y.DOM2EventFacade, proto); -IELazyFacade.prototype.init = function () { - var e = this._event, - overrides = this._wrapper.overrides, - define = IELazyFacade._define, - lazyProperties = IELazyFacade._lazyProperties, - prop; - - this.altKey = e.altKey; - this.ctrlKey = e.ctrlKey; - this.metaKey = e.metaKey; - this.shiftKey = e.shiftKey; - this.type = (overrides && overrides.type) || e.type; - this.clientX = e.clientX; - this.clientY = e.clientY; - - for (prop in lazyProperties) { - if (lazyProperties.hasOwnProperty(prop)) { - define(this, prop, lazyProperties[prop]); - } - } - - if (this._touch) { - this._touch(e, this._currentTarget, this._wrapper); - } -}; - -IELazyFacade._lazyProperties = { - charCode: function () { - var e = this._event; - - return e.keyCode || e.charCode; - }, - keyCode: function () { return this.charCode; }, - - button: function () { - var e = this._event; - - return (e.button) ? - (buttonMap[e.button] || e.button) : - (e.which || e.charCode || this.charCode); - }, - which: function () { return this.button; }, - - target: function () { - return resolve(this._event.srcElement); - }, - relatedTarget: function () { - var e = this._event, - targetProp = relatedTargetMap[e.type] || 'relatedTarget'; - - // fallback to t.relatedTarget to support simulated events. - // IE doesn't support setting toElement or fromElement on generic - // events, so Y.Event.simulate sets relatedTarget instead. - return resolve(e[targetProp] || e.relatedTarget); - }, - currentTarget: function () { - return resolve(this._currentTarget); - }, - - wheelDelta: function () { - var e = this._event; - - if (e.type === "mousewheel" || e.type === "DOMMouseScroll") { - return (e.detail) ? - (e.detail * -1) : - // wheelDelta between -80 and 80 result in -1 or 1 - Math.round(e.wheelDelta / 80) || ((e.wheelDelta < 0) ? -1 : 1); - } - }, - - pageX: function () { - var e = this._event, - val = e.pageX, - doc, bodyScroll, docScroll; - - if (val === undefined) { - doc = Y.config.doc; - bodyScroll = doc.body && doc.body.scrollLeft; - docScroll = doc.documentElement.scrollLeft; - - val = e.clientX + (docScroll || bodyScroll || 0); - } - - return val; - }, - pageY: function () { - var e = this._event, - val = e.pageY, - doc, bodyScroll, docScroll; - - if (val === undefined) { - doc = Y.config.doc; - bodyScroll = doc.body && doc.body.scrollTop; - docScroll = doc.documentElement.scrollTop; - - val = e.clientY + (docScroll || bodyScroll || 0); - } - - return val; - } -}; - - -/** - * Wrapper function for Object.defineProperty that creates a property whose - * value will be calulated only when asked for. After calculating the value, - * the getter wll be removed, so it will behave as a normal property beyond that - * point. A setter is also assigned so assigning to the property will clear - * the getter, so foo.prop = 'a'; foo.prop; won't trigger the getter, - * overwriting value 'a'. - * - * Used only by the DOMEventFacades used by IE8 when the YUI configuration - * lazyEventFacade is set to true. - * - * @method _define - * @param o {DOMObject} A DOM object to add the property to - * @param prop {String} The name of the new property - * @param valueFn {Function} The function that will return the initial, default - * value for the property. - * @static - * @private - */ -IELazyFacade._define = function (o, prop, valueFn) { - function val(v) { - var ret = (arguments.length) ? v : valueFn.call(this); - - delete o[prop]; - Object.defineProperty(o, prop, { - value: ret, - configurable: true, - writable: true - }); - return ret; - } - Object.defineProperty(o, prop, { - get: val, - set: val, - configurable: true - }); -}; - -if (imp && (!imp.hasFeature('Events', '2.0'))) { - if (useLazyFacade) { - // Make sure we can use the lazy facade logic - try { - Object.defineProperty(Y.config.doc.createEventObject(), 'z', {}); - } catch (e) { - useLazyFacade = false; - } - } - - Y.DOMEventFacade = (useLazyFacade) ? IELazyFacade : IEEventFacade; -} - - -}, '3.4.0' ,{after:['event-base'], requires:['node-base']}); -YUI.add('pluginhost-base', function(Y) { - - /** - * Provides the augmentable PluginHost interface, which can be added to any class. - * @module pluginhost - */ - - /** - * Provides the augmentable PluginHost interface, which can be added to any class. - * @module pluginhost-base - */ - - /** - *

                              - * An augmentable class, which provides the augmented class with the ability to host plugins. - * It adds plug and unplug methods to the augmented class, which can - * be used to add or remove plugins from instances of the class. - *

                              - * - *

                              Plugins can also be added through the constructor configuration object passed to the host class' constructor using - * the "plugins" property. Supported values for the "plugins" property are those defined by the plug method. - * - * For example the following code would add the AnimPlugin and IOPlugin to Overlay (the plugin host): - *

                              - * var o = new Overlay({plugins: [ AnimPlugin, {fn:IOPlugin, cfg:{section:"header"}}]}); - * - *

                              - *

                              - * Plug.Host's protected _initPlugins and _destroyPlugins - * methods should be invoked by the host class at the appropriate point in the host's lifecyle. - *

                              - * - * @class Plugin.Host - */ - - var L = Y.Lang; - - function PluginHost() { - this._plugins = {}; - } - - PluginHost.prototype = { - - /** - * Adds a plugin to the host object. This will instantiate the - * plugin and attach it to the configured namespace on the host object. - * - * @method plug - * @chainable - * @param P {Function | Object |Array} Accepts the plugin class, or an - * object with a "fn" property specifying the plugin class and - * a "cfg" property specifying the configuration for the Plugin. - *

                              - * Additionally an Array can also be passed in, with the above function or - * object values, allowing the user to add multiple plugins in a single call. - *

                              - * @param config (Optional) If the first argument is the plugin class, the second argument - * can be the configuration for the plugin. - * @return {Base} A reference to the host object - */ - plug: function(Plugin, config) { - var i, ln, ns; - - if (L.isArray(Plugin)) { - for (i = 0, ln = Plugin.length; i < ln; i++) { - this.plug(Plugin[i]); - } - } else { - if (Plugin && !L.isFunction(Plugin)) { - config = Plugin.cfg; - Plugin = Plugin.fn; - } - - // Plugin should be fn by now - if (Plugin && Plugin.NS) { - ns = Plugin.NS; - - config = config || {}; - config.host = this; - - if (this.hasPlugin(ns)) { - // Update config - this[ns].setAttrs(config); - } else { - // Create new instance - this[ns] = new Plugin(config); - this._plugins[ns] = Plugin; - } - } - } - return this; - }, - - /** - * Removes a plugin from the host object. This will destroy the - * plugin instance and delete the namepsace from the host object. - * - * @method unplug - * @param {String | Function} plugin The namespace of the plugin, or the plugin class with the static NS namespace property defined. If not provided, - * all registered plugins are unplugged. - * @return {Base} A reference to the host object - * @chainable - */ - unplug: function(plugin) { - var ns = plugin, - plugins = this._plugins; - - if (plugin) { - if (L.isFunction(plugin)) { - ns = plugin.NS; - if (ns && (!plugins[ns] || plugins[ns] !== plugin)) { - ns = null; - } - } - - if (ns) { - if (this[ns]) { - this[ns].destroy(); - delete this[ns]; - } - if (plugins[ns]) { - delete plugins[ns]; - } - } - } else { - for (ns in this._plugins) { - if (this._plugins.hasOwnProperty(ns)) { - this.unplug(ns); - } - } - } - return this; - }, - - /** - * Determines if a plugin has plugged into this host. - * - * @method hasPlugin - * @param {String} ns The plugin's namespace - * @return {boolean} returns true, if the plugin has been plugged into this host, false otherwise. - */ - hasPlugin : function(ns) { - return (this._plugins[ns] && this[ns]); - }, - - /** - * Initializes static plugins registered on the host (using the - * Base.plug static method) and any plugins passed to the - * instance through the "plugins" configuration property. - * - * @method _initPlugins - * @param {Config} config The configuration object with property name/value pairs. - * @private - */ - - _initPlugins: function(config) { - this._plugins = this._plugins || {}; - - if (this._initConfigPlugins) { - this._initConfigPlugins(config); - } - }, - - /** - * Unplugs and destroys all plugins on the host - * @method _destroyPlugins - * @private - */ - _destroyPlugins: function() { - this.unplug(); - } - }; - - Y.namespace("Plugin").Host = PluginHost; - - -}, '3.4.0' ,{requires:['yui-base']}); -YUI.add('pluginhost-config', function(Y) { - - /** - * Adds pluginhost constructor configuration and static configuration support - * @submodule pluginhost-config - */ - - /** - * Constructor and static configuration support for plugins - * - * @for Plugin.Host - */ - var PluginHost = Y.Plugin.Host, - L = Y.Lang; - - PluginHost.prototype._initConfigPlugins = function(config) { - - // Class Configuration - var classes = (this._getClasses) ? this._getClasses() : [this.constructor], - plug = [], - unplug = {}, - constructor, i, classPlug, classUnplug, pluginClassName; - - // TODO: Room for optimization. Can we apply statically/unplug in same pass? - for (i = classes.length - 1; i >= 0; i--) { - constructor = classes[i]; - - classUnplug = constructor._UNPLUG; - if (classUnplug) { - // subclasses over-write - Y.mix(unplug, classUnplug, true); - } - - classPlug = constructor._PLUG; - if (classPlug) { - // subclasses over-write - Y.mix(plug, classPlug, true); - } - } - - for (pluginClassName in plug) { - if (plug.hasOwnProperty(pluginClassName)) { - if (!unplug[pluginClassName]) { - this.plug(plug[pluginClassName]); - } - } - } - - // User Configuration - if (config && config.plugins) { - this.plug(config.plugins); - } - }; - - /** - * Registers plugins to be instantiated at the class level (plugins - * which should be plugged into every instance of the class by default). - * - * @method Plugin.Host.plug - * @static - * - * @param {Function} hostClass The host class on which to register the plugins - * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) - * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin - */ - PluginHost.plug = function(hostClass, plugin, config) { - // Cannot plug into Base, since Plugins derive from Base [ will cause infinite recurrsion ] - var p, i, l, name; - - if (hostClass !== Y.Base) { - hostClass._PLUG = hostClass._PLUG || {}; - - if (!L.isArray(plugin)) { - if (config) { - plugin = {fn:plugin, cfg:config}; - } - plugin = [plugin]; - } - - for (i = 0, l = plugin.length; i < l;i++) { - p = plugin[i]; - name = p.NAME || p.fn.NAME; - hostClass._PLUG[name] = p; - } - } - }; + /** + * Passes through to DOM method. + * @method blur + * @chainable + */ + 'blur', /** - * Unregisters any class level plugins which have been registered by the host class, or any - * other class in the hierarchy. - * - * @method Plugin.Host.unplug - * @static - * - * @param {Function} hostClass The host class from which to unregister the plugins - * @param {Function | Array} plugin The plugin class, or an array of plugin classes - */ - PluginHost.unplug = function(hostClass, plugin) { - var p, i, l, name; - - if (hostClass !== Y.Base) { - hostClass._UNPLUG = hostClass._UNPLUG || {}; - - if (!L.isArray(plugin)) { - plugin = [plugin]; - } - - for (i = 0, l = plugin.length; i < l; i++) { - p = plugin[i]; - name = p.NAME; - if (!hostClass._PLUG[name]) { - hostClass._UNPLUG[name] = p; - } else { - delete hostClass._PLUG[name]; - } - } - } - }; - - -}, '3.4.0' ,{requires:['pluginhost-base']}); - - -YUI.add('pluginhost', function(Y){}, '3.4.0' ,{use:['pluginhost-base', 'pluginhost-config']}); - -YUI.add('node-base', function(Y) { - -/** - * The Node Utility provides a DOM-like interface for interacting with DOM nodes. - * @module node - * @submodule node-base - */ - -/** - * The Node class provides a wrapper for manipulating DOM Nodes. - * Node properties can be accessed via the set/get methods. - * Use Y.one() to retrieve Node instances. - * - * NOTE: Node properties are accessed using - * the set and get methods. - * - * @class Node - * @constructor - * @param {DOMNode} node the DOM node to be mapped to the Node instance. - * @for Node - */ - -// "globals" -var DOT = '.', - NODE_NAME = 'nodeName', - NODE_TYPE = 'nodeType', - OWNER_DOCUMENT = 'ownerDocument', - TAG_NAME = 'tagName', - UID = '_yuid', - EMPTY_OBJ = {}, - - _slice = Array.prototype.slice, - - Y_DOM = Y.DOM, - - Y_Node = function(node) { - if (!this.getDOMNode) { // support optional "new" - return new Y_Node(node); - } - - if (typeof node == 'string') { - node = Y_Node._fromString(node); - if (!node) { - return null; // NOTE: return - } - } - - var uid = (node.nodeType !== 9) ? node.uniqueID : node[UID]; - - if (uid && Y_Node._instances[uid] && Y_Node._instances[uid]._node !== node) { - node[UID] = null; // unset existing uid to prevent collision (via clone or hack) - } - - uid = uid || Y.stamp(node); - if (!uid) { // stamp failed; likely IE non-HTMLElement - uid = Y.guid(); - } - - this[UID] = uid; - - /** - * The underlying DOM node bound to the Y.Node instance - * @property _node - * @private - */ - this._node = node; - - this._stateProxy = node; // when augmented with Attribute + * Passes through to DOM method. + * Only valid on FORM elements + * @method submit + * @chainable + */ + 'submit', - if (this._initPlugins) { // when augmented with Plugin.Host - this._initPlugins(); - } + /** + * Passes through to DOM method. + * Only valid on FORM elements + * @method reset + * @chainable + */ + 'reset', - this.SHOW_TRANSITION = Y_Node.SHOW_TRANSITION; - this.HIDE_TRANSITION = Y_Node.HIDE_TRANSITION; - }, + /** + * Passes through to DOM method. + * @method select + * @chainable + */ + 'select', - // used with previous/next/ancestor tests - _wrapFn = function(fn) { - var ret = null; - if (fn) { - ret = (typeof fn == 'string') ? - function(n) { - return Y.Selector.test(n, fn); - } : - function(n) { - return fn(Y.one(n)); - }; - } + /** + * Passes through to DOM method. + * Only valid on TABLE elements + * @method createCaption + * @chainable + */ + 'createCaption' +], function(method) { + Y.Node.prototype[method] = function(arg1, arg2, arg3) { + var ret = this.invoke(method, arg1, arg2, arg3); return ret; }; -// end "globals" - -Y_Node._fromString = function(node) { - if (node) { - if (node.indexOf('doc') === 0) { // doc OR document - node = Y.config.doc; - } else if (node.indexOf('win') === 0) { // win OR window - node = Y.config.win; - } else { - node = Y.Selector.query(node, null, true); - } - } - - return node || null; -}; - -/** - * The name of the component - * @static - * @property NAME - */ -Y_Node.NAME = 'node'; - -/* - * The pattern used to identify ARIA attributes - */ -Y_Node.re_aria = /^(?:role$|aria-)/; - -Y_Node.SHOW_TRANSITION = 'fadeIn'; -Y_Node.HIDE_TRANSITION = 'fadeOut'; - -/** - * List of events that route to DOM events - * @static - * @property DOM_EVENTS - */ - -Y_Node.DOM_EVENTS = { - abort: 1, - beforeunload: 1, - blur: 1, - change: 1, - click: 1, - close: 1, - command: 1, - contextmenu: 1, - dblclick: 1, - DOMMouseScroll: 1, - drag: 1, - dragstart: 1, - dragenter: 1, - dragover: 1, - dragleave: 1, - dragend: 1, - drop: 1, - error: 1, - focus: 1, - key: 1, - keydown: 1, - keypress: 1, - keyup: 1, - load: 1, - message: 1, - mousedown: 1, - mouseenter: 1, - mouseleave: 1, - mousemove: 1, - mousemultiwheel: 1, - mouseout: 1, - mouseover: 1, - mouseup: 1, - mousewheel: 1, - orientationchange: 1, - reset: 1, - resize: 1, - select: 1, - selectstart: 1, - submit: 1, - scroll: 1, - textInput: 1, - unload: 1 -}; - -// Add custom event adaptors to this list. This will make it so -// that delegate, key, available, contentready, etc all will -// be available through Node.on -Y.mix(Y_Node.DOM_EVENTS, Y.Env.evt.plugins); - -/** - * A list of Node instances that have been created - * @private - * @property _instances - * @static - * - */ -Y_Node._instances = {}; - -/** - * Retrieves the DOM node bound to a Node instance - * @method getDOMNode - * @static - * - * @param {Y.Node || HTMLNode} node The Node instance or an HTMLNode - * @return {HTMLNode} The DOM node bound to the Node instance. If a DOM node is passed - * as the node argument, it is simply returned. - */ -Y_Node.getDOMNode = function(node) { - if (node) { - return (node.nodeType) ? node : node._node || null; - } - return null; -}; - -/** - * Checks Node return values and wraps DOM Nodes as Y.Node instances - * and DOM Collections / Arrays as Y.NodeList instances. - * Other return values just pass thru. If undefined is returned (e.g. no return) - * then the Node instance is returned for chainability. - * @method scrubVal - * @static - * - * @param {any} node The Node instance or an HTMLNode - * @return {Y.Node | Y.NodeList | any} Depends on what is returned from the DOM node. - */ -Y_Node.scrubVal = function(val, node) { - if (val) { // only truthy values are risky - if (typeof val == 'object' || typeof val == 'function') { // safari nodeList === function - if (NODE_TYPE in val || Y_DOM.isWindow(val)) {// node || window - val = Y.one(val); - } else if ((val.item && !val._nodes) || // dom collection or Node instance - (val[0] && val[0][NODE_TYPE])) { // array of DOM Nodes - val = Y.all(val); - } - } - } else if (typeof val === 'undefined') { - val = node; // for chaining - } else if (val === null) { - val = null; // IE: DOM null not the same as null - } - - return val; -}; - -/** - * Adds methods to the Y.Node prototype, routing through scrubVal. - * @method addMethod - * @static - * - * @param {String} name The name of the method to add - * @param {Function} fn The function that becomes the method - * @param {Object} context An optional context to call the method with - * (defaults to the Node instance) - * @return {any} Depends on what is returned from the DOM node. - */ -Y_Node.addMethod = function(name, fn, context) { - if (name && fn && typeof fn == 'function') { - Y_Node.prototype[name] = function() { - var args = _slice.call(arguments), - node = this, - ret; - - if (args[0] && Y.instanceOf(args[0], Y_Node)) { - args[0] = args[0]._node; - } +}); - if (args[1] && Y.instanceOf(args[1], Y_Node)) { - args[1] = args[1]._node; - } - args.unshift(node._node); +Y.Node.importMethod(Y.DOM, [ + /** + * Determines whether the node is an ancestor of another HTML element in the DOM hierarchy. + * @method contains + * @param {Node | HTMLElement} needle The possible node or descendent + * @return {Boolean} Whether or not this node is the needle its ancestor + */ + 'contains', + /** + * Allows setting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method setAttribute + * @for Node + * @for NodeList + * @chainable + * @param {string} name The attribute name + * @param {string} value The value to set + */ + 'setAttribute', + /** + * Allows getting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method getAttribute + * @for Node + * @for NodeList + * @param {string} name The attribute name + * @return {string} The attribute value + */ + 'getAttribute', - ret = fn.apply(node, args); + /** + * Wraps the given HTML around the node. + * @method wrap + * @param {String} html The markup to wrap around the node. + * @chainable + * @for Node + */ + 'wrap', - if (ret) { // scrub truthy - ret = Y_Node.scrubVal(ret, node); - } + /** + * Removes the node's parent node. + * @method unwrap + * @chainable + */ + 'unwrap', - (typeof ret != 'undefined') || (ret = node); - return ret; - }; - } else { - } -}; + /** + * Applies a unique ID to the node if none exists + * @method generateID + * @return {String} The existing or generated ID + */ + 'generateID' +]); +Y.NodeList.importMethod(Y.Node.prototype, [ /** - * Imports utility methods to be added as Y.Node methods. - * @method importMethod - * @static - * - * @param {Object} host The object that contains the method to import. - * @param {String} name The name of the method to import - * @param {String} altName An optional name to use in place of the host name - * @param {Object} context An optional context to call the method with + * Allows getting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method getAttribute + * @see Node + * @for NodeList + * @param {string} name The attribute name + * @return {string} The attribute value */ -Y_Node.importMethod = function(host, name, altName) { - if (typeof name == 'string') { - altName = altName || name; - Y_Node.addMethod(altName, host[name], host); - } else { - Y.Array.each(name, function(n) { - Y_Node.importMethod(host, n); - }); - } -}; + 'getAttribute', /** - * Returns a single Node instance bound to the node or the - * first element matching the given selector. Returns null if no match found. - * Note: For chaining purposes you may want to - * use Y.all, which returns a NodeList when no match is found. - * @method Y.one - * @static - * @param {String | HTMLElement} node a node or Selector - * @return {Y.Node | null} a Node instance or null if no match found. + * Allows setting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method setAttribute + * @see Node + * @for NodeList + * @chainable + * @param {string} name The attribute name + * @param {string} value The value to set */ -Y_Node.one = function(node) { - var instance = null, - cachedNode, - uid; - - if (node) { - if (typeof node == 'string') { - node = Y_Node._fromString(node); - if (!node) { - return null; // NOTE: return - } - } else if (node.getDOMNode) { - return node; // NOTE: return - } - - if (node.nodeType || Y.DOM.isWindow(node)) { // avoid bad input (numbers, boolean, etc) - uid = (node.uniqueID && node.nodeType !== 9) ? node.uniqueID : node._yuid; - instance = Y_Node._instances[uid]; // reuse exising instances - cachedNode = instance ? instance._node : null; - if (!instance || (cachedNode && node !== cachedNode)) { // new Node when nodes don't match - instance = new Y_Node(node); - Y_Node._instances[instance[UID]] = instance; // cache node - } - } - } - - return instance; -}; + 'setAttribute', /** - * Returns a new dom node using the provided markup string. - * @method create - * @static - * @param {String} html The markup used to create the element - * @param {HTMLDocument} doc An optional document context - * @return {Node} A Node instance bound to a DOM node or fragment + * Allows for removing attributes on DOM nodes. + * This passes through to the DOM node, allowing for custom attributes. + * @method removeAttribute + * @see Node + * @for NodeList + * @param {string} name The attribute to remove */ -Y_Node.create = function(html, doc) { - if (doc && doc._node) { - doc = doc._node; - } - return Y.one(Y_DOM.create(html, doc)); -}; + 'removeAttribute', +/** + * Removes the parent node from node in the list. + * @method unwrap + * @chainable + */ + 'unwrap', +/** + * Wraps the given HTML around each node. + * @method wrap + * @param {String} html The markup to wrap around the node. + * @chainable + */ + 'wrap', /** - * Static collection of configuration attributes for special handling - * @property ATTRS - * @static - * @type object + * Applies a unique ID to each node if none exists + * @method generateID + * @return {String} The existing or generated ID */ -Y_Node.ATTRS = { - /** - * Allows for getting and setting the text of an element. - * Formatting is preserved and special characters are treated literally. - * @config text - * @type String - */ - text: { - getter: function() { - return Y_DOM.getText(this._node); - }, + 'generateID' +]); - setter: function(content) { - Y_DOM.setText(this._node, content); - return content; - } - }, - /** - * Allows for getting and setting the text of an element. - * Formatting is preserved and special characters are treated literally. - * @config text - * @type String - */ - 'for': { - getter: function() { - return Y_DOM.getAttribute(this._node, 'for'); - }, +}, '3.4.0' ,{requires:['dom-core', 'selector']}); +YUI.add('node-base', function(Y) { - setter: function(val) { - Y_DOM.setAttribute(this._node, 'for', val); - return val; - } - }, +/** + * @module node + * @submodule node-base + */ - 'options': { - getter: function() { - return this._node.getElementsByTagName('option'); - } - }, +var methods = [ +/** + * Determines whether each node has the given className. + * @method hasClass + * @for Node + * @param {String} className the class name to search for + * @return {Boolean} Whether or not the element has the specified class + */ + 'hasClass', - /** - * Returns a NodeList instance of all HTMLElement children. - * @readOnly - * @config children - * @type NodeList - */ - 'children': { - getter: function() { - var node = this._node, - children = node.children, - childNodes, i, len; +/** + * Adds a class name to each node. + * @method addClass + * @param {String} className the class name to add to the node's class attribute + * @chainable + */ + 'addClass', - if (!children) { - childNodes = node.childNodes; - children = []; +/** + * Removes a class name from each node. + * @method removeClass + * @param {String} className the class name to remove from the node's class attribute + * @chainable + */ + 'removeClass', - for (i = 0, len = childNodes.length; i < len; ++i) { - if (childNodes[i][TAG_NAME]) { - children[children.length] = childNodes[i]; - } - } - } - return Y.all(children); - } - }, +/** + * Replace a class with another class for each node. + * If no oldClassName is present, the newClassName is simply added. + * @method replaceClass + * @param {String} oldClassName the class name to be replaced + * @param {String} newClassName the class name that will be replacing the old class name + * @chainable + */ + 'replaceClass', - value: { - getter: function() { - return Y_DOM.getValue(this._node); - }, +/** + * If the className exists on the node it is removed, if it doesn't exist it is added. + * @method toggleClass + * @param {String} className the class name to be toggled + * @param {Boolean} force Option to force adding or removing the class. + * @chainable + */ + 'toggleClass' +]; - setter: function(val) { - Y_DOM.setValue(this._node, val); - return val; - } - } -}; +Y.Node.importMethod(Y.DOM, methods); +/** + * Determines whether each node has the given className. + * @method hasClass + * @see Node.hasClass + * @for NodeList + * @param {String} className the class name to search for + * @return {Array} An array of booleans for each node bound to the NodeList. + */ /** - * The default setter for DOM properties - * Called with instance context (this === the Node instance) - * @method DEFAULT_SETTER - * @static - * @param {String} name The attribute/property being set - * @param {any} val The value to be set - * @return {any} The value + * Adds a class name to each node. + * @method addClass + * @see Node.addClass + * @param {String} className the class name to add to the node's class attribute + * @chainable */ -Y_Node.DEFAULT_SETTER = function(name, val) { - var node = this._stateProxy, - strPath; - if (name.indexOf(DOT) > -1) { - strPath = name; - name = name.split(DOT); - // only allow when defined on node - Y.Object.setValue(node, name, val); - } else if (typeof node[name] != 'undefined') { // pass thru DOM properties - node[name] = val; - } +/** + * Removes a class name from each node. + * @method removeClass + * @see Node.removeClass + * @param {String} className the class name to remove from the node's class attribute + * @chainable + */ - return val; -}; +/** + * Replace a class with another class for each node. + * If no oldClassName is present, the newClassName is simply added. + * @method replaceClass + * @see Node.replaceClass + * @param {String} oldClassName the class name to be replaced + * @param {String} newClassName the class name that will be replacing the old class name + * @chainable + */ /** - * The default getter for DOM properties - * Called with instance context (this === the Node instance) - * @method DEFAULT_GETTER - * @static - * @param {String} name The attribute/property to look up - * @return {any} The current value + * If the className exists on the node it is removed, if it doesn't exist it is added. + * @method toggleClass + * @see Node.toggleClass + * @param {String} className the class name to be toggled + * @chainable */ -Y_Node.DEFAULT_GETTER = function(name) { - var node = this._stateProxy, - val; +Y.NodeList.importMethod(Y.Node.prototype, methods); +/** + * @module node + * @submodule node-base + */ + +var Y_Node = Y.Node, + Y_DOM = Y.DOM; - if (name.indexOf && name.indexOf(DOT) > -1) { - val = Y.Object.getValue(node, name.split(DOT)); - } else if (typeof node[name] != 'undefined') { // pass thru from DOM - val = node[name]; +/** + * Returns a new dom node using the provided markup string. + * @method create + * @static + * @param {String} html The markup used to create the element + * @param {HTMLDocument} doc An optional document context + * @return {Node} A Node instance bound to a DOM node or fragment + * @for Node + */ +Y_Node.create = function(html, doc) { + if (doc && doc._node) { + doc = doc._node; } - - return val; + return Y.one(Y_DOM.create(html, doc)); }; -Y.augment(Y_Node, Y.EventTarget); - Y.mix(Y_Node.prototype, { /** - * The method called when outputting Node instances as strings - * @method toString - * @return {String} A string representation of the Node instance + * Creates a new Node using the provided markup string. + * @method create + * @param {String} html The markup used to create the element + * @param {HTMLDocument} doc An optional document context + * @return {Node} A Node instance bound to a DOM node or fragment */ - toString: function() { - var str = this[UID] + ': not bound to a node', - node = this._node, - attrs, id, className; + create: Y_Node.create, - if (node) { - attrs = node.attributes; - id = (attrs && attrs.id) ? node.getAttribute('id') : null; - className = (attrs && attrs.className) ? node.getAttribute('className') : null; - str = node[NODE_NAME]; + /** + * Inserts the content before the reference node. + * @method insert + * @param {String | Y.Node | HTMLElement | Y.NodeList | HTMLCollection} content The content to insert + * @param {Int | Y.Node | HTMLElement | String} where The position to insert at. + * Possible "where" arguments + *
                              + *
                              Y.Node
                              + *
                              The Node to insert before
                              + *
                              HTMLElement
                              + *
                              The element to insert before
                              + *
                              Int
                              + *
                              The index of the child element to insert before
                              + *
                              "replace"
                              + *
                              Replaces the existing HTML
                              + *
                              "before"
                              + *
                              Inserts before the existing HTML
                              + *
                              "before"
                              + *
                              Inserts content before the node
                              + *
                              "after"
                              + *
                              Inserts content after the node
                              + *
                              + * @chainable + */ + insert: function(content, where) { + this._insert(content, where); + return this; + }, - if (id) { - str += '#' + id; - } + _insert: function(content, where) { + var node = this._node, + ret = null; - if (className) { - str += '.' + className.replace(' ', '.'); - } + if (typeof where == 'number') { // allow index + where = this._node.childNodes[where]; + } else if (where && where._node) { // Node + where = where._node; + } - // TODO: add yuid? - str += ' ' + this[UID]; + if (content && typeof content != 'string') { // allow Node or NodeList/Array instances + content = content._node || content._nodes || content; } - return str; + ret = Y_DOM.addHTML(node, content, where); + + return ret; }, /** - * Returns an attribute value on the Node instance. - * Unless pre-configured (via Node.ATTRS), get hands - * off to the underlying DOM node. Only valid - * attributes/properties for the node will be queried. - * @method get - * @param {String} attr The attribute - * @return {any} The current value of the attribute + * Inserts the content as the firstChild of the node. + * @method prepend + * @param {String | Y.Node | HTMLElement} content The content to insert + * @chainable */ - get: function(attr) { - var val; - - if (this._getAttr) { // use Attribute imple - val = this._getAttr(attr); - } else { - val = this._get(attr); - } - - if (val) { - val = Y_Node.scrubVal(val, this); - } else if (val === null) { - val = null; // IE: DOM null is not true null (even though they ===) - } - return val; + prepend: function(content) { + return this.insert(content, 0); }, /** - * Helper method for get. - * @method _get - * @private - * @param {String} attr The attribute - * @return {any} The current value of the attribute + * Inserts the content as the lastChild of the node. + * @method append + * @param {String | Y.Node | HTMLElement} content The content to insert + * @chainable */ - _get: function(attr) { - var attrConfig = Y_Node.ATTRS[attr], - val; + append: function(content) { + return this.insert(content, null); + }, - if (attrConfig && attrConfig.getter) { - val = attrConfig.getter.call(this); - } else if (Y_Node.re_aria.test(attr)) { - val = this._node.getAttribute(attr, 2); - } else { - val = Y_Node.DEFAULT_GETTER.apply(this, arguments); - } + /** + * @method appendChild + * @param {String | HTMLElement | Node} node Node to be appended + * @return {Node} The appended node + */ + appendChild: function(node) { + return Y_Node.scrubVal(this._insert(node)); + }, - return val; + /** + * @method insertBefore + * @param {String | HTMLElement | Node} newNode Node to be appended + * @param {HTMLElement | Node} refNode Node to be inserted before + * @return {Node} The inserted node + */ + insertBefore: function(newNode, refNode) { + return Y.Node.scrubVal(this._insert(newNode, refNode)); }, /** - * Sets an attribute on the Node instance. - * Unless pre-configured (via Node.ATTRS), set hands - * off to the underlying DOM node. Only valid - * attributes/properties for the node will be set. - * To set custom attributes use setAttribute. - * @method set - * @param {String} attr The attribute to be set. - * @param {any} val The value to set the attribute to. + * Appends the node to the given node. + * @method appendTo + * @param {Y.Node | HTMLElement} node The node to append to * @chainable */ - set: function(attr, val) { - var attrConfig = Y_Node.ATTRS[attr]; - - if (this._setAttr) { // use Attribute imple - this._setAttr.apply(this, arguments); - } else { // use setters inline - if (attrConfig && attrConfig.setter) { - attrConfig.setter.call(this, val, attr); - } else if (Y_Node.re_aria.test(attr)) { // special case Aria - this._node.setAttribute(attr, val); - } else { - Y_Node.DEFAULT_SETTER.apply(this, arguments); - } - } - + appendTo: function(node) { + Y.one(node).append(this); return this; }, /** - * Sets multiple attributes. - * @method setAttrs - * @param {Object} attrMap an object of name/value pairs to set + * Replaces the node's current content with the content. + * @method setContent + * @param {String | Y.Node | HTMLElement | Y.NodeList | HTMLCollection} content The content to insert * @chainable */ - setAttrs: function(attrMap) { - if (this._setAttrs) { // use Attribute imple - this._setAttrs(attrMap); - } else { // use setters inline - Y.Object.each(attrMap, function(v, n) { - this.set(n, v); - }, this); - } - + setContent: function(content) { + this._insert(content, 'replace'); return this; }, /** - * Returns an object containing the values for the requested attributes. - * @method getAttrs - * @param {Array} attrs an array of attributes to get values - * @return {Object} An object with attribute name/value pairs. + * Returns the node's current content (e.g. innerHTML) + * @method getContent + * @return {String} The current content */ - getAttrs: function(attrs) { - var ret = {}; - if (this._getAttrs) { // use Attribute imple - this._getAttrs(attrs); - } else { // use setters inline - Y.Array.each(attrs, function(v, n) { - ret[v] = this.get(v); - }, this); - } + getContent: function(content) { + return this.get('innerHTML'); + } +}); - return ret; - }, +Y.NodeList.importMethod(Y.Node.prototype, [ + /** + * Called on each Node instance + * @for NodeList + * @method append + * @see Node.append + */ + 'append', + + /** Called on each Node instance + * @method insert + * @see Node.insert + */ + 'insert', /** - * Creates a new Node using the provided markup string. - * @method create - * @param {String} html The markup used to create the element - * @param {HTMLDocument} doc An optional document context - * @return {Node} A Node instance bound to a DOM node or fragment + * Called on each Node instance + * @for NodeList + * @method appendChild + * @see Node.appendChild */ - create: Y_Node.create, + 'appendChild', + + /** Called on each Node instance + * @method insertBefore + * @see Node.insertBefore + */ + 'insertBefore', + + /** Called on each Node instance + * @method prepend + * @see Node.prepend + */ + 'prepend', + + /** Called on each Node instance + * @method setContent + * @see Node.setContent + */ + 'setContent', + + /** Called on each Node instance + * @method getContent + * @see Node.getContent + */ + 'getContent' +]); +/** + * @module node + * @submodule node-base + */ + +var Y_Node = Y.Node, + Y_DOM = Y.DOM; +/** + * Static collection of configuration attributes for special handling + * @property ATTRS + * @static + * @type object + */ +Y_Node.ATTRS = { /** - * Compares nodes to determine if they match. - * Node instances can be compared to each other and/or HTMLElements. - * @method compareTo - * @param {HTMLElement | Node} refNode The reference node to compare to the node. - * @return {Boolean} True if the nodes match, false if they do not. + * Allows for getting and setting the text of an element. + * Formatting is preserved and special characters are treated literally. + * @config text + * @type String */ - compareTo: function(refNode) { - var node = this._node; + text: { + getter: function() { + return Y_DOM.getText(this._node); + }, - if (Y.instanceOf(refNode, Y_Node)) { - refNode = refNode._node; + setter: function(content) { + Y_DOM.setText(this._node, content); + return content; } - return node === refNode; }, /** - * Determines whether the node is appended to the document. - * @method inDoc - * @param {Node|HTMLElement} doc optional An optional document to check against. - * Defaults to current document. - * @return {Boolean} Whether or not this node is appended to the document. + * Allows for getting and setting the text of an element. + * Formatting is preserved and special characters are treated literally. + * @config for + * @type String */ - inDoc: function(doc) { - var node = this._node; - doc = (doc) ? doc._node || doc : node[OWNER_DOCUMENT]; - if (doc.documentElement) { - return Y_DOM.contains(doc.documentElement, node); + 'for': { + getter: function() { + return Y_DOM.getAttribute(this._node, 'for'); + }, + + setter: function(val) { + Y_DOM.setAttribute(this._node, 'for', val); + return val; } }, - getById: function(id) { - var node = this._node, - ret = Y_DOM.byId(id, node[OWNER_DOCUMENT]); - if (ret && Y_DOM.contains(node, ret)) { - ret = Y.one(ret); - } else { - ret = null; + 'options': { + getter: function() { + return this._node.getElementsByTagName('option'); } - return ret; }, - /** - * Returns the nearest ancestor that passes the test applied by supplied boolean method. - * @method ancestor - * @param {String | Function} fn A selector string or boolean method for testing elements. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * If a function is used, it receives the current node being tested as the only argument. - * @return {Node} The matching Node instance or null if not found + /** + * Returns a NodeList instance of all HTMLElement children. + * @readOnly + * @config children + * @type NodeList */ - ancestor: function(fn, testSelf) { - return Y.one(Y_DOM.ancestor(this._node, _wrapFn(fn), testSelf)); - }, + 'children': { + getter: function() { + var node = this._node, + children = node.children, + childNodes, i, len; - /** - * Returns the ancestors that pass the test applied by supplied boolean method. - * @method ancestors - * @param {String | Function} fn A selector string or boolean method for testing elements. - * @param {Boolean} testSelf optional Whether or not to include the element in the scan - * If a function is used, it receives the current node being tested as the only argument. - * @return {NodeList} A NodeList instance containing the matching elements - */ - ancestors: function(fn, testSelf) { - return Y.all(Y_DOM.ancestors(this._node, _wrapFn(fn), testSelf)); - }, + if (!children) { + childNodes = node.childNodes; + children = []; - /** - * Returns the previous matching sibling. - * Returns the nearest element node sibling if no method provided. - * @method previous - * @param {String | Function} fn A selector or boolean method for testing elements. - * If a function is used, it receives the current node being tested as the only argument. - * @return {Node} Node instance or null if not found - */ - previous: function(fn, all) { - return Y.one(Y_DOM.elementByAxis(this._node, 'previousSibling', _wrapFn(fn), all)); + for (i = 0, len = childNodes.length; i < len; ++i) { + if (childNodes[i][TAG_NAME]) { + children[children.length] = childNodes[i]; + } + } + } + return Y.all(children); + } }, - /** - * Returns the next matching sibling. - * Returns the nearest element node sibling if no method provided. - * @method next - * @param {String | Function} fn A selector or boolean method for testing elements. - * If a function is used, it receives the current node being tested as the only argument. - * @return {Node} Node instance or null if not found - */ - next: function(fn, all) { - return Y.one(Y_DOM.elementByAxis(this._node, 'nextSibling', _wrapFn(fn), all)); - }, + value: { + getter: function() { + return Y_DOM.getValue(this._node); + }, - /** - * Returns all matching siblings. - * Returns all siblings if no method provided. - * @method siblings - * @param {String | Function} fn A selector or boolean method for testing elements. - * If a function is used, it receives the current node being tested as the only argument. - * @return {NodeList} NodeList instance bound to found siblings - */ - siblings: function(fn) { - return Y.all(Y_DOM.siblings(this._node, _wrapFn(fn))); - }, + setter: function(val) { + Y_DOM.setValue(this._node, val); + return val; + } + } +}; +Y.Node.importMethod(Y.DOM, [ /** - * Retrieves a Node instance of nodes based on the given CSS selector. - * @method one - * - * @param {string} selector The CSS selector to test against. - * @return {Node} A Node instance for the matching HTMLElement. + * Allows setting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method setAttribute + * @for Node + * @for NodeList + * @chainable + * @param {string} name The attribute name + * @param {string} value The value to set */ - one: function(selector) { - return Y.one(Y.Selector.query(selector, this._node, true)); - }, - + 'setAttribute', /** - * Retrieves a nodeList based on the given CSS selector. - * @method all - * - * @param {string} selector The CSS selector to test against. - * @return {NodeList} A NodeList instance for the matching HTMLCollection/Array. + * Allows getting attributes on DOM nodes, normalizing in some cases. + * This passes through to the DOM node, allowing for custom attributes. + * @method getAttribute + * @for Node + * @for NodeList + * @param {string} name The attribute name + * @return {string} The attribute value */ - all: function(selector) { - var nodelist = Y.all(Y.Selector.query(selector, this._node)); - nodelist._query = selector; - nodelist._queryRoot = this._node; - return nodelist; - }, + 'getAttribute' - // TODO: allow fn test - /** - * Test if the supplied node matches the supplied selector. - * @method test - * - * @param {string} selector The CSS selector to test against. - * @return {boolean} Whether or not the node matches the selector. - */ - test: function(selector) { - return Y.Selector.test(this._node, selector); - }, +]); +/** + * @module node + * @submodule node-base + */ + +var Y_Node = Y.Node; +var Y_NodeList = Y.NodeList; +/** + * List of events that route to DOM events + * @static + * @property DOM_EVENTS + * @for Node + */ + +Y_Node.DOM_EVENTS = { + abort: 1, + beforeunload: 1, + blur: 1, + change: 1, + click: 1, + close: 1, + command: 1, + contextmenu: 1, + dblclick: 1, + DOMMouseScroll: 1, + drag: 1, + dragstart: 1, + dragenter: 1, + dragover: 1, + dragleave: 1, + dragend: 1, + drop: 1, + error: 1, + focus: 1, + key: 1, + keydown: 1, + keypress: 1, + keyup: 1, + load: 1, + message: 1, + mousedown: 1, + mouseenter: 1, + mouseleave: 1, + mousemove: 1, + mousemultiwheel: 1, + mouseout: 1, + mouseover: 1, + mouseup: 1, + mousewheel: 1, + orientationchange: 1, + reset: 1, + resize: 1, + select: 1, + selectstart: 1, + submit: 1, + scroll: 1, + textInput: 1, + unload: 1 +}; + +// Add custom event adaptors to this list. This will make it so +// that delegate, key, available, contentready, etc all will +// be available through Node.on +Y.mix(Y_Node.DOM_EVENTS, Y.Env.evt.plugins); +Y.augment(Y_Node, Y.EventTarget); + +Y.mix(Y_Node.prototype, { /** - * Removes the node from its parent. - * Shortcut for myNode.get('parentNode').removeChild(myNode); - * @method remove - * @param {Boolean} destroy whether or not to call destroy() on the node - * after removal. + * Removes event listeners from the node and (optionally) its subtree + * @method purge + * @param {Boolean} recurse (optional) Whether or not to remove listeners from the + * node's subtree + * @param {String} type (optional) Only remove listeners of the specified type * @chainable * */ - remove: function(destroy) { - var node = this._node; + purge: function(recurse, type) { + Y.Event.purgeElement(this._node, recurse, type); + return this; + } - if (node && node.parentNode) { - node.parentNode.removeChild(node); - } +}); - if (destroy) { - this.destroy(); +Y.mix(Y.NodeList.prototype, { + _prepEvtArgs: function(type, fn, context) { + // map to Y.on/after signature (type, fn, nodes, context, arg1, arg2, etc) + var args = Y.Array(arguments, 0, true); + + if (args.length < 2) { // type only (event hash) just add nodes + args[2] = this._nodes; + } else { + args.splice(2, 0, this._nodes); } - return this; - }, + args[3] = context || this; // default to NodeList instance as context - /** - * Replace the node with the other node. This is a DOM update only - * and does not change the node bound to the Node instance. - * Shortcut for myNode.get('parentNode').replaceChild(newNode, myNode); - * @method replace - * @param {Y.Node || HTMLNode} newNode Node to be inserted - * @chainable - * - */ - replace: function(newNode) { - var node = this._node; - if (typeof newNode == 'string') { - newNode = Y_Node.create(newNode); - } - node.parentNode.replaceChild(Y_Node.getDOMNode(newNode), node); - return this; + return args; }, /** - * @method replaceChild - * @for Node - * @param {String | HTMLElement | Node} node Node to be inserted - * @param {HTMLElement | Node} refNode Node to be replaced - * @return {Node} The replaced node + * Applies an event listener to each Node bound to the NodeList. + * @method on + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @param {Object} context The context to call the handler with. + * param {mixed} arg* 0..n additional arguments to supply to the subscriber + * when the event fires. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on + * @for NodeList */ - replaceChild: function(node, refNode) { - if (typeof node == 'string') { - node = Y_DOM.create(node); - } - - return Y.one(this._node.replaceChild(Y_Node.getDOMNode(node), Y_Node.getDOMNode(refNode))); + on: function(type, fn, context) { + return Y.on.apply(Y, this._prepEvtArgs.apply(this, arguments)); }, /** - * @method appendChild - * @param {String | HTMLElement | Node} node Node to be appended - * @return {Node} The appended node + * Applies an one-time event listener to each Node bound to the NodeList. + * @method once + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on */ - appendChild: function(node) { - return Y_Node.scrubVal(this._insert(node)); + once: function(type, fn, context) { + return Y.once.apply(Y, this._prepEvtArgs.apply(this, arguments)); }, /** - * @method insertBefore - * @param {String | HTMLElement | Node} newNode Node to be appended - * @param {HTMLElement | Node} refNode Node to be inserted before - * @return {Node} The inserted node + * Applies an event listener to each Node bound to the NodeList. + * The handler is called only after all on() handlers are called + * and the event is not prevented. + * @method after + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on */ - insertBefore: function(newNode, refNode) { - return Y.Node.scrubVal(this._insert(newNode, refNode)); + after: function(type, fn, context) { + return Y.after.apply(Y, this._prepEvtArgs.apply(this, arguments)); }, /** - * Removes event listeners from the node and (optionally) its subtree - * @method purge - * @param {Boolean} recurse (optional) Whether or not to remove listeners from the - * node's subtree - * @param {String} type (optional) Only remove listeners of the specified type - * @chainable + * Applies an one-time event listener to each Node bound to the NodeList + * that will be called only after all on() handlers are called and the + * event is not prevented. * + * @method onceAfter + * @param {String} type The event being listened for + * @param {Function} fn The handler to call when the event fires + * @param {Object} context The context to call the handler with. + * Default is the NodeList instance. + * @return {Object} Returns an event handle that can later be use to detach(). + * @see Event.on */ - purge: function(recurse, type) { - Y.Event.purgeElement(this._node, recurse, type); - return this; - }, + onceAfter: function(type, fn, context) { + return Y.onceAfter.apply(Y, this._prepEvtArgs.apply(this, arguments)); + } +}); +Y_NodeList.importMethod(Y.Node.prototype, [ /** - * Nulls internal node references, removes any plugins and event listeners - * @method destroy - * @param {Boolean} recursivePurge (optional) Whether or not to remove listeners from the - * node's subtree (default is false) - * - */ - destroy: function(recursive) { - var UID = Y.config.doc.uniqueID ? 'uniqueID' : '_yuid', - instance; + * Called on each Node instance + * @method detach + * @see Node.detach + */ + 'detach', - this.purge(); // TODO: only remove events add via this Node + /** Called on each Node instance + * @method detachAll + * @see Node.detachAll + */ + 'detachAll' +]); +Y.mix(Y.Node.ATTRS, { + offsetHeight: { + setter: function(h) { + Y.DOM.setHeight(this._node, h); + return h; + }, - if (this.unplug) { // may not be a PluginHost - this.unplug(); + getter: function() { + return this._node.offsetHeight; } + }, - this.clearData(); + offsetWidth: { + setter: function(w) { + Y.DOM.setWidth(this._node, w); + return w; + }, - if (recursive) { - Y.NodeList.each(this.all('*'), function(node) { - instance = Y_Node._instances[node[UID]]; - if (instance) { - instance.destroy(); - } - }); + getter: function() { + return this._node.offsetWidth; } + } +}); - this._node = null; - this._stateProxy = null; +Y.mix(Y.Node.prototype, { + sizeTo: function(w, h) { + var node; + if (arguments.length < 2) { + node = Y.one(w); + w = node.get('offsetWidth'); + h = node.get('offsetHeight'); + } - delete Y_Node._instances[this._yuid]; - }, + this.setAttrs({ + offsetWidth: w, + offsetHeight: h + }); + } +}); +/** + * @module node + * @submodule node-base + */ +var Y_Node = Y.Node; + +Y.mix(Y_Node.prototype, { /** - * Invokes a method on the Node instance - * @method invoke - * @param {String} method The name of the method to invoke - * @param {Any} a, b, c, etc. Arguments to invoke the method with. - * @return Whatever the underly method returns. - * DOM Nodes and Collections return values - * are converted to Node/NodeList instances. - * + * Makes the node visible. + * If the "transition" module is loaded, show optionally + * animates the showing of the node using either the default + * transition effect ('fadeIn'), or the given named effect. + * @method show + * @for Node + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. + * @chainable */ - invoke: function(method, a, b, c, d, e) { - var node = this._node, - ret; - - if (a && Y.instanceOf(a, Y_Node)) { - a = a._node; - } - - if (b && Y.instanceOf(b, Y_Node)) { - b = b._node; - } - - ret = node[method](a, b, c, d, e); - return Y_Node.scrubVal(ret, this); + show: function(callback) { + callback = arguments[arguments.length - 1]; + this.toggleView(true, callback); + return this; }, /** - * Inserts the content before the reference node. - * @method insert - * @param {String | Y.Node | HTMLElement | Y.NodeList | HTMLCollection} content The content to insert - * @param {Int | Y.Node | HTMLElement | String} where The position to insert at. - * Possible "where" arguments - *
                              - *
                              Y.Node
                              - *
                              The Node to insert before
                              - *
                              HTMLElement
                              - *
                              The element to insert before
                              - *
                              Int
                              - *
                              The index of the child element to insert before
                              - *
                              "replace"
                              - *
                              Replaces the existing HTML
                              - *
                              "before"
                              - *
                              Inserts before the existing HTML
                              - *
                              "before"
                              - *
                              Inserts content before the node
                              - *
                              "after"
                              - *
                              Inserts content after the node
                              - *
                              + * The implementation for showing nodes. + * Default is to toggle the style.display property. + * @method _show + * @protected * @chainable */ - insert: function(content, where) { - this._insert(content, where); - return this; + _show: function() { + this.setStyle('display', ''); + }, - _insert: function(content, where) { - var node = this._node, - ret = null; + _isHidden: function() { + return Y.DOM.getStyle(this._node, 'display') === 'none'; + }, - if (typeof where == 'number') { // allow index - where = this._node.childNodes[where]; - } else if (where && where._node) { // Node - where = where._node; + toggleView: function(on, callback) { + this._toggleView.apply(this, arguments); + }, + + _toggleView: function(on, callback) { + callback = arguments[arguments.length - 1]; + + // base on current state if not forcing + if (typeof on != 'boolean') { + on = (this._isHidden()) ? 1 : 0; } - if (content && typeof content != 'string') { // allow Node or NodeList/Array instances - content = content._node || content._nodes || content; + if (on) { + this._show(); + } else { + this._hide(); } - ret = Y_DOM.addHTML(node, content, where); - return ret; + if (typeof callback == 'function') { + callback.call(this); + } + + return this; }, /** - * Inserts the content as the firstChild of the node. - * @method prepend - * @param {String | Y.Node | HTMLElement} content The content to insert + * Hides the node. + * If the "transition" module is loaded, hide optionally + * animates the hiding of the node using either the default + * transition effect ('fadeOut'), or the given named effect. + * @method hide + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. * @chainable */ - prepend: function(content) { - return this.insert(content, 0); + hide: function(callback) { + callback = arguments[arguments.length - 1]; + this.toggleView(false, callback); + return this; }, /** - * Inserts the content as the lastChild of the node. - * @method append - * @param {String | Y.Node | HTMLElement} content The content to insert + * The implementation for hiding nodes. + * Default is to toggle the style.display property. + * @method _hide + * @protected * @chainable */ - append: function(content) { - return this.insert(content, null); - }, + _hide: function() { + this.setStyle('display', 'none'); + } +}); +Y.NodeList.importMethod(Y.Node.prototype, [ /** - * Appends the node to the given node. - * @method appendTo - * @param {Y.Node | HTMLElement} node The node to append to + * Makes each node visible. + * If the "transition" module is loaded, show optionally + * animates the showing of the node using either the default + * transition effect ('fadeIn'), or the given named effect. + * @method show + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. + * @for NodeList * @chainable */ - appendTo: function(node) { - Y.one(node).append(this); - return this; - }, + 'show', /** - * Replaces the node's current content with the content. - * @method setContent - * @param {String | Y.Node | HTMLElement | Y.NodeList | HTMLCollection} content The content to insert + * Hides each node. + * If the "transition" module is loaded, hide optionally + * animates the hiding of the node using either the default + * transition effect ('fadeOut'), or the given named effect. + * @method hide + * @param {String} name A named Transition effect to use as the show effect. + * @param {Object} config Options to use with the transition. + * @param {Function} callback An optional function to run after the transition completes. * @chainable */ - setContent: function(content) { - this._insert(content, 'replace'); - return this; + 'hide', + + 'toggleView' +]); + +if (!Y.config.doc.documentElement.hasAttribute) { // IE < 8 + Y.Node.prototype.hasAttribute = function(attr) { + if (attr === 'value') { + if (this.get('value') !== "") { // IE < 8 fails to populate specified when set in HTML + return true; + } + } + return !!(this._node.attributes[attr] && + this._node.attributes[attr].specified); + }; +} + +// IE throws an error when calling focus() on an element that's invisible, not +// displayed, or disabled. +Y.Node.prototype.focus = function () { + try { + this._node.focus(); + } catch (e) { + } + + return this; +}; + +// IE throws error when setting input.type = 'hidden', +// input.setAttribute('type', 'hidden') and input.attributes.type.value = 'hidden' +Y.Node.ATTRS.type = { + setter: function(val) { + if (val === 'hidden') { + try { + this._node.type = 'hidden'; + } catch(e) { + this.setStyle('display', 'none'); + this._inputType = 'hidden'; + } + } else { + try { // IE errors when changing the type from "hidden' + this._node.type = val; + } catch (e) { + } + } + return val; }, - /** - * Returns the node's current content (e.g. innerHTML) - * @method getContent - * @return {String} The current content - */ - getContent: function(content) { - return this.get('innerHTML'); + getter: function() { + return this._inputType || this._node.type; }, - /** - * @method swap - * @description Swap DOM locations with the given node. - * This does not change which DOM node each Node instance refers to. - * @param {Node} otherNode The node to swap with - * @chainable - */ - swap: Y.config.doc.documentElement.swapNode ? - function(otherNode) { - this._node.swapNode(Y_Node.getDOMNode(otherNode)); - } : - function(otherNode) { - otherNode = Y_Node.getDOMNode(otherNode); - var node = this._node, - parent = otherNode.parentNode, - nextSibling = otherNode.nextSibling; + _bypassProxy: true // don't update DOM when using with Attribute +}; - if (nextSibling === node) { - parent.insertBefore(node, otherNode); - } else if (otherNode === node.nextSibling) { - parent.insertBefore(otherNode, node); - } else { - node.parentNode.replaceChild(otherNode, node); - Y_DOM.addHTML(parent, node, nextSibling); +if (Y.config.doc.createElement('form').elements.nodeType) { + // IE: elements collection is also FORM node which trips up scrubVal. + Y.Node.ATTRS.elements = { + getter: function() { + return this.all('input, textarea, button, select'); } - return this; - }, + }; +} - /** - * @method getData - * @description Retrieves arbitrary data stored on a Node instance. - * This is not stored with the DOM node. - * @param {string} name Optional name of the data field to retrieve. - * If no name is given, all data is returned. - * @return {any | Object} Whatever is stored at the given field, - * or an object hash of all fields. - */ - getData: function(name) { - var ret; - this._data = this._data || {}; - if (arguments.length) { - ret = this._data[name]; - } else { - ret = this._data; - } - return ret; +}, '3.4.0' ,{requires:['dom-base', 'node-core', 'event-base']}); +(function () { +var GLOBAL_ENV = YUI.Env; - }, +if (!GLOBAL_ENV._ready) { + GLOBAL_ENV._ready = function() { + GLOBAL_ENV.DOMReady = true; + GLOBAL_ENV.remove(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); + }; - /** - * @method setData - * @description Stores arbitrary data on a Node instance. - * This is not stored with the DOM node. - * @param {string} name The name of the field to set. If no name - * is given, name is treated as the data and overrides any existing data. - * @param {any} val The value to be assigned to the field. - * @chainable - */ - setData: function(name, val) { - this._data = this._data || {}; - if (arguments.length > 1) { - this._data[name] = val; - } else { - this._data = name; - } + GLOBAL_ENV.add(YUI.config.doc, 'DOMContentLoaded', GLOBAL_ENV._ready); +} +})(); +YUI.add('event-base', function(Y) { - return this; - }, +/* + * DOM event listener abstraction layer + * @module event + * @submodule event-base + */ + +/** + * The domready event fires at the moment the browser's DOM is + * usable. In most cases, this is before images are fully + * downloaded, allowing you to provide a more responsive user + * interface. + * + * In YUI 3, domready subscribers will be notified immediately if + * that moment has already passed when the subscription is created. + * + * One exception is if the yui.js file is dynamically injected into + * the page. If this is done, you must tell the YUI instance that + * you did this in order for DOMReady (and window load events) to + * fire normally. That configuration option is 'injected' -- set + * it to true if the yui.js script is not included inline. + * + * This method is part of the 'event-ready' module, which is a + * submodule of 'event'. + * + * @event domready + * @for YUI + */ +Y.publish('domready', { + fireOnce: true, + async: true +}); + +if (YUI.Env.DOMReady) { + Y.fire('domready'); +} else { + Y.Do.before(function() { Y.fire('domready'); }, YUI.Env, '_ready'); +} - /** - * @method clearData - * @description Clears stored data. - * @param {string} name The name of the field to clear. If no name - * is given, all data is cleared. - * @chainable - */ - clearData: function(name) { - if ('_data' in this) { - if (name) { - delete this._data[name]; - } else { - delete this._data; - } - } +/** + * Custom event engine, DOM event listener abstraction layer, synthetic DOM + * events. + * @module event + * @submodule event-base + */ - return this; - }, +/** + * Wraps a DOM event, properties requiring browser abstraction are + * fixed here. Provids a security layer when required. + * @class DOMEventFacade + * @param ev {Event} the DOM event + * @param currentTarget {HTMLElement} the element the listener was attached to + * @param wrapper {Event.Custom} the custom event wrapper for this DOM event + */ - hasMethod: function(method) { - var node = this._node; - return !!(node && method in node && - typeof node[method] != 'unknown' && - (typeof node[method] == 'function' || - String(node[method]).indexOf('function') === 1)); // IE reports as object, prepends space - }, + var ua = Y.UA, - SHOW_TRANSITION: null, - HIDE_TRANSITION: null, + EMPTY = {}, /** - * Makes the node visible. - * If the "transition" module is loaded, show optionally - * animates the showing of the node using either the default - * transition effect ('fadeIn'), or the given named effect. - * @method show - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable + * webkit key remapping required for Safari < 3.1 + * @property webkitKeymap + * @private */ - show: function(callback) { - callback = arguments[arguments.length - 1]; - this.toggleView(true, callback); - return this; + webkitKeymap = { + 63232: 38, // up + 63233: 40, // down + 63234: 37, // left + 63235: 39, // right + 63276: 33, // page up + 63277: 34, // page down + 25: 9, // SHIFT-TAB (Safari provides a different key code in + // this case, even though the shiftKey modifier is set) + 63272: 46, // delete + 63273: 36, // home + 63275: 35 // end }, /** - * The implementation for showing nodes. - * Default is to toggle the style.display property. - * @protected - * @chainable + * Returns a wrapped node. Intended to be used on event targets, + * so it will return the node's parent if the target is a text + * node. + * + * If accessing a property of the node throws an error, this is + * probably the anonymous div wrapper Gecko adds inside text + * nodes. This likely will only occur when attempting to access + * the relatedTarget. In this case, we now return null because + * the anonymous div is completely useless and we do not know + * what the related target was because we can't even get to + * the element's parent node. + * + * @method resolve + * @private */ - _show: function() { - this.setStyle('display', ''); - - }, + resolve = function(n) { + if (!n) { + return n; + } + try { + if (n && 3 == n.nodeType) { + n = n.parentNode; + } + } catch(e) { + return null; + } - _isHidden: function() { - return Y.DOM.getStyle(this._node, 'display') === 'none'; + return Y.one(n); }, - toggleView: function(on, callback) { - this._toggleView.apply(this, arguments); - }, + DOMEventFacade = function(ev, currentTarget, wrapper) { + this._event = ev; + this._currentTarget = currentTarget; + this._wrapper = wrapper || EMPTY; - _toggleView: function(on, callback) { - callback = arguments[arguments.length - 1]; + // if not lazy init + this.init(); + }; - // base on current state if not forcing - if (typeof on != 'boolean') { - on = (this._isHidden()) ? 1 : 0; - } +Y.extend(DOMEventFacade, Object, { - if (on) { - this._show(); - } else { - this._hide(); - } + init: function() { - if (typeof callback == 'function') { - callback.call(this); - } + var e = this._event, + overrides = this._wrapper.overrides, + x = e.pageX, + y = e.pageY, + c, + currentTarget = this._currentTarget; - return this; - }, + this.altKey = e.altKey; + this.ctrlKey = e.ctrlKey; + this.metaKey = e.metaKey; + this.shiftKey = e.shiftKey; + this.type = (overrides && overrides.type) || e.type; + this.clientX = e.clientX; + this.clientY = e.clientY; - /** - * Hides the node. - * If the "transition" module is loaded, hide optionally - * animates the hiding of the node using either the default - * transition effect ('fadeOut'), or the given named effect. - * @method hide - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable - */ - hide: function(callback) { - callback = arguments[arguments.length - 1]; - this.toggleView(false, callback); - return this; - }, + this.pageX = x; + this.pageY = y; - /** - * The implementation for hiding nodes. - * Default is to toggle the style.display property. - * @protected - * @chainable - */ - _hide: function() { - this.setStyle('display', 'none'); - }, + c = e.keyCode || e.charCode; - isFragment: function() { - return (this.get('nodeType') === 11); - }, + if (ua.webkit && (c in webkitKeymap)) { + c = webkitKeymap[c]; + } - /** - * Removes and destroys all of the nodes within the node. - * @method empty - * @chainable - */ - empty: function() { - this.get('childNodes').remove().destroy(true); - return this; - }, + this.keyCode = c; + this.charCode = c; + this.which = e.which || e.charCode || c; + // this.button = e.button; + this.button = this.which; - /** - * Returns the DOM node bound to the Node instance - * @method getDOMNode - * @return {DOMNode} - */ - getDOMNode: function() { - return this._node; - } -}, true); + this.target = resolve(e.target); + this.currentTarget = resolve(currentTarget); + this.relatedTarget = resolve(e.relatedTarget); -Y.Node = Y_Node; -Y.one = Y.Node.one; -/** - * The NodeList module provides support for managing collections of Nodes. - * @module node - * @submodule nodelist - */ + if (e.type == "mousewheel" || e.type == "DOMMouseScroll") { + this.wheelDelta = (e.detail) ? (e.detail * -1) : Math.round(e.wheelDelta / 80) || ((e.wheelDelta < 0) ? -1 : 1); + } -/** - * The NodeList class provides a wrapper for manipulating DOM NodeLists. - * NodeList properties can be accessed via the set/get methods. - * Use Y.all() to retrieve NodeList instances. - * - * @class NodeList - * @constructor - */ + if (this._touch) { + this._touch(e, currentTarget, this._wrapper); + } + }, -var NodeList = function(nodes) { - var tmp = []; - if (typeof nodes === 'string') { // selector query - this._query = nodes; - nodes = Y.Selector.query(nodes); - } else if (nodes.nodeType || Y_DOM.isWindow(nodes)) { // domNode || window - nodes = [nodes]; - } else if (Y.instanceOf(nodes, Y.Node)) { - nodes = [nodes._node]; - } else if (Y.instanceOf(nodes[0], Y.Node)) { // allow array of Y.Nodes - Y.Array.each(nodes, function(node) { - if (node._node) { - tmp.push(node._node); - } - }); - nodes = tmp; - } else { // array of domNodes or domNodeList (no mixed array of Y.Node/domNodes) - nodes = Y.Array(nodes, 0, true); - } + stopPropagation: function() { + this._event.stopPropagation(); + this._wrapper.stopped = 1; + this.stopped = 1; + }, - /** - * The underlying array of DOM nodes bound to the Y.NodeList instance - * @property _nodes - * @private - */ - this._nodes = nodes; -}; + stopImmediatePropagation: function() { + var e = this._event; + if (e.stopImmediatePropagation) { + e.stopImmediatePropagation(); + } else { + this.stopPropagation(); + } + this._wrapper.stopped = 2; + this.stopped = 2; + }, -NodeList.NAME = 'NodeList'; + preventDefault: function(returnValue) { + var e = this._event; + e.preventDefault(); + e.returnValue = returnValue || false; + this._wrapper.prevented = 1; + this.prevented = 1; + }, -/** - * Retrieves the DOM nodes bound to a NodeList instance - * @method NodeList.getDOMNodes - * @static - * - * @param {Y.NodeList} nodelist The NodeList instance - * @return {Array} The array of DOM nodes bound to the NodeList - */ -NodeList.getDOMNodes = function(nodelist) { - return (nodelist && nodelist._nodes) ? nodelist._nodes : nodelist; -}; + halt: function(immediate) { + if (immediate) { + this.stopImmediatePropagation(); + } else { + this.stopPropagation(); + } -NodeList.each = function(instance, fn, context) { - var nodes = instance._nodes; - if (nodes && nodes.length) { - Y.Array.each(nodes, fn, context || instance); - } else { + this.preventDefault(); } -}; - -NodeList.addMethod = function(name, fn, context) { - if (name && fn) { - NodeList.prototype[name] = function() { - var ret = [], - args = arguments; - Y.Array.each(this._nodes, function(node) { - var UID = (node.uniqueID && node.nodeType !== 9 ) ? 'uniqueID' : '_yuid', - instance = Y.Node._instances[node[UID]], - ctx, - result; +}); - if (!instance) { - instance = NodeList._getTempNode(node); - } - ctx = context || instance; - result = fn.apply(ctx, args); - if (result !== undefined && result !== instance) { - ret[ret.length] = result; - } - }); +DOMEventFacade.resolve = resolve; +Y.DOM2EventFacade = DOMEventFacade; +Y.DOMEventFacade = DOMEventFacade; - // TODO: remove tmp pointer - return ret.length ? ret : this; - }; - } else { - } -}; + /** + * The native event + * @property _event + */ -NodeList.importMethod = function(host, name, altName) { - if (typeof name === 'string') { - altName = altName || name; - NodeList.addMethod(name, host[name]); - } else { - Y.Array.each(name, function(n) { - NodeList.importMethod(host, n); - }); - } -}; + /** + * The X location of the event on the page (including scroll) + * @property pageX + * @type int + */ -NodeList._getTempNode = function(node) { - var tmp = NodeList._tempNode; - if (!tmp) { - tmp = Y.Node.create('
                              '); - NodeList._tempNode = tmp; - } + /** + * The Y location of the event on the page (including scroll) + * @property pageY + * @type int + */ - tmp._node = node; - tmp._stateProxy = node; - return tmp; -}; + /** + * The keyCode for key events. Uses charCode if keyCode is not available + * @property keyCode + * @type int + */ -Y.mix(NodeList.prototype, { /** - * Retrieves the Node instance at the given index. - * @method item - * - * @param {Number} index The index of the target Node. - * @return {Node} The Node instance at the given index. + * The charCode for key events. Same as keyCode + * @property charCode + * @type int */ - item: function(index) { - return Y.one((this._nodes || [])[index]); - }, /** - * Applies the given function to each Node in the NodeList. - * @method each - * @param {Function} fn The function to apply. It receives 3 arguments: - * the current node instance, the node's index, and the NodeList instance - * @param {Object} context optional An optional context to apply the function with - * Default context is the current Node instance - * @chainable + * The button that was pushed. + * @property button + * @type int */ - each: function(fn, context) { - var instance = this; - Y.Array.each(this._nodes, function(node, index) { - node = Y.one(node); - return fn.call(context || node, node, index, instance); - }); - return instance; - }, - batch: function(fn, context) { - var nodelist = this; + /** + * The button that was pushed. Same as button. + * @property which + * @type int + */ - Y.Array.each(this._nodes, function(node, index) { - var instance = Y.Node._instances[node[UID]]; - if (!instance) { - instance = NodeList._getTempNode(node); - } + /** + * Node reference for the targeted element + * @propery target + * @type Node + */ - return fn.call(context || instance, instance, index, nodelist); - }); - return nodelist; - }, + /** + * Node reference for the element that the listener was attached to. + * @propery currentTarget + * @type Node + */ /** - * Executes the function once for each node until a true value is returned. - * @method some - * @param {Function} fn The function to apply. It receives 3 arguments: - * the current node instance, the node's index, and the NodeList instance - * @param {Object} context optional An optional context to execute the function from. - * Default context is the current Node instance - * @return {Boolean} Whether or not the function returned true for any node. + * Node reference to the relatedTarget + * @propery relatedTarget + * @type Node */ - some: function(fn, context) { - var instance = this; - return Y.Array.some(this._nodes, function(node, index) { - node = Y.one(node); - context = context || node; - return fn.call(context, node, index, instance); - }); - }, /** - * Creates a documenFragment from the nodes bound to the NodeList instance - * @method toFrag - * @return Node a Node instance bound to the documentFragment + * Number representing the direction and velocity of the movement of the mousewheel. + * Negative is down, the higher the number, the faster. Applies to the mousewheel event. + * @property wheelDelta + * @type int */ - toFrag: function() { - return Y.one(Y.DOM._nl2frag(this._nodes)); - }, /** - * Returns the index of the node in the NodeList instance - * or -1 if the node isn't found. - * @method indexOf - * @param {Y.Node || DOMNode} node the node to search for - * @return {Int} the index of the node value or -1 if not found + * Stops the propagation to the next bubble target + * @method stopPropagation */ - indexOf: function(node) { - return Y.Array.indexOf(this._nodes, Y.Node.getDOMNode(node)); - }, /** - * Filters the NodeList instance down to only nodes matching the given selector. - * @method filter - * @param {String} selector The selector to filter against - * @return {NodeList} NodeList containing the updated collection - * @see Selector + * Stops the propagation to the next bubble target and + * prevents any additional listeners from being exectued + * on the current target. + * @method stopImmediatePropagation */ - filter: function(selector) { - return Y.all(Y.Selector.filter(this._nodes, selector)); - }, + /** + * Prevents the event's default behavior + * @method preventDefault + * @param returnValue {string} sets the returnValue of the event to this value + * (rather than the default false value). This can be used to add a customized + * confirmation query to the beforeunload event). + */ /** - * Creates a new NodeList containing all nodes at every n indices, where - * remainder n % index equals r. - * (zero-based index). - * @method modulus - * @param {Int} n The offset to use (return every nth node) - * @param {Int} r An optional remainder to use with the modulus operation (defaults to zero) - * @return {NodeList} NodeList containing the updated collection + * Stops the event propagation and prevents the default + * event behavior. + * @method halt + * @param immediate {boolean} if true additional listeners + * on the current target will not be executed */ - modulus: function(n, r) { - r = r || 0; - var nodes = []; - NodeList.each(this, function(node, i) { - if (i % n === r) { - nodes.push(node); - } - }); +(function() { +/** + * DOM event listener abstraction layer + * @module event + * @submodule event-base + */ - return Y.all(nodes); - }, +/** + * The event utility provides functions to add and remove event listeners, + * event cleansing. It also tries to automatically remove listeners it + * registers during the unload event. + * + * @class Event + * @static + */ + +Y.Env.evt.dom_wrappers = {}; +Y.Env.evt.dom_map = {}; - /** - * Creates a new NodeList containing all nodes at odd indices - * (zero-based index). - * @method odd - * @return {NodeList} NodeList containing the updated collection - */ - odd: function() { - return this.modulus(2, 1); - }, +var _eventenv = Y.Env.evt, + config = Y.config, + win = config.win, + add = YUI.Env.add, + remove = YUI.Env.remove, - /** - * Creates a new NodeList containing all nodes at even indices - * (zero-based index), including zero. - * @method even - * @return {NodeList} NodeList containing the updated collection - */ - even: function() { - return this.modulus(2); + onLoad = function() { + YUI.Env.windowLoaded = true; + Y.Event._load(); + remove(win, "load", onLoad); }, - destructor: function() { + onUnload = function() { + Y.Event._unload(); }, - /** - * Reruns the initial query, when created using a selector query - * @method refresh - * @chainable - */ - refresh: function() { - var doc, - nodes = this._nodes, - query = this._query, - root = this._queryRoot; + EVENT_READY = 'domready', - if (query) { - if (!root) { - if (nodes && nodes[0] && nodes[0].ownerDocument) { - root = nodes[0].ownerDocument; - } - } + COMPAT_ARG = '~yui|2|compat~', - this._nodes = Y.Selector.query(query, root); + shouldIterate = function(o) { + try { + return (o && typeof o !== "string" && Y.Lang.isNumber(o.length) && + !o.tagName && !o.alert); + } catch(ex) { + return false; } - return this; }, - _prepEvtArgs: function(type, fn, context) { - // map to Y.on/after signature (type, fn, nodes, context, arg1, arg2, etc) - var args = Y.Array(arguments, 0, true); + // aliases to support DOM event subscription clean up when the last + // subscriber is detached. deleteAndClean overrides the DOM event's wrapper + // CustomEvent _delete method. + _ceProtoDelete = Y.CustomEvent.prototype._delete, + _deleteAndClean = function(s) { + var ret = _ceProtoDelete.apply(this, arguments); - if (args.length < 2) { // type only (event hash) just add nodes - args[2] = this._nodes; - } else { - args.splice(2, 0, this._nodes); + if (!this.subCount && !this.afterCount) { + Y.Event._clean(this); } - args[3] = context || this; // default to NodeList instance as context - - return args; + return ret; }, +Event = function() { + /** - * Applies an event listener to each Node bound to the NodeList. - * @method on - * @param {String} type The event being listened for - * @param {Function} fn The handler to call when the event fires - * @param {Object} context The context to call the handler with. - * Default is the NodeList instance. - * @param {Object} context The context to call the handler with. - * param {mixed} arg* 0..n additional arguments to supply to the subscriber - * when the event fires. - * @return {Object} Returns an event handle that can later be use to detach(). - * @see Event.on + * True after the onload event has fired + * @property _loadComplete + * @type boolean + * @static + * @private */ - on: function(type, fn, context) { - return Y.on.apply(Y, this._prepEvtArgs.apply(this, arguments)); - }, + var _loadComplete = false, /** - * Applies an one-time event listener to each Node bound to the NodeList. - * @method once - * @param {String} type The event being listened for - * @param {Function} fn The handler to call when the event fires - * @param {Object} context The context to call the handler with. - * Default is the NodeList instance. - * @return {Object} Returns an event handle that can later be use to detach(). - * @see Event.on + * The number of times to poll after window.onload. This number is + * increased if additional late-bound handlers are requested after + * the page load. + * @property _retryCount + * @static + * @private */ - once: function(type, fn, context) { - return Y.once.apply(Y, this._prepEvtArgs.apply(this, arguments)); - }, + _retryCount = 0, /** - * Applies an event listener to each Node bound to the NodeList. - * The handler is called only after all on() handlers are called - * and the event is not prevented. - * @method after - * @param {String} type The event being listened for - * @param {Function} fn The handler to call when the event fires - * @param {Object} context The context to call the handler with. - * Default is the NodeList instance. - * @return {Object} Returns an event handle that can later be use to detach(). - * @see Event.on + * onAvailable listeners + * @property _avail + * @static + * @private */ - after: function(type, fn, context) { - return Y.after.apply(Y, this._prepEvtArgs.apply(this, arguments)); - }, + _avail = [], /** - * Returns the current number of items in the NodeList. - * @method size - * @return {Int} The number of items in the NodeList. + * Custom event wrappers for DOM events. Key is + * 'event:' + Element uid stamp + event type + * @property _wrappers + * @type Y.Event.Custom + * @static + * @private */ - size: function() { - return this._nodes.length; - }, + _wrappers = _eventenv.dom_wrappers, + + _windowLoadKey = null, /** - * Determines if the instance is bound to any nodes - * @method isEmpty - * @return {Boolean} Whether or not the NodeList is bound to any nodes + * Custom event wrapper map DOM events. Key is + * Element uid stamp. Each item is a hash of custom event + * wrappers as provided in the _wrappers collection. This + * provides the infrastructure for getListeners. + * @property _el_events + * @static + * @private */ - isEmpty: function() { - return this._nodes.length < 1; - }, + _el_events = _eventenv.dom_map; + + return { + + /** + * The number of times we should look for elements that are not + * in the DOM at the time the event is requested after the document + * has been loaded. The default is 1000@amp;40 ms, so it will poll + * for 40 seconds or until all outstanding handlers are bound + * (whichever comes first). + * @property POLL_RETRYS + * @type int + * @static + * @final + */ + POLL_RETRYS: 1000, + + /** + * The poll interval in milliseconds + * @property POLL_INTERVAL + * @type int + * @static + * @final + */ + POLL_INTERVAL: 40, + + /** + * addListener/removeListener can throw errors in unexpected scenarios. + * These errors are suppressed, the method returns false, and this property + * is set + * @property lastError + * @static + * @type Error + */ + lastError: null, + + + /** + * poll handle + * @property _interval + * @static + * @private + */ + _interval: null, + + /** + * document readystate poll handle + * @property _dri + * @static + * @private + */ + _dri: null, + + /** + * True when the document is initially usable + * @property DOMReady + * @type boolean + * @static + */ + DOMReady: false, + + /** + * @method startInterval + * @static + * @private + */ + startInterval: function() { + if (!Event._interval) { +Event._interval = setInterval(Event._poll, Event.POLL_INTERVAL); + } + }, + + /** + * Executes the supplied callback when the item with the supplied + * id is found. This is meant to be used to execute behavior as + * soon as possible as the page loads. If you use this after the + * initial page load it will poll for a fixed time for the element. + * The number of times it will poll and the frequency are + * configurable. By default it will poll for 10 seconds. + * + *

                              The callback is executed with a single parameter: + * the custom object parameter, if provided.

                              + * + * @method onAvailable + * + * @param {string||string[]} id the id of the element, or an array + * of ids to look for. + * @param {function} fn what to execute when the element is found. + * @param {object} p_obj an optional object to be passed back as + * a parameter to fn. + * @param {boolean|object} p_override If set to true, fn will execute + * in the context of p_obj, if set to an object it + * will execute in the context of that object + * @param checkContent {boolean} check child node readiness (onContentReady) + * @static + * @deprecated Use Y.on("available") + */ + // @TODO fix arguments + onAvailable: function(id, fn, p_obj, p_override, checkContent, compat) { - toString: function() { - var str = '', - errorMsg = this[UID] + ': not bound to any nodes', - nodes = this._nodes, - node; + var a = Y.Array(id), i, availHandle; - if (nodes && nodes[0]) { - node = nodes[0]; - str += node[NODE_NAME]; - if (node.id) { - str += '#' + node.id; - } - if (node.className) { - str += '.' + node.className.replace(' ', '.'); + for (i=0; i 1) { - str += '...[' + nodes.length + ' items]'; - } - } - return str || errorMsg; - }, + // We want the first test to be immediate, but async + setTimeout(Event._poll, 0); - /** - * Returns the DOM node bound to the Node instance - * @method getDOMNodes - * @return {Array} - */ - getDOMNodes: function() { - return this._nodes; - } -}, true); + availHandle = new Y.EventHandle({ -NodeList.importMethod(Y.Node.prototype, [ - /** - * Called on each Node instance - * @for NodeList - * @method append - * @see Node.append - */ - 'append', + _delete: function() { + // set by the event system for lazy DOM listeners + if (availHandle.handle) { + availHandle.handle.detach(); + return; + } - /** Called on each Node instance - * @method destroy - * @see Node.destroy - */ - 'destroy', + var i, j; - /** - * Called on each Node instance - * @method detach - * @see Node.detach - */ - 'detach', + // otherwise try to remove the onAvailable listener(s) + for (i = 0; i < a.length; i++) { + for (j = 0; j < _avail.length; j++) { + if (a[i] === _avail[j].id) { + _avail.splice(j, 1); + } + } + } + } - /** Called on each Node instance - * @method detachAll - * @see Node.detachAll - */ - 'detachAll', + }); - /** Called on each Node instance - * @method empty - * @see Node.empty - */ - 'empty', + return availHandle; + }, - /** Called on each Node instance - * @method insert - * @see Node.insert - */ - 'insert', + /** + * Works the same way as onAvailable, but additionally checks the + * state of sibling elements to determine if the content of the + * available element is safe to modify. + * + *

                              The callback is executed with a single parameter: + * the custom object parameter, if provided.

                              + * + * @method onContentReady + * + * @param {string} id the id of the element to look for. + * @param {function} fn what to execute when the element is ready. + * @param {object} obj an optional object to be passed back as + * a parameter to fn. + * @param {boolean|object} override If set to true, fn will execute + * in the context of p_obj. If an object, fn will + * exectute in the context of that object + * + * @static + * @deprecated Use Y.on("contentready") + */ + // @TODO fix arguments + onContentReady: function(id, fn, obj, override, compat) { + return Event.onAvailable(id, fn, obj, override, true, compat); + }, - /** Called on each Node instance - * @method prepend - * @see Node.prepend - */ - 'prepend', + /** + * Adds an event listener + * + * @method attach + * + * @param {String} type The type of event to append + * @param {Function} fn The method the event invokes + * @param {String|HTMLElement|Array|NodeList} el An id, an element + * reference, or a collection of ids and/or elements to assign the + * listener to. + * @param {Object} context optional context object + * @param {Boolean|object} args 0..n arguments to pass to the callback + * @return {EventHandle} an object to that can be used to detach the listener + * + * @static + */ - /** Called on each Node instance - * @method remove - * @see Node.remove - */ - 'remove', + attach: function(type, fn, el, context) { + return Event._attach(Y.Array(arguments, 0, true)); + }, - /** Called on each Node instance - * @method set - * @see Node.set - */ - 'set', + _createWrapper: function (el, type, capture, compat, facade) { - /** Called on each Node instance - * @method setContent - * @see Node.setContent - */ - 'setContent', + var cewrapper, + ek = Y.stamp(el), + key = 'event:' + ek + type; - /** - * Makes each node visible. - * If the "transition" module is loaded, show optionally - * animates the showing of the node using either the default - * transition effect ('fadeIn'), or the given named effect. - * @method show - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable - */ - 'show', + if (false === facade) { + key += 'native'; + } + if (capture) { + key += 'capture'; + } - /** - * Hides each node. - * If the "transition" module is loaded, hide optionally - * animates the hiding of the node using either the default - * transition effect ('fadeOut'), or the given named effect. - * @method hide - * @param {String} name A named Transition effect to use as the show effect. - * @param {Object} config Options to use with the transition. - * @param {Function} callback An optional function to run after the transition completes. - * @chainable - */ - 'hide', - 'toggleView' -]); + cewrapper = _wrappers[key]; -// one-off implementation to convert array of Nodes to NodeList -// e.g. Y.all('input').get('parentNode'); -/** Called on each Node instance - * @method get - * @see Node - */ -NodeList.prototype.get = function(attr) { - var ret = [], - nodes = this._nodes, - isNodeList = false, - getTemp = NodeList._getTempNode, - instance, - val; + if (!cewrapper) { + // create CE wrapper + cewrapper = Y.publish(key, { + silent: true, + bubbles: false, + contextFn: function() { + if (compat) { + return cewrapper.el; + } else { + cewrapper.nodeRef = cewrapper.nodeRef || Y.one(cewrapper.el); + return cewrapper.nodeRef; + } + } + }); - if (nodes[0]) { - instance = Y.Node._instances[nodes[0]._yuid] || getTemp(nodes[0]); - val = instance._get(attr); - if (val && val.nodeType) { - isNodeList = true; - } - } + cewrapper.overrides = {}; - Y.Array.each(nodes, function(node) { - instance = Y.Node._instances[node._yuid]; + // for later removeListener calls + cewrapper.el = el; + cewrapper.key = key; + cewrapper.domkey = ek; + cewrapper.type = type; + cewrapper.fn = function(e) { + cewrapper.fire(Event.getEvent(e, el, (compat || (false === facade)))); + }; + cewrapper.capture = capture; - if (!instance) { - instance = getTemp(node); - } + if (el == win && type == "load") { + // window load happens once + cewrapper.fireOnce = true; + _windowLoadKey = key; + } + cewrapper._delete = _deleteAndClean; - val = instance._get(attr); - if (!isNodeList) { // convert array of Nodes to NodeList - val = Y.Node.scrubVal(val, instance); - } + _wrappers[key] = cewrapper; + _el_events[ek] = _el_events[ek] || {}; + _el_events[ek][key] = cewrapper; - ret.push(val); - }); + add(el, type, cewrapper.fn, capture); + } - return (isNodeList) ? Y.all(ret) : ret; -}; + return cewrapper; -Y.NodeList = NodeList; + }, -Y.all = function(nodes) { - return new NodeList(nodes); -}; + _attach: function(args, conf) { -Y.Node.all = Y.all; -Y.Array.each([ - /** - * Passes through to DOM method. - * @for Node - * @method removeChild - * @param {HTMLElement | Node} node Node to be removed - * @return {Node} The removed node - */ - 'removeChild', + var compat, + handles, oEl, cewrapper, context, + fireNow = false, ret, + type = args[0], + fn = args[1], + el = args[2] || win, + facade = conf && conf.facade, + capture = conf && conf.capture, + overrides = conf && conf.overrides; - /** - * Passes through to DOM method. - * @method hasChildNodes - * @return {Boolean} Whether or not the node has any childNodes - */ - 'hasChildNodes', + if (args[args.length-1] === COMPAT_ARG) { + compat = true; + } - /** - * Passes through to DOM method. - * @method cloneNode - * @param {Boolean} deep Whether or not to perform a deep clone, which includes - * subtree and attributes - * @return {Node} The clone - */ - 'cloneNode', + if (!fn || !fn.call) { +// throw new TypeError(type + " attach call failed, callback undefined"); + return false; + } - /** - * Passes through to DOM method. - * @method hasAttribute - * @param {String} attribute The attribute to test for - * @return {Boolean} Whether or not the attribute is present - */ - 'hasAttribute', + // The el argument can be an array of elements or element ids. + if (shouldIterate(el)) { - /** - * Passes through to DOM method. - * @method removeAttribute - * @param {String} attribute The attribute to be removed - * @chainable - */ - 'removeAttribute', + handles=[]; - /** - * Passes through to DOM method. - * @method scrollIntoView - * @chainable - */ - 'scrollIntoView', + Y.each(el, function(v, k) { + args[2] = v; + handles.push(Event._attach(args.slice(), conf)); + }); - /** - * Passes through to DOM method. - * @method getElementsByTagName - * @param {String} tagName The tagName to collect - * @return {NodeList} A NodeList representing the HTMLCollection - */ - 'getElementsByTagName', + // return (handles.length === 1) ? handles[0] : handles; + return new Y.EventHandle(handles); - /** - * Passes through to DOM method. - * @method focus - * @chainable - */ - 'focus', + // If the el argument is a string, we assume it is + // actually the id of the element. If the page is loaded + // we convert el to the actual element, otherwise we + // defer attaching the event until the element is + // ready + } else if (Y.Lang.isString(el)) { - /** - * Passes through to DOM method. - * @method blur - * @chainable - */ - 'blur', + // oEl = (compat) ? Y.DOM.byId(el) : Y.Selector.query(el); - /** - * Passes through to DOM method. - * Only valid on FORM elements - * @method submit - * @chainable - */ - 'submit', + if (compat) { + oEl = Y.DOM.byId(el); + } else { - /** - * Passes through to DOM method. - * Only valid on FORM elements - * @method reset - * @chainable - */ - 'reset', + oEl = Y.Selector.query(el); - /** - * Passes through to DOM method. - * @method select - * @chainable - */ - 'select', + switch (oEl.length) { + case 0: + oEl = null; + break; + case 1: + oEl = oEl[0]; + break; + default: + args[2] = oEl; + return Event._attach(args, conf); + } + } - /** - * Passes through to DOM method. - * Only valid on TABLE elements - * @method createCaption - * @chainable - */ - 'createCaption' + if (oEl) { -], function(method) { - Y.Node.prototype[method] = function(arg1, arg2, arg3) { - var ret = this.invoke(method, arg1, arg2, arg3); - return ret; - }; -}); + el = oEl; -Y.Node.importMethod(Y.DOM, [ - /** - * Determines whether the node is an ancestor of another HTML element in the DOM hierarchy. - * @method contains - * @param {Node | HTMLElement} needle The possible node or descendent - * @return {Boolean} Whether or not this node is the needle its ancestor - */ - 'contains', - /** - * Allows setting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method setAttribute - * @for Node - * @for NodeList - * @chainable - * @param {string} name The attribute name - * @param {string} value The value to set - */ - 'setAttribute', - /** - * Allows getting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method getAttribute - * @for Node - * @for NodeList - * @param {string} name The attribute name - * @return {string} The attribute value - */ - 'getAttribute', + // Not found = defer adding the event until the element is available + } else { - /** - * Wraps the given HTML around the node. - * @method wrap - * @param {String} html The markup to wrap around the node. - * @chainable - */ - 'wrap', + ret = Event.onAvailable(el, function() { - /** - * Removes the node's parent node. - * @method unwrap - * @chainable - */ - 'unwrap', + ret.handle = Event._attach(args, conf); - /** - * Applies a unique ID to the node if none exists - * @method generateID - * @return {String} The existing or generated ID - */ - 'generateID' -]); + }, Event, true, false, compat); -Y.NodeList.importMethod(Y.Node.prototype, [ -/** - * Allows getting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method getAttribute - * @see Node - * @for NodeList - * @param {string} name The attribute name - * @return {string} The attribute value - */ + return ret; - 'getAttribute', -/** - * Allows setting attributes on DOM nodes, normalizing in some cases. - * This passes through to the DOM node, allowing for custom attributes. - * @method setAttribute - * @see Node - * @for NodeList - * @chainable - * @param {string} name The attribute name - * @param {string} value The value to set - */ - 'setAttribute', - -/** - * Allows for removing attributes on DOM nodes. - * This passes through to the DOM node, allowing for custom attributes. - * @method removeAttribute - * @see Node - * @for NodeList - * @param {string} name The attribute to remove - */ - 'removeAttribute', -/** - * Removes the parent node from node in the list. - * @method unwrap - * @chainable - */ - 'unwrap', -/** - * Wraps the given HTML around each node. - * @method wrap - * @param {String} html The markup to wrap around the node. - * @chainable - */ - 'wrap', + } + } -/** - * Applies a unique ID to each node if none exists - * @method generateID - * @return {String} The existing or generated ID - */ - 'generateID' -]); -(function(Y) { - var methods = [ - /** - * Determines whether each node has the given className. - * @method hasClass - * @for Node - * @param {String} className the class name to search for - * @return {Boolean} Whether or not the element has the specified class - */ - 'hasClass', + // Element should be an html element or node + if (!el) { + return false; + } + + if (Y.Node && Y.instanceOf(el, Y.Node)) { + el = Y.Node.getDOMNode(el); + } - /** - * Adds a class name to each node. - * @method addClass - * @param {String} className the class name to add to the node's class attribute - * @chainable - */ - 'addClass', + cewrapper = Event._createWrapper(el, type, capture, compat, facade); + if (overrides) { + Y.mix(cewrapper.overrides, overrides); + } - /** - * Removes a class name from each node. - * @method removeClass - * @param {String} className the class name to remove from the node's class attribute - * @chainable - */ - 'removeClass', + if (el == win && type == "load") { - /** - * Replace a class with another class for each node. - * If no oldClassName is present, the newClassName is simply added. - * @method replaceClass - * @param {String} oldClassName the class name to be replaced - * @param {String} newClassName the class name that will be replacing the old class name - * @chainable - */ - 'replaceClass', + // if the load is complete, fire immediately. + // all subscribers, including the current one + // will be notified. + if (YUI.Env.windowLoaded) { + fireNow = true; + } + } - /** - * If the className exists on the node it is removed, if it doesn't exist it is added. - * @method toggleClass - * @param {String} className the class name to be toggled - * @param {Boolean} force Option to force adding or removing the class. - * @chainable - */ - 'toggleClass' - ]; + if (compat) { + args.pop(); + } - Y.Node.importMethod(Y.DOM, methods); - /** - * Determines whether each node has the given className. - * @method hasClass - * @see Node.hasClass - * @for NodeList - * @param {String} className the class name to search for - * @return {Array} An array of booleans for each node bound to the NodeList. - */ + context = args[3]; - /** - * Adds a class name to each node. - * @method addClass - * @see Node.addClass - * @param {String} className the class name to add to the node's class attribute - * @chainable - */ + // set context to the Node if not specified + // ret = cewrapper.on.apply(cewrapper, trimmedArgs); + ret = cewrapper._on(fn, context, (args.length > 4) ? args.slice(4) : null); - /** - * Removes a class name from each node. - * @method removeClass - * @see Node.removeClass - * @param {String} className the class name to remove from the node's class attribute - * @chainable - */ + if (fireNow) { + cewrapper.fire(); + } - /** - * Replace a class with another class for each node. - * If no oldClassName is present, the newClassName is simply added. - * @method replaceClass - * @see Node.replaceClass - * @param {String} oldClassName the class name to be replaced - * @param {String} newClassName the class name that will be replacing the old class name - * @chainable - */ + return ret; - /** - * If the className exists on the node it is removed, if it doesn't exist it is added. - * @method toggleClass - * @see Node.toggleClass - * @param {String} className the class name to be toggled - * @chainable - */ - Y.NodeList.importMethod(Y.Node.prototype, methods); -})(Y); + }, -if (!Y.config.doc.documentElement.hasAttribute) { // IE < 8 - Y.Node.prototype.hasAttribute = function(attr) { - if (attr === 'value') { - if (this.get('value') !== "") { // IE < 8 fails to populate specified when set in HTML - return true; + /** + * Removes an event listener. Supports the signature the event was bound + * with, but the preferred way to remove listeners is using the handle + * that is returned when using Y.on + * + * @method detach + * + * @param {String} type the type of event to remove. + * @param {Function} fn the method the event invokes. If fn is + * undefined, then all event handlers for the type of event are + * removed. + * @param {String|HTMLElement|Array|NodeList|EventHandle} el An + * event handle, an id, an element reference, or a collection + * of ids and/or elements to remove the listener from. + * @return {boolean} true if the unbind was successful, false otherwise. + * @static + */ + detach: function(type, fn, el, obj) { + + var args=Y.Array(arguments, 0, true), compat, l, ok, i, + id, ce; + + if (args[args.length-1] === COMPAT_ARG) { + compat = true; + // args.pop(); } - } - return !!(this._node.attributes[attr] && - this._node.attributes[attr].specified); - }; -} -// IE throws an error when calling focus() on an element that's invisible, not -// displayed, or disabled. -Y.Node.prototype.focus = function () { - try { - this._node.focus(); - } catch (e) { - } + if (type && type.detach) { + return type.detach(); + } - return this; -}; + // The el argument can be a string + if (typeof el == "string") { -// IE throws error when setting input.type = 'hidden', -// input.setAttribute('type', 'hidden') and input.attributes.type.value = 'hidden' -Y.Node.ATTRS.type = { - setter: function(val) { - if (val === 'hidden') { - try { - this._node.type = 'hidden'; - } catch(e) { - this.setStyle('display', 'none'); - this._inputType = 'hidden'; + // el = (compat) ? Y.DOM.byId(el) : Y.all(el); + if (compat) { + el = Y.DOM.byId(el); + } else { + el = Y.Selector.query(el); + l = el.length; + if (l < 1) { + el = null; + } else if (l == 1) { + el = el[0]; + } + } + // return Event.detach.apply(Event, args); } - } else { - try { // IE errors when changing the type from "hidden' - this._node.type = val; - } catch (e) { + + if (!el) { + return false; } - } - return val; - }, - getter: function() { - return this._inputType || this._node.type; - }, + if (el.detach) { + args.splice(2, 1); + return el.detach.apply(el, args); + // The el argument can be an array of elements or element ids. + } else if (shouldIterate(el)) { + ok = true; + for (i=0, l=el.length; i 0); + } -}, '3.4.0' ,{requires:['dom-base', 'selector-css2', 'event-base']}); -YUI.add('node-style', function(Y) { + // onAvailable + notAvail = []; -(function(Y) { -/** - * Extended Node interface for managing node styles. - * @module node - * @submodule node-style - */ + executeItem = function (el, item) { + var context, ov = item.override; + if (item.compat) { + if (item.override) { + if (ov === true) { + context = item.obj; + } else { + context = ov; + } + } else { + context = el; + } + item.fn.call(context, item.obj); + } else { + context = item.obj || Y.one(el); + item.fn.apply(context, (Y.Lang.isArray(ov)) ? ov : []); + } + }; -var methods = [ - /** - * Returns the style's current value. - * @method getStyle - * @for Node - * @param {String} attr The style attribute to retrieve. - * @return {String} The current value of the style property for the element. - */ - 'getStyle', + // onAvailable + for (i=0,len=_avail.length; i 4 ? Y.Array(arguments, 4, true) : null; + return Y.Event.onAvailable.call(Y.Event, id, fn, o, a); } }; /** - * Returns a region object for the node's viewport - * @config viewportRegion - * @type Node + * Executes the callback as soon as the specified element + * is detected in the DOM with a nextSibling property + * (indicating that the element's children are available). + * This function expects a selector + * string for the element(s) to detect. If you already have + * an element reference, you don't need this event. + * @event contentready + * @param type {string} 'contentready' + * @param fn {function} the callback function to execute. + * @param el {string} an selector for the element(s) to attach. + * @param context optional argument that specifies what 'this' refers to. + * @param args* 0..n additional arguments to pass on to the callback function. + * These arguments will be added after the event object. + * @return {EventHandle} the detach handle + * @for YUI */ -Y.Node.ATTRS.viewportRegion = { - getter: function() { - return Y.DOM.viewportRegion(Y.Node.getDOMNode(this)); +Y.Env.evt.plugins.contentready = { + on: function(type, fn, id, o) { + var a = arguments.length > 4 ? Y.Array(arguments, 4, true) : null; + return Y.Event.onContentReady.call(Y.Event, id, fn, o, a); } }; -Y.Node.importMethod(Y.DOM, 'inViewportRegion'); -// these need special treatment to extract 2nd node arg -/** - * Compares the intersection of the node with another node or region - * @method intersect - * @for Node - * @param {Node|Object} node2 The node or region to compare with. - * @param {Object} altRegion An alternate region to use (rather than this node's). - * @return {Object} An object representing the intersection of the regions. - */ -Y.Node.prototype.intersect = function(node2, altRegion) { - var node1 = Y.Node.getDOMNode(this); - if (Y.instanceOf(node2, Y.Node)) { // might be a region object - node2 = Y.Node.getDOMNode(node2); - } - return Y.DOM.intersect(node1, node2, altRegion); -}; +}, '3.4.0' ,{requires:['event-custom-base']}); +YUI.add('pluginhost-base', function(Y) { -/** - * Determines whether or not the node is within the giving region. - * @method inRegion - * @param {Node|Object} node2 The node or region to compare with. - * @param {Boolean} all Whether or not all of the node must be in the region. - * @param {Object} altRegion An alternate region to use (rather than this node's). - * @return {Object} An object representing the intersection of the regions. - */ -Y.Node.prototype.inRegion = function(node2, all, altRegion) { - var node1 = Y.Node.getDOMNode(this); - if (Y.instanceOf(node2, Y.Node)) { // might be a region object - node2 = Y.Node.getDOMNode(node2); + /** + * Provides the augmentable PluginHost interface, which can be added to any class. + * @module pluginhost + */ + + /** + * Provides the augmentable PluginHost interface, which can be added to any class. + * @module pluginhost-base + */ + + /** + *

                              + * An augmentable class, which provides the augmented class with the ability to host plugins. + * It adds plug and unplug methods to the augmented class, which can + * be used to add or remove plugins from instances of the class. + *

                              + * + *

                              Plugins can also be added through the constructor configuration object passed to the host class' constructor using + * the "plugins" property. Supported values for the "plugins" property are those defined by the plug method. + * + * For example the following code would add the AnimPlugin and IOPlugin to Overlay (the plugin host): + *

                              + * var o = new Overlay({plugins: [ AnimPlugin, {fn:IOPlugin, cfg:{section:"header"}}]}); + * + *

                              + *

                              + * Plug.Host's protected _initPlugins and _destroyPlugins + * methods should be invoked by the host class at the appropriate point in the host's lifecyle. + *

                              + * + * @class Plugin.Host + */ + + var L = Y.Lang; + + function PluginHost() { + this._plugins = {}; } - return Y.DOM.inRegion(node1, node2, all, altRegion); -}; + PluginHost.prototype = { + + /** + * Adds a plugin to the host object. This will instantiate the + * plugin and attach it to the configured namespace on the host object. + * + * @method plug + * @chainable + * @param P {Function | Object |Array} Accepts the plugin class, or an + * object with a "fn" property specifying the plugin class and + * a "cfg" property specifying the configuration for the Plugin. + *

                              + * Additionally an Array can also be passed in, with the above function or + * object values, allowing the user to add multiple plugins in a single call. + *

                              + * @param config (Optional) If the first argument is the plugin class, the second argument + * can be the configuration for the plugin. + * @return {Base} A reference to the host object + */ + plug: function(Plugin, config) { + var i, ln, ns; + + if (L.isArray(Plugin)) { + for (i = 0, ln = Plugin.length; i < ln; i++) { + this.plug(Plugin[i]); + } + } else { + if (Plugin && !L.isFunction(Plugin)) { + config = Plugin.cfg; + Plugin = Plugin.fn; + } + + // Plugin should be fn by now + if (Plugin && Plugin.NS) { + ns = Plugin.NS; + + config = config || {}; + config.host = this; + + if (this.hasPlugin(ns)) { + // Update config + this[ns].setAttrs(config); + } else { + // Create new instance + this[ns] = new Plugin(config); + this._plugins[ns] = Plugin; + } + } + } + return this; + }, + + /** + * Removes a plugin from the host object. This will destroy the + * plugin instance and delete the namepsace from the host object. + * + * @method unplug + * @param {String | Function} plugin The namespace of the plugin, or the plugin class with the static NS namespace property defined. If not provided, + * all registered plugins are unplugged. + * @return {Base} A reference to the host object + * @chainable + */ + unplug: function(plugin) { + var ns = plugin, + plugins = this._plugins; + + if (plugin) { + if (L.isFunction(plugin)) { + ns = plugin.NS; + if (ns && (!plugins[ns] || plugins[ns] !== plugin)) { + ns = null; + } + } + + if (ns) { + if (this[ns]) { + this[ns].destroy(); + delete this[ns]; + } + if (plugins[ns]) { + delete plugins[ns]; + } + } + } else { + for (ns in this._plugins) { + if (this._plugins.hasOwnProperty(ns)) { + this.unplug(ns); + } + } + } + return this; + }, + + /** + * Determines if a plugin has plugged into this host. + * + * @method hasPlugin + * @param {String} ns The plugin's namespace + * @return {boolean} returns true, if the plugin has been plugged into this host, false otherwise. + */ + hasPlugin : function(ns) { + return (this._plugins[ns] && this[ns]); + }, -}, '3.4.0' ,{requires:['node-base', 'dom-screen']}); -YUI.add('node-pluginhost', function(Y) { + /** + * Initializes static plugins registered on the host (using the + * Base.plug static method) and any plugins passed to the + * instance through the "plugins" configuration property. + * + * @method _initPlugins + * @param {Config} config The configuration object with property name/value pairs. + * @private + */ + + _initPlugins: function(config) { + this._plugins = this._plugins || {}; -/** - * Registers plugins to be instantiated at the class level (plugins - * which should be plugged into every instance of Node by default). - * - * @method Node.plug - * @static - * - * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) - * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin - */ -Y.Node.plug = function() { - var args = Y.Array(arguments); - args.unshift(Y.Node); - Y.Plugin.Host.plug.apply(Y.Base, args); - return Y.Node; -}; + if (this._initConfigPlugins) { + this._initConfigPlugins(config); + } + }, -/** - * Unregisters any class level plugins which have been registered by the Node - * - * @method Node.unplug - * @static - * - * @param {Function | Array} plugin The plugin class, or an array of plugin classes - */ -Y.Node.unplug = function() { - var args = Y.Array(arguments); - args.unshift(Y.Node); - Y.Plugin.Host.unplug.apply(Y.Base, args); - return Y.Node; -}; + /** + * Unplugs and destroys all plugins on the host + * @method _destroyPlugins + * @private + */ + _destroyPlugins: function() { + this.unplug(); + } + }; -Y.mix(Y.Node, Y.Plugin.Host, false, null, 1); + Y.namespace("Plugin").Host = PluginHost; -// allow batching of plug/unplug via NodeList -// doesn't use NodeList.importMethod because we need real Nodes (not tmpNode) -Y.NodeList.prototype.plug = function() { - var args = arguments; - Y.NodeList.each(this, function(node) { - Y.Node.prototype.plug.apply(Y.one(node), args); - }); -}; -Y.NodeList.prototype.unplug = function() { - var args = arguments; - Y.NodeList.each(this, function(node) { - Y.Node.prototype.unplug.apply(Y.one(node), args); - }); -}; +}, '3.4.0' ,{requires:['yui-base']}); +YUI.add('pluginhost-config', function(Y) { + /** + * Adds pluginhost constructor configuration and static configuration support + * @submodule pluginhost-config + */ -}, '3.4.0' ,{requires:['node-base', 'pluginhost']}); -YUI.add('node-event-delegate', function(Y) { + var PluginHost = Y.Plugin.Host, + L = Y.Lang; -/** - * Functionality to make the node a delegated event container - * @module node - * @submodule node-event-delegate - */ + /** + * A protected initialization method, used by the host class to initialize + * plugin configurations passed the constructor, through the config object. + * + * Host objects should invoke this method at the appropriate time in their + * construction lifecycle. + * + * @method _initConfigPlugins + * @param {Object} config The configuration object passed to the constructor + * @protected + * @for Plugin.Host + */ + PluginHost.prototype._initConfigPlugins = function(config) { -/** - *

                              Sets up a delegation listener for an event occurring inside the Node. - * The delegated event will be verified against a supplied selector or - * filtering function to test if the event references at least one node that - * should trigger the subscription callback.

                              - * - *

                              Selector string filters will trigger the callback if the event originated - * from a node that matches it or is contained in a node that matches it. - * Function filters are called for each Node up the parent axis to the - * subscribing container node, and receive at each level the Node and the event - * object. The function should return true (or a truthy value) if that Node - * should trigger the subscription callback. Note, it is possible for filters - * to match multiple Nodes for a single event. In this case, the delegate - * callback will be executed for each matching Node.

                              - * - *

                              For each matching Node, the callback will be executed with its 'this' - * object set to the Node matched by the filter (unless a specific context was - * provided during subscription), and the provided event's - * currentTarget will also be set to the matching Node. The - * containing Node from which the subscription was originally made can be - * referenced as e.container. - * - * @method delegate - * @param type {String} the event type to delegate - * @param fn {Function} the callback function to execute. This function - * will be provided the event object for the delegated event. - * @param spec {String|Function} a selector that must match the target of the - * event or a function to test target and its parents for a match - * @param context {Object} optional argument that specifies what 'this' refers to. - * @param args* {any} 0..n additional arguments to pass on to the callback function. - * These arguments will be added after the event object. - * @return {EventHandle} the detach handle - * @for Node - */ -Y.Node.prototype.delegate = function(type) { + // Class Configuration + var classes = (this._getClasses) ? this._getClasses() : [this.constructor], + plug = [], + unplug = {}, + constructor, i, classPlug, classUnplug, pluginClassName; - var args = Y.Array(arguments, 0, true), - index = (Y.Lang.isObject(type) && !Y.Lang.isArray(type)) ? 1 : 2; + // TODO: Room for optimization. Can we apply statically/unplug in same pass? + for (i = classes.length - 1; i >= 0; i--) { + constructor = classes[i]; - args.splice(index, 0, this._node); + classUnplug = constructor._UNPLUG; + if (classUnplug) { + // subclasses over-write + Y.mix(unplug, classUnplug, true); + } - return Y.delegate.apply(Y, args); -}; + classPlug = constructor._PLUG; + if (classPlug) { + // subclasses over-write + Y.mix(plug, classPlug, true); + } + } + for (pluginClassName in plug) { + if (plug.hasOwnProperty(pluginClassName)) { + if (!unplug[pluginClassName]) { + this.plug(plug[pluginClassName]); + } + } + } -}, '3.4.0' ,{requires:['node-base', 'event-delegate']}); + // User Configuration + if (config && config.plugins) { + this.plug(config.plugins); + } + }; + + /** + * Registers plugins to be instantiated at the class level (plugins + * which should be plugged into every instance of the class by default). + * + * @method Plugin.Host.plug + * @static + * + * @param {Function} hostClass The host class on which to register the plugins + * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) + * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin + */ + PluginHost.plug = function(hostClass, plugin, config) { + // Cannot plug into Base, since Plugins derive from Base [ will cause infinite recurrsion ] + var p, i, l, name; + + if (hostClass !== Y.Base) { + hostClass._PLUG = hostClass._PLUG || {}; + + if (!L.isArray(plugin)) { + if (config) { + plugin = {fn:plugin, cfg:config}; + } + plugin = [plugin]; + } + + for (i = 0, l = plugin.length; i < l;i++) { + p = plugin[i]; + name = p.NAME || p.fn.NAME; + hostClass._PLUG[name] = p; + } + } + }; + /** + * Unregisters any class level plugins which have been registered by the host class, or any + * other class in the hierarchy. + * + * @method Plugin.Host.unplug + * @static + * + * @param {Function} hostClass The host class from which to unregister the plugins + * @param {Function | Array} plugin The plugin class, or an array of plugin classes + */ + PluginHost.unplug = function(hostClass, plugin) { + var p, i, l, name; + + if (hostClass !== Y.Base) { + hostClass._UNPLUG = hostClass._UNPLUG || {}; + + if (!L.isArray(plugin)) { + plugin = [plugin]; + } + + for (i = 0, l = plugin.length; i < l; i++) { + p = plugin[i]; + name = p.NAME; + if (!hostClass._PLUG[name]) { + hostClass._UNPLUG[name] = p; + } else { + delete hostClass._PLUG[name]; + } + } + } + }; -YUI.add('node', function(Y){}, '3.4.0' ,{skinnable:false, use:['node-base', 'node-style', 'node-screen', 'node-pluginhost', 'node-event-delegate']}); +}, '3.4.0' ,{requires:['pluginhost-base']}); YUI.add('event-delegate', function(Y) { /** @@ -18417,825 +14744,440 @@ Y.delegate = Y.Event.delegate = delegate; }, '3.4.0' ,{requires:['node-base']}); -YUI.add('io-base', function(Y) { - - /** - * Base IO functionality. Provides basic XHR transport support. - * @module io - * @submodule io-base - */ - - /** - * The io class is a utility that brokers HTTP requests through a simplified - * interface. Specifically, it allows JavaScript to make HTTP requests to - * a resource without a page reload. The underlying transport for making - * same-domain requests is the XMLHttpRequest object. YUI.io can also use - * Flash, if specified as a transport, for cross-domain requests. - * - * @class io - */ - - /** - * @event io:start - * @description This event is fired by YUI.io when a transaction is initiated. - * @type Event Custom - */ - var E_START = 'io:start', - - /** - * @event io:complete - * @description This event is fired by YUI.io when a transaction is complete. - * Response status and data are accessible, if available. - * @type Event Custom - */ - E_COMPLETE = 'io:complete', - - /** - * @event io:success - * @description This event is fired by YUI.io when a transaction is complete, and - * the HTTP status resolves to HTTP2xx. - * @type Event Custom - */ - E_SUCCESS = 'io:success', - - /** - * @event io:failure - * @description This event is fired by YUI.io when a transaction is complete, and - * the HTTP status resolves to HTTP4xx, 5xx and above. - * @type Event Custom - */ - E_FAILURE = 'io:failure', - - /** - * @event io:end - * @description This event signifies the end of the transaction lifecycle. The - * transaction transport is destroyed. - * @type Event Custom - */ - E_END = 'io:end', - - //-------------------------------------- - // Properties - //-------------------------------------- - /** - * @description A transaction counter that increments for each transaction. - * - * @property transactionId - * @private - * @static - * @type int - */ - transactionId = 0, - - /** - * @description Object of default HTTP headers to be initialized and sent - * for all transactions. - * - * @property _headers - * @private - * @static - * @type object - */ - _headers = { - 'X-Requested-With' : 'XMLHttpRequest' - }, - - /** - * @description Object that stores timeout values for any transaction with - * a defined "timeout" configuration property. - * - * @property _timeout - * @private - * @static - * @type object - */ - _timeout = {}, - - // Window reference - w = Y.config.win; - - //-------------------------------------- - // Methods - //-------------------------------------- - - /** - * @description Method that creates the XMLHttpRequest transport - * - * @method _xhr - * @private - * @static - * @return object - */ - function _xhr() { - return w.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); - } - - /** - * @description Method that increments _transactionId for each transaction. - * - * @method _id - * @private - * @static - * @return int - */ - function _id() { - var id = transactionId; - - transactionId++; - - return id; - } - - /** - * @description Method that creates a unique transaction object for each - * request. - * - * @method _create - * @private - * @static - * @param {number} c - configuration object subset to determine if - * the transaction is an XDR or file upload, - * requiring an alternate transport. - * @param {number} i - transaction id - * @return object - */ - function _create(c, i) { - var o = {}; - o.id = Y.Lang.isNumber(i) ? i : _id(); - c = c || {}; - - if (!c.use && !c.upload) { - o.c = _xhr(); - } - else if (c.use) { - if (c.use === 'native') { - if (w.XDomainRequest) { - o.c = new XDomainRequest(); - o.t = c.use; - } - else { - o.c = _xhr(); - } - } - else { - o.c = Y.io._transport[c.use]; - o.t = c.use; - } - } - else { - o.c = {}; - o.t = 'io:iframe'; - } - - return o; - } - - - function _destroy(o) { - if (w) { - if (o.c && w.XMLHttpRequest) { - o.c.onreadystatechange = null; - } - else if (Y.UA.ie === 6 && !o.t) { - // IE, when using XMLHttpRequest as an ActiveX Object, will throw - // a "Type Mismatch" error if the event handler is set to "null". - o.c.abort(); - } - } - - o.c = null; - o = null; - } - - /** - * @description Method for creating and subscribing transaction events. - * - * @method _tE - * @private - * @static - * @param {string} e - event to be published - * @param {object} c - configuration data subset for event subscription. - * - * @return void - */ - function _tE(e, c) { - var eT = new Y.EventTarget().publish('transaction:' + e), - cT = c.context || Y, - a = c.arguments; +YUI.add('node-event-delegate', function(Y) { - if (a) { - eT.on(c.on[e], cT, a); - } - else { - eT.on(c.on[e], cT); - } +/** + * Functionality to make the node a delegated event container + * @module node + * @submodule node-event-delegate + */ - return eT; - } +/** + *

                              Sets up a delegation listener for an event occurring inside the Node. + * The delegated event will be verified against a supplied selector or + * filtering function to test if the event references at least one node that + * should trigger the subscription callback.

                              + * + *

                              Selector string filters will trigger the callback if the event originated + * from a node that matches it or is contained in a node that matches it. + * Function filters are called for each Node up the parent axis to the + * subscribing container node, and receive at each level the Node and the event + * object. The function should return true (or a truthy value) if that Node + * should trigger the subscription callback. Note, it is possible for filters + * to match multiple Nodes for a single event. In this case, the delegate + * callback will be executed for each matching Node.

                              + * + *

                              For each matching Node, the callback will be executed with its 'this' + * object set to the Node matched by the filter (unless a specific context was + * provided during subscription), and the provided event's + * currentTarget will also be set to the matching Node. The + * containing Node from which the subscription was originally made can be + * referenced as e.container. + * + * @method delegate + * @param type {String} the event type to delegate + * @param fn {Function} the callback function to execute. This function + * will be provided the event object for the delegated event. + * @param spec {String|Function} a selector that must match the target of the + * event or a function to test target and its parents for a match + * @param context {Object} optional argument that specifies what 'this' refers to. + * @param args* {any} 0..n additional arguments to pass on to the callback function. + * These arguments will be added after the event object. + * @return {EventHandle} the detach handle + * @for Node + */ +Y.Node.prototype.delegate = function(type) { - /** - * @description Fires event "io:start" and creates, fires a - * transaction-specific start event, if config.on.start is - * defined. - * - * @method _ioStart - * @private - * @static - * @param {number} id - transaction id - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioStart(id, c) { - var a = c.arguments; + var args = Y.Array(arguments, 0, true), + index = (Y.Lang.isObject(type) && !Y.Lang.isArray(type)) ? 1 : 2; - if (a) { - Y.fire(E_START, id, a); - } - else { - Y.fire(E_START, id); - } + args.splice(index, 0, this._node); - if (c.on && c.on.start) { - _tE('start', c).fire(id); - } - } + return Y.delegate.apply(Y, args); +}; - /** - * @description Fires event "io:complete" and creates, fires a - * transaction-specific "complete" event, if config.on.complete is - * defined. - * - * @method _ioComplete - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioComplete(o, c) { - var r = o.e ? { status: 0, statusText: o.e } : o.c, - a = c.arguments; +}, '3.4.0' ,{requires:['node-base', 'event-delegate']}); +YUI.add('node-pluginhost', function(Y) { - if (a) { - Y.fire(E_COMPLETE, o.id, r, a); - } - else { - Y.fire(E_COMPLETE, o.id, r); - } +/** + * @module node + * @submodule node-pluginhost + */ - if (c.on && c.on.complete) { - _tE('complete', c).fire(o.id, r); - } - } +/** + * Registers plugins to be instantiated at the class level (plugins + * which should be plugged into every instance of Node by default). + * + * @method plug + * @static + * @for Node + * @param {Function | Array} plugin Either the plugin class, an array of plugin classes or an array of objects (with fn and cfg properties defined) + * @param {Object} config (Optional) If plugin is the plugin class, the configuration for the plugin + */ +Y.Node.plug = function() { + var args = Y.Array(arguments); + args.unshift(Y.Node); + Y.Plugin.Host.plug.apply(Y.Base, args); + return Y.Node; +}; - /** - * @description Fires event "io:end" and creates, fires a - * transaction-specific "end" event, if config.on.end is - * defined. - * - * @method _ioEnd - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioEnd(o, c) { - var a = c.arguments; +/** + * Unregisters any class level plugins which have been registered by the Node + * + * @method unplug + * @static + * + * @param {Function | Array} plugin The plugin class, or an array of plugin classes + */ +Y.Node.unplug = function() { + var args = Y.Array(arguments); + args.unshift(Y.Node); + Y.Plugin.Host.unplug.apply(Y.Base, args); + return Y.Node; +}; - if (a) { - Y.fire(E_END, o.id, a); - } - else { - Y.fire(E_END, o.id); - } +Y.mix(Y.Node, Y.Plugin.Host, false, null, 1); - if (c.on && c.on.end) { - _tE('end', c).fire(o.id); - } +// allow batching of plug/unplug via NodeList +// doesn't use NodeList.importMethod because we need real Nodes (not tmpNode) +Y.NodeList.prototype.plug = function() { + var args = arguments; + Y.NodeList.each(this, function(node) { + Y.Node.prototype.plug.apply(Y.one(node), args); + }); +}; - _destroy(o); - } +Y.NodeList.prototype.unplug = function() { + var args = arguments; + Y.NodeList.each(this, function(node) { + Y.Node.prototype.unplug.apply(Y.one(node), args); + }); +}; - /** - * @description Fires event "io:success" and creates, fires a - * transaction-specific "success" event, if config.on.success is - * defined. - * - * @method _ioSuccess - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioSuccess(o, c) { - var a = c.arguments; - if (a) { - Y.fire(E_SUCCESS, o.id, o.c, a); - } - else { - Y.fire(E_SUCCESS, o.id, o.c); - } +}, '3.4.0' ,{requires:['node-base', 'pluginhost']}); +YUI.add('node-screen', function(Y) { - if (c.on && c.on.success) { - _tE('success', c).fire(o.id, o.c); - } +/** + * Extended Node interface for managing regions and screen positioning. + * Adds support for positioning elements and normalizes window size and scroll detection. + * @module node + * @submodule node-screen + */ - _ioEnd(o, c); - } +// these are all "safe" returns, no wrapping required +Y.each([ + /** + * Returns the inner width of the viewport (exludes scrollbar). + * @config winWidth + * @for Node + * @type {Int} + */ + 'winWidth', - /** - * @description Fires event "io:failure" and creates, fires a - * transaction-specific "failure" event, if config.on.failure is - * defined. - * - * @method _ioFailure - * @private - * @static - * @param {object} o - transaction object. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _ioFailure(o, c) { - var r = o.e ? { status: 0, statusText: o.e } : o.c, - a = c.arguments; + /** + * Returns the inner height of the viewport (exludes scrollbar). + * @config winHeight + * @type {Int} + */ + 'winHeight', - if (a) { - Y.fire(E_FAILURE, o.id, r, a); - } - else { - Y.fire(E_FAILURE, o.id, r); - } + /** + * Document width + * @config winHeight + * @type {Int} + */ + 'docWidth', - if (c.on && c.on.failure) { - _tE('failure', c).fire(o.id, r); - } + /** + * Document height + * @config docHeight + * @type {Int} + */ + 'docHeight', - _ioEnd(o, c); - } + /** + * Pixel distance the page has been scrolled horizontally + * @config docScrollX + * @type {Int} + */ + 'docScrollX', - /** - * @description Resends an XDR transaction, using the Flash tranport, - * if the native transport fails. - * - * @method _resend - * @private - * @static + /** + * Pixel distance the page has been scrolled vertically + * @config docScrollY + * @type {Int} + */ + 'docScrollY' + ], + function(name) { + Y.Node.ATTRS[name] = { + getter: function() { + var args = Array.prototype.slice.call(arguments); + args.unshift(Y.Node.getDOMNode(this)); - * @param {object} o - Transaction object generated by _create(). - * @param {string} uri - qualified path to transaction resource. - * @param {object} c - configuration object for the transaction. - * - * @return void - */ - function _resend(o, uri, c, d) { - _destroy(o); - c.xdr.use = 'flash'; - // If the original request included serialized form data and - // additional data are defined in the configuration, it must - // be reset to prevent data duplication. - c.data = c.form && d ? d : null; - - return Y.io(uri, c, o.id); + return Y.DOM[name].apply(this, args); + } + }; } +); - /** - * @description Method that concatenates string data for HTTP GET transactions. - * - * @method _concat - * @private - * @static - * @param {string} s - URI or root data. - * @param {string} d - data to be concatenated onto URI. - * @return int - */ - function _concat(s, d) { - s += (s.indexOf('?') === -1 ? '?' : '&') + d; - return s; - } +Y.Node.ATTRS.scrollLeft = { + getter: function() { + var node = Y.Node.getDOMNode(this); + return ('scrollLeft' in node) ? node.scrollLeft : Y.DOM.docScrollX(node); + }, - /** - * @description Method that stores default client headers for all transactions. - * If a label is passed with no value argument, the header will be deleted. - * - * @method _setHeader - * @private - * @static - * @param {string} l - HTTP header - * @param {string} v - HTTP header value - * @return int - */ - function _setHeader(l, v) { - if (v) { - _headers[l] = v; - } - else { - delete _headers[l]; + setter: function(val) { + var node = Y.Node.getDOMNode(this); + if (node) { + if ('scrollLeft' in node) { + node.scrollLeft = val; + } else if (node.document || node.nodeType === 9) { + Y.DOM._getWin(node).scrollTo(val, Y.DOM.docScrollY(node)); // scroll window if win or doc + } + } else { } } +}; - /** - * @description Method that sets all HTTP headers to be sent in a transaction. - * - * @method _setHeaders - * @private - * @static - * @param {object} o - XHR instance for the specific transaction. - * @param {object} h - HTTP headers for the specific transaction, as defined - * in the configuration object passed to YUI.io(). - * @return void - */ - function _setHeaders(o, h) { - var p; - h = h || {}; - - for (p in _headers) { - if (_headers.hasOwnProperty(p)) { - if (!h[p]) { - h[p] = _headers[p]; - } - } - } +Y.Node.ATTRS.scrollTop = { + getter: function() { + var node = Y.Node.getDOMNode(this); + return ('scrollTop' in node) ? node.scrollTop : Y.DOM.docScrollY(node); + }, - for (p in h) { - if (h.hasOwnProperty(p)) { - if (h[p] !== 'disable') { - o.setRequestHeader(p, h[p]); - } - } + setter: function(val) { + var node = Y.Node.getDOMNode(this); + if (node) { + if ('scrollTop' in node) { + node.scrollTop = val; + } else if (node.document || node.nodeType === 9) { + Y.DOM._getWin(node).scrollTo(Y.DOM.docScrollX(node), val); // scroll window if win or doc + } + } else { } } +}; - /** - * @description Terminates a transaction due to an explicit abort or - * timeout. - * - * @method _ioCancel - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {string} s - Identifies timed out or aborted transaction. - * - * @return void - */ - function _ioCancel(o, s) { - if (o && o.c) { - o.e = s; - o.c.abort(); - } - } +Y.Node.importMethod(Y.DOM, [ +/** + * Gets the current position of the node in page coordinates. + * @method getXY + * @for Node + * @return {Array} The XY position of the node +*/ + 'getXY', - /** - * @description Starts timeout count if the configuration object - * has a defined timeout property. - * - * @method _startTimeout - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {object} t - Timeout in milliseconds. - * @return void - */ - function _startTimeout(o, t) { - _timeout[o.id] = w.setTimeout(function() { _ioCancel(o, 'timeout'); }, t); - } +/** + * Set the position of the node in page coordinates, regardless of how the node is positioned. + * @method setXY + * @param {Array} xy Contains X & Y values for new position (coordinates are page-based) + * @chainable + */ + 'setXY', - /** - * @description Clears the timeout interval started by _startTimeout(). - * - * @method _clearTimeout - * @private - * @static - * @param {number} id - Transaction id. - * @return void - */ - function _clearTimeout(id) { - w.clearTimeout(_timeout[id]); - delete _timeout[id]; - } +/** + * Gets the current position of the node in page coordinates. + * @method getX + * @return {Int} The X position of the node +*/ + 'getX', - /** - * @description Method that determines if a transaction response qualifies - * as success or failure, based on the response HTTP status code, and - * fires the appropriate success or failure events. - * - * @method _handleResponse - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {object} c - Configuration object passed to io(). - * @return void - */ - function _handleResponse(o, c) { - var status = o.c.status; +/** + * Set the position of the node in page coordinates, regardless of how the node is positioned. + * @method setX + * @param {Int} x X value for new position (coordinates are page-based) + * @chainable + */ + 'setX', - // IE reports HTTP 204 as HTTP 1223. - if (status === 0 && o.c.responseText || status === 1223) { - status = 200; - } +/** + * Gets the current position of the node in page coordinates. + * @method getY + * @return {Int} The Y position of the node +*/ + 'getY', - if (status >= 200 && status < 300) { - _ioSuccess(o, c); - } - else { - _ioFailure(o, c); - } - } +/** + * Set the position of the node in page coordinates, regardless of how the node is positioned. + * @method setY + * @param {Int} y Y value for new position (coordinates are page-based) + * @chainable + */ + 'setY', - /** - * @description Event handler bound to onreadystatechange. - * - * @method _readyState - * @private - * @static - * @param {object} o - Transaction object generated by _create(). - * @param {object} c - Configuration object passed to YUI.io(). - * @return void - */ - function _readyState(o, c) { - if (o.c.readyState === 4) { - if (c.timeout) { - _clearTimeout(o.id); - } +/** + * Swaps the XY position of this node with another node. + * @method swapXY + * @param {Y.Node || HTMLElement} otherNode The node to swap with. + * @chainable + */ + 'swapXY' +]); - w.setTimeout( - function() { - _ioComplete(o, c); - _handleResponse(o, c); - }, 0); - } - } +/** + * @module node + * @submodule node-screen + */ - /** - * @description Method for requesting a transaction. _io() is implemented as - * yui.io(). Each transaction may include a configuration object. Its - * properties are: - * - * method: HTTP method verb (e.g., GET or POST). If this property is not - * not defined, the default value will be GET. - * - * data: This is the name-value string that will be sent as the transaction - * data. If the request is HTTP GET, the data become part of - * querystring. If HTTP POST, the data are sent in the message body. - * - * xdr: Defines the transport to be used for cross-domain requests. By - * setting this property, the transaction will use the specified - * transport instead of XMLHttpRequest. - * The properties are: - * { - * use: Specify the transport to be used: 'flash' and 'native' - * dataType: Set the value to 'XML' if that is the expected - * response content type. - * } - * - * - * form: This is a defined object used to process HTML form as data. The - * properties are: - * { - * id: Node object or id of HTML form. - * useDisabled: Boolean value to allow disabled HTML form field - * values to be sent as part of the data. - * } - * - * on: This is a defined object used to create and handle specific - * events during a transaction lifecycle. These events will fire in - * addition to the global io events. The events are: - * start - This event is fired when a request is sent to a resource. - * complete - This event fires when the transaction is complete. - * success - This event fires when the response status resolves to - * HTTP 2xx. - * failure - This event fires when the response status resolves to - * HTTP 4xx, 5xx; and, for all transaction exceptions, - * including aborted transactions and transaction timeouts. - * end - This even is fired at the conclusion of the transaction - * lifecycle, after a success or failure resolution. - * - * The properties are: - * { - * start: function(id, arguments){}, - * complete: function(id, responseobject, arguments){}, - * success: function(id, responseobject, arguments){}, - * failure: function(id, responseobject, arguments){}, - * end: function(id, arguments){} - * } - * Each property can reference a function or be written as an - * inline function. - * - * sync: To enable synchronous transactions, set the configuration property - * "sync" to true; the default behavior is false. Synchronous - * transactions are limited to same-domain requests only. - * - * context: Object reference for all defined transaction event handlers - * when it is implemented as a method of a base object. Defining - * "context" will set the reference of "this," used in the - * event handlers, to the context value. In the case where - * different event handlers all have different contexts, - * use Y.bind() to set the execution context, bypassing this - * configuration. - * - * headers: This is a defined object of client headers, as many as. - * desired for the transaction. The object pattern is: - * { 'header': 'value' }. - * - * timeout: This value, defined as milliseconds, is a time threshold for the - * transaction. When this threshold is reached, and the transaction's - * Complete event has not yet fired, the transaction will be aborted. - * - * arguments: Object, array, string, or number passed to all registered - * event handlers. This value is available as the second - * argument in the "start" and "abort" event handlers; and, it is - * the third argument in the "complete", "success", and "failure" - * event handlers. - * - * @method _io - * @private - * @static - * @param {string} uri - qualified path to transaction resource. - * @param {object} c - configuration object for the transaction. - * @param {number} i - transaction id, if already set. - * @return object - */ - function _io(uri, c, i) { - var f, o, d, m, r, s, oD, a, j, usr, pwd, - u = uri; - c = Y.Object(c) || {}; - o = _create(c.xdr || c.form, i); - usr = c.username || null; - pwd = c.password || null; - m = c.method ? c.method = c.method.toUpperCase() : c.method = 'GET'; - s = c.sync; - oD = c.data; - - // Serialize an object into a key-value string using - // querystring-stringify-simple. - c.data = (Y.Lang.isObject(c.data) && Y.QueryString) ? Y.QueryString.stringify(c.data) : c.data; - - if (c.form) { - if (c.form.upload) { - // This is a file upload transaction, calling - // upload() in io-upload-iframe. - return Y.io.upload(o, uri, c); - } - else { - // Serialize HTML form data into a key-value string. - f = Y.io._serialize(c.form, c.data); - if (m === 'POST' || m === 'PUT') { - c.data = f; - } - else if (m === 'GET') { - uri = _concat(uri, f); - } +/** + * Returns a region object for the node + * @config region + * @for Node + * @type Node + */ +Y.Node.ATTRS.region = { + getter: function() { + var node = this.getDOMNode(), + region; + + if (node && !node.tagName) { + if (node.nodeType === 9) { // document + node = node.documentElement; } } + if (Y.DOM.isWindow(node)) { + region = Y.DOM.viewportRegion(node); + } else { + region = Y.DOM.region(node); + } + return region; + } +}; - if (c.data) { - switch (m) { - case 'GET': - case 'HEAD': - case 'DELETE': - uri = _concat(uri, c.data); - c.data = null; - break; - case 'POST': - case 'PUT': - // If Content-Type is defined in the configuration object, or - // or as a default header, it will be used instead of - // 'application/x-www-form-urlencoded; charset=UTF-8' - c.headers = Y.merge({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, c.headers); - break; - } - } +/** + * Returns a region object for the node's viewport + * @config viewportRegion + * @type Node + */ +Y.Node.ATTRS.viewportRegion = { + getter: function() { + return Y.DOM.viewportRegion(Y.Node.getDOMNode(this)); + } +}; - if (o.t) { - // Cross-domain request or custom transport detected. - return Y.io.xdr(uri, o, c); - } +Y.Node.importMethod(Y.DOM, 'inViewportRegion'); - if (!s) { - o.c.onreadystatechange = function() { _readyState(o, c); }; - } +// these need special treatment to extract 2nd node arg +/** + * Compares the intersection of the node with another node or region + * @method intersect + * @for Node + * @param {Node|Object} node2 The node or region to compare with. + * @param {Object} altRegion An alternate region to use (rather than this node's). + * @return {Object} An object representing the intersection of the regions. + */ +Y.Node.prototype.intersect = function(node2, altRegion) { + var node1 = Y.Node.getDOMNode(this); + if (Y.instanceOf(node2, Y.Node)) { // might be a region object + node2 = Y.Node.getDOMNode(node2); + } + return Y.DOM.intersect(node1, node2, altRegion); +}; - try { - // Determine if request is to be set as - // synchronous or asynchronous. - o.c.open(m, uri, s ? false : true, usr, pwd); - _setHeaders(o.c, c.headers); - _ioStart(o.id, c); - - // Will work only in browsers that implement the - // Cross-Origin Resource Sharing draft. - if (c.xdr && c.xdr.credentials) { - if (!Y.UA.ie) { - o.c.withCredentials = true; - } - } +/** + * Determines whether or not the node is within the giving region. + * @method inRegion + * @param {Node|Object} node2 The node or region to compare with. + * @param {Boolean} all Whether or not all of the node must be in the region. + * @param {Object} altRegion An alternate region to use (rather than this node's). + * @return {Object} An object representing the intersection of the regions. + */ +Y.Node.prototype.inRegion = function(node2, all, altRegion) { + var node1 = Y.Node.getDOMNode(this); + if (Y.instanceOf(node2, Y.Node)) { // might be a region object + node2 = Y.Node.getDOMNode(node2); + } + return Y.DOM.inRegion(node1, node2, all, altRegion); +}; - // Using "null" with HTTP POST will result in a request - // with no Content-Length header defined. - o.c.send(c.data || ''); - if (s) { - // Create a response object for synchronous transactions, - // merging ID and arguments fields into a single object. - d = o.c; - a = ['status', 'statusText', 'responseText', 'responseXML']; - r = c.arguments ? { id: o.id, arguments: c.arguments } : { id: o.id }; - r.getAllResponseHeaders = function() { return d.getAllResponseHeaders(); }; - r.getResponseHeader = function(h) { return d.getResponseHeader(h); }; +}, '3.4.0' ,{requires:['node-base', 'dom-screen']}); +YUI.add('node-style', function(Y) { - for (j = 0; j < 4; j++) { - r[a[j]] = o.c[a[j]]; - } +(function(Y) { +/** + * Extended Node interface for managing node styles. + * @module node + * @submodule node-style + */ - _ioComplete(o, c); - _handleResponse(o, c); +var methods = [ + /** + * Returns the style's current value. + * @method getStyle + * @for Node + * @param {String} attr The style attribute to retrieve. + * @return {String} The current value of the style property for the element. + */ + 'getStyle', - return r; - } - } - catch(e) { - if (c.xdr && c.xdr.use === 'native') { - // This exception is usually thrown by browsers - // that do not support XMLHttpRequest Level 2. - // Retry the request with the XDR transport set - // to 'flash'. If the Flash transport is not - // initialized or available, the transaction - // will resolve to a transport error. - return _resend(o, u, c, oD); - } - else { - _ioComplete(o, c); - _handleResponse(o, c); - } - } + /** + * Returns the computed value for the given style property. + * @method getComputedStyle + * @param {String} attr The style attribute to retrieve. + * @return {String} The computed value of the style property for the element. + */ + 'getComputedStyle', - // If config.timeout is defined, and the request is standard XHR, - // initialize timeout polling. - if (c.timeout) { - _startTimeout(o, c.timeout); - } + /** + * Sets a style property of the node. + * @method setStyle + * @param {String} attr The style attribute to set. + * @param {String|Number} val The value. + * @chainable + */ + 'setStyle', - return { - id: o.id, - abort: function() { - return o.c ? _ioCancel(o, 'abort') : false; - }, - isInProgress: function() { - return o.c ? o.c.readyState !== 4 && o.c.readyState !== 0 : false; - } - }; - } + /** + * Sets multiple style properties on the node. + * @method setStyles + * @param {Object} hash An object literal of property:value pairs. + * @chainable + */ + 'setStyles' +]; +Y.Node.importMethod(Y.DOM, methods); +/** + * Returns an array of values for each node. + * @method getStyle + * @for NodeList + * @see Node.getStyle + * @param {String} attr The style attribute to retrieve. + * @return {Array} The current values of the style property for the element. + */ - _io.start = _ioStart; - _io.complete = _ioComplete; - _io.success = _ioSuccess; - _io.failure = _ioFailure; - _io.end = _ioEnd; - _io._id = _id; - _io._timeout = _timeout; - - //-------------------------------------- - // Begin public interface definition - //-------------------------------------- - /** - * @description Method that stores default client headers for all transactions. - * If a label is passed with no value argument, the header will be deleted. - * This is the interface for _setHeader(). - * - * @method header - * @public - * @static - * @param {string} l - HTTP header - * @param {string} v - HTTP header value - * @return int - */ - _io.header = _setHeader; +/** + * Returns an array of the computed value for each node. + * @method getComputedStyle + * @see Node.getComputedStyle + * @param {String} attr The style attribute to retrieve. + * @return {Array} The computed values for each node. + */ - /** - * @description Method for requesting a transaction. This - * is the interface for _io(). - * - * @method io - * @public - * @static - * @param {string} uri - qualified path to transaction resource. - * @param {object} c - configuration object for the transaction. - * @return object - */ - Y.io = _io; - Y.io.http = _io; +/** + * Sets a style property on each node. + * @method setStyle + * @see Node.setStyle + * @param {String} attr The style attribute to set. + * @param {String|Number} val The value. + * @chainable + */ +/** + * Sets multiple style properties on each node. + * @method setStyles + * @see Node.setStyles + * @param {Object} hash An object literal of property:value pairs. + * @chainable + */ +Y.NodeList.importMethod(Y.Node.prototype, methods); +})(Y); -}, '3.4.0' ,{requires:['event-custom-base', 'querystring-stringify-simple']}); +}, '3.4.0' ,{requires:['dom-style', 'node-base']}); YUI.add('querystring-stringify-simple', function(Y) { /*global Y */ @@ -19297,6 +15239,673 @@ QueryString.stringify = function (obj, c) { }, '3.4.0' ,{requires:['yui-base']}); +YUI.add('io-base', function(Y) { + + /** + * Base IO functionality. Provides basic XHR transport support. + * @module io + * @submodule io-base + */ + + // Window reference + var L = Y.Lang, + // List of events that comprise the IO event lifecycle. + E = ['start', 'complete', 'end', 'success', 'failure'], + // Whitelist of used XHR response object properties. + P = ['status', 'statusText', 'responseText', 'responseXML'], + aH = 'getAllResponseHeaders', + oH = 'getResponseHeader', + w = Y.config.win, + xhr = w.XMLHttpRequest, + xdr = w.XDomainRequest, + _i = 0; + + /** + * The io class is a utility that brokers HTTP requests through a simplified + * interface. Specifically, it allows JavaScript to make HTTP requests to + * a resource without a page reload. The underlying transport for making + * same-domain requests is the XMLHttpRequest object. YUI.io can also use + * Flash, if specified as a transport, for cross-domain requests. + * + * @class IO + * @constructor + * @param {object} c - Object of EventTarget's publish method configurations + * used to configure IO's events. + */ + function IO (c) { + var io = this; + + io._uid = 'io:' + _i++; + io._init(c); + Y.io._map[io._uid] = io; + } + + IO.prototype = { + //-------------------------------------- + // Properties + //-------------------------------------- + + /** + * @description A counter that increments for each transaction. + * + * @property _id + * @private + * @type int + */ + _id: 0, + + /** + * @description Object of IO HTTP headers sent with each transaction. + * + * @property _headers + * @private + * @type object + */ + _headers: { + 'X-Requested-With' : 'XMLHttpRequest' + }, + + /** + * @description Object that stores timeout values for any transaction with + * a defined "timeout" configuration property. + * + * @property _timeout + * @private + * @type object + */ + _timeout: {}, + + //-------------------------------------- + // Methods + //-------------------------------------- + + _init: function(c) { + var io = this, i; + + io.cfg = c || {}; + + Y.augment(io, Y.EventTarget); + for (i = 0; i < 5; i++) { + // Publish IO global events with configurations, if any. + // IO global events are set to broadcast by default. + // These events use the "io:" namespace. + io.publish('io:' + E[i], Y.merge({ broadcast: 1 }, c)); + // Publish IO transaction events with configurations, if + // any. These events use the "io-trn:" namespace. + io.publish('io-trn:' + E[i], c); + } + }, + + /** + * @description Method that creates a unique transaction object for each + * request. + * + * @method _create + * @private + * @param {number} c - configuration object subset to determine if + * the transaction is an XDR or file upload, + * requiring an alternate transport. + * @param {number} i - transaction id + * @return object + */ + _create: function(c, i) { + var io = this, + o = { id: L.isNumber(i) ? i : io._id++, uid: io._uid }, + x = c.xdr, + u = x ? x.use : c.form && c.form.upload ? 'iframe' : 'xhr', + ie = (x && x.use === 'native' && xdr), + t = io._transport; + + switch (u) { + case 'native': + case 'xhr': + o.c = ie ? new xdr() : xhr ? new xhr() : new ActiveXObject('Microsoft.XMLHTTP'); + o.t = ie ? true : false; + break; + default: + o.c = t ? t[u] : {}; + o.t = true; + } + + return o; + }, + + _destroy: function(o) { + if (w) { + if (xhr && o.t === true) { + o.c.onreadystatechange = null; + } + else if (Y.UA.ie) { + // IE, when using XMLHttpRequest as an ActiveX Object, will throw + // a "Type Mismatch" error if the event handler is set to "null". + o.c.abort(); + } + } + + o.c = null; + o = null; + }, + + /** + * @description Method for creating and firing events. + * + * @method _evt + * @private + * @param {string} e - event to be published. + * @param {object} o - transaction object. + * @param {object} c - configuration data subset for event subscription. + * + * @return void + */ + _evt: function(e, o, c) { + var io = this, + a = c['arguments'], + eF = io.cfg.emitFacade, + // Use old-style parameters or use an Event Facade + p = eF ? [{ id: o.id, data: o.c, cfg: c, arguments: a }] : [o.id], + // IO Global events namespace. + gE = "io:" + e, + // IO Transaction events namespace. + tE = "io-trn:" + e; + + if (!eF) { + if (e === E[0] || e === E[2]) { + if (a) { + p.push(a); + } + } + else { + a ? p.push(o.c, a) : p.push(o.c); + } + } + + p.unshift(gE); + io.fire.apply(io, p); + if (c.on) { + p[0] = tE; + io.once(tE, c.on[e], c.context || Y); + io.fire.apply(io, p); + } + }, + + /** + * @description Fires event "io:start" and creates, fires a + * transaction-specific start event, if config.on.start is + * defined. + * + * @method start + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + start: function(o, c) { + this._evt(E[0], o, c); + }, + + /** + * @description Fires event "io:complete" and creates, fires a + * transaction-specific "complete" event, if config.on.complete is + * defined. + * + * @method complete + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + complete: function(o, c) { + this._evt(E[1], o, c); + }, + + /** + * @description Fires event "io:end" and creates, fires a + * transaction-specific "end" event, if config.on.end is + * defined. + * + * @method end + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + end: function(o, c) { + this._evt(E[2], o, c); + this._destroy(o); + }, + + /** + * @description Fires event "io:success" and creates, fires a + * transaction-specific "success" event, if config.on.success is + * defined. + * + * @method success + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + success: function(o, c) { + this._evt(E[3], o, c); + this.end(o, c); + }, + + /** + * @description Fires event "io:failure" and creates, fires a + * transaction-specific "failure" event, if config.on.failure is + * defined. + * + * @method failure + * @public + * @param {object} o - transaction object. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + failure: function(o, c) { + this._evt(E[4], o, c); + this.end(o, c); + }, + + /** + * @description Retry an XDR transaction, using the Flash tranport, + * if the native transport fails. + * + * @method _retry + * @private + + * @param {object} o - Transaction object generated by _create(). + * @param {string} uri - qualified path to transaction resource. + * @param {object} c - configuration object for the transaction. + * + * @return void + */ + _retry: function(o, uri, c) { + this._destroy(o); + c.xdr.use = 'flash'; + return this.send(uri, c, o.id); + }, + + /** + * @description Method that concatenates string data for HTTP GET transactions. + * + * @method _concat + * @private + * @param {string} s - URI or root data. + * @param {string} d - data to be concatenated onto URI. + * @return int + */ + _concat: function(s, d) { + s += (s.indexOf('?') === -1 ? '?' : '&') + d; + return s; + }, + + /** + * @description Method that stores default client headers for all transactions. + * If a label is passed with no value argument, the header will be deleted. + * + * @method _setHeader + * @private + * @param {string} l - HTTP header + * @param {string} v - HTTP header value + * @return int + */ + setHeader: function(l, v) { + if (v) { + this._headers[l] = v; + } + else { + delete this._headers[l]; + } + }, + + /** + * @description Method that sets all HTTP headers to be sent in a transaction. + * + * @method _setHeaders + * @private + * @param {object} o - XHR instance for the specific transaction. + * @param {object} h - HTTP headers for the specific transaction, as defined + * in the configuration object passed to YUI.io(). + * @return void + */ + _setHeaders: function(o, h) { + h = Y.merge(this._headers, h); + Y.Object.each(h, function(v, p) { + if (v !== 'disable') { + o.setRequestHeader(p, h[p]); + } + }); + }, + + /** + * @description Starts timeout count if the configuration object + * has a defined timeout property. + * + * @method _startTimeout + * @private + * @param {object} o - Transaction object generated by _create(). + * @param {object} t - Timeout in milliseconds. + * @return void + */ + _startTimeout: function(o, t) { + var io = this; + io._timeout[o.id] = w.setTimeout(function() { io._abort(o, 'timeout'); }, t); + }, + + /** + * @description Clears the timeout interval started by _startTimeout(). + * + * @method _clearTimeout + * @private + * @param {number} id - Transaction id. + * @return void + */ + _clearTimeout: function(id) { + w.clearTimeout(this._timeout[id]); + delete this._timeout[id]; + }, + + /** + * @description Method that determines if a transaction response qualifies + * as success or failure, based on the response HTTP status code, and + * fires the appropriate success or failure events. + * + * @method _result + * @private + * @static + * @param {object} o - Transaction object generated by _create(). + * @param {object} c - Configuration object passed to io(). + * @return void + */ + _result: function(o, c) { + var s = o.c.status; + + // IE reports HTTP 204 as HTTP 1223. + if (s >= 200 && s < 300 || s === 1223) { + this.success(o, c); + } + else { + this.failure(o, c); + } + }, + + /** + * @description Event handler bound to onreadystatechange. + * + * @method _rS + * @private + * @param {object} o - Transaction object generated by _create(). + * @param {object} c - Configuration object passed to YUI.io(). + * @return void + */ + _rS: function(o, c) { + var io = this; + + if (o.c.readyState === 4) { + if (c.timeout) { + io._clearTimeout(o.id); + } + + // Yield in the event of request timeout or abort. + w.setTimeout(function() { io.complete(o, c); io._result(o, c); }, 0); + } + }, + + /** + * @description Terminates a transaction due to an explicit abort or + * timeout. + * + * @method _abort + * @private + * @param {object} o - Transaction object generated by _create(). + * @param {string} s - Identifies timed out or aborted transaction. + * + * @return void + */ + _abort: function(o, s) { + if (o && o.c) { + o.e = s; + o.c.abort(); + } + }, + + /** + * @description Method for requesting a transaction. send() is implemented as + * yui.io(). Each transaction may include a configuration object. Its + * properties are: + * + * method: HTTP method verb (e.g., GET or POST). If this property is not + * not defined, the default value will be GET. + * + * data: This is the name-value string that will be sent as the transaction + * data. If the request is HTTP GET, the data become part of + * querystring. If HTTP POST, the data are sent in the message body. + * + * xdr: Defines the transport to be used for cross-domain requests. By + * setting this property, the transaction will use the specified + * transport instead of XMLHttpRequest. + * The properties are: + * { + * use: Specify the transport to be used: 'flash' and 'native' + * dataType: Set the value to 'XML' if that is the expected + * response content type. + * } + * + * + * form: This is a defined object used to process HTML form as data. The + * properties are: + * { + * id: Node object or id of HTML form. + * useDisabled: Boolean value to allow disabled HTML form field + * values to be sent as part of the data. + * } + * + * on: This is a defined object used to create and handle specific + * events during a transaction lifecycle. These events will fire in + * addition to the global io events. The events are: + * start - This event is fired when a request is sent to a resource. + * complete - This event fires when the transaction is complete. + * success - This event fires when the response status resolves to + * HTTP 2xx. + * failure - This event fires when the response status resolves to + * HTTP 4xx, 5xx; and, for all transaction exceptions, + * including aborted transactions and transaction timeouts. + * end - This even is fired at the conclusion of the transaction + * lifecycle, after a success or failure resolution. + * + * The properties are: + * { + * start: function(id, arguments){}, + * complete: function(id, responseobject, arguments){}, + * success: function(id, responseobject, arguments){}, + * failure: function(id, responseobject, arguments){}, + * end: function(id, arguments){} + * } + * Each property can reference a function or be written as an + * inline function. + * + * sync: To enable synchronous transactions, set the configuration property + * "sync" to true. Synchronous requests are limited to same-domain + * requests only. + * + * context: Object reference for all defined transaction event handlers + * when it is implemented as a method of a base object. Defining + * "context" will set the reference of "this," used in the + * event handlers, to the context value. In the case where + * different event handlers all have different contexts, + * use Y.bind() to set the execution context, instead. + * + * headers: This is a defined object of client headers, as many as + * desired for this specific transaction. The object pattern is: + * { 'header': 'value' }. + * + * timeout: This value, defined as milliseconds, is a time threshold for the + * transaction. When this threshold is reached, and the transaction's + * Complete event has not yet fired, the transaction will be aborted. + * + * arguments: User-defined data passed to all registered event handlers. + * This value is available as the second argument in the "start" + * and "end" event handlers. It is the third argument in the + * "complete", "success", and "failure" event handlers. + * + * @method send + * @private + * @ + * @param {string} uri - qualified path to transaction resource. + * @param {object} c - configuration object for the transaction. + * @param {number} i - transaction id, if already set. + * @return object + */ + send: function(uri, c, i) { + var o, m, r, s, d, io = this, + u = uri; + c = c ? Y.Object(c) : {}; + o = io._create(c, i); + m = c.method ? c.method.toUpperCase() : 'GET'; + s = c.sync; + d = c.data; + + // Serialize an object into a key-value string using + // querystring-stringify-simple. + if (L.isObject(d)) { + d = Y.QueryString.stringify(d); + } + + if (c.form) { + if (c.form.upload) { + // This is a file upload transaction, calling + // upload() in io-upload-iframe. + return io.upload(o, uri, c); + } + else { + // Serialize HTML form data into a key-value string. + d = io._serialize(c.form, d); + } + } + + if (d) { + switch (m) { + case 'GET': + case 'HEAD': + case 'DELETE': + u = io._concat(u, d); + d = ''; + break; + case 'POST': + case 'PUT': + // If Content-Type is defined in the configuration object, or + // or as a default header, it will be used instead of + // 'application/x-www-form-urlencoded; charset=UTF-8' + c.headers = Y.merge({ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, c.headers); + break; + } + } + + if (o.t) { + // Cross-domain request or custom transport configured. + return io.xdr(u, o, c); + } + + if (!s) { + o.c.onreadystatechange = function() { io._rS(o, c); }; + } + + try { + // Determine if request is to be set as + // synchronous or asynchronous. + o.c.open(m, u, s ? false : true, c.username || null, c.password || null); + io._setHeaders(o.c, c.headers || {}); + io.start(o, c); + + // Will work only in browsers that implement the + // Cross-Origin Resource Sharing draft. + if (c.xdr && c.xdr.credentials) { + if (!Y.UA.ie) { + o.c.withCredentials = true; + } + } + + // Using "null" with HTTP POST will result in a request + // with no Content-Length header defined. + o.c.send(d); + + if (s) { + // Create a response object for synchronous transactions, + // mixing id and arguments properties with the xhr + // properties whitelist. + r = Y.mix({ id: o.id, 'arguments': c['arguments'] }, o.c, false, P); + r[aH] = function() { return o.c[aH](); }; + r[oH] = function(h) { return o.c[oH](h); }; + io.complete(o, c); + io._result(o, c); + + return r; + } + } + catch(e) { + if (o.t) { + // This exception is usually thrown by browsers + // that do not support XMLHttpRequest Level 2. + // Retry the request with the XDR transport set + // to 'flash'. If the Flash transport is not + // initialized or available, the transaction + // will resolve to a transport error. + return io._retry(o, uri, c); + } + else { + io.complete(o, c); + io._result(o, c); + } + } + + // If config.timeout is defined, and the request is standard XHR, + // initialize timeout polling. + if (c.timeout) { + io._startTimeout(o, c.timeout); + } + + return { + id: o.id, + abort: function() { + return o.c ? io._abort(o, 'abort') : false; + }, + isInProgress: function() { + return o.c ? o.c.readyState !== 4 && o.c.readyState !== 0 : false; + }, + io: io + }; + } + }; + + /** + * @description Method for requesting a transaction. + * + * @method io + * @public + * @static + * @param {string} u - qualified path to transaction resource. + * @param {object} c - configuration object for the transaction. + * @return object + */ + Y.io = function(u, c) { + // Calling IO through the static interface will use and reuse + // an instance of IO. + var o = Y.io._map['io:0'] || new IO(); + return o.send.apply(o, [u, c]); + }; + + Y.IO = IO; + // Map of all IO instances created. + Y.io._map = {}; + + + +}, '3.4.0' ,{requires:['event-custom-base', 'querystring-stringify-simple']}); YUI.add('json-parse', function(Y) { /** @@ -19349,8 +15958,7 @@ function fromGlobal(ref) { * @private */ var _JSON = fromGlobal('JSON'), - // Create an indirect reference to eval to allow for minification - _eval = fromGlobal('eval'), + Native = (Object.prototype.toString.call(_JSON) === '[object JSON]' && _JSON), useNative = !!Native, @@ -19482,7 +16090,7 @@ var _JSON = fromGlobal('JSON'), // Eval the text into a JavaScript data structure, apply any // reviver function, and return - return _revive( _eval('(' + s + ')'), reviver ); + return _revive( eval('(' + s + ')'), reviver ); } throw new SyntaxError('JSON.parse'); @@ -19527,7 +16135,7 @@ Y.JSON.useNativeParse = useNative; }, '3.4.0' ); -YUI.add('transition-native', function(Y) { +YUI.add('transition', function(Y) { /** * Provides the transition method for Node. @@ -19537,19 +16145,32 @@ YUI.add('transition-native', function(Y) { * @requires node-style */ -var TRANSITION = '-webkit-transition', - TRANSITION_CAMEL = 'WebkitTransition', - TRANSITION_PROPERTY_CAMEL = 'WebkitTransitionProperty', - TRANSITION_PROPERTY = '-webkit-transition-property', - TRANSITION_DURATION = '-webkit-transition-duration', - TRANSITION_TIMING_FUNCTION = '-webkit-transition-timing-function', - TRANSITION_DELAY = '-webkit-transition-delay', - TRANSITION_END = 'webkitTransitionEnd', - ON_TRANSITION_END = 'onwebkittransitionend', - TRANSFORM_CAMEL = 'WebkitTransform', +var CAMEL_VENDOR_PREFIX = '', + VENDOR_PREFIX = '', + DOCUMENT = Y.config.doc, + DOCUMENT_ELEMENT = 'documentElement', + TRANSITION = 'transition', + TRANSITION_CAMEL = 'Transition', + TRANSITION_PROPERTY_CAMEL, + TRANSITION_PROPERTY, + TRANSITION_DURATION, + TRANSITION_TIMING_FUNCTION, + TRANSITION_DELAY, + TRANSITION_END, + ON_TRANSITION_END, + TRANSFORM_CAMEL, EMPTY_OBJ = {}, + VENDORS = [ + 'Webkit', + 'Moz' + ], + + VENDOR_TRANSITION_END = { + Webkit: 'webkitTransitionEnd' + }, + /** * A class for constructing transition instances. * Adds the "transition" method to Node. @@ -19561,11 +16182,6 @@ Transition = function() { this.init.apply(this, arguments); }; -Transition.fx = {}; -Transition.toggles = {}; - -Transition._hasEnd = {}; - Transition._toCamel = function(property) { property = property.replace(/-([a-z])/gi, function(m0, m1) { return m1.toUpperCase(); @@ -19576,11 +16192,7 @@ Transition._toCamel = function(property) { Transition._toHyphen = function(property) { property = property.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g, function(m0, m1, m2, m3) { - var str = ''; - if (m1) { - str += '-' + m1.toLowerCase(); - } - str += m2; + var str = ((m1) ? '-' + m1.toLowerCase() : '') + m2; if (m3) { str += '-' + m3.toLowerCase(); @@ -19592,15 +16204,42 @@ Transition._toHyphen = function(property) { return property; }; - -Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; +Transition.SHOW_TRANSITION = 'fadeIn'; +Transition.HIDE_TRANSITION = 'fadeOut'; Transition.useNative = false; -if (TRANSITION in Y.config.doc.documentElement.style) { - Transition.useNative = true; - Transition.supported = true; // TODO: remove -} +Y.Array.each(VENDORS, function(val) { // then vendor specific + var property = val + TRANSITION_CAMEL; + if (property in DOCUMENT[DOCUMENT_ELEMENT].style) { + CAMEL_VENDOR_PREFIX = val; + VENDOR_PREFIX = Transition._toHyphen(val) + '-'; + + Transition.useNative = true; + Transition.supported = true; // TODO: remove + Transition._VENDOR_PREFIX = val; + } +}); + +TRANSITION_CAMEL = CAMEL_VENDOR_PREFIX + TRANSITION_CAMEL; +TRANSITION_PROPERTY_CAMEL = CAMEL_VENDOR_PREFIX + 'TransitionProperty'; +TRANSITION_PROPERTY = VENDOR_PREFIX + 'transition-property'; +TRANSITION_DURATION = VENDOR_PREFIX + 'transition-duration'; +TRANSITION_TIMING_FUNCTION = VENDOR_PREFIX + 'transition-timing-function'; +TRANSITION_DELAY = VENDOR_PREFIX + 'transition-delay'; +TRANSITION_END = 'transitionend'; +ON_TRANSITION_END = 'on' + CAMEL_VENDOR_PREFIX.toLowerCase() + 'transitionend'; + +TRANSITION_END = VENDOR_TRANSITION_END[CAMEL_VENDOR_PREFIX] || TRANSITION_END; + +TRANSFORM_CAMEL = CAMEL_VENDOR_PREFIX + 'Transform'; + +Transition.fx = {}; +Transition.toggles = {}; + +Transition._hasEnd = {}; + +Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; Y.Node.DOM_EVENTS[TRANSITION_END] = 1; @@ -19793,7 +16432,7 @@ Transition.prototype = { computed = getComputedStyle(node), attrs = Transition._nodeAttrs[uid], cssText = '', - cssTransition = computed[TRANSITION_PROPERTY], + cssTransition = computed[Transition._toCamel(TRANSITION_PROPERTY)], transitionText = TRANSITION_PROPERTY + ': ', duration = TRANSITION_DURATION + ': ', @@ -19806,9 +16445,9 @@ Transition.prototype = { // preserve existing transitions if (cssTransition !== 'all') { transitionText += cssTransition + ','; - duration += computed[TRANSITION_DURATION] + ','; - easing += computed[TRANSITION_TIMING_FUNCTION] + ','; - delay += computed[TRANSITION_DELAY] + ','; + duration += computed[Transition._toCamel(TRANSITION_DURATION)] + ','; + easing += computed[Transition._toCamel(TRANSITION_TIMING_FUNCTION)] + ','; + delay += computed[Transition._toCamel(TRANSITION_DELAY)] + ','; } @@ -19816,7 +16455,7 @@ Transition.prototype = { for (name in attrs) { hyphy = Transition._toHyphen(name); attr = attrs[name]; - if (attrs.hasOwnProperty(name) && attr.transition === anim) { + if ((attr = attrs[name]) && attr.transition === anim) { if (name in node.style) { // only native styles allowed duration += anim._prepDur(attr.duration) + ','; delay += anim._prepDur(attr.delay) + ','; @@ -19839,7 +16478,7 @@ Transition.prototype = { if (!Transition._hasEnd[uid]) { //anim._detach = Y.on(TRANSITION_END, anim._onNativeEnd, node); //node[ON_TRANSITION_END] = anim._onNativeEnd; - node.addEventListener(TRANSITION_END, anim._onNativeEnd, false); + node.addEventListener(TRANSITION_END, anim._onNativeEnd, ''); Transition._hasEnd[uid] = true; } @@ -19889,7 +16528,7 @@ Transition.prototype = { _endNative: function(name) { var node = this._node, - value = node.ownerDocument.defaultView.getComputedStyle(node, '')[TRANSITION_PROPERTY]; + value = node.ownerDocument.defaultView.getComputedStyle(node, '')[Transition._toCamel(TRANSITION_PROPERTY)]; if (typeof value === 'string') { value = value.replace(new RegExp('(?:^|,\\s)' + name + ',?'), ','); @@ -19935,15 +16574,18 @@ Transition.prototype = { }, destroy: function() { - var anim = this; + var anim = this, + node = anim._node; /* if (anim._detach) { anim._detach.detach(); } */ //anim._node[ON_TRANSITION_END] = null; - node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); - anim._node = null; + if (node) { + node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); + anim._node = null; + } } }; @@ -20027,7 +16669,7 @@ Y.Node.prototype.show = function(name, config, callback) { callback = config; config = name; } - name = this.SHOW_TRANSITION; + name = Transition.SHOW_TRANSITION; } this.transition(name, config, callback); } @@ -20058,7 +16700,7 @@ Y.Node.prototype.hide = function(name, config, callback) { callback = config; config = name; } - name = this.HIDE_TRANSITION; + name = Transition.HIDE_TRANSITION; } this.transition(name, config, callback); } else { @@ -20203,352 +16845,488 @@ Transition.DEFAULT_TOGGLE = 'fade'; -}, '3.4.0' ,{requires:['node-base']}); -YUI.add('transition-timer', function(Y) { - -/* -* The Transition Utility provides an API for creating advanced transitions. -* @module transition -*/ +}, '3.4.0' ,{requires:['node-style']}); +YUI.add('selector-css2', function(Y) { -/* -* Provides the base Transition class, for animating numeric properties. -* -* @module transition -* @submodule transition-timer -*/ +/** + * The selector module provides helper methods allowing CSS2 Selectors to be used with DOM elements. + * @module dom + * @submodule selector-css2 + * @for Selector + */ +/** + * Provides helper methods for collecting and filtering DOM elements. + */ -var Transition = Y.Transition; +var PARENT_NODE = 'parentNode', + TAG_NAME = 'tagName', + ATTRIBUTES = 'attributes', + COMBINATOR = 'combinator', + PSEUDOS = 'pseudos', + + Selector = Y.Selector, + + SelectorCSS2 = { + _reRegExpTokens: /([\^\$\?\[\]\*\+\-\.\(\)\|\\])/, // TODO: move? + SORT_RESULTS: true, + _children: function(node, tag) { + var ret = node.children, + i, + children = [], + childNodes, + child; + + if (node.children && tag && node.children.tags) { + children = node.children.tags(tag); + } else if ((!ret && node[TAG_NAME]) || (ret && tag)) { // only HTMLElements have children + childNodes = ret || node.childNodes; + ret = []; + for (i = 0; (child = childNodes[i++]);) { + if (child.tagName) { + if (!tag || tag === child.tagName) { + ret.push(child); + } + } + } + } -Y.mix(Transition.prototype, { - _start: function() { - if (Transition.useNative) { - this._runNative(); - } else { - this._runTimer(); - } - }, + return ret || []; + }, - _runTimer: function() { - var anim = this; - anim._initAttrs(); + _re: { + attr: /(\[[^\]]*\])/g, + esc: /\\[:\[\]\(\)#\.\'\>+~"]/gi, + pseudos: /(\([^\)]*\))/g + }, - Transition._running[Y.stamp(anim)] = anim; - anim._startTime = new Date(); - Transition._startTimer(); - }, + /** + * Mapping of shorthand tokens to corresponding attribute selector + * @property shorthand + * @type object + */ + shorthand: { + '\\#(-?[_a-z0-9]+[-\\w\\uE000]*)': '[id=$1]', + '\\.(-?[_a-z]+[-\\w\\uE000]*)': '[className~=$1]' + }, - _endTimer: function() { - var anim = this; - delete Transition._running[Y.stamp(anim)]; - anim._startTime = null; - }, + /** + * List of operators and corresponding boolean functions. + * These functions are passed the attribute and the current node's value of the attribute. + * @property operators + * @type object + */ + operators: { + '': function(node, attr) { return Y.DOM.getAttribute(node, attr) !== ''; }, // Just test for existence of attribute + //'': '.+', + //'=': '^{val}$', // equality + '~=': '(?:^|\\s+){val}(?:\\s+|$)', // space-delimited + '|=': '^{val}-?' // optional hyphen-delimited + }, - _runFrame: function() { - var t = new Date() - this._startTime; - this._runAttrs(t); - }, + pseudos: { + 'first-child': function(node) { + return Y.Selector._children(node[PARENT_NODE])[0] === node; + } + }, - _runAttrs: function(time) { - var anim = this, - node = anim._node, - config = anim._config, - uid = Y.stamp(node), - attrs = Transition._nodeAttrs[uid], - customAttr = Transition.behaviors, - done = false, - allDone = false, - data, - name, - attribute, - setter, - elapsed, - delay, - d, - t, - i; + _bruteQuery: function(selector, root, firstOnly) { + var ret = [], + nodes = [], + tokens = Selector._tokenize(selector), + token = tokens[tokens.length - 1], + rootDoc = Y.DOM._getDoc(root), + child, + id, + className, + tagName; - for (name in attrs) { - attribute = attrs[name]; - if ((attribute && attribute.transition === anim)) { - d = attribute.duration; - delay = attribute.delay; - elapsed = (time - delay) / 1000; - t = time; - data = { - type: 'propertyEnd', - propertyName: name, - config: config, - elapsedTime: elapsed - }; - setter = (i in customAttr && 'set' in customAttr[i]) ? - customAttr[i].set : Transition.DEFAULT_SETTER; + // if we have an initial ID, set to root when in document + /* + if (tokens[0] && rootDoc === root && + (id = tokens[0].id) && + rootDoc.getElementById(id)) { + root = rootDoc.getElementById(id); + } + */ - done = (t >= d); + if (token) { + // prefilter nodes + id = token.id; + className = token.className; + tagName = token.tagName || '*'; + + if (root.getElementsByTagName) { // non-IE lacks DOM api on doc frags + // try ID first, unless no root.all && root not in document + // (root.all works off document, but not getElementById) + // TODO: move to allById? + if (id && (root.all || (root.nodeType === 9 || Y.DOM.inDoc(root)))) { + nodes = Y.DOM.allById(id, root); + // try className + } else if (className) { + nodes = root.getElementsByClassName(className); + } else { // default to tagName + nodes = root.getElementsByTagName(tagName); + } - if (t > d) { - t = d; + } else { // brute getElementsByTagName('*') + child = root.firstChild; + while (child) { + if (child.tagName) { // only collect HTMLElements + nodes.push(child); + } + child = child.nextSilbing || child.firstChild; + } + } + if (nodes.length) { + ret = Selector._filterNodes(nodes, tokens, firstOnly); } + } - if (!delay || time >= delay) { - setter(anim, name, attribute.from, attribute.to, t - delay, d - delay, - attribute.easing, attribute.unit); + return ret; + }, + + _filterNodes: function(nodes, tokens, firstOnly) { + var i = 0, + j, + len = tokens.length, + n = len - 1, + result = [], + node = nodes[0], + tmpNode = node, + getters = Y.Selector.getters, + operator, + combinator, + token, + path, + pass, + //FUNCTION = 'function', + value, + tests, + test; + + //do { + for (i = 0; (tmpNode = node = nodes[i++]);) { + n = len - 1; + path = null; + + testLoop: + while (tmpNode && tmpNode.tagName) { + token = tokens[n]; + tests = token.tests; + j = tests.length; + if (j && !pass) { + while ((test = tests[--j])) { + operator = test[1]; + if (getters[test[0]]) { + value = getters[test[0]](tmpNode, test[0]); + } else { + value = tmpNode[test[0]]; + // use getAttribute for non-standard attributes + if (value === undefined && tmpNode.getAttribute) { + value = tmpNode.getAttribute(test[0]); + } + } - if (done) { - delete attrs[name]; - anim._count--; + if ((operator === '=' && value !== test[2]) || // fast path for equality + (typeof operator !== 'string' && // protect against String.test monkey-patch (Moo) + operator.test && !operator.test(value)) || // regex test + (!operator.test && // protect against RegExp as function (webkit) + typeof operator === 'function' && !operator(tmpNode, test[0], test[2]))) { // function test + + // skip non element nodes or non-matching tags + if ((tmpNode = tmpNode[path])) { + while (tmpNode && + (!tmpNode.tagName || + (token.tagName && token.tagName !== tmpNode.tagName)) + ) { + tmpNode = tmpNode[path]; + } + } + continue testLoop; + } + } + } - if (config[name] && config[name].on && config[name].on.end) { - config[name].on.end.call(Y.one(node), data); + n--; // move to next token + // now that we've passed the test, move up the tree by combinator + if (!pass && (combinator = token.combinator)) { + path = combinator.axis; + tmpNode = tmpNode[path]; + + // skip non element nodes + while (tmpNode && !tmpNode.tagName) { + tmpNode = tmpNode[path]; } - //node.fire('transition:propertyEnd', data); + if (combinator.direct) { // one pass only + path = null; + } - if (!allDone && anim._count <= 0) { - allDone = true; - anim._end(elapsed); - anim._endTimer(); + } else { // success if we made it this far + result.push(node); + if (firstOnly) { + return result; } + break; } } + }// while (tmpNode = node = nodes[++i]); + node = tmpNode = null; + return result; + }, + + combinators: { + ' ': { + axis: 'parentNode' + }, + '>': { + axis: 'parentNode', + direct: true + }, + + + '+': { + axis: 'previousSibling', + direct: true } - } - }, + }, - _initAttrs: function() { - var anim = this, - customAttr = Transition.behaviors, - uid = Y.stamp(anim._node), - attrs = Transition._nodeAttrs[uid], - attribute, - duration, - delay, - easing, - val, - name, - mTo, - mFrom, - unit, begin, end; + _parsers: [ + { + name: ATTRIBUTES, + re: /^\uE003(-?[a-z]+[\w\-]*)+([~\|\^\$\*!=]=?)?['"]?([^\uE004'"]*)['"]?\uE004/i, + fn: function(match, token) { + var operator = match[2] || '', + operators = Selector.operators, + escVal = (match[3]) ? match[3].replace(/\\/g, '') : '', + test; - for (name in attrs) { - attribute = attrs[name]; - if (attrs.hasOwnProperty(name) && (attribute && attribute.transition === anim)) { - duration = attribute.duration * 1000; - delay = attribute.delay * 1000; - easing = attribute.easing; - val = attribute.value; + // add prefiltering for ID and CLASS + if ((match[1] === 'id' && operator === '=') || + (match[1] === 'className' && + Y.config.doc.documentElement.getElementsByClassName && + (operator === '~=' || operator === '='))) { + token.prefilter = match[1]; - // only allow supported properties - if (name in anim._node.style || name in Y.DOM.CUSTOM_STYLES) { - begin = (name in customAttr && 'get' in customAttr[name]) ? - customAttr[name].get(anim, name) : Transition.DEFAULT_GETTER(anim, name); - mFrom = Transition.RE_UNITS.exec(begin); - mTo = Transition.RE_UNITS.exec(val); + match[3] = escVal; - begin = mFrom ? mFrom[1] : begin; - end = mTo ? mTo[1] : val; - unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units + // escape all but ID for prefilter, which may run through QSA (via Dom.allById) + token[match[1]] = (match[1] === 'id') ? match[3] : escVal; - if (!unit && Transition.RE_DEFAULT_UNIT.test(name)) { - unit = Transition.DEFAULT_UNIT; } - if (typeof easing === 'string') { - if (easing.indexOf('cubic-bezier') > -1) { - easing = easing.substring(13, easing.length - 1).split(','); - } else if (Transition.easings[easing]) { - easing = Transition.easings[easing]; + // add tests + if (operator in operators) { + test = operators[operator]; + if (typeof test === 'string') { + match[3] = escVal.replace(Selector._reRegExpTokens, '\\$1'); + test = new RegExp(test.replace('{val}', match[3])); } + match[2] = test; + } + if (!token.last || token.prefilter !== match[1]) { + return match.slice(1); + } + } + }, + { + name: TAG_NAME, + re: /^((?:-?[_a-z]+[\w-]*)|\*)/i, + fn: function(match, token) { + var tag = match[1].toUpperCase(); + token.tagName = tag; + + if (tag !== '*' && (!token.last || token.prefilter)) { + return [TAG_NAME, '=', tag]; + } + if (!token.prefilter) { + token.prefilter = 'tagName'; + } + } + }, + { + name: COMBINATOR, + re: /^\s*([>+~]|\s)\s*/, + fn: function(match, token) { + } + }, + { + name: PSEUDOS, + re: /^:([\-\w]+)(?:\uE005['"]?([^\uE005]*)['"]?\uE006)*/i, + fn: function(match, token) { + var test = Selector[PSEUDOS][match[1]]; + if (test) { // reorder match array and unescape special chars for tests + if (match[2]) { + match[2] = match[2].replace(/\\/g, ''); + } + return [match[2], test]; + } else { // selector token not supported (possibly missing CSS3 module) + return false; } - - attribute.from = Number(begin); - attribute.to = Number(end); - attribute.unit = unit; - attribute.easing = easing; - attribute.duration = duration + delay; - attribute.delay = delay; - } else { - delete attrs[name]; - anim._count--; } } - } - }, - - destroy: function() { - this.detachAll(); - this._node = null; - } -}, true); - -Y.mix(Y.Transition, { - _runtimeAttrs: {}, - /* - * Regex of properties that should use the default unit. - * - * @property RE_DEFAULT_UNIT - * @static - */ - RE_DEFAULT_UNIT: /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i, - - /* - * The default unit to use with properties that pass the RE_DEFAULT_UNIT test. - * - * @property DEFAULT_UNIT - * @static - */ - DEFAULT_UNIT: 'px', - - /* - * Time in milliseconds passed to setInterval for frame processing - * - * @property intervalTime - * @default 20 - * @static - */ - intervalTime: 20, + ], - /* - * Bucket for custom getters and setters - * - * @property behaviors - * @static - */ - behaviors: { - left: { - get: function(anim, attr) { - return Y.DOM._getAttrOffset(anim._node, attr); - } - } - }, + _getToken: function(token) { + return { + tagName: null, + id: null, + className: null, + attributes: {}, + combinator: null, + tests: [] + }; + }, - /* - * The default setter to use when setting object properties. - * - * @property DEFAULT_SETTER - * @static - */ - DEFAULT_SETTER: function(anim, att, from, to, elapsed, duration, fn, unit) { - from = Number(from); - to = Number(to); + /** + Break selector into token units per simple selector. + Combinator is attached to the previous token. + */ + _tokenize: function(selector) { + selector = selector || ''; + selector = Selector._replaceShorthand(Y.Lang.trim(selector)); + var token = Selector._getToken(), // one token per simple selector (left selector holds combinator) + query = selector, // original query for debug report + tokens = [], // array of tokens + found = false, // whether or not any matches were found this pass + match, // the regex match + test, + i, parser; - var node = anim._node, - val = Transition.cubicBezier(fn, elapsed / duration); + /* + Search for selector patterns, store, and strip them from the selector string + until no patterns match (invalid selector) or we run out of chars. - val = from + val[0] * (to - from); + Multiple attributes and pseudos are allowed, in any order. + for example: + 'form:first-child[type=button]:not(button)[lang|=en]' + */ + outer: + do { + found = false; // reset after full pass + for (i = 0; (parser = Selector._parsers[i++]);) { + if ( (match = parser.re.exec(selector)) ) { // note assignment + if (parser.name !== COMBINATOR ) { + token.selector = selector; + } + selector = selector.replace(match[0], ''); // strip current match from selector + if (!selector.length) { + token.last = true; + } - if (node) { - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - unit = unit || ''; - Y.DOM.setStyle(node, att, val + unit); - } - } else { - anim._end(); - } - }, + if (Selector._attrFilters[match[1]]) { // convert class to className, etc. + match[1] = Selector._attrFilters[match[1]]; + } - /* - * The default getter to use when getting object properties. - * - * @property DEFAULT_GETTER - * @static - */ - DEFAULT_GETTER: function(anim, att) { - var node = anim._node, - val = ''; + test = parser.fn(match, token); + if (test === false) { // selector not supported + found = false; + break outer; + } else if (test) { + token.tests.push(test); + } - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - val = Y.DOM.getComputedStyle(node, att); - } + if (!selector.length || parser.name === COMBINATOR) { + tokens.push(token); + token = Selector._getToken(token); + if (parser.name === COMBINATOR) { + token.combinator = Y.Selector.combinators[match[1]]; + } + } + found = true; + } + } + } while (found && selector.length); - return val; - }, + if (!found || selector.length) { // not fully parsed + tokens = []; + } + return tokens; + }, - _startTimer: function() { - if (!Transition._timer) { - Transition._timer = setInterval(Transition._runFrame, Transition.intervalTime); - } - }, + _replaceShorthand: function(selector) { + var shorthand = Selector.shorthand, + esc = selector.match(Selector._re.esc), // pull escaped colon, brackets, etc. + attrs, + pseudos, + re, i, len; - _stopTimer: function() { - clearInterval(Transition._timer); - Transition._timer = null; - }, + if (esc) { + selector = selector.replace(Selector._re.esc, '\uE000'); + } - /* - * Called per Interval to handle each animation frame. - * @method _runFrame - * @private - * @static - */ - _runFrame: function() { - var done = true, - anim; - for (anim in Transition._running) { - if (Transition._running[anim]._runFrame) { - done = false; - Transition._running[anim]._runFrame(); + attrs = selector.match(Selector._re.attr); + pseudos = selector.match(Selector._re.pseudos); + + if (attrs) { + selector = selector.replace(Selector._re.attr, '\uE001'); } - } - if (done) { - Transition._stopTimer(); - } - }, + if (pseudos) { + selector = selector.replace(Selector._re.pseudos, '\uE002'); + } - cubicBezier: function(p, t) { - var x0 = 0, - y0 = 0, - x1 = p[0], - y1 = p[1], - x2 = p[2], - y2 = p[3], - x3 = 1, - y3 = 0, - A = x3 - 3 * x2 + 3 * x1 - x0, - B = 3 * x2 - 6 * x1 + 3 * x0, - C = 3 * x1 - 3 * x0, - D = x0, - E = y3 - 3 * y2 + 3 * y1 - y0, - F = 3 * y2 - 6 * y1 + 3 * y0, - G = 3 * y1 - 3 * y0, - H = y0, + for (re in shorthand) { + if (shorthand.hasOwnProperty(re)) { + selector = selector.replace(new RegExp(re, 'gi'), shorthand[re]); + } + } - x = (((A*t) + B)*t + C)*t + D, - y = (((E*t) + F)*t + G)*t + H; + if (attrs) { + for (i = 0, len = attrs.length; i < len; ++i) { + selector = selector.replace(/\uE001/, attrs[i]); + } + } - return [x, y]; - }, + if (pseudos) { + for (i = 0, len = pseudos.length; i < len; ++i) { + selector = selector.replace(/\uE002/, pseudos[i]); + } + } - easings: { - ease: [0.25, 0, 1, 0.25], - linear: [0, 0, 1, 1], - 'ease-in': [0.42, 0, 1, 1], - 'ease-out': [0, 0, 0.58, 1], - 'ease-in-out': [0.42, 0, 0.58, 1] - }, + selector = selector.replace(/\[/g, '\uE003'); + selector = selector.replace(/\]/g, '\uE004'); - _running: {}, - _timer: null, + selector = selector.replace(/\(/g, '\uE005'); + selector = selector.replace(/\)/g, '\uE006'); - RE_UNITS: /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/ -}, true); + if (esc) { + for (i = 0, len = esc.length; i < len; ++i) { + selector = selector.replace('\uE000', esc[i]); + } + } -Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.right = Transition.behaviors.left; + return selector; + }, -Y.Transition = Transition; + _attrFilters: { + 'class': 'className', + 'for': 'htmlFor' + }, + getters: { + href: function(node, attr) { + return Y.DOM.getAttribute(node, attr); + } + } + }; + +Y.mix(Y.Selector, SelectorCSS2, true); +Y.Selector.getters.src = Y.Selector.getters.rel = Y.Selector.getters.href; -}, '3.4.0' ,{requires:['transition-native', 'node-style']}); +// IE wants class with native queries +if (Y.Selector.useNative && Y.config.doc.querySelector) { + Y.Selector.shorthand['\\.(-?[_a-z]+[-\\w]*)'] = '[class~=$1]'; +} -YUI.add('transition', function(Y){}, '3.4.0' ,{use:['transition-native', 'transition-timer']}); +}, '3.4.0' ,{requires:['selector-native']}); YUI.add('selector-css3', function(Y) { /** @@ -20701,309 +17479,559 @@ Y.Selector.combinators['~'] = { }, '3.4.0' ,{requires:['selector-native', 'selector-css2']}); -YUI.add('dom-style-ie', function(Y) { +YUI.add('yui-log', function(Y) { -(function(Y) { -var HAS_LAYOUT = 'hasLayout', - PX = 'px', - FILTER = 'filter', - FILTERS = 'filters', - OPACITY = 'opacity', - AUTO = 'auto', +/** + * Provides console log capability and exposes a custom event for + * console implementations. This module is a `core` YUI module, it's documentation is located under the YUI class. + * + * @module yui + * @submodule yui-log + */ + +var INSTANCE = Y, + LOGEVENT = 'yui:log', + UNDEFINED = 'undefined', + LEVELS = { debug: 1, + info: 1, + warn: 1, + error: 1 }; + +/** + * If the 'debug' config is true, a 'yui:log' event will be + * dispatched, which the Console widget and anything else + * can consume. If the 'useBrowserConsole' config is true, it will + * write to the browser console if available. YUI-specific log + * messages will only be present in the -debug versions of the + * JS files. The build system is supposed to remove log statements + * from the raw and minified versions of the files. + * + * @method log + * @for YUI + * @param {String} msg The message to log. + * @param {String} cat The log category for the message. Default + * categories are "info", "warn", "error", time". + * Custom categories can be used as well. (opt). + * @param {String} src The source of the the message (opt). + * @param {boolean} silent If true, the log event won't fire. + * @return {YUI} YUI instance. + */ +INSTANCE.log = function(msg, cat, src, silent) { + var bail, excl, incl, m, f, + Y = INSTANCE, + c = Y.config, + publisher = (Y.fire) ? Y : YUI.Env.globalEvents; + // suppress log message if the config is off or the event stack + // or the event call stack contains a consumer of the yui:log event + if (c.debug) { + // apply source filters + if (src) { + excl = c.logExclude; + incl = c.logInclude; + if (incl && !(src in incl)) { + bail = 1; + } else if (incl && (src in incl)) { + bail = !incl[src]; + } else if (excl && (src in excl)) { + bail = excl[src]; + } + } + if (!bail) { + if (c.useBrowserConsole) { + m = (src) ? src + ': ' + msg : msg; + if (Y.Lang.isFunction(c.logFn)) { + c.logFn.call(Y, msg, cat, src); + } else if (typeof console != UNDEFINED && console.log) { + f = (cat && console[cat] && (cat in LEVELS)) ? cat : 'log'; + console[f](m); + } else if (typeof opera != UNDEFINED) { + opera.postError(m); + } + } + + if (publisher && !silent) { + + if (publisher == Y && (!publisher.getEvent(LOGEVENT))) { + publisher.publish(LOGEVENT, { + broadcast: 2 + }); + } + + publisher.fire(LOGEVENT, { + msg: msg, + cat: cat, + src: src + }); + } + } + } + + return Y; +}; + +/** + * Write a system message. This message will be preserved in the + * minified and raw versions of the YUI files, unlike log statements. + * @method message + * @for YUI + * @param {String} msg The message to log. + * @param {String} cat The log category for the message. Default + * categories are "info", "warn", "error", time". + * Custom categories can be used as well. (opt). + * @param {String} src The source of the the message (opt). + * @param {boolean} silent If true, the log event won't fire. + * @return {YUI} YUI instance. + */ +INSTANCE.message = function() { + return INSTANCE.log.apply(INSTANCE, arguments); +}; + + +}, '3.4.0' ,{requires:['yui-base']}); +YUI.add('dump', function(Y) { + +/** + * Returns a simple string representation of the object or array. + * Other types of objects will be returned unprocessed. Arrays + * are expected to be indexed. Use object notation for + * associative arrays. + * + * If included, the dump method is added to the YUI instance. + * + * @module dump + */ + + var L = Y.Lang, + OBJ = '{...}', + FUN = 'f(){...}', + COMMA = ', ', + ARROW = ' => ', + + /** + * Returns a simple string representation of the object or array. + * Other types of objects will be returned unprocessed. Arrays + * are expected to be indexed. + * + * @method dump + * @param {Object} o The object to dump. + * @param {Number} d How deep to recurse child objects, default 3. + * @return {String} the dump result. + * @for YUI + */ + dump = function(o, d) { + var i, len, s = [], type = L.type(o); + + // Cast non-objects to string + // Skip dates because the std toString is what we want + // Skip HTMLElement-like objects because trying to dump + // an element will cause an unhandled exception in FF 2.x + if (!L.isObject(o)) { + return o + ''; + } else if (type == 'date') { + return o; + } else if (o.nodeType && o.tagName) { + return o.tagName + '#' + o.id; + } else if (o.document && o.navigator) { + return 'window'; + } else if (o.location && o.body) { + return 'document'; + } else if (type == 'function') { + return FUN; + } + + // dig into child objects the depth specifed. Default 3 + d = (L.isNumber(d)) ? d : 3; + + // arrays [1, 2, 3] + if (type == 'array') { + s.push('['); + for (i = 0, len = o.length; i < len; i = i + 1) { + if (L.isObject(o[i])) { + s.push((d > 0) ? L.dump(o[i], d - 1) : OBJ); + } else { + s.push(o[i]); + } + s.push(COMMA); + } + if (s.length > 1) { + s.pop(); + } + s.push(']'); + // regexp /foo/ + } else if (type == 'regexp') { + s.push(o.toString()); + // objects {k1 => v1, k2 => v2} + } else { + s.push('{'); + for (i in o) { + if (o.hasOwnProperty(i)) { + try { + s.push(i + ARROW); + if (L.isObject(o[i])) { + s.push((d > 0) ? L.dump(o[i], d - 1) : OBJ); + } else { + s.push(o[i]); + } + s.push(COMMA); + } catch (e) { + s.push('Error: ' + e.message); + } + } + } + if (s.length > 1) { + s.pop(); + } + s.push('}'); + } - BORDER_WIDTH = 'borderWidth', - BORDER_TOP_WIDTH = 'borderTopWidth', - BORDER_RIGHT_WIDTH = 'borderRightWidth', - BORDER_BOTTOM_WIDTH = 'borderBottomWidth', - BORDER_LEFT_WIDTH = 'borderLeftWidth', - WIDTH = 'width', - HEIGHT = 'height', - TRANSPARENT = 'transparent', - VISIBLE = 'visible', - GET_COMPUTED_STYLE = 'getComputedStyle', - UNDEFINED = undefined, - documentElement = Y.config.doc.documentElement, + return s.join(''); + }; - testFeature = Y.Features.test, - addFeature = Y.Features.add, + Y.dump = dump; + L.dump = dump; - // TODO: unit-less lineHeight (e.g. 1.22) - re_unit = /^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i, - isIE8 = (Y.UA.ie >= 8), - _getStyleObj = function(node) { - return node.currentStyle || node.style; - }, +}, '3.4.0' ); +YUI.add('transition-timer', function(Y) { - ComputedStyle = { - CUSTOM_STYLES: {}, +/* +* The Transition Utility provides an API for creating advanced transitions. +* @module transition +*/ - get: function(el, property) { - var value = '', - current; +/* +* Provides the base Transition class, for animating numeric properties. +* +* @module transition +* @submodule transition-timer +*/ - if (el) { - current = _getStyleObj(el)[property]; - if (property === OPACITY && Y.DOM.CUSTOM_STYLES[OPACITY]) { - value = Y.DOM.CUSTOM_STYLES[OPACITY].get(el); - } else if (!current || (current.indexOf && current.indexOf(PX) > -1)) { // no need to convert - value = current; - } else if (Y.DOM.IE.COMPUTED[property]) { // use compute function - value = Y.DOM.IE.COMPUTED[property](el, property); - } else if (re_unit.test(current)) { // convert to pixel - value = ComputedStyle.getPixel(el, property) + PX; - } else { - value = current; - } - } +var Transition = Y.Transition; - return value; - }, +Y.mix(Transition.prototype, { + _start: function() { + if (Transition.useNative) { + this._runNative(); + } else { + this._runTimer(); + } + }, - sizeOffsets: { - width: ['Left', 'Right'], - height: ['Top', 'Bottom'], - top: ['Top'], - bottom: ['Bottom'] - }, + _runTimer: function() { + var anim = this; + anim._initAttrs(); - getOffset: function(el, prop) { - var current = _getStyleObj(el)[prop], // value of "width", "top", etc. - capped = prop.charAt(0).toUpperCase() + prop.substr(1), // "Width", "Top", etc. - offset = 'offset' + capped, // "offsetWidth", "offsetTop", etc. - pixel = 'pixel' + capped, // "pixelWidth", "pixelTop", etc. - sizeOffsets = ComputedStyle.sizeOffsets[prop], - mode = el.ownerDocument.compatMode, - value = ''; + Transition._running[Y.stamp(anim)] = anim; + anim._startTime = new Date(); + Transition._startTimer(); + }, - // IE pixelWidth incorrect for percent - // manually compute by subtracting padding and border from offset size - // NOTE: clientWidth/Height (size minus border) is 0 when current === AUTO so offsetHeight is used - // reverting to auto from auto causes position stacking issues (old impl) - if (current === AUTO || current.indexOf('%') > -1) { - value = el['offset' + capped]; + _endTimer: function() { + var anim = this; + delete Transition._running[Y.stamp(anim)]; + anim._startTime = null; + }, - if (mode !== 'BackCompat') { - if (sizeOffsets[0]) { - value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[0]); - value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[0] + 'Width', 1); - } + _runFrame: function() { + var t = new Date() - this._startTime; + this._runAttrs(t); + }, - if (sizeOffsets[1]) { - value -= ComputedStyle.getPixel(el, 'padding' + sizeOffsets[1]); - value -= ComputedStyle.getBorderWidth(el, 'border' + sizeOffsets[1] + 'Width', 1); - } - } + _runAttrs: function(time) { + var anim = this, + node = anim._node, + config = anim._config, + uid = Y.stamp(node), + attrs = Transition._nodeAttrs[uid], + customAttr = Transition.behaviors, + done = false, + allDone = false, + data, + name, + attribute, + setter, + elapsed, + delay, + d, + t, + i; - } else { // use style.pixelWidth, etc. to convert to pixels - // need to map style.width to currentStyle (no currentStyle.pixelWidth) - if (!el.style[pixel] && !el.style[prop]) { - el.style[prop] = current; - } - value = el.style[pixel]; - - } - return value + PX; - }, + for (name in attrs) { + if ((attribute = attrs[name]) && attribute.transition === anim) { + d = attribute.duration; + delay = attribute.delay; + elapsed = (time - delay) / 1000; + t = time; + data = { + type: 'propertyEnd', + propertyName: name, + config: config, + elapsedTime: elapsed + }; - borderMap: { - thin: (isIE8) ? '1px' : '2px', - medium: (isIE8) ? '3px': '4px', - thick: (isIE8) ? '5px' : '6px' - }, + setter = (i in customAttr && 'set' in customAttr[i]) ? + customAttr[i].set : Transition.DEFAULT_SETTER; - getBorderWidth: function(el, property, omitUnit) { - var unit = omitUnit ? '' : PX, - current = el.currentStyle[property]; + done = (t >= d); - if (current.indexOf(PX) < 0) { // look up keywords if a border exists - if (ComputedStyle.borderMap[current] && - el.currentStyle.borderStyle !== 'none') { - current = ComputedStyle.borderMap[current]; - } else { // otherwise no border (default is "medium") - current = 0; + if (t > d) { + t = d; } - } - return (omitUnit) ? parseFloat(current) : current; - }, - getPixel: function(node, att) { - // use pixelRight to convert to px - var val = null, - style = _getStyleObj(node), - styleRight = style.right, - current = style[att]; + if (!delay || time >= delay) { + setter(anim, name, attribute.from, attribute.to, t - delay, d - delay, + attribute.easing, attribute.unit); - node.style.right = current; - val = node.style.pixelRight; - node.style.right = styleRight; // revert + if (done) { + delete attrs[name]; + anim._count--; - return val; - }, + if (config[name] && config[name].on && config[name].on.end) { + config[name].on.end.call(Y.one(node), data); + } - getMargin: function(node, att) { - var val, - style = _getStyleObj(node); + //node.fire('transition:propertyEnd', data); - if (style[att] == AUTO) { - val = 0; - } else { - val = ComputedStyle.getPixel(node, att); - } - return val + PX; - }, + if (!allDone && anim._count <= 0) { + allDone = true; + anim._end(elapsed); + anim._endTimer(); + } + } + } - getVisibility: function(node, att) { - var current; - while ( (current = node.currentStyle) && current[att] == 'inherit') { // NOTE: assignment in test - node = node.parentNode; } - return (current) ? current[att] : VISIBLE; - }, + } + }, - getColor: function(node, att) { - var current = _getStyleObj(node)[att]; + _initAttrs: function() { + var anim = this, + customAttr = Transition.behaviors, + uid = Y.stamp(anim._node), + attrs = Transition._nodeAttrs[uid], + attribute, + duration, + delay, + easing, + val, + name, + mTo, + mFrom, + unit, begin, end; - if (!current || current === TRANSPARENT) { - Y.DOM.elementByAxis(node, 'parentNode', null, function(parent) { - current = _getStyleObj(parent)[att]; - if (current && current !== TRANSPARENT) { - node = parent; - return true; + for (name in attrs) { + if ((attribute = attrs[name]) && attribute.transition === anim) { + duration = attribute.duration * 1000; + delay = attribute.delay * 1000; + easing = attribute.easing; + val = attribute.value; + + // only allow supported properties + if (name in anim._node.style || name in Y.DOM.CUSTOM_STYLES) { + begin = (name in customAttr && 'get' in customAttr[name]) ? + customAttr[name].get(anim, name) : Transition.DEFAULT_GETTER(anim, name); + + mFrom = Transition.RE_UNITS.exec(begin); + mTo = Transition.RE_UNITS.exec(val); + + begin = mFrom ? mFrom[1] : begin; + end = mTo ? mTo[1] : val; + unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units + + if (!unit && Transition.RE_DEFAULT_UNIT.test(name)) { + unit = Transition.DEFAULT_UNIT; } - }); - } - return Y.Color.toRGB(current); - }, + if (typeof easing === 'string') { + if (easing.indexOf('cubic-bezier') > -1) { + easing = easing.substring(13, easing.length - 1).split(','); + } else if (Transition.easings[easing]) { + easing = Transition.easings[easing]; + } + } - getBorderColor: function(node, att) { - var current = _getStyleObj(node), - val = current[att] || current.color; - return Y.Color.toRGB(Y.Color.toHex(val)); + attribute.from = Number(begin); + attribute.to = Number(end); + attribute.unit = unit; + attribute.easing = easing; + attribute.duration = duration + delay; + attribute.delay = delay; + } else { + delete attrs[name]; + anim._count--; + } + } } }, - //fontSize: getPixelFont, - IEComputed = {}; - -addFeature('style', 'computedStyle', { - test: function() { - return 'getComputedStyle' in Y.config.win; + destroy: function() { + this.detachAll(); + this._node = null; } -}); +}, true); -addFeature('style', 'opacity', { - test: function() { - return 'opacity' in documentElement.style; - } -}); +Y.mix(Y.Transition, { + _runtimeAttrs: {}, + /* + * Regex of properties that should use the default unit. + * + * @property RE_DEFAULT_UNIT + * @static + */ + RE_DEFAULT_UNIT: /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i, -addFeature('style', 'filter', { - test: function() { - return 'filters' in documentElement; - } -}); + /* + * The default unit to use with properties that pass the RE_DEFAULT_UNIT test. + * + * @property DEFAULT_UNIT + * @static + */ + DEFAULT_UNIT: 'px', -// use alpha filter for IE opacity -if (!testFeature('style', 'opacity') && testFeature('style', 'filter')) { - Y.DOM.CUSTOM_STYLES[OPACITY] = { - get: function(node) { - var val = 100; - try { // will error if no DXImageTransform - val = node[FILTERS]['DXImageTransform.Microsoft.Alpha'][OPACITY]; + /* + * Time in milliseconds passed to setInterval for frame processing + * + * @property intervalTime + * @default 20 + * @static + */ + intervalTime: 20, - } catch(e) { - try { // make sure its in the document - val = node[FILTERS]('alpha')[OPACITY]; - } catch(err) { - } + /* + * Bucket for custom getters and setters + * + * @property behaviors + * @static + */ + behaviors: { + left: { + get: function(anim, attr) { + return Y.DOM._getAttrOffset(anim._node, attr); } - return val / 100; - }, + } + }, - set: function(node, val, style) { - var current, - styleObj = _getStyleObj(node), - currentFilter = styleObj[FILTER]; + /* + * The default setter to use when setting object properties. + * + * @property DEFAULT_SETTER + * @static + */ + DEFAULT_SETTER: function(anim, att, from, to, elapsed, duration, fn, unit) { + from = Number(from); + to = Number(to); - style = style || node.style; - if (val === '') { // normalize inline style behavior - current = (OPACITY in styleObj) ? styleObj[OPACITY] : 1; // revert to original opacity - val = current; + var node = anim._node, + val = Transition.cubicBezier(fn, elapsed / duration); + + val = from + val[0] * (to - from); + + if (node) { + if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { + unit = unit || ''; + Y.DOM.setStyle(node, att, val + unit); } + } else { + anim._end(); + } + }, - if (typeof currentFilter == 'string') { // in case not appended - style[FILTER] = currentFilter.replace(/alpha([^)]*\))/gi, '') + - ((val < 1) ? 'alpha(' + OPACITY + '=' + val * 100 + ')' : ''); + /* + * The default getter to use when getting object properties. + * + * @property DEFAULT_GETTER + * @static + */ + DEFAULT_GETTER: function(anim, att) { + var node = anim._node, + val = ''; - if (!style[FILTER]) { - style.removeAttribute(FILTER); - } + if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { + val = Y.DOM.getComputedStyle(node, att); + } - if (!styleObj[HAS_LAYOUT]) { - style.zoom = 1; // needs layout - } - } + return val; + }, + + _startTimer: function() { + if (!Transition._timer) { + Transition._timer = setInterval(Transition._runFrame, Transition.intervalTime); } - }; -} + }, -try { - Y.config.doc.createElement('div').style.height = '-1px'; -} catch(e) { // IE throws error on invalid style set; trap common cases - Y.DOM.CUSTOM_STYLES.height = { - set: function(node, val, style) { - var floatVal = parseFloat(val); - if (floatVal >= 0 || val === 'auto' || val === '') { - style.height = val; - } else { + _stopTimer: function() { + clearInterval(Transition._timer); + Transition._timer = null; + }, + + /* + * Called per Interval to handle each animation frame. + * @method _runFrame + * @private + * @static + */ + _runFrame: function() { + var done = true, + anim; + for (anim in Transition._running) { + if (Transition._running[anim]._runFrame) { + done = false; + Transition._running[anim]._runFrame(); } } - }; - Y.DOM.CUSTOM_STYLES.width = { - set: function(node, val, style) { - var floatVal = parseFloat(val); - if (floatVal >= 0 || val === 'auto' || val === '') { - style.width = val; - } else { - } + if (done) { + Transition._stopTimer(); } - }; -} + }, -if (!testFeature('style', 'computedStyle')) { - // TODO: top, right, bottom, left - IEComputed[WIDTH] = IEComputed[HEIGHT] = ComputedStyle.getOffset; + cubicBezier: function(p, t) { + var x0 = 0, + y0 = 0, + x1 = p[0], + y1 = p[1], + x2 = p[2], + y2 = p[3], + x3 = 1, + y3 = 0, - IEComputed.color = IEComputed.backgroundColor = ComputedStyle.getColor; + A = x3 - 3 * x2 + 3 * x1 - x0, + B = 3 * x2 - 6 * x1 + 3 * x0, + C = 3 * x1 - 3 * x0, + D = x0, + E = y3 - 3 * y2 + 3 * y1 - y0, + F = 3 * y2 - 6 * y1 + 3 * y0, + G = 3 * y1 - 3 * y0, + H = y0, - IEComputed[BORDER_WIDTH] = IEComputed[BORDER_TOP_WIDTH] = IEComputed[BORDER_RIGHT_WIDTH] = - IEComputed[BORDER_BOTTOM_WIDTH] = IEComputed[BORDER_LEFT_WIDTH] = - ComputedStyle.getBorderWidth; + x = (((A*t) + B)*t + C)*t + D, + y = (((E*t) + F)*t + G)*t + H; - IEComputed.marginTop = IEComputed.marginRight = IEComputed.marginBottom = - IEComputed.marginLeft = ComputedStyle.getMargin; + return [x, y]; + }, - IEComputed.visibility = ComputedStyle.getVisibility; - IEComputed.borderColor = IEComputed.borderTopColor = - IEComputed.borderRightColor = IEComputed.borderBottomColor = - IEComputed.borderLeftColor = ComputedStyle.getBorderColor; + easings: { + ease: [0.25, 0, 1, 0.25], + linear: [0, 0, 1, 1], + 'ease-in': [0.42, 0, 1, 1], + 'ease-out': [0, 0, 0.58, 1], + 'ease-in-out': [0.42, 0, 0.58, 1] + }, - Y.DOM[GET_COMPUTED_STYLE] = ComputedStyle.get; + _running: {}, + _timer: null, - Y.namespace('DOM.IE'); - Y.DOM.IE.COMPUTED = IEComputed; - Y.DOM.IE.ComputedStyle = ComputedStyle; -} + RE_UNITS: /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/ +}, true); -})(Y); +Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.right = Transition.behaviors.left; + +Y.Transition = Transition; -}, '3.4.0' ,{requires:['dom-style']}); +}, '3.4.0' ,{requires:['transition']}); YUI.add('simpleyui', function(Y) { // empty diff --git a/build/slider-base/assets/skins/audio-light/rail-x.png b/build/slider-base/assets/skins/audio-light/rail-x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd29b45b9a6e36b8da640f7f56dc78e21b70411 GIT binary patch literal 3668 zcmV-a4y*BrP)P001)x0{{R3RRB`~00009a7bBm000XU z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s)6>)V`1rB0vE$?8=;-KZXlT{d)&Kwh2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~Zh}uQ00008bW%=J|NsC0|Ns90-h;ha0000_Nklj%m0cc*4B1M0Nn`^K!rUC4lCybX(Ppt;r02`RkH{EGrj=?QS`9o|w8k6L? m=&y_X0{{R3t4QWZ00009a7bBm000XU z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s)6>)R^z^i}wBzIB=;-KZXlT{d)&Kwh2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~GRr&N00008bW%=J|NsC0|Ns90-h;ha0000>NklLXsrPdFjpc;7vL8@UQz;o9Q7SB7$7PG;W@cu-efw5O zNNC%(Z98`C`1F!Z!VqYYcddMeHg_OsHL@H@4Qd{@?T1rZgXfd)#-T{UuQYnv#s>- zjpfr4#oKyvSikvMU7eI0Fl#M~)`JZ0>Iy6@X{p4;_gZ#s6|G-coYq;A!yyNgY4svi4QAe_LkIdEp{ Tyt~&vfPCWV>gTe~DWM4f$$ZKx literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/audio-light/thumb-y.png b/build/slider-base/assets/skins/audio-light/thumb-y.png new file mode 100644 index 0000000000000000000000000000000000000000..20120d34b92f11e34389bfbf6958a7fc42168f33 GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^en2eD!3-ohQ%sWz&6_u`TD3}BTl@5xQ}^!OJ9PM9nYLOvw#2oQzwtl zn>Q~tHC0GRC?g}|)TvWeR#wxdO*?+_(;G5 ze*Adw-~lr;^U0GZj~_oickbNFmoKkgy?V=*E%)!=2f7FdrgA@#22utkL4LviNdpW? zOD|La^=|ZZaSW-rb>s>+cawp@fsd)F-|F_uf7_OO{oCLDvCEyZ1+MdT)g>1#`V+{~ zx^-Lqx_~lvX`cuC?qmw;hxaSHKm4@Z$NqgBFHh<={o<}mr8{>n+Pww{GoRHNEJYD@< J);T3K0RURw3M&8r literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/audio/rail-x.png b/build/slider-base/assets/skins/audio/rail-x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc37bb24906ed215d6bc881f5c9c584043f79a1c GIT binary patch literal 3662 zcmV-U4zclxP)P001)x0{{R3RRB`~00009a7bBm000XU z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>jJv}ZiE+{A{P*6|+000IC1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~q17Eg00006bW%=J|NsC0{{XYUq`v?F082?kK~#9!?9#anz%UF$ zQHK25f8{J76)_AL2+TswYjmlmh*f!-vRUS?Jw=%!rl^ijx^jiOBH4B;Ns?Xw?nZwl gwylqU0MN=i0BKAYgk-wm8~^|S07*qoM6N<$f;KX0{{R3t4QWZ00009a7bBm000XU z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>jJv}ZiE+{A{P*6|+000IC1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~q17Eg00006bW%=J|NsC0{{XYUq`v?F07*$iK~#9!?2thUfItky zrk%|HzwBXAL`2UE%_&fZLKFZYO` e00030{{sLP3m1eY1Qh200000vid*{r(_ssJ=bLNM+(J!=B$cPz;0RSLVQ&rT%`iI!1O^A!#&vKV%v5v@H z)z}LFNU#?q4{?C(503zVSjQ0xeeuG<&D+h(!Ofjn4GLv;_jI#&d}Rj!z6&UQ1WbRI zR_0>m6rvG@Ox1AHqakG0gTx}KlQ=;vM3m}LEcx>^x*ZRcl<*k)^P+I$R>8irIqDazG$dd;@Li@UV z*Ead(gNfPQ0ZPI;TNbYyHXPtGNLuH~RrfaQ>l^#<^Q53uBVw>E=mz_kOC^k3}ci4xBx(HuhA_5%<%yNYDV^|Ky?GqK1xYa3lNe50=iM*JOEw* zVA;>c<_m;n0o2OJM$&(tRZ;GMu$9WHmBz43CXD_0OTdnVAY=7_>PiSjgE@NqscA!_S*38Sgox$ZnwtD-Q@vb%{yq~ zmKR*dfRw^Vy4-%^IK*>!Ns{;aBG$f^LcSiz+g&g^asRJ2O8JSH`T4EQ%{ldMh^f_} zQQ$42)1uwz=GEUI>FbNLAFb=`!9wQ2DtMPaI)_g+3m=aq6NOnXZ6~N)H;~+2GflB} zt65{>IZ~Et|OXN1XF`+b!EPj)UdhG*pNSlXy?9<}+-PYEpU9RgZ0#w=_pYm4Pi~ zV8Pb8mOvtvm-$(L_$F$zYg2fWag*iPlo(|#@A3Ikf1O)z&`F(si*ie33*RnNNWq{W zTW`4}AND{r!30v7kJkI58(H#D|5rW?5(U(lkBKoOV`aYO|xZr-~P8LO$n*khz z2EC<88YE6rPvcBu1c70tWkqExWh4eC21Brf(wF*yRmuj!`WvN0-_y$t%1|%%^%?aM zrBWr4Wrz|tnB3yc&y*=3ZtJ8~Qq5UKVGv@`%^LqTQS|BlBHoc^HdCG%uXBRDIxle3dEo3q+rY2s_bi!MQbvs0_xG$}GZ zL^r#Jn@AWJ!VOH!>y#@|l^iool}*JDiZR+L+U2=3h_32C=mB(T1AX<@9R6Yz+65hG zg|MbWH1t$;9j3IT1U3e~zmXvzi<~DfXEI?5^7`sYEomsZl0Ew2P%g0NG<_G0fR9m* z%?WRy9}e+!JEHV+rc@Ag2#ibnTPqB|Ku4er!J@S zpk(pOq1d70VdT=sVUdqKxyHg?<6ZsGAG%u;awH$q1e{kZf^?ud!HD`DHn0si$*6L+ zx}ngg?854ZPWD{Z^W%o>hP3#K(2B9euy}hzf5VVYms_qy_$u@r+nw#5|J?*ojO4&U z;6?{41e@Nwy7Yg`(iSf#xoCG@JAa@MmxocHQAh}>4B6_aWO3;Kl~~Dgv6DHPH0nqm z{vzn-%s7G7wpDCb5Ghx9WVlg;T)cY}oMA#RL)2$t3F@_~_)jriaU};Ks3Y-(PhAuw zTgLAsy&&Ew(kR!n)f+xf#qUNAxpeNeLsvs@@ z!iBtBm@ux=#AZ!0&E*`)T-xk6%q~JQk}ZOv$w`SGkTMpn6f|NFv2Fim zsKPG1_O{10wgLPkjbOmJF0taiF&{A+QuGsM!aWNjs72Tr*|&{E4@#t$=RO-b7_J*! zOceic^zrV1s*`Fh8C@8mVZ_G--)^aJlBkvT@LMF_pt=7n!Vteg`dbVd#b%lT_+A11Del8eoZf$HecMx4zw;B z;23C4+fUnFsa@4w$W=v`?Ovu|xtLdKyLcS*;ZEY-5U`P>XEEQWnI>gmdI>Yn_EpIH zp0?hij(qsY#K;WZf9PFjb651++`S-Ly?8<ggLM1QXZ^l6{=5oTHz8 zWom8Os52}(F|)Vgf333kl;VSkw6UN132eY|VK-zd1#vtUhe|^Q2J!!0vRwRx4%o37 zU3H>xJ8Go#UYk_9i`|iGmKrrX{^osLySVkx=$ldY7fB13J?}l~+mtDtzNQaN*;N=b zXUw60OMQU-#V%v6_~`O!i{BsGyP4@+37O@V6Mwgho{O_p+T|cmuA9-JrgFv_o(b7AocAvbHi6xZ_{P57R+oZDu3h4cWtc0NmvWWfM=duzK z>vEnqyVu3gG21cDT)Nv&w?kEQwBVr2>HXQ!iOh-ojN^=yHkY@BH+${-^j{WxJA0qB z4)_WSzC1O&I_U6O@?knESf$X}e9Qcf`_AES&6)mq@l^_aO3ED`Zsy6gjWFLLcHYE8 zC}=4FKu!GHE8P@q%xt5orv(818~}g}1%SVISicJZuLS^L&k_J6GXa3kE!m<+831sB z7n(37=zpW>i=dz&US3{3Jv|*A9XmTaB_$;e4h}v(KByu@QBjePmsdjSITaNZ2n2fk z^eHPVt0GjMf`WpGh=`e)Sz229`Sa&SMn+avR`S^6~@(1PlxeoSdANmX>#S zSQh^oJ3BizE%uO$i;J6^n}>%7oABAQXIN+~7C%2f7z`E=5D*j;6cQ2=78Vu}5fK#? z6%!K^7Z=AuNJvOXN=iyeNnsIXWMpJzW##1LuviKT3J?ecD+Egw%UoGm8OuRcRaH$* zOgML=?(Xj4;o<4&>E-3+?d|>g_3Jlp-uU?V`1<<#`T6<#`v(LBynXvNFfb5X^LOvw zA(6=7;NXyukkHW3u&}W3@bHL;h{(vusHmvu=;)Z3nAq6ZxVX6Y@88GA$0sBtBqk;% zB_$;%C#R&Oq^72(rKP2(r)OkjWM*b&Wo2b&XXoVPeE9GIg+k@#=6?M6F)uGKKR^G| zr%we11)o2EE-Wl8Dk>^2E-oo4DJ?B6D=RB6FR!SmsI084s;c_(b&;NalU(9rPk@W{x>=;-L!*x2~^_{7A-0Xi zXJ%$*XJ_Z;=H}<;7Zw&47Z;b7mX?>7S5{V5S66@h__4OOw!Xf;v9Ynaxw*BqwY|N) zv$ON_=g-~U-MziN{r&x4zkVGY92_1V9vvP1{{8#UpFhXP$0sKzr>Cc9XJ_Z<=NA_j zmzS4+|Ni~=@88wc)%ErD&CSj2?Jc%59aAb+{%cKdJ#Bq#`2P%m^OBKa-v_EGD!_af zeoYRLhscv6*Fe^h2B}KvRwlbwZ3P72u4KY6Jo4*4uvP$1|MN`eKO3$p7{b)JC^Bng z)NQOc>pi14U~$XyOyP~hqSpGUBLDNOOjCQO4NSr6ob&3t6GM0pWq8qzlDeEyo-bpQ mr1|frzFOBg$KnIWRqVHts`v(a0s4U@0;nlzD^@`)L;eSJebt1gMxzU>goal0(5kA zQd3h^RaISGU3GPJ-QC?eIXP`?Y@A)3WaQi;)DjXB{{R0Ev<(PqYMwp=niWJ^6Ri}lT9s~y;tqfM_kQ5w&ehLe+|0P7zcWXn zUP0siUu|2Z?yO7V56!Y^+h_}`dYywh;m z-`pD;|9`!qu!UpxZp)T)w&yxFSPEWz{GxJZ+LDuVYBu(q-ka>Ws_FFF?WOC)6ByRI VtV-R literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/rail-x-dots.png b/build/slider-base/assets/skins/capsule-dark/rail-x-dots.png new file mode 100644 index 0000000000000000000000000000000000000000..453fb64f38c36c8fcfba553b0945fc8e5a38e7eb GIT binary patch literal 3651 zcmV-J4!rS+P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(=*003iSV^B~~E-o%8C@25`00##L2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~OQ?XM00007bW%=J|NsC0|Nj6QO9Ms#002KpL_t(|+SJi84!|G~ z13{Cu^ZzGPfUY2IKw_)uPS)wI^ebKIX_<*iyAB_qYKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-sDk>@(8X7=AKok@dCMG6rZEYwhC?O#sW@ctk zP*62BH9tQ;Nl8fn000gS4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~Cx0}F0000EbW%=J|NsC0|NsC0|NsC0{{Th6+{gd`08U9nK~#9! z)X}>Rz%U3yQ73(**zo_q+kptFOQ&Y&oz92_qQa-N3j5(Rj7u}H!m1lqaqDK5ba(fp rBq`ZI@<)T7f9vPlHj-!&5pfRyQIr`@28L<`00000NkvXXu0mjfU}@^~ literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/rail-x.png b/build/slider-base/assets/skins/capsule-dark/rail-x.png new file mode 100644 index 0000000000000000000000000000000000000000..f1aa290eec7e98f039467ecee049af443301b74c GIT binary patch literal 3710 zcmZveWl)^U5{5qx1h){}g1c*g#ddL*CAiBX!AY<{a1ZXV1PSgCmf-FV!7aE2I6(qI z@1Fm6s%Cn+s_T89>6)pUXe|vzJZwsA008immE?4g@xQ$YCMt3rf!-P-1D2bTp(g;~ zy!vmV0NJ_Z$RbS#2t-TE-qp+1)85sMP8kBBbMtVub9iS906r^lT^LmNh*a`s;|i=A z6_l##szZWFrvr`+B2HrApvNLqiJ~u9CeiMBDKC#kHJl%X8Xq4NN21Mz8-u-su}fbV zA6gU@GkU+}U*xpVezQOE)U+sdP<07!oWkhF#7$Qc)D{lHEeF%S{24mbKe)BaBNL3x zb=!7B^tQ`e}a-2!h{c`J({Fsq`c$`AGoXE88eJ zz+M8VntB@}4;b(P#CEFvV!#qNz^ANlrv%hB1KpE^I1KEDC{O zA%dTm;{cGKM1nl+<)hCee$C{hNIU}Hocp*7{h7haYUgQhs?tpc0JgjWXP&rt8!3Y% z(1VA1^+vuRv1NIAZ+CY|r5|i;IjSG<1nV{L z)_;8WHxTr2bN#b(n<-epG*}Vs_Gj<-m0B_NR5DhW)!Kf7;zKje^8?KsL%*_Bivb7m zjy92dyj*tNr9d%5G&q@kfO+=WW_y$C9#v{n7^riULh(=HE;F@8{iDiCXyDboeFFd& zZLU2(*f3Fp>_fMvyr0jd9~JYNfgn5OWOo2ClVjq6jy6gUVFG|$elSO!EY(#HIafD2 zb~8VR`@M_j}jVDEEC;G6tOmgYLc)LzfKI4 zPEU#ELek?Ou}Bkz)+C8xKp^BHqFs?cHMl`r@&|4cq@_%hGEAWmXWGV#KRbamKWEzG z8>M8NNWsB$r9Ht)f)r$kultZ3L$LoHAJ1SPxc&_nR*LmlJwp|4wf8zuxL@v+0aFs!;3^?g{Oo+hz*L>J??{td|u) zUkWD}fvXD;IPoveynAV>iJ5oH% zI7Gej#>I;u2_1@pu~FoZW01oryvb`b)k-MlVkw58e4_j(nFm<}S+05p90-n&BuS&# zX)0+fX;d7%(DI6sij4{!y-U3@XhOM}Za|HKo}lhdIo6N#O1%oW)`>2aF05RlEV2St z<_eYm8ff?!jc(Yd)~5;is-0hNzSBNPhht6A=)*%m(o}`!+jOiI7?gzpaT=MS4cM zL8VfqcBSG;he*w7DZHdZzRmDH7+-csh1G;r5tcCd0)C*oth-){T}rAhDSlnUQ{hxh zRnR8q-Q`kxmYLUS7L=#vTDsxead1Z+!21Y&biOOSR>Uc{G5**fYi zCF~^czU|V(*F@ z%X2cRKT;lFcBFPdq8kDmhUVj<-Oa7>qkh(yG0pL&hTdld(W&vJU8X;c+JdU6h z(N>{W=|LVl!|{0oxPkIJRcbLFjv5h{cb%ILri@KVxp z9wILBbQ!fMjW?4h=y&WOxJEkR5;Xf-aBIMn@;ejgt3+=j6k!F9Oa~6;k@8AzjPD*qKSJ11cAYjL^eY+21Rkq;` zPXjKo&AhZ}7$Z)NiB&HQxv>%8l0&Ew+ad=>1I$+6u4^KCR4lzRk8|R5ym53jQ8f4b z%kwEwFVR*qqBufTpPR;DzoW`gtO4ZiyNbO-@`5wsEqWE`dkliZd0w;fR6nC8u!F@< z-6`0tXEdaz3B~CIM-O{1Jm6$)@zhk)fY)%d$?`4&P9;SW9aBTRN|r(LX^CykXOAk< zb+jvME%jS@Wq*s!l-;b|(f$T^o-uxUMaF&xz6;*+$~U~tx8F{$|H!ZMW=ycHwuK@f zEk#|R@9nmwBa;&n($KHaE9f0m6++@quca*XVYp8XZO<~)LGO=3`Ts!V#|+tnpsJxPQn7`i6Z{c>&_?m zxi>eS2%g^O+`(-|H#y(kqZ_Qv8(KW^l@D?LRa+QyuRqYhXm}mL*%#RgIl9^R##Y9y zn&VP43&$IN4~na=337!%hQ2D7&=H4~qma22*u_*FJPjTY$n$s2Vzm(Ae_%bi=}6#u z-b(1TH7oxddmzy+F==w~-Rq)Zb?=q_cm3>IadYQmuVc_t%ADpI?{CuQh50-&$@Pv)Ki8Xqo9j)|^*|5S$H}p_WpCEA>UPa`^DCKC z*=5Ljm=a0pY$K59swX1`@gS4F^K7#ya zS8wl6d%V}YY0ir_2{d;<(tTokw*Omytvg+MpF)w6@{ER>dHG;1$i0gEZ=%6u)nx&o zKK|pqb_z15vsThk2LL~200;^NfWObkcmx3N`2gV90szD_0f5Xk*?d3&08jxfHK;rn z7Z)ihDFp=uD=RB4EiDrh6CE9$l$6w)H*e(Sy0Re%qurSgRImpP!$jQl(B9xSrR8&;R0vZ|`q}uD(uaRo>^z;l242+D7NO5Ln zW)>C}q!$|-8&ZUWgM*Wk6Uo5M&CSEZ!^_KywBzUJN4f|K3JM7cAuU8iL_|eJkvw8z zV&dZB5)u+15J*x|5(z0SEiEG>BP%Nl27{5Pa&mG=W(5TWMMXs=B_(BLWfc__B(|EG zn!38WhK2@`UrS3%TU%R4M@Lsz7Yc>y>FK?F`&M6H-@w4Y(9qDx$jI2(*u=!d)YR0> z%*@=}+`_`b($dn(%F5c>8rcL}TU$FjI~WXRZ*TA5;Na-!=;Y+|?%g|QXJ;1|7gtwT zH#awTcXtmD4^K}|FE6k6@85s;@WI>L+sDVp*Vot2&(GiA|KrDx0RaJlfq|bseF_Q+ z3Jwkq2?+@e4Gjwm3l9&Eh=_=cjEstkijIzsiHV7gjg5!{Kc6N47PEKxaE*uWe%gg)ngwz38yXrK8ymlU z`_|Odgg_vgo14FX|K8Hl(%RbE*4EbE-rmvC(b?JA)z#JA-QCmE)7#tI*VotI-#;)g zFgQ3kG&D3kJUlWoGCDdsHa0dsK0YxqF*!LoH8nLoJv}osGdnvwH#hg=$B+5>`Gtjr z#l^*?rKRQN<&~9{)z#ItwYBy2^^J{<&CSi9KYwm*ZEbIF@9gaC?(XjG?d|XH9~>MU z9v&VY9UUJZpPZch`t|Gd^z`iP?EL)v-+%x8{rmUD#l_|2<<-^I_4W0iKYwm+ZfduO z#EfWtMMZyGR+f*OHyJFMxHJlrUr_MI^YB1au(9#*tTT$qmxz&}D_MV R8u;JaQkK_{s{vbt{0}=e13CZz literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/rail-y-dots.png b/build/slider-base/assets/skins/capsule-dark/rail-y-dots.png new file mode 100644 index 0000000000000000000000000000000000000000..0555b19d613d80c66f81aa736102a4af03ba96bf GIT binary patch literal 3642 zcmV-A4#n|_P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(=*003iSV^B~~E-o%8C@25`00##L2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~OQ?XM00007bW%=J|NsC0|Nj6QO9Ms#001^gL_t(|+G1dX0v0A_ zHgv$i%8DVz!ph75XEQQmlgF=zb#UonU}eRt2L~8#dH?_b0RR630D7|va(^7WF#rGn M07*qoM6N<$g5Q75IsgCw literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/rail-y-lines.png b/build/slider-base/assets/skins/capsule-dark/rail-y-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..178aa85e139c48ed6023c3595f38018d15fc073e GIT binary patch literal 3667 zcmV-Z4y^HsP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-sDk>@(8X7=AKok@dCMG6rZEYwhC?O#sW@ctk zP*62BH9tQ;Nl8fn000gS4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~Cx0}F0000EbW%=J|NsC0|NsC0|NsC0{{Th6+{gd`07ywhK~#9! zV&H`WPF4;sUNpeQ!_9~;#>vCY#Q^89uw!Uq;^Ah%uZf473!4I}Xky~wW*}J;GY>Z- lUQM{baMT0<009600|3!)8BXnz0H6Q>002ovPDHLkV1oAU<~aZW literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/rail-y.png b/build/slider-base/assets/skins/capsule-dark/rail-y.png new file mode 100644 index 0000000000000000000000000000000000000000..a47997f25576d6e4ace641bf2284712a1ad09037 GIT binary patch literal 3673 zcmZvfWmME#7smfwkS>uf>F$(<8M4rfN>jnxO+RgdoZYh!3-W=?ha0G>;b@U6>b277#xwy+-zQf zG-5*1HQe>duo?70@gbxsY+Q^u#Og7OMJr@_eb1GYFla^#W6%>5LlVgJc<|$Jm$CL3 zixb03V&cZ{wgXFC7CUbarXE|CWDjdD;my-nz1aAfs=|7rA^4Rb`sd%nM+S$t_xR*P zaalY7V(ex+M(+n^G~hN^TAG`w7pogU^P9)R270yfdIe~spNNh@Ic8`f5ooIG zj3VGD1=LKxj#C1l0syIl#-IeS%nJyp89Ar|4Xr>gk{GWEz{Upz^kO180gOPvYLuDT z4~WPCNR=;)qxpG##7ED8RHNV~6|?@wI#-^r-#>>+ zC{%>#`{g766sC}&PJ8*_ha{{+BE=FBgqFO=J(y2SHa5GD`_t7P@&K^y6FmFK!{1CD zB83^^`dG|*hT&*|SNQfO-l2&|z6B^eS~a@#_-{5!MagX|EBkwU%j$z5Q|ob~phsB0 zWv|i0n?J$Q_czzyyLVVZh0H@$FmAv1PhM%3(oU!1MA)n!B&poD;yvBd%`*+E*|b5q zNO$!}JQEdj6E1~HnPNeyoI|X0Pj)+7Ja_1_TcSXNvn*O*3U7tEE&6W_c4DYc@6HVX zTy(hiedEAJ4{;3Np7wn@mwQktWCcPT)KWbGz(SFQ4>H~?H-ZfSiiM$E4GJ_@eUv=C zn6!P**8A}8t;8ZgEQ9?ZVi2xf2(6bDXH6K0BWkLFj?0Swn>?LJubyL6ng=0Yzu{Lx z84ser*4PDo9G#&!7z(40M8!Sv83J(+L#E#S5aaq0-=V!RnUAHm!t^1{3s zuP@Xx31UTuGu4hnt4Xrp5rN(xlvu)pZv^;;2SAOlcyQ8eCmNY*@T-TZ8(!C-cf?-X zPB;2ukc2Ar;)r4Rf*7pn6;z>`Q0-;a3I{&8;yCCLdj0H7X%!k@*xH}}8Kkrk z5{!nb@-Q!wB)#A#4vYa0inEZ!f`!=IlK)X_{0x~RnNyx~(`P>7smv2mrDjeWTeWj( z!jeemVc;H(+=K58>@i-L;=*m@JwM+X>~QFhJF8Re6Yq=cW7=m6DHxXI>TgsO zL7s~ynSg4G5c>6c(G@R5-sVb7g_Emkl-3q!%u_p3INmtb|L|#lzL7z%oi$@LH*uu$ zBkKqHl`lR)6j}I442**+j}nU#M&(OcpRHL&H6Kqk0uc}wJjp)HA0c76w6e%7(%QyOlWKGOG=%;JPOUGzPFrsfy?- zScN-8?sKs5LoBB8faZV>__JPNqvdYrFaw?~RkI%tqYFWG)Z0+eLAJ)JmG|$sI1ZG!e@E>)RX znb2z0YQ1WelPkLK=-cB~ewJO(Z4pwS>0Z9+-*xzxHi-WL^5FWn{8|McirI|Mg1Lr|q?8^K^>mk} z;~!c3r3W@2kO!AqXIN)#N2IjPN|!7se^e$)a2ht-W!ZHdb{#HZ!(?M*)6hEBI?L79 zYAfR`lhTyZ9GRM&DxO-*5zUhkToO9WJIq_k+iJBk@iXB;R3N_Et2OPJlo_8PI^7~o zB#cX;h9>6C%C+!X*2Rw6j`HW_ZQ5zt)dh>Nfrej*F+^o6Rm1)==2{)X6%k|&v!Q^s z4%H2urFEqRwFiBCkijB|ULmZeGocIi{^CU{`C4)_7ny%17c_L0dBhKcP7_Zr3-2Oc zOmGf5!42}}RbUjbHt+DunD|(YunE2_S-w1);f>L*J$0XJPxI}7xodb{b6)>x#ajKD z*qPH=^!leskx!fj#=_n+1Eb*Ydi%3-c%L!^T()Y0b-+5Iu$Dt+ep~(&quQm0)>7Z9 z8|!ll+268WpLS(;rNuXeHjOPO#d}*vTPJh|+zTutx4<8mpX{Cjo@Rma5LPr8dTgjd zsOdjYVM15!1!QNYne-$$oH}hbEIuiA~>Y`k-Rea9U ztK#h4#txUP&icWjRvg*A6K22+nesK`_s$l9rzC3ZXiWA|ERf#e-X0(Dzcos zl8=N(GE-hNM*CIzzY4@$732x57cYES6LJ0f>H1+z{Ig=SG0R{xE_&??RW7Z7)SoGx zqW&yH!lgX>Z4vC1$(@=6nj3kN1?0K!7+i&9B)bH|Q&W;XK~;=eX$aUc?7-pOM2&r9 z)8mj^d@DbF2G*EMb8^iyV_sYYsO$&Cgky;ds|jXrC40sl^%}EA`fD75%XLAg`qU_^F1U*= zK+7f6qHjE`uLaHJ1kVt6KQicKed*L(2g+}})nffO3Qi+S78_Sbx<-*j_FwZf7NHx#%IX(_t=C^puYW78@n=nOtaXGV zz-=Wx(qB96%g2yYQgV>bkSoYvh}hZOMvL{*t=sGwORb z3l0nRcWQUdH*$5cRY$j(cdq8O+OD3bBj|JJ4_M5Eh^4k~3v_cb5dEY@?h_Tlk(b?% z@N-{Y0x<%^kNLwp%pQvVdq+1oTQ~FslB@3$0&BLh=3l;}gVFIjgK{r&mGca8?@Vn> z+jS;oXBUq*1MXGUUJ~VtNE`dBUqZ&5R*%Bw(_k0V3GfVfP%z)0b*r^vMBt$> z{k)ynXM0ZRDgIEZQwnKz@zv*|X>I?7(O09~dPz&yW1nN`$FzB!k&gV1+`2Y1m$tKj zu9iTDnmnb!*TBkRsGs<|1f>`n4hqq z#ntP((>~vIU%K;>Eh3%0_Y5C6o*e%)UK`Am-=$Hdr9EMwXJ6ji3iGa^-kTUO1uX>t zXiR*6r%7PfyRn!otA7AS)~T>eVYHB_%KzEFd62KtNz;XQ!c|p`)WCBqT&j zOUud0Nkl{>Dk_SyL@f#m3Q9^!ln6C7H4P07s)3G<4yE?;L_eY zO-(H=Ep2UW6u+*nuAZKrzP`SJfdK>pF*G!M{ra_$kr5OMH8wUjF)=YUH8nFcGdDN4 zu&}VSw6wCavbMIiv9YnWwM7lV-rnB9!2t$?IXXHzIXO8yJG;2Jym|A+)z#I_&CT82 z-NVDf)6>(-%gfu_+sDV}?c2BS-o5kn_4V`f^Y`};2nYxa41E9oeNa$PaB%R44gwv6nwr|$+Pb>B`uh5YhK9z*#-^sG=H})v zU%s@ov>*_O*4EaqU%$4swY9gmcXV`gc6N4kb#-@l_w@Ai_V)Jm_4W7n4-5FMd2nVH$y*}1v7`T6;8-@Yv@EG#ZA zE-fuBFE6jGtgNoCuC1-Dudi=xY;10BZf$LS|Neb@dwXYRXLomZZ*OmZfB)d%;PCM9 z$B!RJM@PrU$0sKzKY#u_Jv}`;J3Bu=|M%a2fBpJ(adB~Zd3kkpb$xyP`}gmgo15F) z+dqH){Qdj)?(XjX{{G?N;qmeD>FLQ0{#WL|8|V!Z literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/slider-base-skin.css b/build/slider-base/assets/skins/capsule-dark/slider-base-skin.css new file mode 100644 index 00000000000..0f3a1588aa2 --- /dev/null +++ b/build/slider-base/assets/skins/capsule-dark/slider-base-skin.css @@ -0,0 +1,98 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-x.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-x-line.png */ + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail, +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; + /* alternate: rail-x-dots.png */ + /* alternate: rail-x-lines.png */ +} + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail { + height: 25px; +} +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb { + height: 30px; + width: 14px; +} + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -20px; + height: 20px; + left: -2px; + width: 5px; +} +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -40px; + height: 20px; + right: -2px; + width: 5px; +} + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -10px; +} +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -50px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-y.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-y-line.png */ + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail, +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; + /* alternate: rail-y-dots.png */ + /* alternate: rail-y-lines.png */ +} + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail { + width: 25px; +} +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb { + width: 30px; + height: 14px; +} + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -20px 0; + width: 20px; + top: -2px; + height: 5px; +} +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -40px 0; + width: 20px; + bottom: -2px; + height: 5px; +} + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb-image { + left: -10px; + top: 0; +} +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb-shadow { + left: -50px; + opacity: 0.15; + filter: alpha(opacity=15); + top: 0; +} diff --git a/build/slider-base/assets/skins/capsule-dark/slider-base.css b/build/slider-base/assets/skins/capsule-dark/slider-base.css new file mode 100644 index 00000000000..ac4feb83ae8 --- /dev/null +++ b/build/slider-base/assets/skins/capsule-dark/slider-base.css @@ -0,0 +1,8 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +.yui3-slider,.yui3-slider-rail{display:-moz-inline-stack;display:inline-block;*display:inline;zoom:1;vertical-align:middle}.yui3-slider-content{position:relative;display:block}.yui3-slider-rail{position:relative}.yui3-slider-rail-cap-top,.yui3-slider-rail-cap-left,.yui3-slider-rail-cap-bottom,.yui3-slider-rail-cap-right,.yui3-slider-thumb,.yui3-slider-thumb-image,.yui3-slider-thumb-shadow{position:absolute}.yui3-slider-thumb{overflow:hidden}.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail,.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-left,.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-right{background-image:url(rail-x.png);background-repeat:repeat-x}.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail{height:25px}.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb{height:30px;width:14px}.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-left{background-position:0 -20px;height:20px;left:-2px;width:5px}.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-right{background-position:0 -40px;height:20px;right:-2px;width:5px}.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb-image{left:0;top:-10px}.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb-shadow{left:0;opacity:.15;filter:alpha(opacity=15);top:-50px}.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail,.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-top,.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-bottom{background-image:url(rail-y.png);background-repeat:repeat-y}.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail{width:25px}.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb{width:30px;height:14px}.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-top{background-position:-20px 0;width:20px;top:-2px;height:5px}.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-bottom{background-position:-40px 0;width:20px;bottom:-2px;height:5px}.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb-image{left:-10px;top:0}.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb-shadow{left:-50px;opacity:.15;filter:alpha(opacity=15);top:0} diff --git a/build/slider-base/assets/skins/capsule-dark/slider-skin.css b/build/slider-base/assets/skins/capsule-dark/slider-skin.css new file mode 100644 index 00000000000..0f3a1588aa2 --- /dev/null +++ b/build/slider-base/assets/skins/capsule-dark/slider-skin.css @@ -0,0 +1,98 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-x.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-x-line.png */ + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail, +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; + /* alternate: rail-x-dots.png */ + /* alternate: rail-x-lines.png */ +} + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail { + height: 25px; +} +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb { + height: 30px; + width: 14px; +} + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -20px; + height: 20px; + left: -2px; + width: 5px; +} +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -40px; + height: 20px; + right: -2px; + width: 5px; +} + +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -10px; +} +.yui3-skin-capsule-dark .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -50px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-y.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule-dark/thumb-y-line.png */ + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail, +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; + /* alternate: rail-y-dots.png */ + /* alternate: rail-y-lines.png */ +} + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail { + width: 25px; +} +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb { + width: 30px; + height: 14px; +} + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -20px 0; + width: 20px; + top: -2px; + height: 5px; +} +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -40px 0; + width: 20px; + bottom: -2px; + height: 5px; +} + +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb-image { + left: -10px; + top: 0; +} +.yui3-skin-capsule-dark .yui3-slider-y .yui3-slider-thumb-shadow { + left: -50px; + opacity: 0.15; + filter: alpha(opacity=15); + top: 0; +} diff --git a/build/slider-base/assets/skins/capsule-dark/thumb-x-line.png b/build/slider-base/assets/skins/capsule-dark/thumb-x-line.png new file mode 100644 index 0000000000000000000000000000000000000000..bfdbe0db89e433034eb04bfb4d70964e55ddd8eb GIT binary patch literal 3845 zcmb8y^;Z<%{|E5l4br6&0-_*|q?9!5(jALSO0$GWh|;)pN=U~d-Hj|Q-3^jUNDBxk zAq}7LeE)*)oO9=%d(O<<*Yk1j4|Bt{G!#h)X$b)UAW>G5)A`qfO%op*yyNA!aey6x zvy#C(03dq!uVDdc8IJ&fP}2?y)zY$ca&vlT>*UO!423c{yE@s}y|D%Wj|G%20;an| zC3&`d0#OY^Ca5~;P~tP_Kq8S8ajcw-1mr4VjM?*)+8y`h<#Fixv%;{WqmfaR+FZmD zgmZWsj5*PPxnU85SF7H+4l^xhTO+r1vr^k-$EeydymoxzBqafDAtZ4zg$%-K zcZ++eijSlKWW1sw1%QkK77~@hstaV{0A@p$7VCf(H(hk4MoO%# zIDp}yb(kDrD-M*6y^4?r^!We^8`W-6V2&H$Q-<3p0af)t`zSe44S-J!@M(tya{xHr zfLT8ilLru#3Q#BGVvcdEqZe_TzXM0J7pJ!L-LW9;2icqocynXi`(|-8S62XBHOgx0_?7&N2Y7>gG3b z%f(wuixkI2I^O269N^f#Cdzt$7HLyMCQ}Dw?JU5Lo&VX$XU8_q&u?yQ%&BxkjLZk& zzPE@@({}jHn+rdQ>$B4z-`1G@UzqqS;++5J96nLYe?0b?Ajo2ID@O6Up6KqHe(G7b zvPGjlC&jw<1D9yIw5a13`Om^3pE-J1Chx4)R=BRPrB;N1Dtjp`?>O!v6HDyBs%+%? zZtZJl0C3do)bX7i9~)^KxH{&3cPM?Mn8gAhZInN|0KjWGW**pJt#ltg0LW$eb5_aH zope0nYR7%tac{AM=-Ny;2*TXm2_c6NS|K01nsJl`K-fb@s^~e*c)!cg3$|<9hQvFQ z@^tDokV-m}U7F)(cCfej6X3}9<3BWKTnNLmh|p(>#-~mVK4H42&sIfv*oOnO*BH%itMUg+jzeZc~J8>Pfu}FkANFj%4+{%qV zEru#9ecbgctz?vN_V#$GE!jeh6ts`8{pTY*f$leaJiT3z>X%#u@s>l?&&r5Pdugj) zm0>rBpIVMpyW>3Ymv1K!#&L%*m_LzK(pS^hm{TfZc+4z#e}O=R06R##lkHi2k?L30 zru!G&k1SsBhw3YFG0i-PdB{ud9R}?dVSW$}eZkfk`=4@k9&GZ#q{8G|9i|o%04S@~14aOrQLX?G!OWwKe8oSP*y$a1H`KI6|u64=_ zS-speou#5|*nOcGLr8fxTBlMwwCJJW`!vy!Kq_U`{PLW{DOy`<+cUe$pKeX}mlB_7 zB#*-2wjr;zgk)h$1JLbe^BVO*pPWms*!5G*3IL+H}38mx0KVrq+Xt(Sf8iA?bp(H6eNxxL7RJ&AhuT{8WzYtZ>D&K5y)4yiip$E# zs;a)Levqc4-dMmkj(!M<>Njtm< z{W0>fIe~Tb!y%4tJCttvlp=x}(fBU#I4m+;HDHJ*S&Ao}u6L=wbwkDN)Wu}gYw{G8 zUYp*zUxcYV5I(Rw2wnU#Eck^Z(?H;1%dcraP-Uue%AL z5Xpjtzz+A9^*8$O>fFnRu`OC!3}gMbW`18bDyvbJQZ^=_JYch=ik z+^8LCu$JG?nQ=VxE%V4OKVr7v&|r9obhLArKJ5g5vXJ}4BJ|yg+@)NS+;TdCUsJS_ zTSbUds)Wa0VnL)yut~a?$HriIS|6pa{6_V$C=X|a@Y^@vR<8GtL)TDiMC;zvDZKqA z&Ysz$ohQMCRK+|GxWtlV)WS4gCj6Eq=PaU%VmW%~&Js=N*-77tc*Z*+JP|erHRgPx zaiqkl?)CXsT#Jw=bB{ni*Jfi7TXAfQ8j0Fcx>zPv+6M;57m{MF{DGh2VqG95jOy`d z#4cjX=EG2#b#TpX&)dj)-Y1E80}i#ZW%mrY3DJ;(pD;uASx&qfgf-lzZ6th9G^sT6 z`N;lo?I0#rB;)YQ-Ts5l2dkga`5~%sZhHN#)-rq18VMIq4B>!Z%O7CzLKoG`nrGm zS02NgJi?A?4n#v6bK4{uTC58PMn}Y@VR^6<*deD?h9!~vam%U{7?(-@_Zx}r+J@sjuY3nQHtJ*W^itv)1^Q0?BlX4A5m;FBMN$eXuCQ|flQd?%X88Bzm7Rde@koV9d%Mg?>@Kia54cIO01Wd&vj>e);i6~z`o{L2@ zOb*(6+j4Zpp3Ld6iQH{$9N*^XlYg_@zDHAu z>Fw-&@@>FFfdBQ$tE>GE_eFR5!`u}z%?%%hkL-807uBb_YGP2m%*vQC8K0ZDh8yjY3W<5PU0s;adA))v0-%CqNBaui$Lqi!E z8CF(ScXxL+H8lYN0a8*@LPA1OQBh%GVG$7#BO@bMSJ$_1-*R(v-@ku9F)=YFCdR|V z!`Rq(YikP(176?<|L@_KFJFQ$iiwGdi;GK0NJvUbN=Zq96M<96%F03@5GWKXCnqN_ zFR!4Wps1**q@<**tgND+2gB7=Sf{Re=S7Ca+(=HZ?T`Wz5aZK>^Uj%E}5f0rMgd2wPiQJ3BjjdwbC5&6_ul zj*eguCnqOoXJ^m{%=PZwJCF<1`0(KaC;;a2^z`)d^78if25o(PeL?V#A3uUn{{H@; zYG7bsP*6~CaBxUS2)HO=VPPPCL_`FL46e(kPoJWrqd^~#JuWT|T&DQ=_=JQ65G^Sw zDLFYgB_$;_H8m|QEj>LwBO?QaLS<%Ve);kxD=RBIJ3A*QCpR}YFE1}YKfj=$ps=v8 zsHmv8xVWUGq_niOtgNiOyu6~KqO!8Gs;a8Gy1J&Orna{B>({S!b#-Voy1u@?p`oF% zv9YPCskynirKP2{we{P#Z*6UD?d|Oy9UYyWon2jB-QC?iJw3g>y?uRs{r&v|0|SGD zgF{0@!^6WPBO{}uqhn)ZgxLX`sU{5 z_V)Jf?ha}_(C}}cx#?)=g2Vs!1^CpB|2q**Da*;iJQjXUh`4sikjqUN;34@=j+VV$ zy$cRM3g2T;(JGLWzqk70DEDN#*u9kgo zJcL3yy!Z(4Nqolfe)tJ;teSOGi|Pr|wErH*nBF?jP~e)Ek4B literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/thumb-x.png b/build/slider-base/assets/skins/capsule-dark/thumb-x.png new file mode 100644 index 0000000000000000000000000000000000000000..abed0253316931534bbdaacf4d169fe8fa90df24 GIT binary patch literal 4166 zcmdT`i8s{k7yo+6zLh=cwT>~yEM^9SVa#BLu?@qFtt>GVp}bK_BunWfscexJOGqI! zma^|l$i8LIUY01^&--WmKIeR%&$;KGbMO7!^E~G~_pB^P0=%br0RRv%AsbpBtKcy$ zx!I4;l}8+qW8v{9+g}9$K9T>(2Bbcd1OQ%3Zz9pk%F8d%@2Z!dzpM$7DC>X4&(qt- z0|0_Y(ruVDn?-Tl&cqgh5)<~A;%6 z#{Y(J_T;yS=7y%JSr|T?SJ593<}SG)clAJl4cHCU)m4?R;raxy1^4lB12yJpHHb6O zM?y=46eqT@yKFUq30f5HFi`-1BaV;_;EmbB(vv|pKqd#^((djy16Zj6F3Pv(`+%_Y z-INeE!11x17+YonAS>b#V+eTZ00rH4_l*Ds0uc42G+==tH2`5k_ap=F%Ym9MVZLI3 zn;$?>V4_x(L&!gI{+XvLG0M==0R|mU}0C6MqHWTd9|g_oJaC*ZZn5- z-TD4_0GJ94?KyO*Cw;Q7u4_U** zbF;HUrVRu~*EagCLuTFi8v23H?@-55bU)&`>oztY zPuef%JKC4&lW#C_V=*A2Gt^T7afYc6Hr2D_?-3rUG%EETU6`JP?y>7lVu1G-_1HoZ z)N-BO*?&=#g&Bc0(>nmLQR!Fv70k^Z<`ps39dxv=e?ZDq0>V5^9t8lvIYUJlt*u1A znHvBMGs7Y84WzefC80H(XKGK3)$;ATXxt?zHq;S>3A`7=&RlU(DY!!bM|HlJfw;iG z;$_e^RIjK+e?eHC?MFeJztA67?u=S+RX7iaK?}EttK3Koo7;VcLL9e5O60CwEt%s~ ztfFjdj3`x}l7Jy2t?$!hZOJklxGR5Qqn(T^5_DPs^*j4fRV3u&@M0?ND}O1Gm8*IB zuJKF0FBbxlsqx~OXI}rRId^ z&~uy~$?68SuTrhYb6?O-V&WYLZ(o#IzoSOyilF~V#db!Bn^3aezI@Vm+DpP~$NSy) zz>1UOPtIB-eWCZZFOt3|eP`ba;unY#i)fBvf~C?Vxg?oVL6Yy1&9bHXVx^jC2urnfHdz|+5X7!fD*VN3S^D|XVvV87RCBaa+O9J^( z|Ab>2Kt-LyH?Kh|lMiGnV{v(JUSNqRQxv_#dh@ZTKG#fg!0xj^3!VjVPSR%R{Rz=^ zm1z~}Y_u5*>EU!K?`hIgMm{;8nonA;)+k)fNzbk}sVq%YVE z+l=S%=7^i)w6_akd6%-JUsM_feZHKtmYnhFTv&#gU(Uq!>V-dNZov;|2flxDwn_X9 z&Jun_&Qbm@N!>iygh=V)P>Z`mzZrkez_ys@x;EwMWBR>iG<4{%%p(ZhoIG7d7KS3g`4)wa`~NbP#I zrhlt(>**q#$>^^uqoOxD$i&6wDGlsoOPBt2M~bklfC^{i>& zc7XHLjo$6_w34*C)!fl{YZ`0bYtduRJJ8QnGVD=Tztp!7zftFU^!c7YL0p-_vKkZc{{G_5_-S%t~{U7o6*&rP@k|r-=SGk-csIfS?`x|K5~+H zTjA)!(T$@XASX1&UA{3;$^HF%K8G7vL}zw`FaTCtlDiVRyagkzLcb4u;c}gKjja#mSB{L1q(|w;`NuF$_aKunK|N!{tCNO* z44)cKq%o0}*mr8C7>HgT?4s_7W(B%JzX|4P-_g%VXPEd<&R}7XLXFElpC0Q1 zr}<_=B$DAR&i>b5bk%J|=7_(6oq}pV#hb-gXg&U6APmVBf1tD>5~LKzd%aGkjwuiC z(dda8B053NT5OOZ<~JU#BvfIpD>kCCpmVId%5NT4nF*MUr)g)1r(TowRmW*pBO@Lq zJPaV@$(bjXF_)P0p4Zw7JR*w^8!yL}!_Pk9YQ0qQu;7Hf8gCgP`#a46JP6?`W_r*) zKX=}1!#>T=Q0-jpC}|sgsQGOD`O)gBx>Hk+%Ce#;bTt{qe09M^Y_V>@^-VAAfx>h>?AQFu}(c(gL2jL3TRS@&a=M^0;3r;a}DHEoObho-UCJ6`HKxO=&0 zO**9N7kZ_C)Uj&kK(F=Fs4bhVdB11B$DYYv$&P;Ey}ZTUr+dE6Z!LTSR-4&-*$=oB z1j`0lU;AZxaWw1r0o7%aVDsOf4%63z)C4pHZ2x`MG_Bxoczt$phi7ulMO*Q@ut>A&yzW!7EXrMm>iyN=ryy3Ug zxU)SeJ|22S`Jk)4ayUqN?QNB1)%h*_s=+XEJi1@s@o;QteeCwdnxM?ho-xu6XJkb8 zVZwI25b;EON_=~iK-6-EmL3*6t$*cUaX*LHeW4qaA#wQfu)R=193HyczdYF0lic$n zX(K7|v+vEUgQc2fsduAIbxmhKwFaY*=eF$jR%?UCf@IcTO$u4g-jux!KJxlqv~BYx zXD?AIG4Y6lJ$ZBA9i=vU{NLnY8kidZKvCSyJ!;}{EbC6THV1$kN&pZR0RX>`j&%_L z{y_l1k_!N6Cj)?l-=p)5#sI($Seem`P%w<9x|WWHuC68yq6CFQka}2syp91DqoWE^ zQv<^_kXm+BItqq%v~xrwG^{98Bvc&+h9lL~^|cLPs&Ep4Ou!NGIs~{1f~aR`gf~`F z07*$oS(sSZSkTA>6DSy_hsCR_p|w!j+GrgE909BVL8z+Jt?71DJ5?}LPfH&Pf@!K_ zbv1ApgeDwkkh3XVa+(QqgNq5{EUw6SPy zEwqjnS{tIIN-;J&DSR@($De9uZE0$yiPGZX<~fF_h^PR+z-h_T65FbIs2ydq2mdEWk{pkOs~vN^+saq+@MQ$vb?fPjmmi-x*}ryJA6&{R-B(3n61gH)Uu&JYmP-zNa2 zh87hO!@xD18Rw`LR4o)1q6~4OJJGEfa(~Mk8<3O~K`M%>I4vAV31nts=16z+_VCui zU=gZF3dt0Q)icsJwzHyx6;wn;Mb#i`DoPL-6i(D5^78Pak!XHCemg5WO%zreql?qh zQJ#$U0q#$eSJeiLt|rOQ&UrOb8|~eOKWRuTU%RudwWMmM`veeS65eeclVbsUwV3a zdV72O`ue_p{o3E(KQJ&bI5;>oG&DRsJTfveIyyQwHa0#!J~1&dIXU_5+qbEysp;wI znVFf{+1a_dx%v6|g@uLh-@h*|E-o!CEiW&xtgNiAuCA@Et*@{D`0?ZC&z~C`8=IS( zTU%S(+uOf>{o2{t+1=g!{rmTyKY#Z2_V)Mp4-O6v4-b!yj?j^IIsbVJw6?H04*xF! z;Q1EM0sz}X6GH=9@QB+`_+OGyyqew_i$2eTC4-7`*t?@R7r4Pe*(%RTA)?);+(E|7 zcdVfXFP6EI&b1Ynp((rNN<{m_$HMEaaWXoROYOaO?UWx8Z9m1^~@p&ZMJqKFsoS}M>^txl!{<$sor(>GK5LA(~26`wz5l%N%t z_oe87$DZj8+1)1#s@=Kjp$f=Fe!97*AntO{ajy>!s|~}|rL;lD58m~mT9+!kxnXol zM9-ZUu|ds(oTYQ7%gF>u0m%-@-Q!}(iJet;k!jBj9%6=X9jAMK=N*hWK0aX|Nqf3F zRBI*N=JhS7z!lukO8ex_6#>01^lo^JVB{=b)^OZw8nS_5Y>Hy-`6Jwpiwza^pMOLt zS1?PbhBO}!u2Ye(h_%mFb8{Wx=gAM8a@+P@-Ui_#x=f?OV`GsnV$f$I7ku1C9HQ(- zGL?e%eyxs{`$Y#F^JkHNc|Du>+BHQ4l(k!JDf|6lofHC?Z+R^_eodkMzt>}8WMNoH HaJln8US{B+ literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule-dark/thumb-y-line.png b/build/slider-base/assets/skins/capsule-dark/thumb-y-line.png new file mode 100644 index 0000000000000000000000000000000000000000..037dca38de3a9cc98aad216825ad0ce3caa86397 GIT binary patch literal 518 zcmeAS@N?(olHy`uVBq!ia0vp^{vb97GmyMrb@(!nVo7)Ob!1>zf5M!#>m`scS>hT| z5}cn_Ql40p%HWuipOmWLnVXoN8kCxtQdxL1)dr|&et=JiYkPZpY;0^oLPA|#T~ANX zq)C&4f`XEhlWS^fQd3hqJ3F(pvy+mNLPA2Mq@+qpN}8IQ3JVMQ`S~YIn9$wbZD3%K zmX@ZXq7oV!%E`%TYHC_qT54}^-_Xzy6&2;+;Gm|aR$gB26A z01P!-FMvXBji-xaNX4x+myh!uGT>==*t6|r(p1~i_ZF+w{ZDUZ_Fxk|+501ZXH8d< zyMpfQIacPAo*&)&S3q0k#X|eO+yACM`8|)r_wL2n?w*SkGS?nnG}R@OGsFA$2Q%iC zA{igoY5K03GAW47=N+fedme_Z*1U17G3TNlD}J{m`m37%(U+J{|%>#yDa}1*15U9ora@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%9SHCVag7R%3JVN(v~|?eG_bX> z^K$jJFtIW-vWSa}GuAV4b#N0A776qX(p1$_RZ-JY)iE(J^YQe}&B%=ij^yU%(b3Q| z)G-S14s^A5v$J&YaPr7X&2n>cw=uJ|GPN$uDfIL7bFg-ll#q0`b5WF2GBGqUH@4K* zHq_G4(oohi)i+aD(hT+s(bLw`*3i*b(={_N)6>vTOG@|m3dl{*jSh>B4v(&{st*qe zH#RWQ*D>&R_jYk`c6adr`Tz*56`5`VDTk6Ezu^Cr0fs}>8(kO}7}Y&p978H@ExCNV zsL4QpEx|#d^TbaDg@a8~nsuXYIjsz<_`f|XWzWHDGdrrM$JA_|{rB*f>#0xgENbIj zU7WP?NLYQmVR*W$`L*{OV!0Z3KdcBmE&P(v|I&5s6Z`Z^50+c*ckox8 zfa|>J6Sr;P*w#^y704L1?zP*!SKMZ$XAPF!+?K;}?((hbohvSN-s6v{d2y(dr}|#2 z+p?{m)%p(eUU;fcTXRTu$Cum+o2>x{56*h=^-{3{OUmXYySb+`&WZjT((kg2WybT9 zdIC-gN8@%();RoWzx%)FIU1kVl}z|nyW{Wu6`zX21E2gfEZp&1G=X9JpXZMhuE?~2 OqQTSE&t;ucLK6UTmMlB~ literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/rail-x-dots.png b/build/slider-base/assets/skins/capsule/rail-x-dots.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f65d4996892afc0d9582ef734c5d6784605661 GIT binary patch literal 3655 zcmV-N4!H4&P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s_V)Ju{r&In@3FD5^78V_%gf^8;{X5u2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~<;D2K00008bW%=J|NsC0|Ns90-h;ha0000&Nkle=waKH39wX2^3R~#ZtE661?|PI Z0RXXX4QA30kRbp7002ovPDHLkV1nMu?tB0M literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/rail-x-lines.png b/build/slider-base/assets/skins/capsule/rail-x-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..26374dfad07a34a04d0f01fbccc6eaab486e031e GIT binary patch literal 3669 zcmV-b4yy5qP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s{r&y>`}@_^)#c^o!^6YT(b4|?{>#hD`uh6v z^77*1;{X5u3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~v>**b0000CbW%=J|NsC0|NsC0|Ns9065r0w0000?NklKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s{QUg;`}^eN+9>w%gdRWng9R)5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~_05m@0000GbW%=J|NsC0|NsC0|NsC0|Ns90;3Hib0001JNklL??Y literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/rail-y-dots.png b/build/slider-base/assets/skins/capsule/rail-y-dots.png new file mode 100644 index 0000000000000000000000000000000000000000..798c2ce3c7e654226a48770bd0d5b4551855e3dd GIT binary patch literal 3643 zcmV-B4#e?^P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s_V)Ju{r&In@3FD5^78V_%gf^8;{X5u2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~<;D2K00008bW%=J|NsC0|Ns90-h;ha0000sNkl&D57i48-!zPbk56j@v!@$OXR}T&_-1Gnd009600|0Yr4Q4O)=eGa= N002ovPDHLkV1o0@<*)z% literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/rail-y-lines.png b/build/slider-base/assets/skins/capsule/rail-y-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..798c2ce3c7e654226a48770bd0d5b4551855e3dd GIT binary patch literal 3643 zcmV-B4#e?^P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s_V)Ju{r&In@3FD5^78V_%gf^8;{X5u2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~<;D2K00008bW%=J|NsC0|Ns90-h;ha0000sNkl&D57i48-!zPbk56j@v!@$OXR}T&_-1Gnd009600|0Yr4Q4O)=eGa= N002ovPDHLkV1o0@<*)z% literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/rail-y.png b/build/slider-base/assets/skins/capsule/rail-y.png new file mode 100644 index 0000000000000000000000000000000000000000..d20d3c3e991e9df9e806cd49381436d8cd2692ee GIT binary patch literal 3689 zcmZwJbx_pJ8vyVxFG!b22nf>MDGhgY$Kf5_93hQTf=8!x!yzHvAcu5!gLFv?2)q)4 zQonou|Lx4P&pb0bJG0Mzc4nh>wN;4lY48C6AW~CR)JJDgbl~G+qGx9EeMxk}b5}L; z0sw+%{{;q+o%Bdb-`D|w?+VfY4ly{Sl)2ux z1ZhMeQZ?N4DR3F|L9qz(BsMNaJW};2#)4%Ey`HB^N?5eR`B9kh@rXDIJs!ds{3V=S z#=`i}qNteB+pT~i=Y{s`{fURBMcIR@3uNOIPB$)Lx~j0AD1xvYME~@A=urRQ)-IoX zFg}YrK#JRF%jk8_i~-yPNlSAxb>nmb7`}4^xInj7PPf2|$VZYRP?jkMA`GM3JL#1M zE`l78_m2ma0P@Nh2xKOk0g#UcSdQ6P?*O{IfF=8f{W$=EyvYi{08CODDKPSr0ETCF zQHp?r6i_wwIz|bA2>|5w8vPQ$5-%X22DMiO>Y9P>Nm7Ca0GALD(2EM^1h4`C%VB0_ zUmz?CAXh$zO8?@nAwA$icPgtvx`jnTDcA&;*8>L%<)i1ARHNc17qj}uDqEhf*Ds4& zC|HE#`^7i_cW0xvbNrN*qf?!mj{3?@1U6n9{xre zgcLTy<)M)E6wAS!Aph-ktbGHCd=rp=xB|U!|F1Vn1&J-o%X_=KOX~d~6RS~Z-~+tZ zq8obu=1-9H-SyS?&TW=pA+ul=tefw>ihN89a9o?A@WO;MoENfsj@iMPzm2J^QDJ1NY&d;1yy z&fDC2zH#7UA{;`urhFdH|ktlLKCXFOfRYCn2 z2!o+2-MNhCKN69q%B@LK!+=o8T|~QzU}|uKp3FDGCU8rcI8B&xA;Gk*w_tVxWq!`I z=NB58II)6*=}HHZl>}MvkU;m3=QzUsZv^-T`#|-tc<@qe#_E}>2rCC^>Rwl2wnbmr zOx62fkp(Mt6Ufw=29$yUTcPf{(P8_xOBcu+5=A>ZDG+N4h7nhi#WBq+nQ-t-oGY z0C_5!U<|4*K(?<#6p-`@_5S>3SNycE&VxcI;5) zN5&7#OCLg_2#V05C^!do&U2jSaB83DwV9eF)N`@aLl6OR!Q;$>ERrlYLl_r|>pex% zD1MrH8e1AI7eA!DqNHM@g23>?a14@AZf+1*qiiT_uv3orExppP0;zj!Kx+Ummnw^_ zfS0*JAzgP&fMWFgg=eM!XFc?Psf>SbqPGt1a`M zt}RxkqP#!?EUYdJZPdR=wU@)$$@I9%_14Ba;3&G+3Mf9ZkE`sBgIR%uolTVY8pGtx!#${&?U;v5G}cUX2@23-b=*s$3c*)+6{v`(}2 zwOUFzOQbZVG>0a}CkiJPvP5%a1Q&%4at?A9b2ghTjeU)IP-UpEc4`f~#wA9lsCL(I zV+o^Tn4z&*qjEK}nsuSAx~=qSX^VD>c4giIysz#TY6Ml@OkKCPguPmWazO=J!L6y_ z%>y-krzssNfvtfb?`3d^BA1CP>5S=uyuNsnOTL!e$ezqSl?xoWOh4p@!=^~5mV|du z&&D|W9gzk(b1HBuc#Bu)MO19GM#vanhAdwW?cn-w$F92fm514u|Lheqr!lAZq-?eJ zRP5C8G;;0JxX35YJR@PR>Aqp`cfGwCIf74V0?wONK{{ZaV0hC3GrtXg60~};uDRH! z;@awrO7^#`=cgUn9cl3mp$#L8aq;fv;pQ=&KDRuJ@J;Xs=11E{|Hm1i6v2uC$BYhE z2sZiW_QwA`V^_SKX5yjYDS0QpNZ9s*9V!CNt2Gm;krRT z7N&8m_N`+3f(Y5eBg3H)a`Em_Fq#>`3{jt%HL%yF;$Ovd#f==eppHZ>uevCgYz3c_ z^on?^NUPi+pS{ueJPZj_d!z9}f{&|4%=Jy@=H1Cf_cFYc zvYd~MM>1VrGfMka>c0x4TxFDTtmn^sSmW{idg*%MO#CxqGf_)mQ!aY#b5$-a|Ky)Z z?V^4x1H#2Tdo5w?<%#W@M4Ib4l6jQb?-*Q!WF$KTLz9ydJwO$VS}7>_5q#hN-B^`f zc*DbhYiu(=eHzY)b7NxF6C+-H6sY6}#F%4|3#S2Y2et2-h#r+lugv3~I2msoT}>3v zJ^S={Le@*Rm5eHm(17yN!S*|A?7nHk+*eMj&ZrDWYR)$XBT{C_XH4toiQI zM!Jo5Wv!)tDX;8rv7NG?wLje7;LS53POr$=&meXsT3-1=wE6nW$<=SARsM_#j@7nM z6u70ROZscOUFpc=gp?fQGvpHT7b12#yWV8Ac;h;AN*mDrTjb~bs!99xz3fQmsv(A< z*1Y|^-L2Yf0~p+dSQ@3`9R+f%{m6c<5#4 z1Mtv|xPYoHoVl0p=-_nxPN3}bY~>t->{}CS zlUAK^*_nl-4gWip)t4l>BGN{F>KBj^$Cbm7xfJ;MR2(u585qR(XU%f85EXD>Gr8$R z;&#?b>b*6q^cZ^})h;z@dj8e>ykT|k8T2bOyH?V|<;eR;`XOabXQ(Z=ExV@0)Vbx< zzoRL@{`!zMPkeIyvcvBe<>SJ9o`lSL$A!P!^}zMjCgpmNC;R>6SlhA>`)PH%PP@gW z{E5Occs+7n&g5Zj>1^$TQ@2n4#mt(@HFkLD)I-u$0txs@LRP|91X09s-YZ!NiETO0 z`@_3Z@RaQoTOQRz;lo%B6(xVr&HVA= zLG#PkwT3ajKPvzrLIL2^KfPkQ&ppcM| zu&}U*h={1DsF;|TxVZSMSFa=_BqSvzrKF^!rKM$LWMpM!<>ch#<>eI=6hI&l7z|ca zR8&$@QdU-0QBhG)z#C})7RHGFff2XAcls9 zuV250LZL7i%*e>d*x1;_#KhFp)XdDx+}zy4!ot$h(#p!p+S=O2#>Upx*3Qn(-rgP# zhdVepI668yIXO8yJHL7J#>K_O)z#I_&CT82-NVDf)6>(-%gfu_`|aDe@7}%h@$vEX z_4V`f^Y`};2ncxp{(WFzU{FxdhYueR2t;sja7aia`bgqR#sM3 zRaIA4*VNS1*4Eb5)z#P6H#9UfHa33w@};S%357y6H#dL%`W20#wY9aat*yPiy`!U} zv$M0StE;=ayQin8x3{;iudlzqe_&u>aBy&FXlQtNcw}T`baWKW15IdRVq$V~a%yU7 zdU_hoX?AvYZf*|kZGL`!VPRo$adByBX?b}WZESUQ6)kXmeSKqN1C8+e_wQRZNJUKZzJv}`;JNx(Fe}Db@g~o}7dU<(yb#;Y? zeSLj>b93|O&mXi{w05+4v}ZJLG+O=EY4p1QsJ->I4bbKP9RP+1elvQJftsQM#COFy z5dnDU3EC^0Yvb8=k1`KVjYl!DF!FJ+vGDXFzI$BY2^LgZQc*JI6GTVyL=?n^@|e8| tVL9HmerjVy)?G><{=B9Yy&drQhzaZ`@oBjQE<^vT)s(aqYe1GE{{ui%CFTGC literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/slider-base-skin.css b/build/slider-base/assets/skins/capsule/slider-base-skin.css new file mode 100644 index 00000000000..473a95848b8 --- /dev/null +++ b/build/slider-base/assets/skins/capsule/slider-base-skin.css @@ -0,0 +1,100 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule/thumb-x.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule/thumb-x-line.png */ + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail, +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; + background-repeat: repeat-x; + /* alternate: rail-x-dots.png */ + /* alternate: rail-x-lines.png */ +} + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail { + height: 25px; +} +.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb { + height: 30px; + width: 14px; +} + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -20px; + height: 20px; + left: -2px; + width: 5px; +} +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -40px; + height: 20px; + right: -2px; + width: 5px; +} + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -10px; +} +.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -50px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule/thumb-y.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule/thumb-y-line.png */ + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail, +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; + background-repeat: repeat-y; + /* alternate: rail-y-dots.png */ + /* alternate: rail-y-lines.png */ +} + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail { + width: 25px; +} +.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb { + width: 30px; + height: 14px; +} + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -20px 0; + width: 20px; + top: -2px; + height: 5px; +} +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -40px 0; + width: 20px; + bottom: -2px; + height: 5px; +} + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb-image { + left: -10px; + top: 0; +} +.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb-shadow { + left: -50px; + opacity: 0.15; + filter: alpha(opacity=15); + top: 0; +} diff --git a/build/slider-base/assets/skins/capsule/slider-base.css b/build/slider-base/assets/skins/capsule/slider-base.css new file mode 100644 index 00000000000..5259501286c --- /dev/null +++ b/build/slider-base/assets/skins/capsule/slider-base.css @@ -0,0 +1,8 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +.yui3-slider,.yui3-slider-rail{display:-moz-inline-stack;display:inline-block;*display:inline;zoom:1;vertical-align:middle}.yui3-slider-content{position:relative;display:block}.yui3-slider-rail{position:relative}.yui3-slider-rail-cap-top,.yui3-slider-rail-cap-left,.yui3-slider-rail-cap-bottom,.yui3-slider-rail-cap-right,.yui3-slider-thumb,.yui3-slider-thumb-image,.yui3-slider-thumb-shadow{position:absolute}.yui3-slider-thumb{overflow:hidden}.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail,.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left,.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right{background-image:url(rail-x.png);background-repeat:repeat-x;background-repeat:repeat-x}.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail{height:25px}.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb{height:30px;width:14px}.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left{background-position:0 -20px;height:20px;left:-2px;width:5px}.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right{background-position:0 -40px;height:20px;right:-2px;width:5px}.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb-image{left:0;top:-10px}.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb-shadow{left:0;opacity:.15;filter:alpha(opacity=15);top:-50px}.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail,.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-top,.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-bottom{background-image:url(rail-y.png);background-repeat:repeat-y;background-repeat:repeat-y}.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail{width:25px}.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb{width:30px;height:14px}.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-top{background-position:-20px 0;width:20px;top:-2px;height:5px}.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-bottom{background-position:-40px 0;width:20px;bottom:-2px;height:5px}.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb-image{left:-10px;top:0}.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb-shadow{left:-50px;opacity:.15;filter:alpha(opacity=15);top:0} diff --git a/build/slider-base/assets/skins/capsule/slider-skin.css b/build/slider-base/assets/skins/capsule/slider-skin.css new file mode 100644 index 00000000000..473a95848b8 --- /dev/null +++ b/build/slider-base/assets/skins/capsule/slider-skin.css @@ -0,0 +1,100 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule/thumb-x.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule/thumb-x-line.png */ + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail, +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; + background-repeat: repeat-x; + /* alternate: rail-x-dots.png */ + /* alternate: rail-x-lines.png */ +} + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail { + height: 25px; +} +.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb { + height: 30px; + width: 14px; +} + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -20px; + height: 20px; + left: -2px; + width: 5px; +} +.yui3-skin-capsule .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -40px; + height: 20px; + right: -2px; + width: 5px; +} + +.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -10px; +} +.yui3-skin-capsule .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -50px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/capsule/thumb-y.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/capsule/thumb-y-line.png */ + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail, +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; + background-repeat: repeat-y; + /* alternate: rail-y-dots.png */ + /* alternate: rail-y-lines.png */ +} + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail { + width: 25px; +} +.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb { + width: 30px; + height: 14px; +} + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -20px 0; + width: 20px; + top: -2px; + height: 5px; +} +.yui3-skin-capsule .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -40px 0; + width: 20px; + bottom: -2px; + height: 5px; +} + +.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb-image { + left: -10px; + top: 0; +} +.yui3-skin-capsule .yui3-slider-y .yui3-slider-thumb-shadow { + left: -50px; + opacity: 0.15; + filter: alpha(opacity=15); + top: 0; +} diff --git a/build/slider-base/assets/skins/capsule/thumb-x-line.png b/build/slider-base/assets/skins/capsule/thumb-x-line.png new file mode 100644 index 0000000000000000000000000000000000000000..849a4548c0ec51777cc863d01b06bba60a1c63f1 GIT binary patch literal 828 zcmeAS@N?(olHy`uVBq!ia0vp@Kpeoq3?#p*@}~nSmUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$Z5S9B^#goDTn`;Ov}4DPR~_Uu`+X3g^D%XjbIec-@>{rmT?TD5B7!i7hV9zA*TeZ{?zI|(NZ*OdDyl&mPnKNf@-@d)FvU2g_#ZR6* zIdS5|zJ2@d+_}Ta$@%Z!zhlRatzEnJ+qZA3s;ZYSU(U?TOh`z0{P^*W8#iQSWxss+ zGG)q?zP`Romo9DHx^?Q*skXMZOO`CzvSrKFt5<*h`qkgx|Lobb3l}b2ym+yvr>Cv0 zO+rFKPEPK}j~|~ue@;zJZE9*VF)?}l`t`JF)4qQF+TGnfZ{9o+5fM#I&D*zcGcz;a zym@omwrxj_9QpnGcU@iGqeqYK-@h*^DthqXL04DTYuB#r+`04g>C?-WE&KofKQL5* zz+%qjpFk?LB*-rqC`fa_AenKg85mbeo-U3d6}Qe@yqb5|K%^ltJ#*KVNQc73K6WFzPE))!yU%q_CvYab+%N%C=am>$KL%+g2HGr{^r1`D#mC#q&~gt=HDAcmDjpQEgLYHEV@j%dQe0trrn1_`EpwHnN;>aOu3^niQbFLZ^gdmS_~)RJYp_>8yLD p+g{qNU;XwV@6+4wtA7Y3Fo-M-I6L)bk^m^0JYD@<);T3K0RWpB);ItF literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/thumb-x.png b/build/slider-base/assets/skins/capsule/thumb-x.png new file mode 100644 index 0000000000000000000000000000000000000000..09baa964b8306317ae679fc4f1816562b69e8b5c GIT binary patch literal 768 zcmeAS@N?(olHy`uVBq!ia0vp^d_e5a!3-qdOk&XjQY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%9SHCVag~;q&dtqTvSi7F2M-o4 zT6E;dk&`D+?%1(o-MV%2=FQu>b?b!-7dCF(xMt0oLx&EXIdf+D^5y&X?OU~K)vQ^w zrcIl6<;s;ymoB-wx<*GwfBg7y!GZ;E-n^MIWy+j6bN1}n^X%EPCr_T-zJ2@p_3Pih zeOs|&#g;8wHf`F(&CPx8+_@h=e$1FLh2M!!~_3G7&7ccJKy?f`*ok^1>efjbw zF){JcqerJsojP{xn2wH)mzP&cO3LotyZ`?Ed*jB9-@ktYeE&iYc$0$&>x0a;#D<4TMk%gbURhbGDdt;0{QtlDTS4cV z=W;gwHQDQDnx^ZYc$jfwWx@RQlddj$YUh9Lr`2g`y-9COJ0I_O_B{2}kG(uUmL&Z< zAosI2;a5!Y{-nqJ9}_-VH_p(x^wnJ_=w1IZwThE!8%0*icSUljJua5Ch}4j|&Uo3v z;HN>e4tL6>Cv{(VD$O6Ta4DNLYe;-3P?>h-Q`HrQ_``Dx(!%5~Y2LRC-ahH#brIw1 z&FgYrHL2;n4Axl0G{tJsHd)P8@kgsH*mOhv_y0V3DR9Y^OI=_0-H}iVYTdi~S~}aJ z*N=WZTl((Q_Rv6)Z!1>n6}EZZ?8~Y4JG5{6570PwoMPWt$DU+ zne}?h<)Y@PH;*N_MNKmFIQ>5GLF94WANL9w_LbH!d%827vp#q5)A2vP^>hE0eqQkS z_s7-e4x}E}F1V9>zf5M!#>m`scS>hT| z5}cn_Ql40p%HWuipOmWLnVXoN8kCxtQdxL1)dr~OK!8t(YjSe3q@?7kRjZC3J-TMi znga(8bai#Tdi839%d#HgDei>C>l&4C++&YW3US^4(u+b2(+oH%h}-@bhE z=FOXznVDHvSLf>L`t|GA7cXA?`0?ZP>C?-WE&KofKhOt2us&se4Ulpu3GxdD3Q__X z4pnb-VPIes_jGX#skk*~a<+f7fk<0p*&XwM<98ggG`Gj5%>KM?>c9W>sm^Y1xKvJk zUh8>&^0PhpqH3QaV;ij*8MyW*{dW}PXVduha=OE;CWDzaJzvf)ca{i_e3-Hs=dgrD?u)+WO8l zmV2M=(z5;UHC`_3u4>r%!209K9p|4{PRh4l^4R;&-mfndmfVcIGwGr<$4@SE>u|op z3*p^ArIx)`sgyq6GWqe5&UoASPqP1?B?k-0R{Zz6w`Wrhmqe1Uxvpj3OsgfqQ%}1_ zv)_(>#rvK2w(q`o+um0?h^uf(x8DAJ$n~JxuZX4VnRaS#|C9WW!+_yS+x3@!Ql>8i O1-qxKpUXO@geCwuPHz|h literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/thumb-y-lines.png b/build/slider-base/assets/skins/capsule/thumb-y-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..4421d7027a7fcb8683604cf13145af696776d662 GIT binary patch literal 3665 zcmV-X4zBTuP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s{r&y>`}@_^)#c^o!^6YT(b4|?{>#hD`uh6v z^77*1;{X5u3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~v>**b0000CbW%=J|NsC0|NsC0|Ns9065r0w0000;NklVz`)7Hj4sB($;Hk9=diM1Xkz5#V#2S9lZzdj0;*_Y%7c*W> jxWI7K1ONa4|NjF3tXCCEtrNc+00000NkvXXu0mjfAIAF? literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/capsule/thumb-y.png b/build/slider-base/assets/skins/capsule/thumb-y.png new file mode 100644 index 0000000000000000000000000000000000000000..4040ee3522ee9136400c291aba40f33275a21955 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^{y@yf!3-oL-)*b~QY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%B?S0{xTdG4FI~Fy&!0cCva)N} zu3fNT!Q8oXFI>2=bLY;dPoM7Fx9`oHH#29>JbU)+g9i_$OqsHE>(*7PR&Ct4@#f8& zhYlS&di3av7cWkpJbCr%)tH!=yLaz?`}WPv&F#a74?r7$K=|^M3?QXY666>BA3tD- ziIINGz`!W(>Eaktacjxt+eOU^BCG)#N(*9K91Ns>{@>5DWNrj&`m7Rrt6gc2EgLG% zT`zh+ljl(6^Ujz@)r_sz{4cRQ%5{Hv1`88z8znaZ4n`O zYa8!E(S*pVl`@mnwikbUsk$!r_Cl^hmci8*)|`)fme(n4KgUnz`Kq^Gy=S6l&Xn2v z`>dtArtG9c`~7bhEuErgu`zG!nnw@5df)fId_-b$(7QQVr|$2&%Ix>oNv^f_tkV22 zO&@Ol*oqex{9(ymvv4FO#m&w5fcCa literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/night/rail-x-lines.png b/build/slider-base/assets/skins/night/rail-x-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..4e5a44070151295167b505cdd43db9c54a4da8e6 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^Ahsz7Gm!K@(DfZiNtU=qlmzFem6RtIr7}3CT?()5S5Q;?|Lg zmV5^kcvxifiWvUa=NfSHv1U$Q%jRt+rJI}DaxG%o4Am(rpTA7Fpt;c7X?M$_Cr`Jp zpXl>$#cHt)CmD6K8AY=hWwXDU#&12gal)hbPX766dv=)HZtbjmeU>TGmof4zzopr0IFtz!T|6H_V+Po~-c6&VEhgt$gVMy8~sw70h>BqTI6G<0=!RaREEw6y&A@#F2= zw?~g2y>#i)g9i`Ru3fuh#}1&TE;V-_ASF-|3t2fkHP@^yGg)xpvR|X(yK2!JEM<+Z3%K{x|K4;$c+ID%o}~OO z<~L5O>CZe?e{beeyR~1l+N-;(7gsk|NndnV;%8)Im@dRys`&eL2hbV@Pgg&ebxsLQ E0Ayx#HUIzs literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/night/rail-y-lines.png b/build/slider-base/assets/skins/night/rail-y-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..af2bc24808b9db73534e761108cfe0933e6c311f GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^ra;Wa!3-poMV?s!DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MaBU>A+C{;kpTe#?d|QAm6Z(*4P9MbDJdx}EiDNN2|s@P zc>DJ4(W6H%UApw(!GpDH*Y4P{1E?>zh-EXn44aTj2o1uSs$~o)40If#x!Jy85}Sb4q9e0Ai?bHUIzs literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/night/rail-y.png b/build/slider-base/assets/skins/night/rail-y.png new file mode 100644 index 0000000000000000000000000000000000000000..bc096bc773cd9da6a2d4ff5a5bfde7917a29b5f5 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^ra;Wf!3-oXIfc9jQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JioyeYLR_t^tRf>L1q1}r)6-K@Qm$UT+S1Yz5)$(1)2D=l zgocKO_3PKWxw&oJxUsUbvc0{%tE-ETk8k3{i3blJw6nAO@#Dwaw{O?3UHjm{gQG`} zUb=K?$BrF9vnTiL_yDA2OM?7@|KkA+k!{bjKyLALaSW-rl{A5oF|#n!QS o-PBdM;8#yz!+cjaHiZKWH1boFyt=akR{0ILv;1ONa4 literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/night/slider-base-skin.css b/build/slider-base/assets/skins/night/slider-base-skin.css new file mode 100644 index 00000000000..a00b44e6632 --- /dev/null +++ b/build/slider-base/assets/skins/night/slider-base-skin.css @@ -0,0 +1,99 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +.yui3-skin-night{ + background-color:#000; + color:#fff; +} + +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/night/thumb-x.png */ + +.yui3-skin-night .yui3-slider-x .yui3-slider-rail, +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; + /* alternate: rail-x-lines.png */ +} + +.yui3-skin-night .yui3-slider-x .yui3-slider-rail { + height: 25px; +} +.yui3-skin-night .yui3-slider-x .yui3-slider-thumb { + height: 26px; + width: 21px; +} + +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -20px; + height: 20px; + left: -5px; + width: 5px; +} +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -40px; + height: 20px; + right: -5px; + width: 5px; +} + +.yui3-skin-night .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -10px; +} +.yui3-skin-night .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -50px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/night/thumb-y.png */ + +.yui3-skin-night .yui3-slider-y .yui3-slider-rail, +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; + /* alternate: rail-y-lines.png */ +} + +.yui3-skin-night .yui3-slider-y .yui3-slider-rail { + width: 25px; +} +.yui3-skin-night .yui3-slider-y .yui3-slider-thumb { + width: 26px; + height: 21px; +} + +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -20px 0; + width: 20px; + top: -5px; + height: 5px; +} +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -40px 0; + width: 20px; + bottom: -5px; + height: 5px; +} + +.yui3-skin-night .yui3-slider-y .yui3-slider-thumb-image { + left: -10px; + top: 0; +} +.yui3-skin-night .yui3-slider-y .yui3-slider-thumb-shadow { + left: -50px; + opacity: 0.15; + filter: alpha(opacity=15); + top: 0; +} diff --git a/build/slider-base/assets/skins/night/slider-base.css b/build/slider-base/assets/skins/night/slider-base.css new file mode 100644 index 00000000000..9c7023a8d79 --- /dev/null +++ b/build/slider-base/assets/skins/night/slider-base.css @@ -0,0 +1,8 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +.yui3-slider,.yui3-slider-rail{display:-moz-inline-stack;display:inline-block;*display:inline;zoom:1;vertical-align:middle}.yui3-slider-content{position:relative;display:block}.yui3-slider-rail{position:relative}.yui3-slider-rail-cap-top,.yui3-slider-rail-cap-left,.yui3-slider-rail-cap-bottom,.yui3-slider-rail-cap-right,.yui3-slider-thumb,.yui3-slider-thumb-image,.yui3-slider-thumb-shadow{position:absolute}.yui3-slider-thumb{overflow:hidden}.yui3-skin-night{background-color:#000;color:#fff}.yui3-skin-night .yui3-slider-x .yui3-slider-rail,.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-left,.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-right{background-image:url(rail-x.png);background-repeat:repeat-x}.yui3-skin-night .yui3-slider-x .yui3-slider-rail{height:25px}.yui3-skin-night .yui3-slider-x .yui3-slider-thumb{height:26px;width:21px}.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-left{background-position:0 -20px;height:20px;left:-5px;width:5px}.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-right{background-position:0 -40px;height:20px;right:-5px;width:5px}.yui3-skin-night .yui3-slider-x .yui3-slider-thumb-image{left:0;top:-10px}.yui3-skin-night .yui3-slider-x .yui3-slider-thumb-shadow{left:0;opacity:.15;filter:alpha(opacity=15);top:-50px}.yui3-skin-night .yui3-slider-y .yui3-slider-rail,.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-top,.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-bottom{background-image:url(rail-y.png);background-repeat:repeat-y}.yui3-skin-night .yui3-slider-y .yui3-slider-rail{width:25px}.yui3-skin-night .yui3-slider-y .yui3-slider-thumb{width:26px;height:21px}.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-top{background-position:-20px 0;width:20px;top:-5px;height:5px}.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-bottom{background-position:-40px 0;width:20px;bottom:-5px;height:5px}.yui3-skin-night .yui3-slider-y .yui3-slider-thumb-image{left:-10px;top:0}.yui3-skin-night .yui3-slider-y .yui3-slider-thumb-shadow{left:-50px;opacity:.15;filter:alpha(opacity=15);top:0} diff --git a/build/slider-base/assets/skins/night/slider-skin.css b/build/slider-base/assets/skins/night/slider-skin.css new file mode 100644 index 00000000000..4cd48e7d828 --- /dev/null +++ b/build/slider-base/assets/skins/night/slider-skin.css @@ -0,0 +1,94 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/sam-dark/thumb-x.png */ + +.yui3-skin-night .yui3-slider-x .yui3-slider-rail, +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; + /* alternate: rail-x-lines.png */ +} + +.yui3-skin-night .yui3-slider-x .yui3-slider-rail { + height: 26px; +} +.yui3-skin-night .yui3-slider-x .yui3-slider-thumb { + height: 26px; + width: 21px; +} + +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -20px; + height: 20px; + left: -2px; + width: 5px; +} +.yui3-skin-night .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -40px; + height: 20px; + right: -2px; + width: 5px; +} + +.yui3-skin-night .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -10px; +} +.yui3-skin-night .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -50px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/sam-dark/thumb-y.png */ + +.yui3-skin-night .yui3-slider-y .yui3-slider-rail, +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; + /* alternate: rail-y-lines.png */ +} + +.yui3-skin-night .yui3-slider-y .yui3-slider-rail { + width: 26px; +} +.yui3-skin-night .yui3-slider-y .yui3-slider-thumb { + width: 26px; + height: 15px; +} + +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -20px 0; + width: 20px; + top: -2px; + height: 5px; +} +.yui3-skin-night .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -40px 0; + width: 20px; + bottom: -2px; + height: 5px; +} + +.yui3-skin-night .yui3-slider-y .yui3-slider-thumb-image { + left: -10px; + top: 0; +} +.yui3-skin-night .yui3-slider-y .yui3-slider-thumb-shadow { + left: -50px; + opacity: 0.15; + filter: alpha(opacity=15); + top: 0; +} diff --git a/build/slider-base/assets/skins/night/thumb-x.png b/build/slider-base/assets/skins/night/thumb-x.png new file mode 100644 index 0000000000000000000000000000000000000000..2045257c2d7ab870e83eea2417fd57109c262de4 GIT binary patch literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^B0%iM!3-pS3%VQzQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jidq7ELR=3YK78WDiL+_8 zxn5pghYlT*k&!VqH9dFk91|1M>eZ{6nVBCwdbDTHp0>8OEnBuID=VKod2;I1sS6h_ z^!4=xx&jDpU0o;(q;yJx{DS`z4;YSLaYO-d?wfG$Prg4R7+1=LF-ph?=zd1I=^s~ao zuS+67TE#wj<(+q=r)Tb}_uB0F&u{mdKI;Vst0DN-s{r~^~ literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/night/thumb-y.png b/build/slider-base/assets/skins/night/thumb-y.png new file mode 100644 index 0000000000000000000000000000000000000000..5ea57f08ee0db3636d221207e1522ad5fd9045bc GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^Za^%;!3-qXx9#=8U}fi7AzZCsS>JiVg($gt(qRe}31lT_;bT+`oVS{rmTi9zA;N)~%;cpI*Is zb=$UWFJHdgxN+m!wQJwLef#Otr&X&~&6_vx;lqdg{QTd(eOtP8DKj(knKNe!3JSEe zv}9ytzJC3>ef#zmD^@f&H)myKWn^S5Tej@fsZ%p%%+S-*PP? zr%s(ZbLLDwKEChYzvt!U?bxwHUtfRIrcL|y?Q?N)>Fw=pXlPisZr$~~x#B8x z*nr0&aQT#FFC1ph)J(ndH$U`Kij1#X>DTh8A8U0CKO8^Pog3a>{6qiQ>|=B1ytuH~ z*xdH@(%lQ+%PnF^OI^0)%(up$66S41Q>XMR8{TGF<(QP^dBwrE z(psoEX$5bmrCR`7XW=6aza+1~D@{kHm|mHAYmqR*(Mft6-e>bftQDqAM+<%CVl~d?(a04U5A4!Fq@;pgTe~ HDWM4fIbbT- literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round-dark/rail-x.png b/build/slider-base/assets/skins/round-dark/rail-x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0ee5024faa796680eb5d396cf55cd64ff3354c GIT binary patch literal 3637 zcmV-54$AR~P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>$P*5%|E+{A{000051qB8M1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~doOI<00005bW%=J|NsC00QE2@Hb}wJR$>`TGMx600000NkvXX Hu0mjfXI;)3 literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round-dark/rail-y.png b/build/slider-base/assets/skins/round-dark/rail-y.png new file mode 100644 index 0000000000000000000000000000000000000000..7fedc219cefaeeac597f4e0bbb6353b6421e802f GIT binary patch literal 3635 zcmV-34$Se1P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>$P*5%|E+{A{000051qB8M1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~doOI<00005bW%=J|NsC00Q%)$Tw literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round-dark/slider-base-skin.css b/build/slider-base/assets/skins/round-dark/slider-base-skin.css new file mode 100644 index 00000000000..8ab2c8edb4b --- /dev/null +++ b/build/slider-base/assets/skins/round-dark/slider-base-skin.css @@ -0,0 +1,96 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/round-dark/thumb-x.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/round-dark/thumb-x-grip.png */ + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail, +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; +} + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail { + height: 25px; + background-position: 0 3px; +} +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb { + height: 26px; + width: 24px; +} + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -17px; + height: 20px; + left: -2px; + width: 5px; +} +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -37px; + height: 20px; + right: -2px; + width: 5px; +} + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -7px; +} +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -47px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/round-dark/thumb-y.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/round-dark/thumb-y-grip.png */ + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail, +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; +} + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail { + width: 25px; + background-position: 3px 0; +} +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb { + width: 26px; + height: 24px; +} + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -17px 0; + width: 20px; + top: -2px; + height: 5px; +} +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -37px 0; + width: 20px; + bottom: -2px; + height: 5px; +} + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb-image { + top: 0; + left: -7px; +} +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb-shadow { + top: 0; + left: -47px; + opacity: 0.15; + filter: alpha(opacity=15); +} diff --git a/build/slider-base/assets/skins/round-dark/slider-base.css b/build/slider-base/assets/skins/round-dark/slider-base.css new file mode 100644 index 00000000000..dd479ff90d6 --- /dev/null +++ b/build/slider-base/assets/skins/round-dark/slider-base.css @@ -0,0 +1,8 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +.yui3-slider,.yui3-slider-rail{display:-moz-inline-stack;display:inline-block;*display:inline;zoom:1;vertical-align:middle}.yui3-slider-content{position:relative;display:block}.yui3-slider-rail{position:relative}.yui3-slider-rail-cap-top,.yui3-slider-rail-cap-left,.yui3-slider-rail-cap-bottom,.yui3-slider-rail-cap-right,.yui3-slider-thumb,.yui3-slider-thumb-image,.yui3-slider-thumb-shadow{position:absolute}.yui3-slider-thumb{overflow:hidden}.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail,.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-left,.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-right{background-image:url(rail-x.png);background-repeat:repeat-x}.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail{height:25px;background-position:0 3px}.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb{height:26px;width:24px}.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-left{background-position:0 -17px;height:20px;left:-2px;width:5px}.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-right{background-position:0 -37px;height:20px;right:-2px;width:5px}.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb-image{left:0;top:-7px}.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb-shadow{left:0;opacity:.15;filter:alpha(opacity=15);top:-47px}.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail,.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-top,.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-bottom{background-image:url(rail-y.png);background-repeat:repeat-y}.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail{width:25px;background-position:3px 0}.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb{width:26px;height:24px}.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-top{background-position:-17px 0;width:20px;top:-2px;height:5px}.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-bottom{background-position:-37px 0;width:20px;bottom:-2px;height:5px}.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb-image{top:0;left:-7px}.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb-shadow{top:0;left:-47px;opacity:.15;filter:alpha(opacity=15)} diff --git a/build/slider-base/assets/skins/round-dark/slider-skin.css b/build/slider-base/assets/skins/round-dark/slider-skin.css new file mode 100644 index 00000000000..8ab2c8edb4b --- /dev/null +++ b/build/slider-base/assets/skins/round-dark/slider-skin.css @@ -0,0 +1,96 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +/* Horizontal Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/round-dark/thumb-x.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/round-dark/thumb-x-grip.png */ + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail, +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-left, +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-image: url(rail-x.png); + background-repeat: repeat-x; +} + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail { + height: 25px; + background-position: 0 3px; +} +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb { + height: 26px; + width: 24px; +} + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-left { + background-position: 0 -17px; + height: 20px; + left: -2px; + width: 5px; +} +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-rail-cap-right { + background-position: 0 -37px; + height: 20px; + right: -2px; + width: 5px; +} + +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb-image { + left: 0; + top: -7px; +} +.yui3-skin-round-dark .yui3-slider-x .yui3-slider-thumb-shadow { + left: 0; + opacity: 0.15; + filter: alpha(opacity=15); + top: -47px; +} + +/* Vertical Slider */ + +/* Use thumbUrl /build/slider-base/assets/skins/round-dark/thumb-y.png */ +/* Alternate thumbUrl /build/slider-base/assets/skins/round-dark/thumb-y-grip.png */ + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail, +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-top, +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-image: url(rail-y.png); + background-repeat: repeat-y; +} + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail { + width: 25px; + background-position: 3px 0; +} +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb { + width: 26px; + height: 24px; +} + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-top { + background-position: -17px 0; + width: 20px; + top: -2px; + height: 5px; +} +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-rail-cap-bottom { + background-position: -37px 0; + width: 20px; + bottom: -2px; + height: 5px; +} + +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb-image { + top: 0; + left: -7px; +} +.yui3-skin-round-dark .yui3-slider-y .yui3-slider-thumb-shadow { + top: 0; + left: -47px; + opacity: 0.15; + filter: alpha(opacity=15); +} diff --git a/build/slider-base/assets/skins/round-dark/thumb-x-grip.png b/build/slider-base/assets/skins/round-dark/thumb-x-grip.png new file mode 100644 index 0000000000000000000000000000000000000000..858964b82f0222f5348afc18eabc3e4ec10d6824 GIT binary patch literal 4365 zcmd^>g;Uhu*T+AEbfgvbE5ThR7r^#hyVZ}Raa9o!1#w4QzyW|>=XfXnHWdt zre^910L0Y)85WTJ5p#k_*9i>P({pt7a`kj{bz@NngIU}>TpgU=+5>>^64DR~G2Ek* zxm-I_)Qk#F)pRwWC15d7j18tq=Hy`|q|k_B&0nO|@1ayy#$_DNi^54r2#%xG=Ou|D zTEO38El3C}jEWh(-Uujk{?>lEGjZ26FS}cLifov|?dbX)_0PudU8@M0ZnGfx8H?#|J252^KN^p!c86kHoRcd zcf6nmhF~eYV3)fBjw4*h*Ti}6FJm3*$>p1XyuBskQ@8)LQO-|lSzO%S+FH=)S2VXC zH4eIi_F8ru-@g3|lfJn;|K9n7Jw(VNL>2eyd++#}R`KJh6vA+um7PS@n`Yws8>ZQ( z{pvO?COkBo`c&=-O4)IzLd8#`6;rqeIA-qceysCez9$N-b=0E;OG} zn0R&nxCDTcHrJl7Tm(45j$s>9KKI9Rx2ky@K(K>)iaP+jR$}Lej5f#(5deTvUI{>pMmw z+{pNQjXsmfxRL*}CdlpKY7ZgARTw6qwq{+5!m^1mVM`#O&x*KW?NP&}ie+aRiK5Ye zs+laRCTI`?VKGu;I+5|fmVm!fX-$?I282RyBHL93Q$yh?wXk?Iy6U*QIQsGFxlqd@x66pT<5MQ|etpNXEpJLq$UP6TJSl!b~l8Qlw z+Lx6$ZPDkpQ*}PLR3XaUgkrcpiY(U53Th@=COQjhr7VxxMJSgD#R+l3^?RQ^MU-kb za<)?b?SE(^BnUTA<7N9sl}HVu2#5mri?dTjgN2^8Bw?%96+vdGW>jY08L;i~mgR`3 zF|Z*nIKW*Hpm9WR|~etNZ1uBI{T zWPCB68QW9+neh|n%!h=p&zpHJMr^k7i>Z4M7CN1rIWJv&get zjZApZJb|>yqeN*MX`E?{JRnF}c}e+NIkC~H(HJDL?6qM~wTh9j;bs}(*Ypaba-`mY zA)_I*OsW)K4lQ+s$Q8j%Z=>-{`?UIW!A1Icb(Wj$gDk|hj~aY=S)EBMBHxFI_H))v zECzb>v}N8hwZ+Pmm*q=on_(jqv1_Y3af_m3S5MIH$o^o9vq|gD!)GoOqn9 zoSNGE+DF+2+ASsAB~n^aT0;}#69p6BvP5%a1m}fzb9Qs)bJm-!%zVvw(WU6m_UiRp zW+kRa==OIJW)h~wCPro!4JuX0Dvob$Rc$CrRErKmry}s1 z4LQAsrOP!(VnW(O@%$b^bLc*>u*oX5r0Y(a9*#3>4J4bpiR4MAX`wf zan*cnbFokPrS&nr?1ikyr%l;SY4J6oHB-xR@$Tl~<}uwq*Idhpb?^tad%Ju8`)L3b z%z*{Pi4IW+F~`2X@(*O~N|2LWw!f%fJXDCwYf+$8NDQqC-R`MkbsYYcRKm?0 z=|mQx2mAT$3%>P^b!;DuJGvj`Mj89x=TWV*aol+KIP-wG5wrF3x|C)7S12}FLqOuf*jplPw`s0HvV9%h{r zH6CsMlwZm1qJHcH!o|GXE#c3~lG?RMwN`T^bLq0ZSzLr zbjQJatkOQB{%+u1Y%_>C4S&SBA*u3#DIXD9vE(PjjBB0;zaDCD?9eq4Jt~o2k^6k& zaJ*r3IZ6EE@u&Mks$Qy%6m)TpcfVz#P1*;~BVXcGN`H<)^SI3E zRva2WMIsqxX`^GRX_o0T zXg@4)t@v&;!d*wZvQ|fQ7aV?g_b$gjC&^Y+VI z*^$m=BP=8BIfps>YxV1fOS$Uk^1Z9{YZr?u9T)e*A)FbUTYNS$^nAJuZS7qWu3s{fN-lZF1ypX}&pz>Hf--^LC}y8z ztK=AFUz^*Qx9X0|PJi29^S@DDenS3HMB3C(;}kODw6qsGi-4X?#Uay>K`{QmD^|+| z=zv|@$@MqnuE(tuUK=yY_p!TD?NXDkPCk2`)Gu#S8-F&=u938K+4tI)zC+CF4z+!3 z%dT#D<=k@Q-_aD{aJk2rD?Yh;*5UVu?*7|cu7u2L$Em;T<-q0nI^8PFN)&RqJtg1fP5dO8s7YVKfuayoN5KjS0=(d80Ye7oO$@Tg{a zuy>HTbHrCz@b%ft>%$(O6(6SK!gX@ptw5F!T=$ND>&^|opso>*5QuwRoXpc3TVcLs z%)E&URnS%dfVzahYkdSJX0cT>&;|g14gd%a1AxEx7{3Pq?*#y0-wFUEF*7Q?Yl`K7 z3IN~$dRh?WV`FtqO=o9kLqo%-yu6;C z9#d1(y!`y)l9Ht48Y!$ zD=aFi$I#G_nVDIFLdnR;XlQ8o`T0poO7`{jrKP2(rKb-J3`9moMn^|SMMX_cO_`aQ zB_<__iHR8+8WIx|$;ru$jE*`vIi;i^`1ts0>+0UWfA8n-zx(s2l9Cb%h2rIXPDw>6 zA}V4C`H$n{V_!eNUx$Yl78YDO!)6)wJ3vX?0X=-R_YHBVnF6!v&czb&%CMH6R zjBIReEv+mW7#PaR%axT?FqD;*p_`k(&dr5}h6V%%Dk&>#Yilbhfdc~r(=#$`Y;0Cm zR>~_X#>U6-@$uiex=v3|508v=c6G_i%a4wYm6nzU1;MzuxK>wJnV6UkkB;u|?{{{0 z?dwqN1X>xVWD`f5yVX zdhhM6rmhwe8j3=d1_TDMv$G2b2xw_(g@=V>2n-6+(b1`^uWxH>lai8*Pe^cccM}v8 zbar-@m6gE=q^+%$m6e5g>lpU;_YV#Ze*MBU0aM2jrX#<9|Nism&&kQj>FMd&*%{`N z7Z(?omzP&pSAYNh{rB(R_4PHTQ@6LbcXxM~!tG>vtp7{oWuRk-3IBfp6lKL_001_p zx{?CKcj?y*IOCN*&4cgPqi7dKmu049w9EgkUF3&k1yo9T5s&kEgjs$INWqFYVhzve!PUCrwj)%DA5yjU)eQ zn+IM9k_OZ_c~;kKheNJCw7?fehYM!^^d(EZH?`auRI$ZHaorC9c@9!>6st~M<(sOTyLN#J5oAfANY?{E zGObShNwO~lxun%d)ZtAu>tFDe9*_iUvkm_&(IS`N<>y)wv}H*dzsMUO$dkT2dDQg9VQN#tcA4IZGzNY13n*zud z+1!|X%&@M-<~R`dmfXD74ZQ6M$X|x8Y*s~${&otIG_!3y4(=YD+F&rJhnKs(ql+B?_|4{; zARs22EQ-X1Ly&F^Doxkjn37!;3UO6C*dy1}Ru!&NxLY}9&7U7doxryzzrAp!N4 z*+`f!j%J!_mFs;%_=lLdzO&`P56+X##Pz|;x+$fN@`K!(Au232U51vVku-{~1oYt6 zQh0Yq*Yc{UN+=Dl2f#>OW6R}z!9xa|geWLH;>J?_0Lc8tXsH3Leh&8W{phQkTcB(U zGE@W^7Mc7+mm0+cs01W{J_9NmWT@OMJ`GrlkPL9%v5Qdy9OQxWq33bx0Q@n)WUt#H2TY3qkF{a;TEN$O0E=U!tp=#+fX7BL zk%9n4AYj$Q!{Y};WCKhZ`!Iz+k182Agh-vru2yK|l~WHjrxx*~g26-|2;j8uK4Oxw zzGjV95pDC&W|Ih&y18^P000Ha%%o}$F8pu|l{lPC0*2wG$W{yG6}OEI;c{)L%tHkL zmXRSNm%?H-_fYbbDA&vP4|gdXUeFf!5aaEuZ>rP*1)H<51CRfDqh6TQI5V@hx;m}X z0W!Dlg9TqA+FoK|7cQqE3g^V5r5`K2p%Rv%niMBXZ3BmTpY9K(+=#H5TTj$Hucy5_ z=NRMe(6(uW3o#LlZhI!Eq2C@zeBzD;r3iLD9KEt#Srk4aS6Y+?zB(z91tyCWTfQPc z*5zk}Be5$)0N8JGZygt)CPz7hFAw=%?I~Yq7CZz{_Sz|)0PsSMR}|7$qufmm0BQxH zLSI$c4_jG>AJrTZ<`l`Q*yPU49 z>)zMr<>XDVN3Vved?{{+s$*}+Q22s4tskgr!S&z<(^|!x_j#pm&EAl`K^|e$#?PHv ztXs?X?bc}rtBr(sG+axVXYzL99Wlnh7;uLy@9kKy1b<`FHSMa8kkQ+t8l!H;Je$HL zIZ|5pcv5?3ZJn#BOA&leX$Zb>Jafhr0y#$Sx0i|NBHec2+S$dz@#^Tw!A&+Inx3e~~ zZ)Uqg;X)XpAm-#gnsl9XzI1jWF-S@2=hB5zTId0^ACg$|!X&s-11f1kD7i77Q3fr| zeYS1FZh|P0FODun6uU!|KZclI#8R5J>$Mw#KN=NOy(BbuaninGtML=&a;7hf@(Gph z;Hw&(33@Hmly$+;6t7rXQYZ(O)RBbM7$2nBD^n4&JWt*s4Q^}*6lETS#4RxG39bmT zf0oi~6t}Z*F3rfyfR|~N8I@^nf0wD;Da!r)UA@WlER;dDTZi9*UlWmtyPmsYGGj7d zL{r3~ulV$+Qnb|h6MJEkns19+(Qa1Wj~A#sJ@=vo|L+@r?+1%rKrUSW79DBQ!6|F# zcq#F8I97#DX-{_r4zX_hA0x13y9)S|b-H!tazt|Dh{A^njej+6zIE)fAn+1gyIi|I z@KN${@#*Ss>F=VA^&3A6ewNph*Xte}7<@lCnJt~8C_W{zk+YFAm9toHW#(rlj48%6 z*lAai(}ZdW5rWk%R>yohM|bM z4IZ&qV#%WeKoRO88G<}ER5jH6+Sy4!5LZir@>9IsarMlO>f3@wRc6)1u!^v?)(S3%o?l57 zT*QqmTr$p)A@W(s&&gpb>vik+_7FP$$mmE|lyZVc4E)}Rc&4=P$Q;;vQSGlq#RU844;0~7FExVDS#eK}E~N*OnoAB*QZ2hl6JE3|~b zyIEpAmLC3vxVFQ{B9;=-+rm#XRP)*?rP`9 zG{j+qTqg|6c3_#6A>a7|^qoUrwDyIy){!}H(?V(1B7?W*rgkh1;bNwXb=H5Qa@m!b zW8*5B@OLwr-%Jb4`K_@>yZ5zZ&!yFtlyx-P4%v^|Z>}$h=PaW_NVH&U)&^ZDf}{u=!Z( z*96|YnRubp`vVUpgX&M%PuQJlpVbhRD`QJHPcqJ2Eh`LMJ$JgvN69a!co;BKjpGv> zqlysY#K}k7nhf3l{J6~B^A(|&p@;tau4{$IL(PA6lXzp1_<;WD?CZCI<;zrK|Gefv zaELj9(EDhO924}JxsCZZ!vUp{$*qNeb4~m|H{VGqnELA+Kzbc#H^atK5&J`LbJKH! zLqt#KtnlwKfg7)Ii%vJ)_r5VAmq*pF;y2`*<#87K4aog!{MsE@0}TD;=}XrwX>17)4L{gWut|2<8HwBx(d<)O-s>I`^3dP3R!a&CHW?u`@Hx8Pu8PLoI(89sEGe3W<-d_6Hc zu|JAFYCG?VlAPR%ve(7tc@cQXc8D+U?&bT-{>r;7Vj(9J+f%ratdYXZ{mj%B*Pu@q zTi9*3FZiyut_MGQ{UpU-96mqWY4x4+<=FeMc++q-i1UrWmBVS(k;!n;St?s<>JU#0stx;08Xz+eiHzE9s|IZ6#zUX z{Za3_r@ZXc0045}nI1%aXlSUfuWx*Oe0q8shr{*v_YV&blaZ0Fudfdb3|w7Z&CSjA z^z@93jLgr^cXoEZc=5vC-hN_YVrgkXkHun9m{RxlV0 zZV<=K&8?`YxU;isW@a`%F>V4eiI0yjEh+W&^+mmT6A}_Kho1`%58vJ0n;4%U5LTn2 zB2`pW0)v7cJb2L1&~QQ|Dl03${r7D~Muwf8ors8tj*iaR+1c#OjIglq{rmR^1_oiU z=S)mYP$<;V$+57oFh4)PuC6vEHHDd(8I4A#rKRQNl#l^*qjE?B&>MkuWIXF7F zxVlhNQzH-v1qB5;Ik_iKp7{CsX=rF{Zf;gpRoUCw3knL(OwTMXEk1kp%*e<{Sw(qd zWEcX0cq5T8IBaTaYGQJ-q@-kpup%ofo1LAFZNb*o);@Z!2nq^9 zI3SXflarE?u&vn9u~8o%q>GD-tE+23V1SgA7I_P-kb?93CGN6Lam_ zwTp|3-rgQK9F9VvaJV5>R@Q=o0vj8f^z?LWYwHjW=kM?T`t|GnzCK-DUFdUYSy|ca z?5vcO)X$$kM@L6`db%wv%uP+CK0ZDYyQD?RBq>fpjszPC0}=xy z%$ApzNve@JA zdV++|@$oT{NIW??IXyik6-CmB1R<#k5)vf5r(2Fma{|mFjSWml;s4JCgkLXT0Dx;O z+G?s0zu8}-W0~w^Oq9RnC9}2pFgq?Ob*?oSSN#8N-`zK3(Sygo+)~HJl-vUUX<5V* zEwQXr9JD9UfTD-nyE4ixBF&cGOMi-6)q`oGXG_gm!~DA2FNX|SbtGys?3v&MGpkd< zZ?Gc^5PFp$?Z5U48BgGTrX^>ww>2J59hTmJ5Ois@L|cE9mkMZ(rtj^b7_7dXDu@52 zsaBkORU3lh53FZkrzs#(cv#~Np_ zwpcElw|b4oQL|O%TwCx7EAnj7c9Qx`6Dj0r(8;J)j7*Q$nxP$*IW)OG!4m;W-Xx?? z#1!OPCM^hjP}Plvgj3{4*7uIatvbgHpCWyNlQ>nHDLSb%6a&BM*X=IXZ`TL?TmJ+_g%14~Q77+= zoYZPMoq6aVOBwjBVHy(P-few4n=vbXWp`SWn&|arVqpV0#vI3- zZr47m*!~e}H_Glg3}D=*+M4T$E7wTxBC*6m42?? iR23bk=$eK&5eL$|7cI<%?>+f%0=3l*)G9$%VgCb|i|t|n literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round-dark/thumb-y-grip.png b/build/slider-base/assets/skins/round-dark/thumb-y-grip.png new file mode 100644 index 0000000000000000000000000000000000000000..2773a4a9f977065c5e69410d6ff5d95644e78373 GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^olO9@DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X5(0ceTusePU%Y&|Xz}8Z(9oMV zZ}#-|9z1xkxus>#o;~jF?x|_1lO|27s;=I)ZQI(lYp2hc@%#7hjhi;f$jB5G6`eVA zX2r^ttJkcVzhJ@o_3P{E>o;%NvV6sg_KuFF%a#Fc0D_b+zl?#DLP?Nc@PGV(Atpxp zEdv8%lc$SgNX4xsS8kRqQ4nBDh+4uBnWH&1wC4Zzp1ChQ(_g0We7;}k_fvMmf)oEV zlf#yZ*uB}$`*VlLA{VnhR`w(RCuXeYiiuO6koD>F@~`vMC(Ws>-+SPeui4kX9uwyj z+*|Ygs9U_A=Src_5TCR29%(+$+dDa6xi-U$6!nQg3=gKvYstIfT*R|}Gw50!k7M35l}v<=5Mtb-r{%`u0=P ziu}p`*>T&$JipJ;7Wjlx9xf=+D>=RC*SgPkOEPtX zws}liH?vSy@_A2Tm_)dSXZI7fIsL&)4SWxEsN_hkEYS^GYBbyCX`c7&t?umRzA3pA z%iJ?9(uDPoUw-Vf@v;8Sy`HODF6A^e+&=2VJ$cdb}r(zN5CwvJNl#9lFoq?4|3L|CA0eEECvn TRh}Yi4T?ceS3j3^P6lO9@DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X4g~mwxVE&k6c-nFcXw~uvL!e; zI3^}$^5n^f4jnQxGdq9&ypNC1sZ*ycEiGrwnsxN((bcP0U%7H6D=X{5g$o)Q8mXzN z&z?QIapT6_yLVk&T+W<1bLsM>|NsBj)zwK!Nj-Y>C^t8^va<5syZ86*-AhPF`19w_ z)oa&IoH+6I>(^ViZn3hmK6vop*RNkMU%p(hV8N3oPj1|}e&_a`$B!T1zJ2@b*|Rrq z-V6^9x3jamfB$|)M#k~u$1h&IcgXTRG_-3rr{-V}&LBVS7K8YQ1+o~ttUw_W^*MAS!35heAWyBB6c-->nviZyR z|E6?JRV}KHv7d4E#7aYlqe?G&tMnZ^<8y0+Et8(Ed#22BLh1S0D)qIMl~b2p(#U(Z zBrzm$fqu)mE3S(^+SPfuepH=a*ZNb%ZHnuq{DW)X=cPUGIPWP@Qn*84*2->|umGc@ zF-3*;74xoVNBBKB8`N>BdrCp0ZO$|PPgC9`$QrTsXSqbEh&EJfmT#OMd4JWbmnpoK zA*^C6nID+E|2!e`YHg(5ZU0l;CNq|(HQboGp=iat_pf&8<))hOw7X_C_q~tx-T3Cy zMU&^tr_atitJLavJT-6r+&9PX_TSYry}Q8BNvu<;<44?SzpK~g-_F`JLEw~$dYlho9m*!oRZ>u5jKkmil@?+J1YQDLY&^Eq(dca5U1%%q*V z>8ng9C@6%wwk+shSbz7yb$Jf~Ar3{S$1U8)@33ETao$^cOWJk`xBL71YIm>yD*3f3 eX#MN?Ogs!eR|*fXn3pUBB@RzlKbLh*2~7aqJG%@3 literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round/rail-x.png b/build/slider-base/assets/skins/round/rail-x.png new file mode 100644 index 0000000000000000000000000000000000000000..62a4e92d6cdb1368f7b3d19925e0886c82f8ce73 GIT binary patch literal 3642 zcmV-A4#n|_P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s_V)Jg@9)dY%i`kV^78Wk|NjOC1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~KSc-#00006bW%=J|NsC0{{XYUq`v?F05?fQK~#9!w9TObz%UHN zz>i+uf8}7a6qFp4GBY!I5rC+=Y}@9&^VI_oRG0br3y`RG*|xa@0MqOQi)&haDgXcg M07*qoM6N<$g1VsKQUCw| literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round/rail-y.png b/build/slider-base/assets/skins/round/rail-y.png new file mode 100644 index 0000000000000000000000000000000000000000..86f0b8ca2905bee4bed4314bad9365a971f1dd45 GIT binary patch literal 3637 zcmV-54$AR~P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s_V)Jg@9)dY%i`kV^78Wk|NjOC1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~KSc-#00006bW%=J|NsC0{{XYUq`v?F05VBLK~#9!Vqk>;CKeVJ zW>!?dz|73dfF{Po!omU<#HINmiDVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X5(0ceT(@l9`s~@W8#itoI&^69 z;>F!PJ)xnY=H}+j&CRDypWd@)PkMU#uV23=Po6wu=1ey?x9aNZwd>Xumy~?`_)$nm zXvNBvtJkdAuwlde`Sa`Q>zA)s(ca#^Y}vB@2@`-e071bbqfWOrL;^VF~x`UWpEx|dCPrOLi@r@DpI!9Xsq%d5gQ_f|J3clqqv zxI}`B*|V*P-MrFj;}wbT4QJQ7YWx-lHT-)PZ<)YfngyMoTmsNyGH60IXuW0AA zT_zjss&{6abC9#$Lf@6M)-t_m=+3V_%-NA5AyYH?7 z=Lf|NoBQXiJnozLUis_vZ_#$aUnUko9>)u(|0ejJo0*Dy#A}It@(O~w1&VD? LS3j3^P6v}mh%`zg-O>$1N;k+L>CoMhLr9l^ z5`yG=p1yHVrI9 zPKx@j06_BKzl{TAWPyJWYuG}enwmC_ZjP=tj!w)LT462QW-xp~1RtitN{5Tl~fZTW*aN3g_k5Tff(NU2YG`R`y-Z%WaC+6nsx0_?-PSOCd>gG3b z%fnyK;Qt!m-~KlL=^>uY8fUllQ0Hm6PoBm z&ey5)m0ZG!;?j&TyMwbefCx{fpYVYh%R)Ggd88g|3?W^5$OTJ>A|6!~8}mRoHSCE> z{0l_^tw=btjv~{sgv&poVMg-J@vr*Z$6f&ncELKVlQUzd-bo2saqk$?+tyMCA*6 z^Zmcw56uMy!t@k*SZAnWAMjIpheNwxvQb4q1v#4H{!yy^44NsL@Xjfq;bqDv9nradKR1|$5{P|0P{j}|LigZUE zJ#I9&4^8|aak6qUdom+8KfJW8sBF26MCU|j2p(JdM%%YaUPnlKy_D#CO1VxMN^@VE zQ5#wMx+JU&S>gzn`s}BF6M?VarP`$d{S3>kHCb=%WhSwpulL|#u_G%FeIM|mo4s~q z-sb~%OWF-nOO!-eX`U!lNLdI`uXU1SEk&@N=6sRmrcSiYS)6*}7r9J*#I?r7SR}04 zBw%G^SC*2RqF1h14l7sKZxg9HC`J{v$+hTT1(3`1DRUTcC?I1;@1eG}=e3uLiHm8~ zB*f0D_{!`G8S`3X-M={$AEsruzwysjbu3=?Y}>wk=c0!^e`2 zJ{0eH;p`~R#NUVg4TBnYNka?GlFd?AgX5bf#0#e7Kgm->+x8l*v#s0r+V>W)V9zd5i(${Rx;bW`N z_Gn)-q&Xe3v8Sr*FtIJsx7qj8jRXN%*gSbTlL3>T>lYVlF|N?_+fa5pb2eV}nmj{g z)@ODelwhk5MGkEb!xnRfg>$&F^@Uu=yZWI&V4D+CBss~??N%!MG@u#*$cAlJehdD1 zMCEKvW1)N5x!Dn&NpM zkJ^%lX!`BUj1!n`nMHN^k#dBDg&;zuVw}SD7$yW#U${>!LS0v6FJ)6?mot$98lu&_ z$}hMj%lO`kFT89PZkFohv(_J;)6Z*8cL{Cu)8hy3Ph*HZJDEC>PxvQ9Cc@{SM%<6p zj}^Jqyb^xKx4!UX>k%sC*=!2tD2;1XB~x9>6w9W~_`qy0C?VD+5R?!f=L{)hQAU|vlk8%hm78>e}sQdV+~u+ zZzKoWu{t<9YSY%!R#!?__2*Jm5oNmY71=k zcaFo#R*hDZQ|SYldFWEuw3OlP;@r{V$F~^w+>?n#g>(Fnpt0Ndvsen~z1Z~Fp-{5W z{p?qgqM~b3E;qZ^#n3U!G4^b_+x*+1Dmq$zzl-Vp+0lu#iM-U~)WmQ0K7}`Xn0@+c zY;R}ppAs?u+hBM+GYs8XG>$A35)A{??vpj~8Dh(kCX~;o+v8Tw4h7 zV!`(&9#Te41^{Yfe6C=L;F;M%QA-T~yq*Gpe-Hrty#wnm0K9(=0DGnYAO^ls=^PVG zdgK8B7tmCN%blK{uCA@Zv|#Vvy-Q3?bai!2PfxF^swyZb7#kb&^YgQ|vg+yS85|t^ z{{6eLv2kl_>($lO*49>MXXowh?cChl`1tts_4VT7qN=KDX=!OgL&N0cWL;g|@bGY8 zV4$d|XhcLrOiWBjNJvvt)8XOK#>U3-^0KF==giCurUTR8-@mZ1U}k2vySqC#H)~^K zGdVfY*VnhczW(v!$3K7mAP~CWzJ0@Du_GfRxw$z%e*Bo2nDF-T0jC9*w6wI0j0^+< zfkL6Ova)h=a`N)>3JMB}ii%1~O3KR0Dk>^qV`^$@>gwtm8XB6KnlKnlOG`^zTN@6C z>*(m{>gpm82t7SLeSLic0|P@tLn9+2aMCw#-k6w}n3|e`y_uVvTUc0FT3T9JSy@|K zBauk3Pg`5tw{PFt+1Y{7+1uMYI5;>uIyyNyIXgSMxVV5xy1BW%fB*i&hY#-V?j9Z< z;K*KHUf$kd?>@f1zF@ZCfd2me0RaJEP(eXK!NI{`N}-{lVPRq6;o)Fzk&%&6QBl#+ z(Vsqj0yB(_jg5%rlqBU;4(5YGBY!?va(PpRCacD zPEJm4Zf;&)UVeT)2=w#k&xM7BMMXu$#l@`{Rz%F0R*dUbVmO-)U0 zZ7qnezP|p;moFeqG#cI5*!cD9R}f!wb8|~e3+O;wTU&d3JIDot!E|(VfHHJ-b#-@l zgR1oQ_Ja68tOElBpf*E8L!b#DyV226&?wLr5FcpB)YKGc)b#W;sKM;)EGW|a{5)s^ z2pV*0X=w?RWMyRq#J#$@y0*3k`T&}hOomGLS&RK*BS{N;oA&$^Oks z8Qos=;b8WBBkE?wPe}CIj>U%P(wN!f@%xqz2lni|XfcC~Pi1=*wFH!cVllr&8CUZ$ zubd8ys%XQIF<;eB0EwhN>jS8tyg?w-vi$$@X$@E^O ztWz^<>)@$X`~1CREi8Qt#UN3%XRVfi$i7#D@_d)gl3UDlr!dJ>cy?+4e~Up%VPE!j zA@=s)+k3%=TuS-yDi3^#rp1IEiW*)%3NEy}bkLAC{to`uW^5WFoKK1h=O3qpoVZtn zn6}pNC?FbP$_#AMa1t_m-WyoSJu8_RGR(nVcFZU*sJyFgd#`y=;9E<&f(!6pScmS# S+H?GOBPq$L%T_^51OErntx=l* literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round/thumb-y-grip.png b/build/slider-base/assets/skins/round/thumb-y-grip.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf7ff3e4448befe4f777c2c123642dba617718a GIT binary patch literal 731 zcmeAS@N?(olHy`uVBq!ia0vp^olO9@DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X5(0ceT(@l9`uxR<#Y>hPI&`SJ zrza#d#N6Dxxw(1I-o4q`*^?$uK7IQ1uV261+}vi(npIt0{qf_+wd>Xumy}$&a^?2z z+d@J@D^{*ty=KjZ4IAp}>*vp(zij#P_V)I~#6+MCK;ZCC^9hhrC<*cl{*NCp#KcIy zWnf^u>gnPbQgLg^)r)lApE<#%`K9g!|r z=WbnB7&YgcvhX(Xl~=Da1T9l&PTABekvG@x{qh&@VzW$nrUWrOW^GtLCApsc;XkoA z=YmvcuQQcX>TF|(Jjrz9&XwzL{gn^w^OduXgP*4)qLretFZv zlbbu2*L<;HTeET=lm&kk%Rhd(BJy+QpBej_Iab*%T2t^nxv$3SiPdpgRnKU-mBshf z@@v{3eeM2me&KTE;LFG5m)yxLU2|=TNBN!~f(Z;Zr#8;rbfxwzC{cL2`njxgN@xNA D9)Mw} literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/round/thumb-y.png b/build/slider-base/assets/skins/round/thumb-y.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a0c620233f052a3e7014bcf8b4877a24ed8795 GIT binary patch literal 890 zcmeAS@N?(olHy`uVBq!ia0vp^olO9@DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X4g~mwxPJNa<>8};fkA;eIXROj zPcAMlo;h>ox^?RoFJ659{Q0`Ny0p~PqeqXPI(6#Gl`FBav3vIH`ThI%vuDo^9Xj;y z-@h9-Zd|x<;m@BxckbNr@$p%?a^=>oTQ6O@v}x0(GiS~;H8ojUT6T7J_Vx9(wzlrv zx%1t-_fMWYxp(hgWo6~HYu64OJaFQ~iCedBB_<}meEIUmjq4d18J8|yJbwK6+8RL`xYJ^wtxTr+qZ9@J$rV+g82^~Jh*uAVs%Xo&<8+Zx2?+_NI8@Q`33){3@{w3 z-sr->!1%?}#WAGf){?6?i<%51SQEHhcqT4T3}kVf7A2mwv}uRpzW>ptWmb!?dAL`% zN$dSk`>Af}as2fK!MyBQyH&pYNLcdvy5P1ub59AIn*X1uG1E!C=Wqb~WP=jxt?^|# zv3yLC+pV?>ZJjClHsPD&o5(40kJ4nHvR?IPdheFhw!BZ{V01^kQ8=UX^M7FhrGhH4 z-ZP)Cm^;sKbCk`o=RS0a{3Ns3Q${$~c`>OJ@S z-}1&WsZ2?ks4`zwo&AEjLR`)<{m5x=bN9Gu2zfSoaGkqk<$w3m`%kKG?{hr#e<||v zon&T>$KjRnkIH}hMtKJH|EO%db^cA?sskmbFVAwDl78jtlbz@0&HN$A+;Z(Mqp~cY z;14VPXZJqN3_g&)ZpMk`*lo`*-^*HIp!_lR=j)VD#{z>lOIW>DiL|b2oFZ|5=Yje= z(}b@&EYq3YmGtfRvP%cby_f!Dt6y$wxby1tr%XFcO~dbN+4o+^d%_@d<+^Ka=5@2X k$t!d3AOG~b|AXoQ1}U|)Hn)k1Z$N3v)78&qol`;+0A5PftpET3 literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/sam-dark/rail-x-lines.png b/build/slider-base/assets/skins/sam-dark/rail-x-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..39ac404cc35b374e578b6a29ab55f3dea65da302 GIT binary patch literal 3647 zcmV-F4#4q=P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>UE-p||P$(!U000051qB8M1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~9huu!00005bW%=J|NsC00QKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>$P*5%|E+{A{000051qB8M1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~doOI<00005bW%=J|NsC00Q!NfOz%b!&K|MmHb302;qJ0{}I=1EZX;u2uj5002ovPDHLk FV1k?N%F_S< literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/sam-dark/rail-y-lines.png b/build/slider-base/assets/skins/sam-dark/rail-y-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..0553faa9a5570a19afac705ebfc8f8f3ec5d7f72 GIT binary patch literal 3640 zcmV-84#)9{P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>UE-p||P$(!U000051qB8M1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~9huu!00005bW%=J|NsC00QKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00093P)t-s7Z(>$P*5%|E+{A{000051qB8M1_uWR2nYxX z2?+`c3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH z8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021 zEG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!- zJv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)Wt zPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5d zU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&O zadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8 zf`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@ zl$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*! zrKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@dCU z$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~ z>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF) z{QUg={r&#_{{R2~doOI<00005bW%=J|NsC00QNu7yQAZl{b{QzQJ zMrt%3AhS0BKzHlEA_LMh?*IU;fs3lDp`kO}8~(-_?!l?0s>*JaO?@MJEc8qysl*rRFqNiAAs=c?Gy=n6;z0a%NeL+Ha_VQNRH+NkMMK;lM{2>N1`2RD9% z_IC9wuL&y!)AD!#%+$3GTyHM8$$--!Ik_hf+o)OqGT#Y0YM@OoqwVSa$SbBDl{8B- zL>O6{H}aVdHG&0D@{d<30F*Sy5SUb66Cj%cuo<+sTLlb-0Gr1jHYNZB<}@vU46sPz zVkOH)0-U!TqtpQB=Rn!Wix_pl^eMpNq|+q>%m@KbwV+NQpsF5d!!y&>0MzurQ=_PG zet;qXu<7IG_65Sy02YlysNAn770jCgBvNTLayT9t^}?d(=B*GEb{lmKAa zJ80}uP^9)A;yES4{WAB_K85p3y6m^aSf?5$r8*#cdk%W!@gE!YoJ8F0?E2c;jCPlb zh3x<|@DkQx-3GmQ^(RQ~oOtr1WrZhL%qm!u;`B$y(6Mg*{gF>JVRrKy37Y5ibXVsb z6A!zz>~N+6EUQL0J>%8Veguw%~ioMhTpq3ph zP^HX%+e~k?%?z5^YA# z5hxEv;SR_*MtKjWzqZs_?R-taG!)8x)VFN8=Ay{#VobT?soB!PPr2Gb6gOjeIQyem zj2`MBB|)ObFzYiYrA7ntc^@Daavss7DVh{qV-9Omhhes=ZI!w(d}gcfEQl+|#L2{Y;PsWj|Q`u#CR6 z=U&x|GV;dg6Z?^BABvm7>TNVq6h11Pwhxp+rn;v3GoT{Q`#cgi=4hm8$is{}9zR4C z>3rpFxbdg!j-8ljq$x;{d+KJwEfMB`DAg`$o}1CCVvli&*R-nhz~eW^HO5~Xb8ib4 zXGnnVaijX@9NcQCWRe6qpY(;VVb(g=#Mju@xDG97F?LFxd8Z~Te8vN=+IQEP*Co~| z9aF`WAz#vs7m9MgHzX6xRmyX)#+62qMYkm0rppY6-qzB|FV9V$xaZ8~OmwN-@@}}X zko-U&JqjHk+}7MeZ;>DS&@)7^hW19m`0i%hp}GUR>vN|vRkz^oMC{#O@Kb5g-PFxA zrZhOjQ~)dRo)tMjo2;G8o6IgC0xm8oC|N9_gB(Ey!3o7LO#&-4AmS#g#WdejN+Bf} z!(9`06Ik){qR0|h5ge?T7i4x3O=;Gt+i9ShXOvxSz1q~nNoRkz)>n|rjiEH+ZLnk) zZ}sr(`*#A3sTUlLvGOIwIWnr^+Tze!vX-8Q zl0c8YBiAkI376v#=_UL!Qnl(-Qq8wbwnZ<8A#r1JUnVs^YB0sQ^jNO)th)EO_k7`{ z7(>Zv!-C3Rll(P*y8%TRqHd9 zgbJ)XHqaJk#|EqKuISuHHKPI>0zY2JQ!zx&GL~|fa|FHl>ct}aLUu77pSiCX*nOO` zEdnzgVIG+gU&Y=UJM#o+ep>khp-(^2?{_~K;XZ|cR@i(KLeX2i<*2fg-J|{nQTPh1OP&EjK)opT% z*oz>c<jtxUk2?iA}l;x(gYyS+~>Qak`7i%QlOKenKXCs+4f) zp|G$W*oM=)!7|72n#=CjvGpPklBxRLY7@(@n+efkRSLGi=6urvR5dV1s8j23^ngrC zY1WhBy`kCxLZWo$!RM>Jn;kcoKVkDDbf7{UrW?&=t}-=po_++{Ro3fIB3@9I$$g8# z3b;=il*0aB^V54)2BsorOLew?BQWd=tkE$Q zECe<*>xUV>dEa&RNccc&+I-U2;?gdh!-&(k)Aq)qP?iN_N(p)c&G?#OcJ3>~(u=Qq zC%@GRBIsd0LSraa75Al8?pu>%VLyKOxgt0Zd<^~zmf9a*sI#3ueLc3%9?~kno>* z8$vENVACGI{-(Ih2v(wU$?KOCbMMZ7n+a!;lys@$j`NIgAoi7 zyIIc^WMozpy)L%T3spxPMtHN>E^{vjE7)#}1f5RqPUFW?$8ykzXjH5F`}~WYw%xmx zgr1I`2QB@+;-W8)U!3i=`^@`r9DG?~GFW@h`GN1s`A_wU$!Osj>Mja(MM0i=bZ##$ zL?Hb)DPYQa$^cLu|NhJfMVdM7LB@Ij;Qt5!5TO9@=Ze&~0pRUZ0NAks0NGRkV1s|M z?$!VRa==g*tS%}hSy));;`%BgBFfC%5{*tngoMU^{OIHBk3^!(EGz>8Kjh}-GBGh{ zW@VL?mEB@t1<0<6Nk~^#R;p=g*VNRgsDbnijlMNBczSt%{rWX9@Iz;3r@e!drluAI zYLT0l7aRN0$H&*p+xwL}JOzzTNlD@6$vICXy(S4hRI&($dn_*4EL{(bd(})6>(}*EcXQFf=qYGBPqYHa0Oa0fWI1 z2;{|!7f>kF)YR0>%*@=}+`_`b($dn(%If9Im)6$SHa0f4wzhV5cJ}u64h{~Ej*d=F zPB0kE+1c5}#l_Xt)y>WA)vH(T?(VN&zlOu%9v&W^o}OM_UT@yK@%Hw9`}Xa-ckg^i z`F(x;{QUg={R095-oJkz7#J876!hW42Lu8U92^`HLJA!k78VvB9v%@95g8dtA`=}Q z9TO818yg!J7x$6GB0fGLAt5o56cqXC(VJs^vFE6jCs31A5 zs;a84t|n=%t*s^5tgEXd;jOQ)|Mu-04u@-KXlQI~Y-(z1ZfFDSn zN$=|FBH8Te=^^Rs>+9?9?;jW#7#tiN8X6iN9>(MGBO@cDqoZSEW8>rF6B85Pzki>c zoSd4Pnx3AXnVFfLot>MTBM=Dl^YaS}3yX`3q$Tgwv++S>a1`o_k_ z=H}+s*4Fm+_Rh}E?(Xi-pFj8Z_V)Mp4-O9g{rBHrzkVGa9v&SX9UmW`oSgjr{hLT6 zo}Qlm`Sa)R-@j*PXXoeV7Z(?omzP&pS4-ytz5lI?x3RtnY5ad2AoJ&;4e8B3Ej4AZ z@7(;Drph&Cmaye(=1HT!)s*N{$+dg#1MN^^D>7Dkm0t5s>w-1mT76EUJG|*VVN3F` z20JDZk0Q%+Ux>85gOzh9Jom!OY+g&?`FWV1L@gNo1N$93eSrwu&fG6Oq2L+XvDF-A zQtt3pbS?2>yvf@#2MMK1d^&Q#D(O!_Q+rxmQYZ>a9jT3weMU)hBuOwq!#O=`_zPQ< zJ6heQApu(`=70FDWBzVlx!vfm2Z?d&Ait_#Qm&bV&1fTYi3dPA4tOVSpGb^X9ts^oj zX8QD*4NcA6y}jiXRTC#pj*O0}uB~6RXc0fZz?^yW)~s10EF#Ll$Yf+IPQc=!bb?%1`fu&89qmMyil^@k51PEJX4clQhpk6yH7Nq2W|d3i-qNl8v_{tOVk9>+GG}w{6=N92z!Z;>0COm-bDV0Q4CU z=>Cvl1X3O)L4LvisRJ11y!n&>G;@omi(^Q|tu>dA3pE)CG(2P|>t$nkv-kVGYVUjh zd!IBIcNw4NJ6wORZu%Rchdo)0yEmO;wfgitX7|nLdpBbIo~QeN<-2$)Y!zSs+QX~2 zO)zGe^Yp&uyr9h*s*?_8L~tHeF6vnz%kJ{kk&C;KVbL#}-c}2i(lR!&M+!$ubdDsR zm{ilmVqDwAa(T(OYuVaL7DTkk!^lP)z-i@=Sefz%g)yL~^qLt?#h%Rou@RRMY dS3V;f!FFq8lQ literal 0 HcmV?d00001 diff --git a/build/slider-base/assets/skins/sam/slider-base-skin.css b/build/slider-base/assets/skins/sam/slider-base-skin.css index 67d10b95475..a19e49e07f4 100644 --- a/build/slider-base/assets/skins/sam/slider-base-skin.css +++ b/build/slider-base/assets/skins/sam/slider-base-skin.css @@ -7,7 +7,7 @@ build: nightly */ /* Horizontal Slider */ -/* Use thumbUrl /build/slider/assets/skins/sam/thumb-x.png */ +/* Use thumbUrl /build/slider-base/assets/skins/sam/thumb-x.png */ .yui3-skin-sam .yui3-slider-x .yui3-slider-rail, .yui3-skin-sam .yui3-slider-x .yui3-slider-rail-cap-left, @@ -51,7 +51,7 @@ build: nightly /* Vertical Slider */ -/* Use thumbUrl /build/slider/assets/skins/sam/thumb-y.png */ +/* Use thumbUrl /build/slider-base/assets/skins/sam/thumb-y.png */ .yui3-skin-sam .yui3-slider-y .yui3-slider-rail, .yui3-skin-sam .yui3-slider-y .yui3-slider-rail-cap-top, diff --git a/build/slider-base/assets/skins/sam/slider-skin.css b/build/slider-base/assets/skins/sam/slider-skin.css index 67d10b95475..a19e49e07f4 100644 --- a/build/slider-base/assets/skins/sam/slider-skin.css +++ b/build/slider-base/assets/skins/sam/slider-skin.css @@ -7,7 +7,7 @@ build: nightly */ /* Horizontal Slider */ -/* Use thumbUrl /build/slider/assets/skins/sam/thumb-x.png */ +/* Use thumbUrl /build/slider-base/assets/skins/sam/thumb-x.png */ .yui3-skin-sam .yui3-slider-x .yui3-slider-rail, .yui3-skin-sam .yui3-slider-x .yui3-slider-rail-cap-left, @@ -51,7 +51,7 @@ build: nightly /* Vertical Slider */ -/* Use thumbUrl /build/slider/assets/skins/sam/thumb-y.png */ +/* Use thumbUrl /build/slider-base/assets/skins/sam/thumb-y.png */ .yui3-skin-sam .yui3-slider-y .yui3-slider-rail, .yui3-skin-sam .yui3-slider-y .yui3-slider-rail-cap-top, diff --git a/build/slider-base/slider-base-debug.js b/build/slider-base/slider-base-debug.js index 442c76b6265..d6f00461ce6 100644 --- a/build/slider-base/slider-base-debug.js +++ b/build/slider-base/slider-base-debug.js @@ -436,9 +436,9 @@ Y.SliderBase = Y.extend( SliderBase, Y.Widget, { *

                              Defaults the thumbURL attribute according to the current skin, or * "sam" if none can be determined. Horizontal Sliders will have * their thumbUrl attribute set to

                              - *

                              "/configured/yui/builddir/slider/assets/skins/sam/thumb-x.png"

                              + *

                              "/configured/yui/builddir/slider-base/assets/skins/sam/thumb-x.png"

                              *

                              And vertical thumbs will get

                              - *

                              "/configured/yui/builddir/slider/assets/skins/sam/thumb-y.png"

                              + *

                              "/configured/yui/builddir/slider-base/assets/skins/sam/thumb-y.png"

                              * * @method _initThumbUrl * @protected @@ -454,8 +454,8 @@ Y.SliderBase = Y.extend( SliderBase, Y.Widget, { base = 'http://yui.yahooapis.com/' + Y.version + '/build/'; } - // - this.set('thumbUrl', base + 'slider/assets/skins/' + + // + this.set('thumbUrl', base + 'slider-base/assets/skins/' + skin + '/thumb-' + this.axis + '.png'); } @@ -584,4 +584,5 @@ Y.SliderBase = Y.extend( SliderBase, Y.Widget, { }); + }, '3.4.0' ,{requires:['widget', 'substitute', 'dd-constrain']}); diff --git a/build/slider-base/slider-base-min.js b/build/slider-base/slider-base-min.js index 8e335022975..d79bbfd0e54 100644 --- a/build/slider-base/slider-base-min.js +++ b/build/slider-base/slider-base-min.js @@ -5,4 +5,4 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("slider-base",function(c){var b=c.Attribute.INVALID_VALUE;function a(){a.superclass.constructor.apply(this,arguments);}c.SliderBase=c.extend(a,c.Widget,{initializer:function(){this.axis=this.get("axis");this._key={dim:(this.axis==="y")?"height":"width",minEdge:(this.axis==="y")?"top":"left",maxEdge:(this.axis==="y")?"bottom":"right",xyIndex:(this.axis==="y")?1:0};this.publish("thumbMove",{defaultFn:this._defThumbMoveFn,queuable:true});},renderUI:function(){var d=this.get("contentBox");this.rail=this.renderRail();this._uiSetRailLength(this.get("length"));this.thumb=this.renderThumb();this.rail.appendChild(this.thumb);d.appendChild(this.rail);d.addClass(this.getClassName(this.axis));},renderRail:function(){var e=this.getClassName("rail","cap",this._key.minEdge),d=this.getClassName("rail","cap",this._key.maxEdge);return c.Node.create(c.substitute(this.RAIL_TEMPLATE,{railClass:this.getClassName("rail"),railMinCapClass:e,railMaxCapClass:d}));},_uiSetRailLength:function(d){this.rail.setStyle(this._key.dim,d);},renderThumb:function(){this._initThumbUrl();var d=this.get("thumbUrl");return c.Node.create(c.substitute(this.THUMB_TEMPLATE,{thumbClass:this.getClassName("thumb"),thumbShadowClass:this.getClassName("thumb","shadow"),thumbImageClass:this.getClassName("thumb","image"),thumbShadowUrl:d,thumbImageUrl:d}));},bindUI:function(){this._bindThumbDD();this._bindValueLogic();this.after("disabledChange",this._afterDisabledChange);this.after("lengthChange",this._afterLengthChange);},_bindThumbDD:function(){var d={constrain:this.rail};d["stick"+this.axis.toUpperCase()]=true;this._dd=new c.DD.Drag({node:this.thumb,bubble:false,on:{"drag:start":c.bind(this._onDragStart,this)},after:{"drag:drag":c.bind(this._afterDrag,this),"drag:end":c.bind(this._afterDragEnd,this)}});this._dd.plug(c.Plugin.DDConstrained,d);},_bindValueLogic:function(){},_uiMoveThumb:function(d){if(this.thumb){this.thumb.setStyle(this._key.minEdge,d+"px");this.fire("thumbMove",{offset:d});}},_onDragStart:function(d){this.fire("slideStart",{ddEvent:d,originEvent:d});},_afterDrag:function(f){var g=f.info.xy[this._key.xyIndex],d=f.target.con._regionCache[this._key.minEdge];this.fire("thumbMove",{offset:(g-d),ddEvent:f,originEvent:f});},_afterDragEnd:function(d){this.fire("slideEnd",{ddEvent:d,originEvent:d});},_afterDisabledChange:function(d){this._dd.set("lock",d.newVal);},_afterLengthChange:function(d){if(this.get("rendered")){this._uiSetRailLength(d.newVal);this.syncUI();}},syncUI:function(){this._dd.con.resetCache();this._syncThumbPosition();},_syncThumbPosition:function(){},_setAxis:function(d){d=(d+"").toLowerCase();return(d==="x"||d==="y")?d:b;},_setLength:function(e){e=(e+"").toLowerCase();var f=parseFloat(e,10),d=e.replace(/[\d\.\-]/g,"")||this.DEF_UNIT;return f>0?(f+d):b;},_initThumbUrl:function(){if(!this.get("thumbUrl")){var e=this.getSkinName()||"sam",d=c.config.base;if(d.indexOf("http://yui.yahooapis.com/combo")===0){d="http://yui.yahooapis.com/"+c.version+"/build/";}this.set("thumbUrl",d+"slider/assets/skins/"+e+"/thumb-"+this.axis+".png");}},BOUNDING_TEMPLATE:"",CONTENT_TEMPLATE:"",RAIL_TEMPLATE:''+''+''+"",THUMB_TEMPLATE:''+''+''+""},{NAME:"sliderBase",ATTRS:{axis:{value:"x",writeOnce:true,setter:"_setAxis",lazyAdd:false},length:{value:"150px",setter:"_setLength"},thumbUrl:{value:null,validator:c.Lang.isString}}});},"3.4.0",{requires:["widget","substitute","dd-constrain"]}); \ No newline at end of file +YUI.add("slider-base",function(c){var b=c.Attribute.INVALID_VALUE;function a(){a.superclass.constructor.apply(this,arguments);}c.SliderBase=c.extend(a,c.Widget,{initializer:function(){this.axis=this.get("axis");this._key={dim:(this.axis==="y")?"height":"width",minEdge:(this.axis==="y")?"top":"left",maxEdge:(this.axis==="y")?"bottom":"right",xyIndex:(this.axis==="y")?1:0};this.publish("thumbMove",{defaultFn:this._defThumbMoveFn,queuable:true});},renderUI:function(){var d=this.get("contentBox");this.rail=this.renderRail();this._uiSetRailLength(this.get("length"));this.thumb=this.renderThumb();this.rail.appendChild(this.thumb);d.appendChild(this.rail);d.addClass(this.getClassName(this.axis));},renderRail:function(){var e=this.getClassName("rail","cap",this._key.minEdge),d=this.getClassName("rail","cap",this._key.maxEdge);return c.Node.create(c.substitute(this.RAIL_TEMPLATE,{railClass:this.getClassName("rail"),railMinCapClass:e,railMaxCapClass:d}));},_uiSetRailLength:function(d){this.rail.setStyle(this._key.dim,d);},renderThumb:function(){this._initThumbUrl();var d=this.get("thumbUrl");return c.Node.create(c.substitute(this.THUMB_TEMPLATE,{thumbClass:this.getClassName("thumb"),thumbShadowClass:this.getClassName("thumb","shadow"),thumbImageClass:this.getClassName("thumb","image"),thumbShadowUrl:d,thumbImageUrl:d}));},bindUI:function(){this._bindThumbDD();this._bindValueLogic();this.after("disabledChange",this._afterDisabledChange);this.after("lengthChange",this._afterLengthChange);},_bindThumbDD:function(){var d={constrain:this.rail};d["stick"+this.axis.toUpperCase()]=true;this._dd=new c.DD.Drag({node:this.thumb,bubble:false,on:{"drag:start":c.bind(this._onDragStart,this)},after:{"drag:drag":c.bind(this._afterDrag,this),"drag:end":c.bind(this._afterDragEnd,this)}});this._dd.plug(c.Plugin.DDConstrained,d);},_bindValueLogic:function(){},_uiMoveThumb:function(d){if(this.thumb){this.thumb.setStyle(this._key.minEdge,d+"px");this.fire("thumbMove",{offset:d});}},_onDragStart:function(d){this.fire("slideStart",{ddEvent:d,originEvent:d});},_afterDrag:function(f){var g=f.info.xy[this._key.xyIndex],d=f.target.con._regionCache[this._key.minEdge];this.fire("thumbMove",{offset:(g-d),ddEvent:f,originEvent:f});},_afterDragEnd:function(d){this.fire("slideEnd",{ddEvent:d,originEvent:d});},_afterDisabledChange:function(d){this._dd.set("lock",d.newVal);},_afterLengthChange:function(d){if(this.get("rendered")){this._uiSetRailLength(d.newVal);this.syncUI();}},syncUI:function(){this._dd.con.resetCache();this._syncThumbPosition();},_syncThumbPosition:function(){},_setAxis:function(d){d=(d+"").toLowerCase();return(d==="x"||d==="y")?d:b;},_setLength:function(e){e=(e+"").toLowerCase();var f=parseFloat(e,10),d=e.replace(/[\d\.\-]/g,"")||this.DEF_UNIT;return f>0?(f+d):b;},_initThumbUrl:function(){if(!this.get("thumbUrl")){var e=this.getSkinName()||"sam",d=c.config.base;if(d.indexOf("http://yui.yahooapis.com/combo")===0){d="http://yui.yahooapis.com/"+c.version+"/build/";}this.set("thumbUrl",d+"slider-base/assets/skins/"+e+"/thumb-"+this.axis+".png");}},BOUNDING_TEMPLATE:"",CONTENT_TEMPLATE:"",RAIL_TEMPLATE:''+''+''+"",THUMB_TEMPLATE:''+''+''+""},{NAME:"sliderBase",ATTRS:{axis:{value:"x",writeOnce:true,setter:"_setAxis",lazyAdd:false},length:{value:"150px",setter:"_setLength"},thumbUrl:{value:null,validator:c.Lang.isString}}});},"3.4.0",{requires:["widget","substitute","dd-constrain"]}); \ No newline at end of file diff --git a/build/slider-base/slider-base.js b/build/slider-base/slider-base.js index 91359dda97d..15d46fc368b 100644 --- a/build/slider-base/slider-base.js +++ b/build/slider-base/slider-base.js @@ -434,9 +434,9 @@ Y.SliderBase = Y.extend( SliderBase, Y.Widget, { *

                              Defaults the thumbURL attribute according to the current skin, or * "sam" if none can be determined. Horizontal Sliders will have * their thumbUrl attribute set to

                              - *

                              "/configured/yui/builddir/slider/assets/skins/sam/thumb-x.png"

                              + *

                              "/configured/yui/builddir/slider-base/assets/skins/sam/thumb-x.png"

                              *

                              And vertical thumbs will get

                              - *

                              "/configured/yui/builddir/slider/assets/skins/sam/thumb-y.png"

                              + *

                              "/configured/yui/builddir/slider-base/assets/skins/sam/thumb-y.png"

                              * * @method _initThumbUrl * @protected @@ -452,8 +452,8 @@ Y.SliderBase = Y.extend( SliderBase, Y.Widget, { base = 'http://yui.yahooapis.com/' + Y.version + '/build/'; } - // - this.set('thumbUrl', base + 'slider/assets/skins/' + + // + this.set('thumbUrl', base + 'slider-base/assets/skins/' + skin + '/thumb-' + this.axis + '.png'); } @@ -582,4 +582,5 @@ Y.SliderBase = Y.extend( SliderBase, Y.Widget, { }); + }, '3.4.0' ,{requires:['widget', 'substitute', 'dd-constrain']}); diff --git a/build/slider-value-range/slider-value-range-debug.js b/build/slider-value-range/slider-value-range-debug.js index f6579c3d064..0ba4bf13928 100644 --- a/build/slider-value-range/slider-value-range-debug.js +++ b/build/slider-value-range/slider-value-range-debug.js @@ -399,4 +399,5 @@ Y.SliderValueRange = Y.mix( SliderValueRange, { }, true ); + }, '3.4.0' ,{requires:['slider-base']}); diff --git a/build/slider-value-range/slider-value-range.js b/build/slider-value-range/slider-value-range.js index 5e65b31dd3c..c53b2e2c1fd 100644 --- a/build/slider-value-range/slider-value-range.js +++ b/build/slider-value-range/slider-value-range.js @@ -395,4 +395,5 @@ Y.SliderValueRange = Y.mix( SliderValueRange, { }, true ); + }, '3.4.0' ,{requires:['slider-base']}); diff --git a/build/tabview/assets/skins/night/tabview-skin.css b/build/tabview/assets/skins/night/tabview-skin.css new file mode 100644 index 00000000000..8f87a7e6446 --- /dev/null +++ b/build/tabview/assets/skins/night/tabview-skin.css @@ -0,0 +1,102 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +.yui3-skin-night { + /*padding:1px 0 0; why was this here?*/ + font-family: HelveticaNeue,arial,helvetica,clean,sans-serif; + color:#fff; + background-color:#000; +} + +.yui3-skin-night .yui3-tabview-panel{ + background-color:#333333; + color:#808080; +} +.yui3-skin-night .yui3-tab-panel p{ + margin:10px; +} +.yui3-skin-night #tabview-header { + background-color:#0f0f0f; + border-top:1px solid #000; + text-align:center; + height:46px; + background: -moz-linear-gradient( + 0% 100% 90deg, + #0f0f0f 0%, + #1e1e1e 96%, + #292929 100% + ); + background: -webkit-gradient( + linear, + left bottom, + left top, + from(#0f0f0f), + color-stop(0.96, #1e1e1e), + to(#292929) + ); +} + +.yui3-skin-night #tabview-header li { + margin-top:8px; +} +.yui3-skin-night #tabview-header li a{ + border:solid 1px #0c0c0c; + border-right-style:none; + + -moz-box-shadow: 0 1px #222222; + -webkit-box-shadow: 0 1px #222222; + box-shadow: 0 1px #222222; + + text-shadow: 0 -1px 0 rgba(0,0,0,0.7); + font-size:85%; + text-align:center; + color: #fff; + padding: 6px 28px; + background-color:#555658; + background: -moz-linear-gradient( + 0% 100% 90deg, + #343536 0%, + #555658 96%, + #3E3F41 100% + ); + background: -webkit-gradient( + linear, + left bottom, + left top, + from(#343536), + color-stop(0.96, #555658), + to(#3E3F41) + ); +} +.yui3-skin-night #tabview-header li.yui3-tab-selected a { + background-color:#2B2D2D; + background: -moz-linear-gradient( + 0% 100% 90deg, + #242526 0%, + #3b3c3d 96%, + #2C2D2F 100% + ); + background: -webkit-gradient( + linear, + left bottom, + left top, + from(#242526), + color-stop(0.96, #3b3c3d), + to(#2C2D2F) + ); +} +.yui3-skin-night #tabview-header li:first-child a{ + -moz-border-radius:6px 0 0 6px; + -webkit-border-radius:6px 0 0 6px; + border-radius:6px 0 0 6px; +} +.yui3-skin-night #tabview-header li:last-child a{ + border-right-style:solid; + -moz-border-radius:0 6px 6px 0; + -webkit-border-radius:0 6px 6px 0; + border-radius:0 6px 6px 0; +} diff --git a/build/tabview/assets/skins/night/tabview.css b/build/tabview/assets/skins/night/tabview.css new file mode 100644 index 00000000000..045b9208424 --- /dev/null +++ b/build/tabview/assets/skins/night/tabview.css @@ -0,0 +1,8 @@ +/* +Copyright (c) 2010, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.com/yui/license.html +version: 3.4.0 +build: nightly +*/ +.yui3-tab-panel{display:none}.yui3-tab-panel-selected{display:block}.yui3-tabview-list,.yui3-tab{margin:0;padding:0;list-style:none}.yui3-tabview{position:relative}.yui3-tabview,.yui3-tabview-list,.yui3-tabview-panel,.yui3-tab,.yui3-tab-panel{zoom:1}.yui3-tab{display:inline-block;*display:inline;vertical-align:bottom;cursor:pointer}.yui3-tab-label{display:block;display:inline-block;padding:6px 10px;position:relative;text-decoration:none;vertical-align:bottom}.yui3-skin-night{font-family:HelveticaNeue,arial,helvetica,clean,sans-serif;color:#fff;background-color:#000}.yui3-skin-night .yui3-tabview-panel{background-color:#333;color:#808080}.yui3-skin-night .yui3-tab-panel p{margin:10px}.yui3-skin-night #tabview-header{background-color:#0f0f0f;border-top:1px solid #000;text-align:center;height:46px;background:-moz-linear-gradient(0% 100% 90deg,#0f0f0f 0,#1e1e1e 96%,#292929 100%);background:-webkit-gradient(linear,left bottom,left top,from(#0f0f0f),color-stop(0.96,#1e1e1e),to(#292929))}.yui3-skin-night #tabview-header li{margin-top:8px}.yui3-skin-night #tabview-header li a{border:solid 1px #0c0c0c;border-right-style:none;-moz-box-shadow:0 1px #222;-webkit-box-shadow:0 1px #222;box-shadow:0 1px #222;text-shadow:0 -1px 0 rgba(0,0,0,0.7);font-size:85%;text-align:center;color:#fff;padding:6px 28px;background-color:#555658;background:-moz-linear-gradient(0% 100% 90deg,#343536 0,#555658 96%,#3e3f41 100%);background:-webkit-gradient(linear,left bottom,left top,from(#343536),color-stop(0.96,#555658),to(#3e3f41))}.yui3-skin-night #tabview-header li.yui3-tab-selected a{background-color:#2b2d2d;background:-moz-linear-gradient(0% 100% 90deg,#242526 0,#3b3c3d 96%,#2c2d2f 100%);background:-webkit-gradient(linear,left bottom,left top,from(#242526),color-stop(0.96,#3b3c3d),to(#2c2d2f))}.yui3-skin-night #tabview-header li:first-child a{-moz-border-radius:6px 0 0 6px;-webkit-border-radius:6px 0 0 6px;border-radius:6px 0 0 6px}.yui3-skin-night #tabview-header li:last-child a{border-right-style:solid;-moz-border-radius:0 6px 6px 0;-webkit-border-radius:0 6px 6px 0;border-radius:0 6px 6px 0} diff --git a/build/test/test-debug.js b/build/test/test-debug.js index bf7797fdfb7..a74bae35ee7 100644 --- a/build/test/test-debug.js +++ b/build/test/test-debug.js @@ -30,6 +30,10 @@ YUI.add('test', function(Y) { * Special rules for the test case. Possible subobjects * are fail, for tests that should fail, and error, for * tests that should throw an error. + * + * @property _should + * @type Object + * @protected */ this._should = {}; @@ -42,6 +46,9 @@ YUI.add('test', function(Y) { if (!Y.Lang.isString(this.name)){ /** * Name for the test case. + * + * @property name + * @type String */ this.name = "testCase" + Y.guid(); } @@ -152,6 +159,8 @@ YUI.add('test', function(Y) { /** * Array of test suites and + * @property items + * @type Array * @private */ this.items = []; @@ -980,7 +989,7 @@ YUI.add('test', function(Y) { * @return {Void} * @static * @private - * @name _runTest + * @method _runTest */ _runTest : function (node) { @@ -1215,7 +1224,10 @@ YUI.add('test', function(Y) { return new TestRunner(); })(); - + /** + * @module test + */ + /** * The Assert object provides functions to test JavaScript values against * known and expected results. Whenever a comparison (assertion) fails, @@ -1651,8 +1663,7 @@ YUI.add('test', function(Y) { * from which more specific assertion errors can be derived. * * @param {String} message The message to display when the error occurs. - * @namespace Assert - * @class Error + * @class Assert.Error * @constructor */ Y.Assert.Error = function (message){ @@ -1716,9 +1727,8 @@ YUI.add('test', function(Y) { * @param {String} message The message to display when the error occurs. * @param {Object} expected The expected value. * @param {Object} actual The actual value that caused the assertion to fail. - * @namespace Assert * @extends Assert.Error - * @class ComparisonFailure + * @class Assert.ComparisonFailure * @constructor */ Y.Assert.ComparisonFailure = function (message, expected, actual){ @@ -1773,9 +1783,8 @@ YUI.add('test', function(Y) { * * @param {String} message The message to display when the error occurs. * @param {Object} unexpected The unexpected value. - * @namespace Assert * @extends Assert.Error - * @class UnexpectedValue + * @class Assert.UnexpectedValue * @constructor */ Y.Assert.UnexpectedValue = function (message, unexpected){ @@ -1819,9 +1828,8 @@ YUI.add('test', function(Y) { * a test was expected to fail but did not. * * @param {String} message The message to display when the error occurs. - * @namespace Assert * @extends Assert.Error - * @class ShouldFail + * @class Assert.ShouldFail * @constructor */ Y.Assert.ShouldFail = function (message){ @@ -1846,9 +1854,8 @@ YUI.add('test', function(Y) { * a test is expected to throw an error but doesn't. * * @param {String} message The message to display when the error occurs. - * @namespace Assert * @extends Assert.Error - * @class ShouldError + * @class Assert.ShouldError * @constructor */ Y.Assert.ShouldError = function (message){ @@ -1875,9 +1882,8 @@ YUI.add('test', function(Y) { * * @param {Error} cause The unexpected error that caused this error to be * thrown. - * @namespace Assert * @extends Assert.Error - * @class UnexpectedError + * @class Assert.UnexpectedError * @constructor */ Y.Assert.UnexpectedError = function (cause){ @@ -1911,7 +1917,10 @@ YUI.add('test', function(Y) { //inherit methods Y.extend(Y.Assert.UnexpectedError, Y.Assert.Error); - + /** + * @module test + */ + /** * The ArrayAssert object provides functions to test JavaScript array objects * for a variety of cases. @@ -2232,6 +2241,9 @@ YUI.add('test', function(Y) { } }; + /** + * @module test + */ /** * The ObjectAssert object provides functions to test JavaScript objects @@ -2337,14 +2349,15 @@ YUI.add('test', function(Y) { } }; + /** + * @module test + */ - /** * The DateAssert object provides functions to test JavaScript Date objects * for a variety of cases. * * @class DateAssert - * @namespace * @static */ @@ -2652,14 +2665,15 @@ YUI.add('test', function(Y) { return "1.." + results.total + "\n" + serializeToTAP(results); }; - + /** + * @module test + */ Y.namespace("Coverage.Format"); /** * Contains specific formatting options for coverage information. - * @namespace Coverage - * @class Format + * @class Coverage.Format * @static */ @@ -2858,6 +2872,10 @@ YUI.add('test', function(Y) { } }; + /** + * @module test + */ + /** * Creates a new mock object. * @class Mock @@ -3006,6 +3024,7 @@ YUI.add('test', function(Y) { /** * Defines a custom mock validator for a particular argument. + * @class Mock.Value * @param {Function} method The method to run on the argument. This should * throw an assertion error if the value is invalid. * @param {Array} originalArgs The first few arguments to pass in @@ -3014,7 +3033,6 @@ YUI.add('test', function(Y) { * @param {String} message The message to display if validation fails. If * not specified, the default assertion error message is displayed. * @return {void} - * @namespace Mock * @constructor Value * @static */ @@ -3033,7 +3051,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts any value as valid. - * @namespace Mock.Value * @property Any * @type Function * @static @@ -3042,7 +3059,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only Boolean values as valid. - * @namespace Mock.Value * @property Boolean * @type Function * @static @@ -3051,7 +3067,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only numeric values as valid. - * @namespace Mock.Value * @property Number * @type Function * @static @@ -3060,7 +3075,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only String values as valid. - * @namespace Mock.Value * @property String * @type Function * @static @@ -3069,7 +3083,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only non-null objects values as valid. - * @namespace Mock.Value * @property Object * @type Function * @static @@ -3078,7 +3091,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts onlyfunctions as valid. - * @namespace Mock.Value * @property Function * @type Function * @static diff --git a/build/test/test.js b/build/test/test.js index bf7797fdfb7..a74bae35ee7 100644 --- a/build/test/test.js +++ b/build/test/test.js @@ -30,6 +30,10 @@ YUI.add('test', function(Y) { * Special rules for the test case. Possible subobjects * are fail, for tests that should fail, and error, for * tests that should throw an error. + * + * @property _should + * @type Object + * @protected */ this._should = {}; @@ -42,6 +46,9 @@ YUI.add('test', function(Y) { if (!Y.Lang.isString(this.name)){ /** * Name for the test case. + * + * @property name + * @type String */ this.name = "testCase" + Y.guid(); } @@ -152,6 +159,8 @@ YUI.add('test', function(Y) { /** * Array of test suites and + * @property items + * @type Array * @private */ this.items = []; @@ -980,7 +989,7 @@ YUI.add('test', function(Y) { * @return {Void} * @static * @private - * @name _runTest + * @method _runTest */ _runTest : function (node) { @@ -1215,7 +1224,10 @@ YUI.add('test', function(Y) { return new TestRunner(); })(); - + /** + * @module test + */ + /** * The Assert object provides functions to test JavaScript values against * known and expected results. Whenever a comparison (assertion) fails, @@ -1651,8 +1663,7 @@ YUI.add('test', function(Y) { * from which more specific assertion errors can be derived. * * @param {String} message The message to display when the error occurs. - * @namespace Assert - * @class Error + * @class Assert.Error * @constructor */ Y.Assert.Error = function (message){ @@ -1716,9 +1727,8 @@ YUI.add('test', function(Y) { * @param {String} message The message to display when the error occurs. * @param {Object} expected The expected value. * @param {Object} actual The actual value that caused the assertion to fail. - * @namespace Assert * @extends Assert.Error - * @class ComparisonFailure + * @class Assert.ComparisonFailure * @constructor */ Y.Assert.ComparisonFailure = function (message, expected, actual){ @@ -1773,9 +1783,8 @@ YUI.add('test', function(Y) { * * @param {String} message The message to display when the error occurs. * @param {Object} unexpected The unexpected value. - * @namespace Assert * @extends Assert.Error - * @class UnexpectedValue + * @class Assert.UnexpectedValue * @constructor */ Y.Assert.UnexpectedValue = function (message, unexpected){ @@ -1819,9 +1828,8 @@ YUI.add('test', function(Y) { * a test was expected to fail but did not. * * @param {String} message The message to display when the error occurs. - * @namespace Assert * @extends Assert.Error - * @class ShouldFail + * @class Assert.ShouldFail * @constructor */ Y.Assert.ShouldFail = function (message){ @@ -1846,9 +1854,8 @@ YUI.add('test', function(Y) { * a test is expected to throw an error but doesn't. * * @param {String} message The message to display when the error occurs. - * @namespace Assert * @extends Assert.Error - * @class ShouldError + * @class Assert.ShouldError * @constructor */ Y.Assert.ShouldError = function (message){ @@ -1875,9 +1882,8 @@ YUI.add('test', function(Y) { * * @param {Error} cause The unexpected error that caused this error to be * thrown. - * @namespace Assert * @extends Assert.Error - * @class UnexpectedError + * @class Assert.UnexpectedError * @constructor */ Y.Assert.UnexpectedError = function (cause){ @@ -1911,7 +1917,10 @@ YUI.add('test', function(Y) { //inherit methods Y.extend(Y.Assert.UnexpectedError, Y.Assert.Error); - + /** + * @module test + */ + /** * The ArrayAssert object provides functions to test JavaScript array objects * for a variety of cases. @@ -2232,6 +2241,9 @@ YUI.add('test', function(Y) { } }; + /** + * @module test + */ /** * The ObjectAssert object provides functions to test JavaScript objects @@ -2337,14 +2349,15 @@ YUI.add('test', function(Y) { } }; + /** + * @module test + */ - /** * The DateAssert object provides functions to test JavaScript Date objects * for a variety of cases. * * @class DateAssert - * @namespace * @static */ @@ -2652,14 +2665,15 @@ YUI.add('test', function(Y) { return "1.." + results.total + "\n" + serializeToTAP(results); }; - + /** + * @module test + */ Y.namespace("Coverage.Format"); /** * Contains specific formatting options for coverage information. - * @namespace Coverage - * @class Format + * @class Coverage.Format * @static */ @@ -2858,6 +2872,10 @@ YUI.add('test', function(Y) { } }; + /** + * @module test + */ + /** * Creates a new mock object. * @class Mock @@ -3006,6 +3024,7 @@ YUI.add('test', function(Y) { /** * Defines a custom mock validator for a particular argument. + * @class Mock.Value * @param {Function} method The method to run on the argument. This should * throw an assertion error if the value is invalid. * @param {Array} originalArgs The first few arguments to pass in @@ -3014,7 +3033,6 @@ YUI.add('test', function(Y) { * @param {String} message The message to display if validation fails. If * not specified, the default assertion error message is displayed. * @return {void} - * @namespace Mock * @constructor Value * @static */ @@ -3033,7 +3051,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts any value as valid. - * @namespace Mock.Value * @property Any * @type Function * @static @@ -3042,7 +3059,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only Boolean values as valid. - * @namespace Mock.Value * @property Boolean * @type Function * @static @@ -3051,7 +3067,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only numeric values as valid. - * @namespace Mock.Value * @property Number * @type Function * @static @@ -3060,7 +3075,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only String values as valid. - * @namespace Mock.Value * @property String * @type Function * @static @@ -3069,7 +3083,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts only non-null objects values as valid. - * @namespace Mock.Value * @property Object * @type Function * @static @@ -3078,7 +3091,6 @@ YUI.add('test', function(Y) { /** * Mock argument validator that accepts onlyfunctions as valid. - * @namespace Mock.Value * @property Function * @type Function * @static diff --git a/build/transition-native/transition-native-debug.js b/build/transition-native/transition-native-debug.js index 5e81e364f7b..38f0170db20 100644 --- a/build/transition-native/transition-native-debug.js +++ b/build/transition-native/transition-native-debug.js @@ -15,19 +15,32 @@ YUI.add('transition-native', function(Y) { * @requires node-style */ -var TRANSITION = '-webkit-transition', - TRANSITION_CAMEL = 'WebkitTransition', - TRANSITION_PROPERTY_CAMEL = 'WebkitTransitionProperty', - TRANSITION_PROPERTY = '-webkit-transition-property', - TRANSITION_DURATION = '-webkit-transition-duration', - TRANSITION_TIMING_FUNCTION = '-webkit-transition-timing-function', - TRANSITION_DELAY = '-webkit-transition-delay', - TRANSITION_END = 'webkitTransitionEnd', - ON_TRANSITION_END = 'onwebkittransitionend', - TRANSFORM_CAMEL = 'WebkitTransform', +var CAMEL_VENDOR_PREFIX = '', + VENDOR_PREFIX = '', + DOCUMENT = Y.config.doc, + DOCUMENT_ELEMENT = 'documentElement', + TRANSITION = 'transition', + TRANSITION_CAMEL = 'Transition', + TRANSITION_PROPERTY_CAMEL, + TRANSITION_PROPERTY, + TRANSITION_DURATION, + TRANSITION_TIMING_FUNCTION, + TRANSITION_DELAY, + TRANSITION_END, + ON_TRANSITION_END, + TRANSFORM_CAMEL, EMPTY_OBJ = {}, + VENDORS = [ + 'Webkit', + 'Moz' + ], + + VENDOR_TRANSITION_END = { + Webkit: 'webkitTransitionEnd' + }, + /** * A class for constructing transition instances. * Adds the "transition" method to Node. @@ -39,11 +52,6 @@ Transition = function() { this.init.apply(this, arguments); }; -Transition.fx = {}; -Transition.toggles = {}; - -Transition._hasEnd = {}; - Transition._toCamel = function(property) { property = property.replace(/-([a-z])/gi, function(m0, m1) { return m1.toUpperCase(); @@ -54,11 +62,7 @@ Transition._toCamel = function(property) { Transition._toHyphen = function(property) { property = property.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g, function(m0, m1, m2, m3) { - var str = ''; - if (m1) { - str += '-' + m1.toLowerCase(); - } - str += m2; + var str = ((m1) ? '-' + m1.toLowerCase() : '') + m2; if (m3) { str += '-' + m3.toLowerCase(); @@ -70,15 +74,41 @@ Transition._toHyphen = function(property) { return property; }; - -Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; +Transition.SHOW_TRANSITION = 'fadeIn'; +Transition.HIDE_TRANSITION = 'fadeOut'; Transition.useNative = false; -if (TRANSITION in Y.config.doc.documentElement.style) { - Transition.useNative = true; - Transition.supported = true; // TODO: remove -} +Y.Array.each(VENDORS, function(val) { // then vendor specific + var property = val + TRANSITION_CAMEL; + if (property in DOCUMENT[DOCUMENT_ELEMENT].style) { + CAMEL_VENDOR_PREFIX = val; + VENDOR_PREFIX = Transition._toHyphen(val) + '-'; + + Transition.useNative = true; + Transition.supported = true; // TODO: remove + } +}); + +TRANSITION_CAMEL = CAMEL_VENDOR_PREFIX + TRANSITION_CAMEL; +TRANSITION_PROPERTY_CAMEL = CAMEL_VENDOR_PREFIX + 'TransitionProperty'; +TRANSITION_PROPERTY = VENDOR_PREFIX + 'transition-property'; +TRANSITION_DURATION = VENDOR_PREFIX + 'transition-duration'; +TRANSITION_TIMING_FUNCTION = VENDOR_PREFIX + 'transition-timing-function'; +TRANSITION_DELAY = VENDOR_PREFIX + 'transition-delay'; +TRANSITION_END = 'transitionend'; +ON_TRANSITION_END = 'on' + CAMEL_VENDOR_PREFIX.toLowerCase() + 'transitionend'; + +TRANSITION_END = VENDOR_TRANSITION_END[CAMEL_VENDOR_PREFIX] || TRANSITION_END; + +TRANSFORM_CAMEL = CAMEL_VENDOR_PREFIX + 'Transform'; + +Transition.fx = {}; +Transition.toggles = {}; + +Transition._hasEnd = {}; + +Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; Y.Node.DOM_EVENTS[TRANSITION_END] = 1; @@ -271,7 +301,7 @@ Transition.prototype = { computed = getComputedStyle(node), attrs = Transition._nodeAttrs[uid], cssText = '', - cssTransition = computed[TRANSITION_PROPERTY], + cssTransition = computed[Transition._toCamel(TRANSITION_PROPERTY)], transitionText = TRANSITION_PROPERTY + ': ', duration = TRANSITION_DURATION + ': ', @@ -284,9 +314,9 @@ Transition.prototype = { // preserve existing transitions if (cssTransition !== 'all') { transitionText += cssTransition + ','; - duration += computed[TRANSITION_DURATION] + ','; - easing += computed[TRANSITION_TIMING_FUNCTION] + ','; - delay += computed[TRANSITION_DELAY] + ','; + duration += computed[Transition._toCamel(TRANSITION_DURATION)] + ','; + easing += computed[Transition._toCamel(TRANSITION_TIMING_FUNCTION)] + ','; + delay += computed[Transition._toCamel(TRANSITION_DELAY)] + ','; } @@ -294,7 +324,7 @@ Transition.prototype = { for (name in attrs) { hyphy = Transition._toHyphen(name); attr = attrs[name]; - if (attrs.hasOwnProperty(name) && attr.transition === anim) { + if ((attr = attrs[name]) && attr.transition === anim) { if (name in node.style) { // only native styles allowed duration += anim._prepDur(attr.duration) + ','; delay += anim._prepDur(attr.delay) + ','; @@ -317,7 +347,7 @@ Transition.prototype = { if (!Transition._hasEnd[uid]) { //anim._detach = Y.on(TRANSITION_END, anim._onNativeEnd, node); //node[ON_TRANSITION_END] = anim._onNativeEnd; - node.addEventListener(TRANSITION_END, anim._onNativeEnd, false); + node.addEventListener(TRANSITION_END, anim._onNativeEnd, ''); Transition._hasEnd[uid] = true; } @@ -367,7 +397,7 @@ Transition.prototype = { _endNative: function(name) { var node = this._node, - value = node.ownerDocument.defaultView.getComputedStyle(node, '')[TRANSITION_PROPERTY]; + value = node.ownerDocument.defaultView.getComputedStyle(node, '')[Transition._toCamel(TRANSITION_PROPERTY)]; if (typeof value === 'string') { value = value.replace(new RegExp('(?:^|,\\s)' + name + ',?'), ','); @@ -413,15 +443,18 @@ Transition.prototype = { }, destroy: function() { - var anim = this; + var anim = this, + node = anim._node; /* if (anim._detach) { anim._detach.detach(); } */ //anim._node[ON_TRANSITION_END] = null; - node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); - anim._node = null; + if (node) { + node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); + anim._node = null; + } } }; @@ -505,7 +538,7 @@ Y.Node.prototype.show = function(name, config, callback) { callback = config; config = name; } - name = this.SHOW_TRANSITION; + name = Transition.SHOW_TRANSITION; } this.transition(name, config, callback); } @@ -537,7 +570,7 @@ Y.Node.prototype.hide = function(name, config, callback) { callback = config; config = name; } - name = this.HIDE_TRANSITION; + name = Transition.HIDE_TRANSITION; } this.transition(name, config, callback); } else if (name && !Y.Transition) { Y.log('unable to transition hide; missing transition module', 'warn', 'node'); // end if on nex diff --git a/build/transition-native/transition-native-min.js b/build/transition-native/transition-native-min.js index 3673b322fc6..36ed86ce10a 100644 --- a/build/transition-native/transition-native-min.js +++ b/build/transition-native/transition-native-min.js @@ -5,5 +5,5 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("transition-native",function(b){var j="-webkit-transition",m="WebkitTransition",h="WebkitTransitionProperty",c="-webkit-transition-property",g="-webkit-transition-duration",a="-webkit-transition-timing-function",d="-webkit-transition-delay",k="webkitTransitionEnd",e="onwebkittransitionend",l="WebkitTransform",i={},f=function(){this.init.apply(this,arguments);};f.fx={};f.toggles={};f._hasEnd={};f._toCamel=function(o){o=o.replace(/-([a-z])/gi,function(q,p){return p.toUpperCase();});return o;};f._toHyphen=function(o){o=o.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g,function(s,r,q,p){var t="";if(r){t+="-"+r.toLowerCase();}t+=q;if(p){t+="-"+p.toLowerCase();}return t;});return o;};f._reKeywords=/^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i;f.useNative=false;if(j in b.config.doc.documentElement.style){f.useNative=true;f.supported=true;}b.Node.DOM_EVENTS[k]=1;f.NAME="transition";f.DEFAULT_EASING="ease";f.DEFAULT_DURATION=0.5;f.DEFAULT_DELAY=0;f._nodeAttrs={};f.prototype={constructor:f,init:function(p,o){var q=this;q._node=p;if(!q._running&&o){q._config=o;p._transition=q;q._duration=("duration" in o)?o.duration:q.constructor.DEFAULT_DURATION;q._delay=("delay" in o)?o.delay:q.constructor.DEFAULT_DELAY;q._easing=o.easing||q.constructor.DEFAULT_EASING;q._count=0;q._running=false;}return q;},addProperty:function(p,r){var u=this,s=this._node,w=b.stamp(s),v=b.one(s),z=f._nodeAttrs[w],t,y,o,x,q;if(!z){z=f._nodeAttrs[w]={};}x=z[p];if(r&&r.value!==undefined){q=r.value;}else{if(r!==undefined){q=r;r=i;}}if(typeof q==="function"){q=q.call(v,v);}if(x&&x.transition){if(x.transition!==u){x.transition._count--;}}u._count++;o=((typeof r.duration!="undefined")?r.duration:u._duration)||0.0001;z[p]={value:q,duration:o,delay:(typeof r.delay!="undefined")?r.delay:u._delay,easing:r.easing||u._easing,transition:u};t=b.DOM.getComputedStyle(s,p);y=(typeof q==="string")?t:parseFloat(t);if(f.useNative&&y===q){setTimeout(function(){u._onNativeEnd.call(s,{propertyName:p,elapsedTime:o});},o*1000);}},removeProperty:function(q){var p=this,o=f._nodeAttrs[b.stamp(p._node)];if(o&&o[q]){delete o[q];p._count--;}},initAttrs:function(p){var o,q=this._node;if(p.transform&&!p[l]){p[l]=p.transform;delete p.transform;}for(o in p){if(p.hasOwnProperty(o)&&!f._reKeywords.test(o)){this.addProperty(o,p[o]);if(q.style[o]===""){b.DOM.setStyle(q,o,b.DOM.getComputedStyle(q,o));}}}},run:function(s){var r=this,p=r._node,o=r._config,q={type:"transition:start",config:o};if(!r._running){r._running=true;if(o.on&&o.on.start){o.on.start.call(b.one(p),q);}r.initAttrs(r._config);r._callback=s;r._start();}return r;},_start:function(){this._runNative();},_prepDur:function(o){o=parseFloat(o);return o+"s";},_runNative:function(q){var w=this,r=w._node,y=b.stamp(r),p=r.style,u=getComputedStyle(r),C=f._nodeAttrs[y],s="",D=u[c],B=c+": ",v=g+": ",A=a+": ",x=d+": ",t,z,o;if(D!=="all"){B+=D+",";v+=u[g]+",";A+=u[a]+",";x+=u[d]+",";}for(o in C){t=f._toHyphen(o);z=C[o];if(C.hasOwnProperty(o)&&z.transition===w){if(o in r.style){v+=w._prepDur(z.duration)+",";x+=w._prepDur(z.delay)+",";A+=(z.easing)+",";B+=t+",";s+=t+": "+z.value+"; ";}else{this.removeProperty(o);}}}B=B.replace(/,$/,";");v=v.replace(/,$/,";");A=A.replace(/,$/,";");x=x.replace(/,$/,";");if(!f._hasEnd[y]){r.addEventListener(k,w._onNativeEnd,false);f._hasEnd[y]=true;}p.cssText+=B+v+A+x+s;},_end:function(o){var s=this,q=s._node,u=s._callback,p=s._config,r={type:"transition:end",config:p,elapsedTime:o},t=b.one(q);s._running=false;s._callback=null;if(q){if(p.on&&p.on.end){setTimeout(function(){p.on.end.call(t,r);if(u){u.call(t,r);}},1);}else{if(u){setTimeout(function(){u.call(t,r);},1);}}}},_endNative:function(o){var p=this._node,q=p.ownerDocument.defaultView.getComputedStyle(p,"")[c];if(typeof q==="string"){q=q.replace(new RegExp("(?:^|,\\s)"+o+",?"),",");q=q.replace(/^,|,$/,"");p.style[m]=q;}},_onNativeEnd:function(v){var r=this,u=b.stamp(r),o=v,p=f._toCamel(o.propertyName),y=o.elapsedTime,x=f._nodeAttrs[u],w=x[p],s=(w)?w.transition:null,t,q;if(s){s.removeProperty(p);s._endNative(p);q=s._config[p];t={type:"propertyEnd",propertyName:p,elapsedTime:y,config:q};if(q&&q.on&&q.on.end){q.on.end.call(b.one(r),t);}if(s._count<=0){s._end(y);}}},destroy:function(){var o=this;node.removeEventListener(k,o._onNativeEnd,false);o._node=null;}};b.Transition=f;b.TransitionNative=f;b.Node.prototype.transition=function(q,p,u){var o=f._nodeAttrs[b.stamp(this._node)],s=(o)?o.transition||null:null,r,t;if(typeof q==="string"){if(typeof p==="function"){u=p;p=null;}r=f.fx[q];if(p&&typeof p!=="boolean"){p=b.clone(p);for(t in r){if(r.hasOwnProperty(t)){if(!(t in p)){p[t]=r[t];}}}}else{p=r;}}else{u=p;p=q;}if(s&&!s._running){s.init(this,p);}else{s=new f(this._node,p);}s.run(u);return this;};b.Node.prototype.show=function(p,o,q){this._show();if(p&&b.Transition){if(typeof p!=="string"&&!p.push){if(typeof o==="function"){q=o;o=p;}p=this.SHOW_TRANSITION;}this.transition(p,o,q);}return this;};var n=function(p,o,q){return function(){if(o){o.call(p);}if(q){q.apply(p._node,arguments);}};};b.Node.prototype.hide=function(p,o,q){if(p&&b.Transition){if(typeof o==="function"){q=o;o=null;}q=n(this,this._hide,q);if(typeof p!=="string"&&!p.push){if(typeof o==="function"){q=o;o=p;}p=this.HIDE_TRANSITION;}this.transition(p,o,q);}else{this._hide();}return this;};b.NodeList.prototype.transition=function(p,s){var o=this._nodes,q=0,r;while((r=o[q++])){b.one(r).transition(p,s);}return this;};b.Node.prototype.toggleView=function(p,o,q){this._toggles=this._toggles||[];q=arguments[arguments.length-1];if(typeof p=="boolean"){o=p;p=null;}p=p||b.Transition.DEFAULT_TOGGLE;if(typeof o=="undefined"&&p in this._toggles){o=!this._toggles[p];}o=(o)?1:0;if(o){this._show();}else{q=n(this,this._hide,q);}this._toggles[p]=o;this.transition(b.Transition.toggles[p][o],q);return this;};b.NodeList.prototype.toggleView=function(q,o,t){var p=this._nodes,r=0,s;while((s=p[r++])){b.one(s).toggleView(q,o,t);}return this;};b.mix(f.fx,{fadeOut:{opacity:0,duration:0.5,easing:"ease-out"},fadeIn:{opacity:1,duration:0.5,easing:"ease-in"},sizeOut:{height:0,width:0,duration:0.75,easing:"ease-out"},sizeIn:{height:function(o){return o.get("scrollHeight")+"px"; -},width:function(o){return o.get("scrollWidth")+"px";},duration:0.5,easing:"ease-in",on:{start:function(){var o=this.getStyle("overflow");if(o!=="hidden"){this.setStyle("overflow","hidden");this._transitionOverflow=o;}},end:function(){if(this._transitionOverflow){this.setStyle("overflow",this._transitionOverflow);delete this._transitionOverflow;}}}}});b.mix(f.toggles,{size:["sizeOut","sizeIn"],fade:["fadeOut","fadeIn"]});f.DEFAULT_TOGGLE="fade";},"3.4.0",{requires:["node-base"]}); \ No newline at end of file +YUI.add("transition-native",function(b){var i="",h="",f=b.config.doc,r="documentElement",s="transition",k="Transition",m,j,p,a,n,c,l,t,q={},g=["Webkit","Moz"],e={Webkit:"webkitTransitionEnd"},d=function(){this.init.apply(this,arguments);};d._toCamel=function(u){u=u.replace(/-([a-z])/gi,function(w,v){return v.toUpperCase();});return u;};d._toHyphen=function(u){u=u.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g,function(y,x,w,v){var z=((x)?"-"+x.toLowerCase():"")+w;if(v){z+="-"+v.toLowerCase();}return z;});return u;};d.SHOW_TRANSITION="fadeIn";d.HIDE_TRANSITION="fadeOut";d.useNative=false;b.Array.each(g,function(v){var u=v+k;if(u in f[r].style){i=v;h=d._toHyphen(v)+"-";d.useNative=true;d.supported=true;}});k=i+k;m=i+"TransitionProperty";j=h+"transition-property";p=h+"transition-duration";a=h+"transition-timing-function";n=h+"transition-delay";c="transitionend";l="on"+i.toLowerCase()+"transitionend";c=e[i]||c;t=i+"Transform";d.fx={};d.toggles={};d._hasEnd={};d._reKeywords=/^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i;b.Node.DOM_EVENTS[c]=1;d.NAME="transition";d.DEFAULT_EASING="ease";d.DEFAULT_DURATION=0.5;d.DEFAULT_DELAY=0;d._nodeAttrs={};d.prototype={constructor:d,init:function(v,u){var w=this;w._node=v;if(!w._running&&u){w._config=u;v._transition=w;w._duration=("duration" in u)?u.duration:w.constructor.DEFAULT_DURATION;w._delay=("delay" in u)?u.delay:w.constructor.DEFAULT_DELAY;w._easing=u.easing||w.constructor.DEFAULT_EASING;w._count=0;w._running=false;}return w;},addProperty:function(v,x){var A=this,y=this._node,C=b.stamp(y),B=b.one(y),F=d._nodeAttrs[C],z,E,u,D,w;if(!F){F=d._nodeAttrs[C]={};}D=F[v];if(x&&x.value!==undefined){w=x.value;}else{if(x!==undefined){w=x;x=q;}}if(typeof w==="function"){w=w.call(B,B);}if(D&&D.transition){if(D.transition!==A){D.transition._count--;}}A._count++;u=((typeof x.duration!="undefined")?x.duration:A._duration)||0.0001;F[v]={value:w,duration:u,delay:(typeof x.delay!="undefined")?x.delay:A._delay,easing:x.easing||A._easing,transition:A};z=b.DOM.getComputedStyle(y,v);E=(typeof w==="string")?z:parseFloat(z);if(d.useNative&&E===w){setTimeout(function(){A._onNativeEnd.call(y,{propertyName:v,elapsedTime:u});},u*1000);}},removeProperty:function(w){var v=this,u=d._nodeAttrs[b.stamp(v._node)];if(u&&u[w]){delete u[w];v._count--;}},initAttrs:function(v){var u,w=this._node;if(v.transform&&!v[t]){v[t]=v.transform;delete v.transform;}for(u in v){if(v.hasOwnProperty(u)&&!d._reKeywords.test(u)){this.addProperty(u,v[u]);if(w.style[u]===""){b.DOM.setStyle(w,u,b.DOM.getComputedStyle(w,u));}}}},run:function(y){var x=this,v=x._node,u=x._config,w={type:"transition:start",config:u};if(!x._running){x._running=true;if(u.on&&u.on.start){u.on.start.call(b.one(v),w);}x.initAttrs(x._config);x._callback=y;x._start();}return x;},_start:function(){this._runNative();},_prepDur:function(u){u=parseFloat(u);return u+"s";},_runNative:function(w){var C=this,x=C._node,E=b.stamp(x),v=x.style,A=getComputedStyle(x),I=d._nodeAttrs[E],y="",J=A[d._toCamel(j)],H=j+": ",B=p+": ",G=a+": ",D=n+": ",z,F,u;if(J!=="all"){H+=J+",";B+=A[d._toCamel(p)]+",";G+=A[d._toCamel(a)]+",";D+=A[d._toCamel(n)]+",";}for(u in I){z=d._toHyphen(u);F=I[u];if((F=I[u])&&F.transition===C){if(u in x.style){B+=C._prepDur(F.duration)+",";D+=C._prepDur(F.delay)+",";G+=(F.easing)+",";H+=z+",";y+=z+": "+F.value+"; ";}else{this.removeProperty(u);}}}H=H.replace(/,$/,";");B=B.replace(/,$/,";");G=G.replace(/,$/,";");D=D.replace(/,$/,";");if(!d._hasEnd[E]){x.addEventListener(c,C._onNativeEnd,"");d._hasEnd[E]=true;}v.cssText+=H+B+G+D+y;},_end:function(u){var y=this,w=y._node,A=y._callback,v=y._config,x={type:"transition:end",config:v,elapsedTime:u},z=b.one(w);y._running=false;y._callback=null;if(w){if(v.on&&v.on.end){setTimeout(function(){v.on.end.call(z,x);if(A){A.call(z,x);}},1);}else{if(A){setTimeout(function(){A.call(z,x);},1);}}}},_endNative:function(u){var v=this._node,w=v.ownerDocument.defaultView.getComputedStyle(v,"")[d._toCamel(j)];if(typeof w==="string"){w=w.replace(new RegExp("(?:^|,\\s)"+u+",?"),",");w=w.replace(/^,|,$/,"");v.style[k]=w;}},_onNativeEnd:function(B){var x=this,A=b.stamp(x),u=B,v=d._toCamel(u.propertyName),E=u.elapsedTime,D=d._nodeAttrs[A],C=D[v],y=(C)?C.transition:null,z,w;if(y){y.removeProperty(v);y._endNative(v);w=y._config[v];z={type:"propertyEnd",propertyName:v,elapsedTime:E,config:w};if(w&&w.on&&w.on.end){w.on.end.call(b.one(x),z);}if(y._count<=0){y._end(E);}}},destroy:function(){var v=this,u=v._node;if(u){u.removeEventListener(c,v._onNativeEnd,false);v._node=null;}}};b.Transition=d;b.TransitionNative=d;b.Node.prototype.transition=function(w,v,A){var u=d._nodeAttrs[b.stamp(this._node)],y=(u)?u.transition||null:null,x,z;if(typeof w==="string"){if(typeof v==="function"){A=v;v=null;}x=d.fx[w];if(v&&typeof v!=="boolean"){v=b.clone(v);for(z in x){if(x.hasOwnProperty(z)){if(!(z in v)){v[z]=x[z];}}}}else{v=x;}}else{A=v;v=w;}if(y&&!y._running){y.init(this,v);}else{y=new d(this._node,v);}y.run(A);return this;};b.Node.prototype.show=function(v,u,w){this._show();if(v&&b.Transition){if(typeof v!=="string"&&!v.push){if(typeof u==="function"){w=u;u=v;}v=d.SHOW_TRANSITION;}this.transition(v,u,w);}return this;};var o=function(v,u,w){return function(){if(u){u.call(v);}if(w){w.apply(v._node,arguments);}};};b.Node.prototype.hide=function(v,u,w){if(v&&b.Transition){if(typeof u==="function"){w=u;u=null;}w=o(this,this._hide,w);if(typeof v!=="string"&&!v.push){if(typeof u==="function"){w=u;u=v;}v=d.HIDE_TRANSITION;}this.transition(v,u,w);}else{this._hide();}return this;};b.NodeList.prototype.transition=function(v,y){var u=this._nodes,w=0,x;while((x=u[w++])){b.one(x).transition(v,y);}return this;};b.Node.prototype.toggleView=function(v,u,w){this._toggles=this._toggles||[];w=arguments[arguments.length-1];if(typeof v=="boolean"){u=v;v=null;}v=v||b.Transition.DEFAULT_TOGGLE;if(typeof u=="undefined"&&v in this._toggles){u=!this._toggles[v];}u=(u)?1:0;if(u){this._show();}else{w=o(this,this._hide,w);}this._toggles[v]=u;this.transition(b.Transition.toggles[v][u],w); +return this;};b.NodeList.prototype.toggleView=function(w,u,z){var v=this._nodes,x=0,y;while((y=v[x++])){b.one(y).toggleView(w,u,z);}return this;};b.mix(d.fx,{fadeOut:{opacity:0,duration:0.5,easing:"ease-out"},fadeIn:{opacity:1,duration:0.5,easing:"ease-in"},sizeOut:{height:0,width:0,duration:0.75,easing:"ease-out"},sizeIn:{height:function(u){return u.get("scrollHeight")+"px";},width:function(u){return u.get("scrollWidth")+"px";},duration:0.5,easing:"ease-in",on:{start:function(){var u=this.getStyle("overflow");if(u!=="hidden"){this.setStyle("overflow","hidden");this._transitionOverflow=u;}},end:function(){if(this._transitionOverflow){this.setStyle("overflow",this._transitionOverflow);delete this._transitionOverflow;}}}}});b.mix(d.toggles,{size:["sizeOut","sizeIn"],fade:["fadeOut","fadeIn"]});d.DEFAULT_TOGGLE="fade";},"3.4.0",{requires:["node-base"]}); \ No newline at end of file diff --git a/build/transition-native/transition-native.js b/build/transition-native/transition-native.js index eda5095e548..c11ddbd2df1 100644 --- a/build/transition-native/transition-native.js +++ b/build/transition-native/transition-native.js @@ -15,19 +15,32 @@ YUI.add('transition-native', function(Y) { * @requires node-style */ -var TRANSITION = '-webkit-transition', - TRANSITION_CAMEL = 'WebkitTransition', - TRANSITION_PROPERTY_CAMEL = 'WebkitTransitionProperty', - TRANSITION_PROPERTY = '-webkit-transition-property', - TRANSITION_DURATION = '-webkit-transition-duration', - TRANSITION_TIMING_FUNCTION = '-webkit-transition-timing-function', - TRANSITION_DELAY = '-webkit-transition-delay', - TRANSITION_END = 'webkitTransitionEnd', - ON_TRANSITION_END = 'onwebkittransitionend', - TRANSFORM_CAMEL = 'WebkitTransform', +var CAMEL_VENDOR_PREFIX = '', + VENDOR_PREFIX = '', + DOCUMENT = Y.config.doc, + DOCUMENT_ELEMENT = 'documentElement', + TRANSITION = 'transition', + TRANSITION_CAMEL = 'Transition', + TRANSITION_PROPERTY_CAMEL, + TRANSITION_PROPERTY, + TRANSITION_DURATION, + TRANSITION_TIMING_FUNCTION, + TRANSITION_DELAY, + TRANSITION_END, + ON_TRANSITION_END, + TRANSFORM_CAMEL, EMPTY_OBJ = {}, + VENDORS = [ + 'Webkit', + 'Moz' + ], + + VENDOR_TRANSITION_END = { + Webkit: 'webkitTransitionEnd' + }, + /** * A class for constructing transition instances. * Adds the "transition" method to Node. @@ -39,11 +52,6 @@ Transition = function() { this.init.apply(this, arguments); }; -Transition.fx = {}; -Transition.toggles = {}; - -Transition._hasEnd = {}; - Transition._toCamel = function(property) { property = property.replace(/-([a-z])/gi, function(m0, m1) { return m1.toUpperCase(); @@ -54,11 +62,7 @@ Transition._toCamel = function(property) { Transition._toHyphen = function(property) { property = property.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g, function(m0, m1, m2, m3) { - var str = ''; - if (m1) { - str += '-' + m1.toLowerCase(); - } - str += m2; + var str = ((m1) ? '-' + m1.toLowerCase() : '') + m2; if (m3) { str += '-' + m3.toLowerCase(); @@ -70,15 +74,41 @@ Transition._toHyphen = function(property) { return property; }; - -Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; +Transition.SHOW_TRANSITION = 'fadeIn'; +Transition.HIDE_TRANSITION = 'fadeOut'; Transition.useNative = false; -if (TRANSITION in Y.config.doc.documentElement.style) { - Transition.useNative = true; - Transition.supported = true; // TODO: remove -} +Y.Array.each(VENDORS, function(val) { // then vendor specific + var property = val + TRANSITION_CAMEL; + if (property in DOCUMENT[DOCUMENT_ELEMENT].style) { + CAMEL_VENDOR_PREFIX = val; + VENDOR_PREFIX = Transition._toHyphen(val) + '-'; + + Transition.useNative = true; + Transition.supported = true; // TODO: remove + } +}); + +TRANSITION_CAMEL = CAMEL_VENDOR_PREFIX + TRANSITION_CAMEL; +TRANSITION_PROPERTY_CAMEL = CAMEL_VENDOR_PREFIX + 'TransitionProperty'; +TRANSITION_PROPERTY = VENDOR_PREFIX + 'transition-property'; +TRANSITION_DURATION = VENDOR_PREFIX + 'transition-duration'; +TRANSITION_TIMING_FUNCTION = VENDOR_PREFIX + 'transition-timing-function'; +TRANSITION_DELAY = VENDOR_PREFIX + 'transition-delay'; +TRANSITION_END = 'transitionend'; +ON_TRANSITION_END = 'on' + CAMEL_VENDOR_PREFIX.toLowerCase() + 'transitionend'; + +TRANSITION_END = VENDOR_TRANSITION_END[CAMEL_VENDOR_PREFIX] || TRANSITION_END; + +TRANSFORM_CAMEL = CAMEL_VENDOR_PREFIX + 'Transform'; + +Transition.fx = {}; +Transition.toggles = {}; + +Transition._hasEnd = {}; + +Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; Y.Node.DOM_EVENTS[TRANSITION_END] = 1; @@ -271,7 +301,7 @@ Transition.prototype = { computed = getComputedStyle(node), attrs = Transition._nodeAttrs[uid], cssText = '', - cssTransition = computed[TRANSITION_PROPERTY], + cssTransition = computed[Transition._toCamel(TRANSITION_PROPERTY)], transitionText = TRANSITION_PROPERTY + ': ', duration = TRANSITION_DURATION + ': ', @@ -284,9 +314,9 @@ Transition.prototype = { // preserve existing transitions if (cssTransition !== 'all') { transitionText += cssTransition + ','; - duration += computed[TRANSITION_DURATION] + ','; - easing += computed[TRANSITION_TIMING_FUNCTION] + ','; - delay += computed[TRANSITION_DELAY] + ','; + duration += computed[Transition._toCamel(TRANSITION_DURATION)] + ','; + easing += computed[Transition._toCamel(TRANSITION_TIMING_FUNCTION)] + ','; + delay += computed[Transition._toCamel(TRANSITION_DELAY)] + ','; } @@ -294,7 +324,7 @@ Transition.prototype = { for (name in attrs) { hyphy = Transition._toHyphen(name); attr = attrs[name]; - if (attrs.hasOwnProperty(name) && attr.transition === anim) { + if ((attr = attrs[name]) && attr.transition === anim) { if (name in node.style) { // only native styles allowed duration += anim._prepDur(attr.duration) + ','; delay += anim._prepDur(attr.delay) + ','; @@ -317,7 +347,7 @@ Transition.prototype = { if (!Transition._hasEnd[uid]) { //anim._detach = Y.on(TRANSITION_END, anim._onNativeEnd, node); //node[ON_TRANSITION_END] = anim._onNativeEnd; - node.addEventListener(TRANSITION_END, anim._onNativeEnd, false); + node.addEventListener(TRANSITION_END, anim._onNativeEnd, ''); Transition._hasEnd[uid] = true; } @@ -367,7 +397,7 @@ Transition.prototype = { _endNative: function(name) { var node = this._node, - value = node.ownerDocument.defaultView.getComputedStyle(node, '')[TRANSITION_PROPERTY]; + value = node.ownerDocument.defaultView.getComputedStyle(node, '')[Transition._toCamel(TRANSITION_PROPERTY)]; if (typeof value === 'string') { value = value.replace(new RegExp('(?:^|,\\s)' + name + ',?'), ','); @@ -413,15 +443,18 @@ Transition.prototype = { }, destroy: function() { - var anim = this; + var anim = this, + node = anim._node; /* if (anim._detach) { anim._detach.detach(); } */ //anim._node[ON_TRANSITION_END] = null; - node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); - anim._node = null; + if (node) { + node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); + anim._node = null; + } } }; @@ -505,7 +538,7 @@ Y.Node.prototype.show = function(name, config, callback) { callback = config; config = name; } - name = this.SHOW_TRANSITION; + name = Transition.SHOW_TRANSITION; } this.transition(name, config, callback); } @@ -536,7 +569,7 @@ Y.Node.prototype.hide = function(name, config, callback) { callback = config; config = name; } - name = this.HIDE_TRANSITION; + name = Transition.HIDE_TRANSITION; } this.transition(name, config, callback); } else { diff --git a/build/transition-timer/transition-timer-debug.js b/build/transition-timer/transition-timer-debug.js index 540ae4b1f33..b5d9be95c3a 100644 --- a/build/transition-timer/transition-timer-debug.js +++ b/build/transition-timer/transition-timer-debug.js @@ -71,8 +71,7 @@ Y.mix(Transition.prototype, { i; for (name in attrs) { - attribute = attrs[name]; - if ((attribute && attribute.transition === anim)) { + if ((attribute = attrs[name]) && attribute.transition === anim) { d = attribute.duration; delay = attribute.delay; elapsed = (time - delay) / 1000; @@ -135,8 +134,7 @@ Y.mix(Transition.prototype, { unit, begin, end; for (name in attrs) { - attribute = attrs[name]; - if (attrs.hasOwnProperty(name) && (attribute && attribute.transition === anim)) { + if ((attribute = attrs[name]) && attribute.transition === anim) { duration = attribute.duration * 1000; delay = attribute.delay * 1000; easing = attribute.easing; @@ -345,4 +343,4 @@ Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.ri Y.Transition = Transition; -}, '3.4.0' ,{requires:['transition-native', 'node-style']}); +}, '3.4.0' ,{requires:['transition']}); diff --git a/build/transition-timer/transition-timer-min.js b/build/transition-timer/transition-timer-min.js index dd8c0b9aca9..1965b54a66c 100644 --- a/build/transition-timer/transition-timer-min.js +++ b/build/transition-timer/transition-timer-min.js @@ -5,4 +5,4 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("transition-timer",function(b){var a=b.Transition;b.mix(a.prototype,{_start:function(){if(a.useNative){this._runNative();}else{this._runTimer();}},_runTimer:function(){var c=this;c._initAttrs();a._running[b.stamp(c)]=c;c._startTime=new Date();a._startTimer();},_endTimer:function(){var c=this;delete a._running[b.stamp(c)];c._startTime=null;},_runFrame:function(){var c=new Date()-this._startTime;this._runAttrs(c);},_runAttrs:function(e){var o=this,n=o._node,u=o._config,f=b.stamp(n),m=a._nodeAttrs[f],h=a.behaviors,l=false,g=false,v,w,j,q,c,s,r,k,p;for(w in m){j=m[w];if((j&&j.transition===o)){r=j.duration;s=j.delay;c=(e-s)/1000;k=e;v={type:"propertyEnd",propertyName:w,config:u,elapsedTime:c};q=(p in h&&"set" in h[p])?h[p].set:a.DEFAULT_SETTER;l=(k>=r);if(k>r){k=r;}if(!s||e>=s){q(o,w,j.from,j.to,k-s,r-s,j.easing,j.unit);if(l){delete m[w];o._count--;if(u[w]&&u[w].on&&u[w].on.end){u[w].on.end.call(b.one(n),v);}if(!g&&o._count<=0){g=true;o._end(c);o._endTimer();}}}}}},_initAttrs:function(){var j=this,e=a.behaviors,l=b.stamp(j._node),q=a._nodeAttrs[l],d,i,k,n,g,c,m,o,p,f,h;for(c in q){d=q[c];if(q.hasOwnProperty(c)&&(d&&d.transition===j)){i=d.duration*1000;k=d.delay*1000;n=d.easing;g=d.value;if(c in j._node.style||c in b.DOM.CUSTOM_STYLES){f=(c in e&&"get" in e[c])?e[c].get(j,c):a.DEFAULT_GETTER(j,c);o=a.RE_UNITS.exec(f);m=a.RE_UNITS.exec(g);f=o?o[1]:f;h=m?m[1]:g;p=m?m[2]:o?o[2]:"";if(!p&&a.RE_DEFAULT_UNIT.test(c)){p=a.DEFAULT_UNIT;}if(typeof n==="string"){if(n.indexOf("cubic-bezier")>-1){n=n.substring(13,n.length-1).split(",");}else{if(a.easings[n]){n=a.easings[n];}}}d.from=Number(f);d.to=Number(h);d.unit=p;d.easing=n;d.duration=i+k;d.delay=k;}else{delete q[c];j._count--;}}}},destroy:function(){this.detachAll();this._node=null;}},true);b.mix(b.Transition,{_runtimeAttrs:{},RE_DEFAULT_UNIT:/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i,DEFAULT_UNIT:"px",intervalTime:20,behaviors:{left:{get:function(d,c){return b.DOM._getAttrOffset(d._node,c);}}},DEFAULT_SETTER:function(f,g,i,j,l,e,h,k){i=Number(i);j=Number(j);var d=f._node,c=a.cubicBezier(h,l/e);c=i+c[0]*(j-i);if(d){if(g in d.style||g in b.DOM.CUSTOM_STYLES){k=k||"";b.DOM.setStyle(d,g,c+k);}}else{f._end();}},DEFAULT_GETTER:function(e,c){var d=e._node,f="";if(c in d.style||c in b.DOM.CUSTOM_STYLES){f=b.DOM.getComputedStyle(d,c);}return f;},_startTimer:function(){if(!a._timer){a._timer=setInterval(a._runFrame,a.intervalTime);}},_stopTimer:function(){clearInterval(a._timer);a._timer=null;},_runFrame:function(){var c=true,d;for(d in a._running){if(a._running[d]._runFrame){c=false;a._running[d]._runFrame();}}if(c){a._stopTimer();}},cubicBezier:function(s,m){var z=0,f=0,w=s[0],e=s[1],v=s[2],d=s[3],u=1,c=0,r=u-3*v+3*w-z,q=3*v-6*w+3*z,o=3*w-3*z,n=z,l=c-3*d+3*e-f,k=3*d-6*e+3*f,j=3*e-3*f,i=f,h=(((r*m)+q)*m+o)*m+n,g=(((l*m)+k)*m+j)*m+i;return[h,g];},easings:{ease:[0.25,0,1,0.25],linear:[0,0,1,1],"ease-in":[0.42,0,1,1],"ease-out":[0,0,0.58,1],"ease-in-out":[0.42,0,0.58,1]},_running:{},_timer:null,RE_UNITS:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/},true);a.behaviors.top=a.behaviors.bottom=a.behaviors.right=a.behaviors.left;b.Transition=a;},"3.4.0",{requires:["transition-native","node-style"]}); \ No newline at end of file +YUI.add("transition-timer",function(b){var a=b.Transition;b.mix(a.prototype,{_start:function(){if(a.useNative){this._runNative();}else{this._runTimer();}},_runTimer:function(){var c=this;c._initAttrs();a._running[b.stamp(c)]=c;c._startTime=new Date();a._startTimer();},_endTimer:function(){var c=this;delete a._running[b.stamp(c)];c._startTime=null;},_runFrame:function(){var c=new Date()-this._startTime;this._runAttrs(c);},_runAttrs:function(e){var o=this,n=o._node,u=o._config,f=b.stamp(n),m=a._nodeAttrs[f],h=a.behaviors,l=false,g=false,v,w,j,q,c,s,r,k,p;for(w in m){if((j=m[w])&&j.transition===o){r=j.duration;s=j.delay;c=(e-s)/1000;k=e;v={type:"propertyEnd",propertyName:w,config:u,elapsedTime:c};q=(p in h&&"set" in h[p])?h[p].set:a.DEFAULT_SETTER;l=(k>=r);if(k>r){k=r;}if(!s||e>=s){q(o,w,j.from,j.to,k-s,r-s,j.easing,j.unit);if(l){delete m[w];o._count--;if(u[w]&&u[w].on&&u[w].on.end){u[w].on.end.call(b.one(n),v);}if(!g&&o._count<=0){g=true;o._end(c);o._endTimer();}}}}}},_initAttrs:function(){var j=this,e=a.behaviors,l=b.stamp(j._node),q=a._nodeAttrs[l],d,i,k,n,g,c,m,o,p,f,h;for(c in q){if((d=q[c])&&d.transition===j){i=d.duration*1000;k=d.delay*1000;n=d.easing;g=d.value;if(c in j._node.style||c in b.DOM.CUSTOM_STYLES){f=(c in e&&"get" in e[c])?e[c].get(j,c):a.DEFAULT_GETTER(j,c);o=a.RE_UNITS.exec(f);m=a.RE_UNITS.exec(g);f=o?o[1]:f;h=m?m[1]:g;p=m?m[2]:o?o[2]:"";if(!p&&a.RE_DEFAULT_UNIT.test(c)){p=a.DEFAULT_UNIT;}if(typeof n==="string"){if(n.indexOf("cubic-bezier")>-1){n=n.substring(13,n.length-1).split(",");}else{if(a.easings[n]){n=a.easings[n];}}}d.from=Number(f);d.to=Number(h);d.unit=p;d.easing=n;d.duration=i+k;d.delay=k;}else{delete q[c];j._count--;}}}},destroy:function(){this.detachAll();this._node=null;}},true);b.mix(b.Transition,{_runtimeAttrs:{},RE_DEFAULT_UNIT:/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i,DEFAULT_UNIT:"px",intervalTime:20,behaviors:{left:{get:function(d,c){return b.DOM._getAttrOffset(d._node,c);}}},DEFAULT_SETTER:function(f,g,i,j,l,e,h,k){i=Number(i);j=Number(j);var d=f._node,c=a.cubicBezier(h,l/e);c=i+c[0]*(j-i);if(d){if(g in d.style||g in b.DOM.CUSTOM_STYLES){k=k||"";b.DOM.setStyle(d,g,c+k);}}else{f._end();}},DEFAULT_GETTER:function(e,c){var d=e._node,f="";if(c in d.style||c in b.DOM.CUSTOM_STYLES){f=b.DOM.getComputedStyle(d,c);}return f;},_startTimer:function(){if(!a._timer){a._timer=setInterval(a._runFrame,a.intervalTime);}},_stopTimer:function(){clearInterval(a._timer);a._timer=null;},_runFrame:function(){var c=true,d;for(d in a._running){if(a._running[d]._runFrame){c=false;a._running[d]._runFrame();}}if(c){a._stopTimer();}},cubicBezier:function(s,m){var z=0,f=0,w=s[0],e=s[1],v=s[2],d=s[3],u=1,c=0,r=u-3*v+3*w-z,q=3*v-6*w+3*z,o=3*w-3*z,n=z,l=c-3*d+3*e-f,k=3*d-6*e+3*f,j=3*e-3*f,i=f,h=(((r*m)+q)*m+o)*m+n,g=(((l*m)+k)*m+j)*m+i;return[h,g];},easings:{ease:[0.25,0,1,0.25],linear:[0,0,1,1],"ease-in":[0.42,0,1,1],"ease-out":[0,0,0.58,1],"ease-in-out":[0.42,0,0.58,1]},_running:{},_timer:null,RE_UNITS:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/},true);a.behaviors.top=a.behaviors.bottom=a.behaviors.right=a.behaviors.left;b.Transition=a;},"3.4.0",{requires:["transition"]}); \ No newline at end of file diff --git a/build/transition-timer/transition-timer.js b/build/transition-timer/transition-timer.js index 540ae4b1f33..b5d9be95c3a 100644 --- a/build/transition-timer/transition-timer.js +++ b/build/transition-timer/transition-timer.js @@ -71,8 +71,7 @@ Y.mix(Transition.prototype, { i; for (name in attrs) { - attribute = attrs[name]; - if ((attribute && attribute.transition === anim)) { + if ((attribute = attrs[name]) && attribute.transition === anim) { d = attribute.duration; delay = attribute.delay; elapsed = (time - delay) / 1000; @@ -135,8 +134,7 @@ Y.mix(Transition.prototype, { unit, begin, end; for (name in attrs) { - attribute = attrs[name]; - if (attrs.hasOwnProperty(name) && (attribute && attribute.transition === anim)) { + if ((attribute = attrs[name]) && attribute.transition === anim) { duration = attribute.duration * 1000; delay = attribute.delay * 1000; easing = attribute.easing; @@ -345,4 +343,4 @@ Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.ri Y.Transition = Transition; -}, '3.4.0' ,{requires:['transition-native', 'node-style']}); +}, '3.4.0' ,{requires:['transition']}); diff --git a/build/transition/transition-debug.js b/build/transition/transition-debug.js index 5868158ab72..758508c83d7 100644 --- a/build/transition/transition-debug.js +++ b/build/transition/transition-debug.js @@ -5,7 +5,7 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add('transition-native', function(Y) { +YUI.add('transition', function(Y) { /** * Provides the transition method for Node. @@ -15,19 +15,32 @@ YUI.add('transition-native', function(Y) { * @requires node-style */ -var TRANSITION = '-webkit-transition', - TRANSITION_CAMEL = 'WebkitTransition', - TRANSITION_PROPERTY_CAMEL = 'WebkitTransitionProperty', - TRANSITION_PROPERTY = '-webkit-transition-property', - TRANSITION_DURATION = '-webkit-transition-duration', - TRANSITION_TIMING_FUNCTION = '-webkit-transition-timing-function', - TRANSITION_DELAY = '-webkit-transition-delay', - TRANSITION_END = 'webkitTransitionEnd', - ON_TRANSITION_END = 'onwebkittransitionend', - TRANSFORM_CAMEL = 'WebkitTransform', +var CAMEL_VENDOR_PREFIX = '', + VENDOR_PREFIX = '', + DOCUMENT = Y.config.doc, + DOCUMENT_ELEMENT = 'documentElement', + TRANSITION = 'transition', + TRANSITION_CAMEL = 'Transition', + TRANSITION_PROPERTY_CAMEL, + TRANSITION_PROPERTY, + TRANSITION_DURATION, + TRANSITION_TIMING_FUNCTION, + TRANSITION_DELAY, + TRANSITION_END, + ON_TRANSITION_END, + TRANSFORM_CAMEL, EMPTY_OBJ = {}, + VENDORS = [ + 'Webkit', + 'Moz' + ], + + VENDOR_TRANSITION_END = { + Webkit: 'webkitTransitionEnd' + }, + /** * A class for constructing transition instances. * Adds the "transition" method to Node. @@ -39,11 +52,6 @@ Transition = function() { this.init.apply(this, arguments); }; -Transition.fx = {}; -Transition.toggles = {}; - -Transition._hasEnd = {}; - Transition._toCamel = function(property) { property = property.replace(/-([a-z])/gi, function(m0, m1) { return m1.toUpperCase(); @@ -54,11 +62,7 @@ Transition._toCamel = function(property) { Transition._toHyphen = function(property) { property = property.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g, function(m0, m1, m2, m3) { - var str = ''; - if (m1) { - str += '-' + m1.toLowerCase(); - } - str += m2; + var str = ((m1) ? '-' + m1.toLowerCase() : '') + m2; if (m3) { str += '-' + m3.toLowerCase(); @@ -70,15 +74,42 @@ Transition._toHyphen = function(property) { return property; }; - -Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; +Transition.SHOW_TRANSITION = 'fadeIn'; +Transition.HIDE_TRANSITION = 'fadeOut'; Transition.useNative = false; -if (TRANSITION in Y.config.doc.documentElement.style) { - Transition.useNative = true; - Transition.supported = true; // TODO: remove -} +Y.Array.each(VENDORS, function(val) { // then vendor specific + var property = val + TRANSITION_CAMEL; + if (property in DOCUMENT[DOCUMENT_ELEMENT].style) { + CAMEL_VENDOR_PREFIX = val; + VENDOR_PREFIX = Transition._toHyphen(val) + '-'; + + Transition.useNative = true; + Transition.supported = true; // TODO: remove + Transition._VENDOR_PREFIX = val; + } +}); + +TRANSITION_CAMEL = CAMEL_VENDOR_PREFIX + TRANSITION_CAMEL; +TRANSITION_PROPERTY_CAMEL = CAMEL_VENDOR_PREFIX + 'TransitionProperty'; +TRANSITION_PROPERTY = VENDOR_PREFIX + 'transition-property'; +TRANSITION_DURATION = VENDOR_PREFIX + 'transition-duration'; +TRANSITION_TIMING_FUNCTION = VENDOR_PREFIX + 'transition-timing-function'; +TRANSITION_DELAY = VENDOR_PREFIX + 'transition-delay'; +TRANSITION_END = 'transitionend'; +ON_TRANSITION_END = 'on' + CAMEL_VENDOR_PREFIX.toLowerCase() + 'transitionend'; + +TRANSITION_END = VENDOR_TRANSITION_END[CAMEL_VENDOR_PREFIX] || TRANSITION_END; + +TRANSFORM_CAMEL = CAMEL_VENDOR_PREFIX + 'Transform'; + +Transition.fx = {}; +Transition.toggles = {}; + +Transition._hasEnd = {}; + +Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; Y.Node.DOM_EVENTS[TRANSITION_END] = 1; @@ -271,7 +302,7 @@ Transition.prototype = { computed = getComputedStyle(node), attrs = Transition._nodeAttrs[uid], cssText = '', - cssTransition = computed[TRANSITION_PROPERTY], + cssTransition = computed[Transition._toCamel(TRANSITION_PROPERTY)], transitionText = TRANSITION_PROPERTY + ': ', duration = TRANSITION_DURATION + ': ', @@ -284,9 +315,9 @@ Transition.prototype = { // preserve existing transitions if (cssTransition !== 'all') { transitionText += cssTransition + ','; - duration += computed[TRANSITION_DURATION] + ','; - easing += computed[TRANSITION_TIMING_FUNCTION] + ','; - delay += computed[TRANSITION_DELAY] + ','; + duration += computed[Transition._toCamel(TRANSITION_DURATION)] + ','; + easing += computed[Transition._toCamel(TRANSITION_TIMING_FUNCTION)] + ','; + delay += computed[Transition._toCamel(TRANSITION_DELAY)] + ','; } @@ -294,7 +325,7 @@ Transition.prototype = { for (name in attrs) { hyphy = Transition._toHyphen(name); attr = attrs[name]; - if (attrs.hasOwnProperty(name) && attr.transition === anim) { + if ((attr = attrs[name]) && attr.transition === anim) { if (name in node.style) { // only native styles allowed duration += anim._prepDur(attr.duration) + ','; delay += anim._prepDur(attr.delay) + ','; @@ -317,7 +348,7 @@ Transition.prototype = { if (!Transition._hasEnd[uid]) { //anim._detach = Y.on(TRANSITION_END, anim._onNativeEnd, node); //node[ON_TRANSITION_END] = anim._onNativeEnd; - node.addEventListener(TRANSITION_END, anim._onNativeEnd, false); + node.addEventListener(TRANSITION_END, anim._onNativeEnd, ''); Transition._hasEnd[uid] = true; } @@ -367,7 +398,7 @@ Transition.prototype = { _endNative: function(name) { var node = this._node, - value = node.ownerDocument.defaultView.getComputedStyle(node, '')[TRANSITION_PROPERTY]; + value = node.ownerDocument.defaultView.getComputedStyle(node, '')[Transition._toCamel(TRANSITION_PROPERTY)]; if (typeof value === 'string') { value = value.replace(new RegExp('(?:^|,\\s)' + name + ',?'), ','); @@ -413,15 +444,18 @@ Transition.prototype = { }, destroy: function() { - var anim = this; + var anim = this, + node = anim._node; /* if (anim._detach) { anim._detach.detach(); } */ //anim._node[ON_TRANSITION_END] = null; - node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); - anim._node = null; + if (node) { + node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); + anim._node = null; + } } }; @@ -505,7 +539,7 @@ Y.Node.prototype.show = function(name, config, callback) { callback = config; config = name; } - name = this.SHOW_TRANSITION; + name = Transition.SHOW_TRANSITION; } this.transition(name, config, callback); } @@ -537,7 +571,7 @@ Y.Node.prototype.hide = function(name, config, callback) { callback = config; config = name; } - name = this.HIDE_TRANSITION; + name = Transition.HIDE_TRANSITION; } this.transition(name, config, callback); } else if (name && !Y.Transition) { Y.log('unable to transition hide; missing transition module', 'warn', 'node'); // end if on nex @@ -683,349 +717,4 @@ Transition.DEFAULT_TOGGLE = 'fade'; -}, '3.4.0' ,{requires:['node-base']}); -YUI.add('transition-timer', function(Y) { - -/* -* The Transition Utility provides an API for creating advanced transitions. -* @module transition -*/ - -/* -* Provides the base Transition class, for animating numeric properties. -* -* @module transition -* @submodule transition-timer -*/ - - -var Transition = Y.Transition; - -Y.mix(Transition.prototype, { - _start: function() { - if (Transition.useNative) { - this._runNative(); - } else { - this._runTimer(); - } - }, - - _runTimer: function() { - var anim = this; - anim._initAttrs(); - - Transition._running[Y.stamp(anim)] = anim; - anim._startTime = new Date(); - Transition._startTimer(); - }, - - _endTimer: function() { - var anim = this; - delete Transition._running[Y.stamp(anim)]; - anim._startTime = null; - }, - - _runFrame: function() { - var t = new Date() - this._startTime; - this._runAttrs(t); - }, - - _runAttrs: function(time) { - var anim = this, - node = anim._node, - config = anim._config, - uid = Y.stamp(node), - attrs = Transition._nodeAttrs[uid], - customAttr = Transition.behaviors, - done = false, - allDone = false, - data, - name, - attribute, - setter, - elapsed, - delay, - d, - t, - i; - - for (name in attrs) { - attribute = attrs[name]; - if ((attribute && attribute.transition === anim)) { - d = attribute.duration; - delay = attribute.delay; - elapsed = (time - delay) / 1000; - t = time; - data = { - type: 'propertyEnd', - propertyName: name, - config: config, - elapsedTime: elapsed - }; - - setter = (i in customAttr && 'set' in customAttr[i]) ? - customAttr[i].set : Transition.DEFAULT_SETTER; - - done = (t >= d); - - if (t > d) { - t = d; - } - - if (!delay || time >= delay) { - setter(anim, name, attribute.from, attribute.to, t - delay, d - delay, - attribute.easing, attribute.unit); - - if (done) { - delete attrs[name]; - anim._count--; - - if (config[name] && config[name].on && config[name].on.end) { - config[name].on.end.call(Y.one(node), data); - } - - //node.fire('transition:propertyEnd', data); - - if (!allDone && anim._count <= 0) { - allDone = true; - anim._end(elapsed); - anim._endTimer(); - } - } - } - - } - } - }, - - _initAttrs: function() { - var anim = this, - customAttr = Transition.behaviors, - uid = Y.stamp(anim._node), - attrs = Transition._nodeAttrs[uid], - attribute, - duration, - delay, - easing, - val, - name, - mTo, - mFrom, - unit, begin, end; - - for (name in attrs) { - attribute = attrs[name]; - if (attrs.hasOwnProperty(name) && (attribute && attribute.transition === anim)) { - duration = attribute.duration * 1000; - delay = attribute.delay * 1000; - easing = attribute.easing; - val = attribute.value; - - // only allow supported properties - if (name in anim._node.style || name in Y.DOM.CUSTOM_STYLES) { - begin = (name in customAttr && 'get' in customAttr[name]) ? - customAttr[name].get(anim, name) : Transition.DEFAULT_GETTER(anim, name); - - mFrom = Transition.RE_UNITS.exec(begin); - mTo = Transition.RE_UNITS.exec(val); - - begin = mFrom ? mFrom[1] : begin; - end = mTo ? mTo[1] : val; - unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units - - if (!unit && Transition.RE_DEFAULT_UNIT.test(name)) { - unit = Transition.DEFAULT_UNIT; - } - - if (typeof easing === 'string') { - if (easing.indexOf('cubic-bezier') > -1) { - easing = easing.substring(13, easing.length - 1).split(','); - } else if (Transition.easings[easing]) { - easing = Transition.easings[easing]; - } - } - - attribute.from = Number(begin); - attribute.to = Number(end); - attribute.unit = unit; - attribute.easing = easing; - attribute.duration = duration + delay; - attribute.delay = delay; - } else { - delete attrs[name]; - anim._count--; - } - } - } - }, - - destroy: function() { - this.detachAll(); - this._node = null; - } -}, true); - -Y.mix(Y.Transition, { - _runtimeAttrs: {}, - /* - * Regex of properties that should use the default unit. - * - * @property RE_DEFAULT_UNIT - * @static - */ - RE_DEFAULT_UNIT: /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i, - - /* - * The default unit to use with properties that pass the RE_DEFAULT_UNIT test. - * - * @property DEFAULT_UNIT - * @static - */ - DEFAULT_UNIT: 'px', - - /* - * Time in milliseconds passed to setInterval for frame processing - * - * @property intervalTime - * @default 20 - * @static - */ - intervalTime: 20, - - /* - * Bucket for custom getters and setters - * - * @property behaviors - * @static - */ - behaviors: { - left: { - get: function(anim, attr) { - return Y.DOM._getAttrOffset(anim._node, attr); - } - } - }, - - /* - * The default setter to use when setting object properties. - * - * @property DEFAULT_SETTER - * @static - */ - DEFAULT_SETTER: function(anim, att, from, to, elapsed, duration, fn, unit) { - from = Number(from); - to = Number(to); - - var node = anim._node, - val = Transition.cubicBezier(fn, elapsed / duration); - - val = from + val[0] * (to - from); - - if (node) { - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - unit = unit || ''; - Y.DOM.setStyle(node, att, val + unit); - } - } else { - anim._end(); - } - }, - - /* - * The default getter to use when getting object properties. - * - * @property DEFAULT_GETTER - * @static - */ - DEFAULT_GETTER: function(anim, att) { - var node = anim._node, - val = ''; - - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - val = Y.DOM.getComputedStyle(node, att); - } - - return val; - }, - - _startTimer: function() { - if (!Transition._timer) { - Transition._timer = setInterval(Transition._runFrame, Transition.intervalTime); - } - }, - - _stopTimer: function() { - clearInterval(Transition._timer); - Transition._timer = null; - }, - - /* - * Called per Interval to handle each animation frame. - * @method _runFrame - * @private - * @static - */ - _runFrame: function() { - var done = true, - anim; - for (anim in Transition._running) { - if (Transition._running[anim]._runFrame) { - done = false; - Transition._running[anim]._runFrame(); - } - } - - if (done) { - Transition._stopTimer(); - } - }, - - cubicBezier: function(p, t) { - var x0 = 0, - y0 = 0, - x1 = p[0], - y1 = p[1], - x2 = p[2], - y2 = p[3], - x3 = 1, - y3 = 0, - - A = x3 - 3 * x2 + 3 * x1 - x0, - B = 3 * x2 - 6 * x1 + 3 * x0, - C = 3 * x1 - 3 * x0, - D = x0, - E = y3 - 3 * y2 + 3 * y1 - y0, - F = 3 * y2 - 6 * y1 + 3 * y0, - G = 3 * y1 - 3 * y0, - H = y0, - - x = (((A*t) + B)*t + C)*t + D, - y = (((E*t) + F)*t + G)*t + H; - - return [x, y]; - }, - - easings: { - ease: [0.25, 0, 1, 0.25], - linear: [0, 0, 1, 1], - 'ease-in': [0.42, 0, 1, 1], - 'ease-out': [0, 0, 0.58, 1], - 'ease-in-out': [0.42, 0, 0.58, 1] - }, - - _running: {}, - _timer: null, - - RE_UNITS: /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/ -}, true); - -Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.right = Transition.behaviors.left; - -Y.Transition = Transition; - - -}, '3.4.0' ,{requires:['transition-native', 'node-style']}); - - -YUI.add('transition', function(Y){}, '3.4.0' ,{use:['transition-native', 'transition-timer']}); - +}, '3.4.0' ,{requires:['node-style']}); diff --git a/build/transition/transition-min.js b/build/transition/transition-min.js index 6c5f1b7ab0f..310410ae9fe 100644 --- a/build/transition/transition-min.js +++ b/build/transition/transition-min.js @@ -5,5 +5,5 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("transition-native",function(b){var j="-webkit-transition",m="WebkitTransition",h="WebkitTransitionProperty",c="-webkit-transition-property",g="-webkit-transition-duration",a="-webkit-transition-timing-function",d="-webkit-transition-delay",k="webkitTransitionEnd",e="onwebkittransitionend",l="WebkitTransform",i={},f=function(){this.init.apply(this,arguments);};f.fx={};f.toggles={};f._hasEnd={};f._toCamel=function(o){o=o.replace(/-([a-z])/gi,function(q,p){return p.toUpperCase();});return o;};f._toHyphen=function(o){o=o.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g,function(s,r,q,p){var t="";if(r){t+="-"+r.toLowerCase();}t+=q;if(p){t+="-"+p.toLowerCase();}return t;});return o;};f._reKeywords=/^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i;f.useNative=false;if(j in b.config.doc.documentElement.style){f.useNative=true;f.supported=true;}b.Node.DOM_EVENTS[k]=1;f.NAME="transition";f.DEFAULT_EASING="ease";f.DEFAULT_DURATION=0.5;f.DEFAULT_DELAY=0;f._nodeAttrs={};f.prototype={constructor:f,init:function(p,o){var q=this;q._node=p;if(!q._running&&o){q._config=o;p._transition=q;q._duration=("duration" in o)?o.duration:q.constructor.DEFAULT_DURATION;q._delay=("delay" in o)?o.delay:q.constructor.DEFAULT_DELAY;q._easing=o.easing||q.constructor.DEFAULT_EASING;q._count=0;q._running=false;}return q;},addProperty:function(p,r){var u=this,s=this._node,w=b.stamp(s),v=b.one(s),z=f._nodeAttrs[w],t,y,o,x,q;if(!z){z=f._nodeAttrs[w]={};}x=z[p];if(r&&r.value!==undefined){q=r.value;}else{if(r!==undefined){q=r;r=i;}}if(typeof q==="function"){q=q.call(v,v);}if(x&&x.transition){if(x.transition!==u){x.transition._count--;}}u._count++;o=((typeof r.duration!="undefined")?r.duration:u._duration)||0.0001;z[p]={value:q,duration:o,delay:(typeof r.delay!="undefined")?r.delay:u._delay,easing:r.easing||u._easing,transition:u};t=b.DOM.getComputedStyle(s,p);y=(typeof q==="string")?t:parseFloat(t);if(f.useNative&&y===q){setTimeout(function(){u._onNativeEnd.call(s,{propertyName:p,elapsedTime:o});},o*1000);}},removeProperty:function(q){var p=this,o=f._nodeAttrs[b.stamp(p._node)];if(o&&o[q]){delete o[q];p._count--;}},initAttrs:function(p){var o,q=this._node;if(p.transform&&!p[l]){p[l]=p.transform;delete p.transform;}for(o in p){if(p.hasOwnProperty(o)&&!f._reKeywords.test(o)){this.addProperty(o,p[o]);if(q.style[o]===""){b.DOM.setStyle(q,o,b.DOM.getComputedStyle(q,o));}}}},run:function(s){var r=this,p=r._node,o=r._config,q={type:"transition:start",config:o};if(!r._running){r._running=true;if(o.on&&o.on.start){o.on.start.call(b.one(p),q);}r.initAttrs(r._config);r._callback=s;r._start();}return r;},_start:function(){this._runNative();},_prepDur:function(o){o=parseFloat(o);return o+"s";},_runNative:function(q){var w=this,r=w._node,y=b.stamp(r),p=r.style,u=getComputedStyle(r),C=f._nodeAttrs[y],s="",D=u[c],B=c+": ",v=g+": ",A=a+": ",x=d+": ",t,z,o;if(D!=="all"){B+=D+",";v+=u[g]+",";A+=u[a]+",";x+=u[d]+",";}for(o in C){t=f._toHyphen(o);z=C[o];if(C.hasOwnProperty(o)&&z.transition===w){if(o in r.style){v+=w._prepDur(z.duration)+",";x+=w._prepDur(z.delay)+",";A+=(z.easing)+",";B+=t+",";s+=t+": "+z.value+"; ";}else{this.removeProperty(o);}}}B=B.replace(/,$/,";");v=v.replace(/,$/,";");A=A.replace(/,$/,";");x=x.replace(/,$/,";");if(!f._hasEnd[y]){r.addEventListener(k,w._onNativeEnd,false);f._hasEnd[y]=true;}p.cssText+=B+v+A+x+s;},_end:function(o){var s=this,q=s._node,u=s._callback,p=s._config,r={type:"transition:end",config:p,elapsedTime:o},t=b.one(q);s._running=false;s._callback=null;if(q){if(p.on&&p.on.end){setTimeout(function(){p.on.end.call(t,r);if(u){u.call(t,r);}},1);}else{if(u){setTimeout(function(){u.call(t,r);},1);}}}},_endNative:function(o){var p=this._node,q=p.ownerDocument.defaultView.getComputedStyle(p,"")[c];if(typeof q==="string"){q=q.replace(new RegExp("(?:^|,\\s)"+o+",?"),",");q=q.replace(/^,|,$/,"");p.style[m]=q;}},_onNativeEnd:function(v){var r=this,u=b.stamp(r),o=v,p=f._toCamel(o.propertyName),y=o.elapsedTime,x=f._nodeAttrs[u],w=x[p],s=(w)?w.transition:null,t,q;if(s){s.removeProperty(p);s._endNative(p);q=s._config[p];t={type:"propertyEnd",propertyName:p,elapsedTime:y,config:q};if(q&&q.on&&q.on.end){q.on.end.call(b.one(r),t);}if(s._count<=0){s._end(y);}}},destroy:function(){var o=this;node.removeEventListener(k,o._onNativeEnd,false);o._node=null;}};b.Transition=f;b.TransitionNative=f;b.Node.prototype.transition=function(q,p,u){var o=f._nodeAttrs[b.stamp(this._node)],s=(o)?o.transition||null:null,r,t;if(typeof q==="string"){if(typeof p==="function"){u=p;p=null;}r=f.fx[q];if(p&&typeof p!=="boolean"){p=b.clone(p);for(t in r){if(r.hasOwnProperty(t)){if(!(t in p)){p[t]=r[t];}}}}else{p=r;}}else{u=p;p=q;}if(s&&!s._running){s.init(this,p);}else{s=new f(this._node,p);}s.run(u);return this;};b.Node.prototype.show=function(p,o,q){this._show();if(p&&b.Transition){if(typeof p!=="string"&&!p.push){if(typeof o==="function"){q=o;o=p;}p=this.SHOW_TRANSITION;}this.transition(p,o,q);}return this;};var n=function(p,o,q){return function(){if(o){o.call(p);}if(q){q.apply(p._node,arguments);}};};b.Node.prototype.hide=function(p,o,q){if(p&&b.Transition){if(typeof o==="function"){q=o;o=null;}q=n(this,this._hide,q);if(typeof p!=="string"&&!p.push){if(typeof o==="function"){q=o;o=p;}p=this.HIDE_TRANSITION;}this.transition(p,o,q);}else{this._hide();}return this;};b.NodeList.prototype.transition=function(p,s){var o=this._nodes,q=0,r;while((r=o[q++])){b.one(r).transition(p,s);}return this;};b.Node.prototype.toggleView=function(p,o,q){this._toggles=this._toggles||[];q=arguments[arguments.length-1];if(typeof p=="boolean"){o=p;p=null;}p=p||b.Transition.DEFAULT_TOGGLE;if(typeof o=="undefined"&&p in this._toggles){o=!this._toggles[p];}o=(o)?1:0;if(o){this._show();}else{q=n(this,this._hide,q);}this._toggles[p]=o;this.transition(b.Transition.toggles[p][o],q);return this;};b.NodeList.prototype.toggleView=function(q,o,t){var p=this._nodes,r=0,s;while((s=p[r++])){b.one(s).toggleView(q,o,t);}return this;};b.mix(f.fx,{fadeOut:{opacity:0,duration:0.5,easing:"ease-out"},fadeIn:{opacity:1,duration:0.5,easing:"ease-in"},sizeOut:{height:0,width:0,duration:0.75,easing:"ease-out"},sizeIn:{height:function(o){return o.get("scrollHeight")+"px"; -},width:function(o){return o.get("scrollWidth")+"px";},duration:0.5,easing:"ease-in",on:{start:function(){var o=this.getStyle("overflow");if(o!=="hidden"){this.setStyle("overflow","hidden");this._transitionOverflow=o;}},end:function(){if(this._transitionOverflow){this.setStyle("overflow",this._transitionOverflow);delete this._transitionOverflow;}}}}});b.mix(f.toggles,{size:["sizeOut","sizeIn"],fade:["fadeOut","fadeIn"]});f.DEFAULT_TOGGLE="fade";},"3.4.0",{requires:["node-base"]});YUI.add("transition-timer",function(b){var a=b.Transition;b.mix(a.prototype,{_start:function(){if(a.useNative){this._runNative();}else{this._runTimer();}},_runTimer:function(){var c=this;c._initAttrs();a._running[b.stamp(c)]=c;c._startTime=new Date();a._startTimer();},_endTimer:function(){var c=this;delete a._running[b.stamp(c)];c._startTime=null;},_runFrame:function(){var c=new Date()-this._startTime;this._runAttrs(c);},_runAttrs:function(e){var o=this,n=o._node,u=o._config,f=b.stamp(n),m=a._nodeAttrs[f],h=a.behaviors,l=false,g=false,v,w,j,q,c,s,r,k,p;for(w in m){j=m[w];if((j&&j.transition===o)){r=j.duration;s=j.delay;c=(e-s)/1000;k=e;v={type:"propertyEnd",propertyName:w,config:u,elapsedTime:c};q=(p in h&&"set" in h[p])?h[p].set:a.DEFAULT_SETTER;l=(k>=r);if(k>r){k=r;}if(!s||e>=s){q(o,w,j.from,j.to,k-s,r-s,j.easing,j.unit);if(l){delete m[w];o._count--;if(u[w]&&u[w].on&&u[w].on.end){u[w].on.end.call(b.one(n),v);}if(!g&&o._count<=0){g=true;o._end(c);o._endTimer();}}}}}},_initAttrs:function(){var j=this,e=a.behaviors,l=b.stamp(j._node),q=a._nodeAttrs[l],d,i,k,n,g,c,m,o,p,f,h;for(c in q){d=q[c];if(q.hasOwnProperty(c)&&(d&&d.transition===j)){i=d.duration*1000;k=d.delay*1000;n=d.easing;g=d.value;if(c in j._node.style||c in b.DOM.CUSTOM_STYLES){f=(c in e&&"get" in e[c])?e[c].get(j,c):a.DEFAULT_GETTER(j,c);o=a.RE_UNITS.exec(f);m=a.RE_UNITS.exec(g);f=o?o[1]:f;h=m?m[1]:g;p=m?m[2]:o?o[2]:"";if(!p&&a.RE_DEFAULT_UNIT.test(c)){p=a.DEFAULT_UNIT;}if(typeof n==="string"){if(n.indexOf("cubic-bezier")>-1){n=n.substring(13,n.length-1).split(",");}else{if(a.easings[n]){n=a.easings[n];}}}d.from=Number(f);d.to=Number(h);d.unit=p;d.easing=n;d.duration=i+k;d.delay=k;}else{delete q[c];j._count--;}}}},destroy:function(){this.detachAll();this._node=null;}},true);b.mix(b.Transition,{_runtimeAttrs:{},RE_DEFAULT_UNIT:/^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i,DEFAULT_UNIT:"px",intervalTime:20,behaviors:{left:{get:function(d,c){return b.DOM._getAttrOffset(d._node,c);}}},DEFAULT_SETTER:function(f,g,i,j,l,e,h,k){i=Number(i);j=Number(j);var d=f._node,c=a.cubicBezier(h,l/e);c=i+c[0]*(j-i);if(d){if(g in d.style||g in b.DOM.CUSTOM_STYLES){k=k||"";b.DOM.setStyle(d,g,c+k);}}else{f._end();}},DEFAULT_GETTER:function(e,c){var d=e._node,f="";if(c in d.style||c in b.DOM.CUSTOM_STYLES){f=b.DOM.getComputedStyle(d,c);}return f;},_startTimer:function(){if(!a._timer){a._timer=setInterval(a._runFrame,a.intervalTime);}},_stopTimer:function(){clearInterval(a._timer);a._timer=null;},_runFrame:function(){var c=true,d;for(d in a._running){if(a._running[d]._runFrame){c=false;a._running[d]._runFrame();}}if(c){a._stopTimer();}},cubicBezier:function(s,m){var z=0,f=0,w=s[0],e=s[1],v=s[2],d=s[3],u=1,c=0,r=u-3*v+3*w-z,q=3*v-6*w+3*z,o=3*w-3*z,n=z,l=c-3*d+3*e-f,k=3*d-6*e+3*f,j=3*e-3*f,i=f,h=(((r*m)+q)*m+o)*m+n,g=(((l*m)+k)*m+j)*m+i;return[h,g];},easings:{ease:[0.25,0,1,0.25],linear:[0,0,1,1],"ease-in":[0.42,0,1,1],"ease-out":[0,0,0.58,1],"ease-in-out":[0.42,0,0.58,1]},_running:{},_timer:null,RE_UNITS:/^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/},true);a.behaviors.top=a.behaviors.bottom=a.behaviors.right=a.behaviors.left;b.Transition=a;},"3.4.0",{requires:["transition-native","node-style"]});YUI.add("transition",function(a){},"3.4.0",{use:["transition-native","transition-timer"]}); \ No newline at end of file +YUI.add("transition",function(b){var i="",h="",f=b.config.doc,r="documentElement",s="transition",k="Transition",m,j,p,a,n,c,l,t,q={},g=["Webkit","Moz"],e={Webkit:"webkitTransitionEnd"},d=function(){this.init.apply(this,arguments);};d._toCamel=function(u){u=u.replace(/-([a-z])/gi,function(w,v){return v.toUpperCase();});return u;};d._toHyphen=function(u){u=u.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g,function(y,x,w,v){var z=((x)?"-"+x.toLowerCase():"")+w;if(v){z+="-"+v.toLowerCase();}return z;});return u;};d.SHOW_TRANSITION="fadeIn";d.HIDE_TRANSITION="fadeOut";d.useNative=false;b.Array.each(g,function(v){var u=v+k;if(u in f[r].style){i=v;h=d._toHyphen(v)+"-";d.useNative=true;d.supported=true;d._VENDOR_PREFIX=v;}});k=i+k;m=i+"TransitionProperty";j=h+"transition-property";p=h+"transition-duration";a=h+"transition-timing-function";n=h+"transition-delay";c="transitionend";l="on"+i.toLowerCase()+"transitionend";c=e[i]||c;t=i+"Transform";d.fx={};d.toggles={};d._hasEnd={};d._reKeywords=/^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i;b.Node.DOM_EVENTS[c]=1;d.NAME="transition";d.DEFAULT_EASING="ease";d.DEFAULT_DURATION=0.5;d.DEFAULT_DELAY=0;d._nodeAttrs={};d.prototype={constructor:d,init:function(v,u){var w=this;w._node=v;if(!w._running&&u){w._config=u;v._transition=w;w._duration=("duration" in u)?u.duration:w.constructor.DEFAULT_DURATION;w._delay=("delay" in u)?u.delay:w.constructor.DEFAULT_DELAY;w._easing=u.easing||w.constructor.DEFAULT_EASING;w._count=0;w._running=false;}return w;},addProperty:function(v,x){var A=this,y=this._node,C=b.stamp(y),B=b.one(y),F=d._nodeAttrs[C],z,E,u,D,w;if(!F){F=d._nodeAttrs[C]={};}D=F[v];if(x&&x.value!==undefined){w=x.value;}else{if(x!==undefined){w=x;x=q;}}if(typeof w==="function"){w=w.call(B,B);}if(D&&D.transition){if(D.transition!==A){D.transition._count--;}}A._count++;u=((typeof x.duration!="undefined")?x.duration:A._duration)||0.0001;F[v]={value:w,duration:u,delay:(typeof x.delay!="undefined")?x.delay:A._delay,easing:x.easing||A._easing,transition:A};z=b.DOM.getComputedStyle(y,v);E=(typeof w==="string")?z:parseFloat(z);if(d.useNative&&E===w){setTimeout(function(){A._onNativeEnd.call(y,{propertyName:v,elapsedTime:u});},u*1000);}},removeProperty:function(w){var v=this,u=d._nodeAttrs[b.stamp(v._node)];if(u&&u[w]){delete u[w];v._count--;}},initAttrs:function(v){var u,w=this._node;if(v.transform&&!v[t]){v[t]=v.transform;delete v.transform;}for(u in v){if(v.hasOwnProperty(u)&&!d._reKeywords.test(u)){this.addProperty(u,v[u]);if(w.style[u]===""){b.DOM.setStyle(w,u,b.DOM.getComputedStyle(w,u));}}}},run:function(y){var x=this,v=x._node,u=x._config,w={type:"transition:start",config:u};if(!x._running){x._running=true;if(u.on&&u.on.start){u.on.start.call(b.one(v),w);}x.initAttrs(x._config);x._callback=y;x._start();}return x;},_start:function(){this._runNative();},_prepDur:function(u){u=parseFloat(u);return u+"s";},_runNative:function(w){var C=this,x=C._node,E=b.stamp(x),v=x.style,A=getComputedStyle(x),I=d._nodeAttrs[E],y="",J=A[d._toCamel(j)],H=j+": ",B=p+": ",G=a+": ",D=n+": ",z,F,u;if(J!=="all"){H+=J+",";B+=A[d._toCamel(p)]+",";G+=A[d._toCamel(a)]+",";D+=A[d._toCamel(n)]+",";}for(u in I){z=d._toHyphen(u);F=I[u];if((F=I[u])&&F.transition===C){if(u in x.style){B+=C._prepDur(F.duration)+",";D+=C._prepDur(F.delay)+",";G+=(F.easing)+",";H+=z+",";y+=z+": "+F.value+"; ";}else{this.removeProperty(u);}}}H=H.replace(/,$/,";");B=B.replace(/,$/,";");G=G.replace(/,$/,";");D=D.replace(/,$/,";");if(!d._hasEnd[E]){x.addEventListener(c,C._onNativeEnd,"");d._hasEnd[E]=true;}v.cssText+=H+B+G+D+y;},_end:function(u){var y=this,w=y._node,A=y._callback,v=y._config,x={type:"transition:end",config:v,elapsedTime:u},z=b.one(w);y._running=false;y._callback=null;if(w){if(v.on&&v.on.end){setTimeout(function(){v.on.end.call(z,x);if(A){A.call(z,x);}},1);}else{if(A){setTimeout(function(){A.call(z,x);},1);}}}},_endNative:function(u){var v=this._node,w=v.ownerDocument.defaultView.getComputedStyle(v,"")[d._toCamel(j)];if(typeof w==="string"){w=w.replace(new RegExp("(?:^|,\\s)"+u+",?"),",");w=w.replace(/^,|,$/,"");v.style[k]=w;}},_onNativeEnd:function(B){var x=this,A=b.stamp(x),u=B,v=d._toCamel(u.propertyName),E=u.elapsedTime,D=d._nodeAttrs[A],C=D[v],y=(C)?C.transition:null,z,w;if(y){y.removeProperty(v);y._endNative(v);w=y._config[v];z={type:"propertyEnd",propertyName:v,elapsedTime:E,config:w};if(w&&w.on&&w.on.end){w.on.end.call(b.one(x),z);}if(y._count<=0){y._end(E);}}},destroy:function(){var v=this,u=v._node;if(u){u.removeEventListener(c,v._onNativeEnd,false);v._node=null;}}};b.Transition=d;b.TransitionNative=d;b.Node.prototype.transition=function(w,v,A){var u=d._nodeAttrs[b.stamp(this._node)],y=(u)?u.transition||null:null,x,z;if(typeof w==="string"){if(typeof v==="function"){A=v;v=null;}x=d.fx[w];if(v&&typeof v!=="boolean"){v=b.clone(v);for(z in x){if(x.hasOwnProperty(z)){if(!(z in v)){v[z]=x[z];}}}}else{v=x;}}else{A=v;v=w;}if(y&&!y._running){y.init(this,v);}else{y=new d(this._node,v);}y.run(A);return this;};b.Node.prototype.show=function(v,u,w){this._show();if(v&&b.Transition){if(typeof v!=="string"&&!v.push){if(typeof u==="function"){w=u;u=v;}v=d.SHOW_TRANSITION;}this.transition(v,u,w);}return this;};var o=function(v,u,w){return function(){if(u){u.call(v);}if(w){w.apply(v._node,arguments);}};};b.Node.prototype.hide=function(v,u,w){if(v&&b.Transition){if(typeof u==="function"){w=u;u=null;}w=o(this,this._hide,w);if(typeof v!=="string"&&!v.push){if(typeof u==="function"){w=u;u=v;}v=d.HIDE_TRANSITION;}this.transition(v,u,w);}else{this._hide();}return this;};b.NodeList.prototype.transition=function(v,y){var u=this._nodes,w=0,x;while((x=u[w++])){b.one(x).transition(v,y);}return this;};b.Node.prototype.toggleView=function(v,u,w){this._toggles=this._toggles||[];w=arguments[arguments.length-1];if(typeof v=="boolean"){u=v;v=null;}v=v||b.Transition.DEFAULT_TOGGLE;if(typeof u=="undefined"&&v in this._toggles){u=!this._toggles[v];}u=(u)?1:0;if(u){this._show();}else{w=o(this,this._hide,w);}this._toggles[v]=u; +this.transition(b.Transition.toggles[v][u],w);return this;};b.NodeList.prototype.toggleView=function(w,u,z){var v=this._nodes,x=0,y;while((y=v[x++])){b.one(y).toggleView(w,u,z);}return this;};b.mix(d.fx,{fadeOut:{opacity:0,duration:0.5,easing:"ease-out"},fadeIn:{opacity:1,duration:0.5,easing:"ease-in"},sizeOut:{height:0,width:0,duration:0.75,easing:"ease-out"},sizeIn:{height:function(u){return u.get("scrollHeight")+"px";},width:function(u){return u.get("scrollWidth")+"px";},duration:0.5,easing:"ease-in",on:{start:function(){var u=this.getStyle("overflow");if(u!=="hidden"){this.setStyle("overflow","hidden");this._transitionOverflow=u;}},end:function(){if(this._transitionOverflow){this.setStyle("overflow",this._transitionOverflow);delete this._transitionOverflow;}}}}});b.mix(d.toggles,{size:["sizeOut","sizeIn"],fade:["fadeOut","fadeIn"]});d.DEFAULT_TOGGLE="fade";},"3.4.0",{requires:["node-style"]}); \ No newline at end of file diff --git a/build/transition/transition.js b/build/transition/transition.js index 4ac70e85881..b63595a4353 100644 --- a/build/transition/transition.js +++ b/build/transition/transition.js @@ -5,7 +5,7 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add('transition-native', function(Y) { +YUI.add('transition', function(Y) { /** * Provides the transition method for Node. @@ -15,19 +15,32 @@ YUI.add('transition-native', function(Y) { * @requires node-style */ -var TRANSITION = '-webkit-transition', - TRANSITION_CAMEL = 'WebkitTransition', - TRANSITION_PROPERTY_CAMEL = 'WebkitTransitionProperty', - TRANSITION_PROPERTY = '-webkit-transition-property', - TRANSITION_DURATION = '-webkit-transition-duration', - TRANSITION_TIMING_FUNCTION = '-webkit-transition-timing-function', - TRANSITION_DELAY = '-webkit-transition-delay', - TRANSITION_END = 'webkitTransitionEnd', - ON_TRANSITION_END = 'onwebkittransitionend', - TRANSFORM_CAMEL = 'WebkitTransform', +var CAMEL_VENDOR_PREFIX = '', + VENDOR_PREFIX = '', + DOCUMENT = Y.config.doc, + DOCUMENT_ELEMENT = 'documentElement', + TRANSITION = 'transition', + TRANSITION_CAMEL = 'Transition', + TRANSITION_PROPERTY_CAMEL, + TRANSITION_PROPERTY, + TRANSITION_DURATION, + TRANSITION_TIMING_FUNCTION, + TRANSITION_DELAY, + TRANSITION_END, + ON_TRANSITION_END, + TRANSFORM_CAMEL, EMPTY_OBJ = {}, + VENDORS = [ + 'Webkit', + 'Moz' + ], + + VENDOR_TRANSITION_END = { + Webkit: 'webkitTransitionEnd' + }, + /** * A class for constructing transition instances. * Adds the "transition" method to Node. @@ -39,11 +52,6 @@ Transition = function() { this.init.apply(this, arguments); }; -Transition.fx = {}; -Transition.toggles = {}; - -Transition._hasEnd = {}; - Transition._toCamel = function(property) { property = property.replace(/-([a-z])/gi, function(m0, m1) { return m1.toUpperCase(); @@ -54,11 +62,7 @@ Transition._toCamel = function(property) { Transition._toHyphen = function(property) { property = property.replace(/([A-Z]?)([a-z]+)([A-Z]?)/g, function(m0, m1, m2, m3) { - var str = ''; - if (m1) { - str += '-' + m1.toLowerCase(); - } - str += m2; + var str = ((m1) ? '-' + m1.toLowerCase() : '') + m2; if (m3) { str += '-' + m3.toLowerCase(); @@ -70,15 +74,42 @@ Transition._toHyphen = function(property) { return property; }; - -Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; +Transition.SHOW_TRANSITION = 'fadeIn'; +Transition.HIDE_TRANSITION = 'fadeOut'; Transition.useNative = false; -if (TRANSITION in Y.config.doc.documentElement.style) { - Transition.useNative = true; - Transition.supported = true; // TODO: remove -} +Y.Array.each(VENDORS, function(val) { // then vendor specific + var property = val + TRANSITION_CAMEL; + if (property in DOCUMENT[DOCUMENT_ELEMENT].style) { + CAMEL_VENDOR_PREFIX = val; + VENDOR_PREFIX = Transition._toHyphen(val) + '-'; + + Transition.useNative = true; + Transition.supported = true; // TODO: remove + Transition._VENDOR_PREFIX = val; + } +}); + +TRANSITION_CAMEL = CAMEL_VENDOR_PREFIX + TRANSITION_CAMEL; +TRANSITION_PROPERTY_CAMEL = CAMEL_VENDOR_PREFIX + 'TransitionProperty'; +TRANSITION_PROPERTY = VENDOR_PREFIX + 'transition-property'; +TRANSITION_DURATION = VENDOR_PREFIX + 'transition-duration'; +TRANSITION_TIMING_FUNCTION = VENDOR_PREFIX + 'transition-timing-function'; +TRANSITION_DELAY = VENDOR_PREFIX + 'transition-delay'; +TRANSITION_END = 'transitionend'; +ON_TRANSITION_END = 'on' + CAMEL_VENDOR_PREFIX.toLowerCase() + 'transitionend'; + +TRANSITION_END = VENDOR_TRANSITION_END[CAMEL_VENDOR_PREFIX] || TRANSITION_END; + +TRANSFORM_CAMEL = CAMEL_VENDOR_PREFIX + 'Transform'; + +Transition.fx = {}; +Transition.toggles = {}; + +Transition._hasEnd = {}; + +Transition._reKeywords = /^(?:node|duration|iterations|easing|delay|on|onstart|onend)$/i; Y.Node.DOM_EVENTS[TRANSITION_END] = 1; @@ -271,7 +302,7 @@ Transition.prototype = { computed = getComputedStyle(node), attrs = Transition._nodeAttrs[uid], cssText = '', - cssTransition = computed[TRANSITION_PROPERTY], + cssTransition = computed[Transition._toCamel(TRANSITION_PROPERTY)], transitionText = TRANSITION_PROPERTY + ': ', duration = TRANSITION_DURATION + ': ', @@ -284,9 +315,9 @@ Transition.prototype = { // preserve existing transitions if (cssTransition !== 'all') { transitionText += cssTransition + ','; - duration += computed[TRANSITION_DURATION] + ','; - easing += computed[TRANSITION_TIMING_FUNCTION] + ','; - delay += computed[TRANSITION_DELAY] + ','; + duration += computed[Transition._toCamel(TRANSITION_DURATION)] + ','; + easing += computed[Transition._toCamel(TRANSITION_TIMING_FUNCTION)] + ','; + delay += computed[Transition._toCamel(TRANSITION_DELAY)] + ','; } @@ -294,7 +325,7 @@ Transition.prototype = { for (name in attrs) { hyphy = Transition._toHyphen(name); attr = attrs[name]; - if (attrs.hasOwnProperty(name) && attr.transition === anim) { + if ((attr = attrs[name]) && attr.transition === anim) { if (name in node.style) { // only native styles allowed duration += anim._prepDur(attr.duration) + ','; delay += anim._prepDur(attr.delay) + ','; @@ -317,7 +348,7 @@ Transition.prototype = { if (!Transition._hasEnd[uid]) { //anim._detach = Y.on(TRANSITION_END, anim._onNativeEnd, node); //node[ON_TRANSITION_END] = anim._onNativeEnd; - node.addEventListener(TRANSITION_END, anim._onNativeEnd, false); + node.addEventListener(TRANSITION_END, anim._onNativeEnd, ''); Transition._hasEnd[uid] = true; } @@ -367,7 +398,7 @@ Transition.prototype = { _endNative: function(name) { var node = this._node, - value = node.ownerDocument.defaultView.getComputedStyle(node, '')[TRANSITION_PROPERTY]; + value = node.ownerDocument.defaultView.getComputedStyle(node, '')[Transition._toCamel(TRANSITION_PROPERTY)]; if (typeof value === 'string') { value = value.replace(new RegExp('(?:^|,\\s)' + name + ',?'), ','); @@ -413,15 +444,18 @@ Transition.prototype = { }, destroy: function() { - var anim = this; + var anim = this, + node = anim._node; /* if (anim._detach) { anim._detach.detach(); } */ //anim._node[ON_TRANSITION_END] = null; - node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); - anim._node = null; + if (node) { + node.removeEventListener(TRANSITION_END, anim._onNativeEnd, false); + anim._node = null; + } } }; @@ -505,7 +539,7 @@ Y.Node.prototype.show = function(name, config, callback) { callback = config; config = name; } - name = this.SHOW_TRANSITION; + name = Transition.SHOW_TRANSITION; } this.transition(name, config, callback); } @@ -536,7 +570,7 @@ Y.Node.prototype.hide = function(name, config, callback) { callback = config; config = name; } - name = this.HIDE_TRANSITION; + name = Transition.HIDE_TRANSITION; } this.transition(name, config, callback); } else { @@ -681,349 +715,4 @@ Transition.DEFAULT_TOGGLE = 'fade'; -}, '3.4.0' ,{requires:['node-base']}); -YUI.add('transition-timer', function(Y) { - -/* -* The Transition Utility provides an API for creating advanced transitions. -* @module transition -*/ - -/* -* Provides the base Transition class, for animating numeric properties. -* -* @module transition -* @submodule transition-timer -*/ - - -var Transition = Y.Transition; - -Y.mix(Transition.prototype, { - _start: function() { - if (Transition.useNative) { - this._runNative(); - } else { - this._runTimer(); - } - }, - - _runTimer: function() { - var anim = this; - anim._initAttrs(); - - Transition._running[Y.stamp(anim)] = anim; - anim._startTime = new Date(); - Transition._startTimer(); - }, - - _endTimer: function() { - var anim = this; - delete Transition._running[Y.stamp(anim)]; - anim._startTime = null; - }, - - _runFrame: function() { - var t = new Date() - this._startTime; - this._runAttrs(t); - }, - - _runAttrs: function(time) { - var anim = this, - node = anim._node, - config = anim._config, - uid = Y.stamp(node), - attrs = Transition._nodeAttrs[uid], - customAttr = Transition.behaviors, - done = false, - allDone = false, - data, - name, - attribute, - setter, - elapsed, - delay, - d, - t, - i; - - for (name in attrs) { - attribute = attrs[name]; - if ((attribute && attribute.transition === anim)) { - d = attribute.duration; - delay = attribute.delay; - elapsed = (time - delay) / 1000; - t = time; - data = { - type: 'propertyEnd', - propertyName: name, - config: config, - elapsedTime: elapsed - }; - - setter = (i in customAttr && 'set' in customAttr[i]) ? - customAttr[i].set : Transition.DEFAULT_SETTER; - - done = (t >= d); - - if (t > d) { - t = d; - } - - if (!delay || time >= delay) { - setter(anim, name, attribute.from, attribute.to, t - delay, d - delay, - attribute.easing, attribute.unit); - - if (done) { - delete attrs[name]; - anim._count--; - - if (config[name] && config[name].on && config[name].on.end) { - config[name].on.end.call(Y.one(node), data); - } - - //node.fire('transition:propertyEnd', data); - - if (!allDone && anim._count <= 0) { - allDone = true; - anim._end(elapsed); - anim._endTimer(); - } - } - } - - } - } - }, - - _initAttrs: function() { - var anim = this, - customAttr = Transition.behaviors, - uid = Y.stamp(anim._node), - attrs = Transition._nodeAttrs[uid], - attribute, - duration, - delay, - easing, - val, - name, - mTo, - mFrom, - unit, begin, end; - - for (name in attrs) { - attribute = attrs[name]; - if (attrs.hasOwnProperty(name) && (attribute && attribute.transition === anim)) { - duration = attribute.duration * 1000; - delay = attribute.delay * 1000; - easing = attribute.easing; - val = attribute.value; - - // only allow supported properties - if (name in anim._node.style || name in Y.DOM.CUSTOM_STYLES) { - begin = (name in customAttr && 'get' in customAttr[name]) ? - customAttr[name].get(anim, name) : Transition.DEFAULT_GETTER(anim, name); - - mFrom = Transition.RE_UNITS.exec(begin); - mTo = Transition.RE_UNITS.exec(val); - - begin = mFrom ? mFrom[1] : begin; - end = mTo ? mTo[1] : val; - unit = mTo ? mTo[2] : mFrom ? mFrom[2] : ''; // one might be zero TODO: mixed units - - if (!unit && Transition.RE_DEFAULT_UNIT.test(name)) { - unit = Transition.DEFAULT_UNIT; - } - - if (typeof easing === 'string') { - if (easing.indexOf('cubic-bezier') > -1) { - easing = easing.substring(13, easing.length - 1).split(','); - } else if (Transition.easings[easing]) { - easing = Transition.easings[easing]; - } - } - - attribute.from = Number(begin); - attribute.to = Number(end); - attribute.unit = unit; - attribute.easing = easing; - attribute.duration = duration + delay; - attribute.delay = delay; - } else { - delete attrs[name]; - anim._count--; - } - } - } - }, - - destroy: function() { - this.detachAll(); - this._node = null; - } -}, true); - -Y.mix(Y.Transition, { - _runtimeAttrs: {}, - /* - * Regex of properties that should use the default unit. - * - * @property RE_DEFAULT_UNIT - * @static - */ - RE_DEFAULT_UNIT: /^width|height|top|right|bottom|left|margin.*|padding.*|border.*$/i, - - /* - * The default unit to use with properties that pass the RE_DEFAULT_UNIT test. - * - * @property DEFAULT_UNIT - * @static - */ - DEFAULT_UNIT: 'px', - - /* - * Time in milliseconds passed to setInterval for frame processing - * - * @property intervalTime - * @default 20 - * @static - */ - intervalTime: 20, - - /* - * Bucket for custom getters and setters - * - * @property behaviors - * @static - */ - behaviors: { - left: { - get: function(anim, attr) { - return Y.DOM._getAttrOffset(anim._node, attr); - } - } - }, - - /* - * The default setter to use when setting object properties. - * - * @property DEFAULT_SETTER - * @static - */ - DEFAULT_SETTER: function(anim, att, from, to, elapsed, duration, fn, unit) { - from = Number(from); - to = Number(to); - - var node = anim._node, - val = Transition.cubicBezier(fn, elapsed / duration); - - val = from + val[0] * (to - from); - - if (node) { - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - unit = unit || ''; - Y.DOM.setStyle(node, att, val + unit); - } - } else { - anim._end(); - } - }, - - /* - * The default getter to use when getting object properties. - * - * @property DEFAULT_GETTER - * @static - */ - DEFAULT_GETTER: function(anim, att) { - var node = anim._node, - val = ''; - - if (att in node.style || att in Y.DOM.CUSTOM_STYLES) { - val = Y.DOM.getComputedStyle(node, att); - } - - return val; - }, - - _startTimer: function() { - if (!Transition._timer) { - Transition._timer = setInterval(Transition._runFrame, Transition.intervalTime); - } - }, - - _stopTimer: function() { - clearInterval(Transition._timer); - Transition._timer = null; - }, - - /* - * Called per Interval to handle each animation frame. - * @method _runFrame - * @private - * @static - */ - _runFrame: function() { - var done = true, - anim; - for (anim in Transition._running) { - if (Transition._running[anim]._runFrame) { - done = false; - Transition._running[anim]._runFrame(); - } - } - - if (done) { - Transition._stopTimer(); - } - }, - - cubicBezier: function(p, t) { - var x0 = 0, - y0 = 0, - x1 = p[0], - y1 = p[1], - x2 = p[2], - y2 = p[3], - x3 = 1, - y3 = 0, - - A = x3 - 3 * x2 + 3 * x1 - x0, - B = 3 * x2 - 6 * x1 + 3 * x0, - C = 3 * x1 - 3 * x0, - D = x0, - E = y3 - 3 * y2 + 3 * y1 - y0, - F = 3 * y2 - 6 * y1 + 3 * y0, - G = 3 * y1 - 3 * y0, - H = y0, - - x = (((A*t) + B)*t + C)*t + D, - y = (((E*t) + F)*t + G)*t + H; - - return [x, y]; - }, - - easings: { - ease: [0.25, 0, 1, 0.25], - linear: [0, 0, 1, 1], - 'ease-in': [0.42, 0, 1, 1], - 'ease-out': [0, 0, 0.58, 1], - 'ease-in-out': [0.42, 0, 0.58, 1] - }, - - _running: {}, - _timer: null, - - RE_UNITS: /^(-?\d*\.?\d*){1}(em|ex|px|in|cm|mm|pt|pc|%)*$/ -}, true); - -Transition.behaviors.top = Transition.behaviors.bottom = Transition.behaviors.right = Transition.behaviors.left; - -Y.Transition = Transition; - - -}, '3.4.0' ,{requires:['transition-native', 'node-style']}); - - -YUI.add('transition', function(Y){}, '3.4.0' ,{use:['transition-native', 'transition-timer']}); - +}, '3.4.0' ,{requires:['node-style']}); diff --git a/build/view/view-debug.js b/build/view/view-debug.js index 9519fc13d64..082f0ed51cb 100644 --- a/build/view/view-debug.js +++ b/build/view/view-debug.js @@ -12,14 +12,23 @@ Represents a logical piece of an application's user interface, and provides a lightweight, overridable API for rendering content and handling delegated DOM events on a container element. +@submodule view +@since 3.4.0 +**/ + +/** +Represents a logical piece of an application's user interface, and provides a +lightweight, overridable API for rendering content and handling delegated DOM +events on a container element. + The View class imposes little structure and provides only minimal functionality of its own: it's basically just an overridable API interface that helps you implement custom views. -@submodule view @class View @constructor -@uses Base +@extends Base +@since 3.4.0 **/ function View() { @@ -53,7 +62,7 @@ Y.View = Y.extend(View, Y.Base, { @property container @type HTMLElement|Node|String - @default `"
                              "` + @default "
                              " **/ container: '
                              ', @@ -94,12 +103,12 @@ Y.View = Y.extend(View, Y.Base, { @property events @type Object - @default `{}` + @default {} **/ events: {}, /** - `Y.Model` instance associated with this view instance. + Model instance associated with this view instance. This is entirely optional. There's no requirement that views be associated with models, but if you do intend to associate your view with a model, then @@ -108,6 +117,20 @@ Y.View = Y.extend(View, Y.Base, { @property model @type Model + @default undefined + **/ + + /** + ModelList instance associated with this view instance. + + This is entirely optional. There's no requirement that views be associated + with model lists, but if you do intend to associate your view with a model + list, then specifying that list instance at instantiation time will cause a + reference to be stored here for convenience. + + @property modelList + @type ModelList + @default undefined **/ /** @@ -123,7 +146,7 @@ Y.View = Y.extend(View, Y.Base, { @property template @type any - @default `''` + @default '' **/ template: '', @@ -136,6 +159,7 @@ Y.View = Y.extend(View, Y.Base, { // Use config properties if present; otherwise default to prototype // properties. config.model && (this.model = config.model); + config.modelList && (this.modelList = config.modelList); config.template && (this.template = config.template); // Merge events from the config into events in `this.events`, then diff --git a/build/view/view-min.js b/build/view/view-min.js index 125552b0d58..05d765012c0 100644 --- a/build/view/view-min.js +++ b/build/view/view-min.js @@ -5,4 +5,4 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("view",function(b){function a(){a.superclass.constructor.apply(this,arguments);}b.View=b.extend(a,b.Base,{container:"
                              ",events:{},template:"",initializer:function(c){c||(c={});this.container=this.create(c.container||this.container);c.model&&(this.model=c.model);c.template&&(this.template=c.template);this.events=c.events?b.merge(this.events,c.events):this.events;this.attachEvents(this.events);},destructor:function(){this.container&&this.container.remove(true);},attachEvents:function(g){var d=this.container,i=b.Object.owns,h,e,f,c;for(c in g){if(!i(g,c)){continue;}e=g[c];for(f in e){if(!i(e,f)){continue;}h=e[f];if(typeof h==="string"){h=this[h];}d.delegate(f,h,c,this);}}},create:function(c){return typeof c==="string"?b.Node.create(c):b.one(c);},remove:function(){this.container&&this.container.remove();return this;},render:function(){return this;}},{NAME:"view"});},"3.4.0",{requires:["base-build","node-event-delegate"]}); \ No newline at end of file +YUI.add("view",function(b){function a(){a.superclass.constructor.apply(this,arguments);}b.View=b.extend(a,b.Base,{container:"
                              ",events:{},template:"",initializer:function(c){c||(c={});this.container=this.create(c.container||this.container);c.model&&(this.model=c.model);c.modelList&&(this.modelList=c.modelList);c.template&&(this.template=c.template);this.events=c.events?b.merge(this.events,c.events):this.events;this.attachEvents(this.events);},destructor:function(){this.container&&this.container.remove(true);},attachEvents:function(g){var d=this.container,i=b.Object.owns,h,e,f,c;for(c in g){if(!i(g,c)){continue;}e=g[c];for(f in e){if(!i(e,f)){continue;}h=e[f];if(typeof h==="string"){h=this[h];}d.delegate(f,h,c,this);}}},create:function(c){return typeof c==="string"?b.Node.create(c):b.one(c);},remove:function(){this.container&&this.container.remove();return this;},render:function(){return this;}},{NAME:"view"});},"3.4.0",{requires:["base-build","node-event-delegate"]}); \ No newline at end of file diff --git a/build/view/view.js b/build/view/view.js index 9519fc13d64..082f0ed51cb 100644 --- a/build/view/view.js +++ b/build/view/view.js @@ -12,14 +12,23 @@ Represents a logical piece of an application's user interface, and provides a lightweight, overridable API for rendering content and handling delegated DOM events on a container element. +@submodule view +@since 3.4.0 +**/ + +/** +Represents a logical piece of an application's user interface, and provides a +lightweight, overridable API for rendering content and handling delegated DOM +events on a container element. + The View class imposes little structure and provides only minimal functionality of its own: it's basically just an overridable API interface that helps you implement custom views. -@submodule view @class View @constructor -@uses Base +@extends Base +@since 3.4.0 **/ function View() { @@ -53,7 +62,7 @@ Y.View = Y.extend(View, Y.Base, { @property container @type HTMLElement|Node|String - @default `"
                              "` + @default "
                              " **/ container: '
                              ', @@ -94,12 +103,12 @@ Y.View = Y.extend(View, Y.Base, { @property events @type Object - @default `{}` + @default {} **/ events: {}, /** - `Y.Model` instance associated with this view instance. + Model instance associated with this view instance. This is entirely optional. There's no requirement that views be associated with models, but if you do intend to associate your view with a model, then @@ -108,6 +117,20 @@ Y.View = Y.extend(View, Y.Base, { @property model @type Model + @default undefined + **/ + + /** + ModelList instance associated with this view instance. + + This is entirely optional. There's no requirement that views be associated + with model lists, but if you do intend to associate your view with a model + list, then specifying that list instance at instantiation time will cause a + reference to be stored here for convenience. + + @property modelList + @type ModelList + @default undefined **/ /** @@ -123,7 +146,7 @@ Y.View = Y.extend(View, Y.Base, { @property template @type any - @default `''` + @default '' **/ template: '', @@ -136,6 +159,7 @@ Y.View = Y.extend(View, Y.Base, { // Use config properties if present; otherwise default to prototype // properties. config.model && (this.model = config.model); + config.modelList && (this.modelList = config.modelList); config.template && (this.template = config.template); // Merge events from the config into events in `this.events`, then diff --git a/build/widget-autohide/widget-autohide-debug.js b/build/widget-autohide/widget-autohide-debug.js index 02d7f23d448..4210c92417b 100644 --- a/build/widget-autohide/widget-autohide-debug.js +++ b/build/widget-autohide/widget-autohide-debug.js @@ -8,24 +8,8 @@ build: nightly YUI.add('widget-autohide', function(Y) { /** - * "widget-autohide" is a widget-level plugin that allows widgets to be hidden - * when certain events occur. - * - * By default, the widget will be hidden when the following events occur - *
                                - *
                              • something is clicked outside the widget's bounding box
                              • - *
                              • something is focussed outside the widget's bounding box
                              • - *
                              • the escape key is pressed
                              • - *
                              - * - * Events can be added or removed from this list through the "hideOn" attribute. - * The following code demonstrates how to do this. Suppose I want to close the widget when - * another node is resized. - * widget.plug(Y.Plugin.Autohide, {hideOn: [{node: resize, eventName: 'resize:end'}]});. - * The hideOn attribute must be an array of objects. For more details on this attribute, refer to the API docs for it. - * - * This module was originally part of the overlay-extras package by Eric Ferraiuolo but was promoted and abstracted - * into the core library. + * A widget-level extension that provides ability to hide widget when + * certain events occur. * * @module widget-autohide * @author eferraiuolo, tilomitra @@ -45,162 +29,215 @@ var WIDGET_AUTOHIDE = 'widgetAutohide', RENDERED = "rendered", BOUNDING_BOX = "boundingBox", VISIBLE = "visible", - HOST = "host", CHANGE = 'Change', getCN = Y.ClassNameManager.getClassName; +/** + * The WidgetAutohide class provides the hideOn attribute which can + * be used to hide the widget when certain events occur. + * + * @class WidgetAutohide + * @param {Object} config User configuration object + */ +function WidgetAutohide(config) { + Y.after(this._bindUIAutohide, this, BIND_UI); + Y.after(this._syncUIAutohide, this, SYNC_UI); -WidgetAutohide = Y.Base.create(WIDGET_AUTOHIDE, Y.Plugin.Base, [], { - - // *** Instance Members *** // - - _uiHandles : null, - - // *** Lifecycle Methods *** // - - initializer : function (config) { - - this.afterHostMethod(BIND_UI, this.bindUI); - this.afterHostMethod(SYNC_UI, this.syncUI); - - if (this.get(HOST).get(RENDERED)) { - this.bindUI(); - this.syncUI(); - } - }, - - destructor : function () { - - this._detachUIHandles(); - }, - - bindUI : function () { - - this.afterHostEvent(VISIBLE+CHANGE, this._afterHostVisibleChange); - }, - - syncUI : function () { - this._uiSetHostVisible(this.get(HOST).get(VISIBLE)); - }, + if (this.get(RENDERED)) { + this._bindUIAutohide(); + this._syncUIAutohide(); + } - // *** Private Methods *** // +} - _uiSetHostVisible : function (visible) { +/** +* Static property used to define the default attribute +* configuration introduced by WidgetAutohide. +* +* @property WidgetAutohide.ATTRS +* @static +* @type Object +*/ +WidgetAutohide.ATTRS = { + + + /** + * @attribute hideOn + * @type array + * + * @description An array of objects corresponding to the nodes, events, and keycodes to hide the widget on. + * The implementer can supply an array of objects, with each object having the following properties: + *

                              eventName: (string, required): The eventName to listen to.

                              + *

                              node: (Y.Node, optional): The Y.Node that will fire the event (defaults to the boundingBox of the widget)

                              + *

                              keyCode: (string, optional): If listening for key events, specify the keyCode

                              + *

                              By default, this attribute consists of one object which will cause the widget to hide if the + * escape key is pressed.

                              + */ + hideOn: { + value: [ + { + node: Y.one(DOCUMENT), + eventName: KEY, + keyCode: PRESS_ESCAPE + } + ], + validator: Y.Lang.isArray + } +}; - if (visible) { - //this._attachUIHandles(); - Y.later(1, this, '_attachUIHandles'); - } else { - this._detachUIHandles(); - } - }, - - _attachUIHandles : function () { - - if (this._uiHandles) { return; } - - var host = this.get(HOST), - bb = host.get(BOUNDING_BOX), - hide = Y.bind(host.hide, host), - uiHandles = [], - self = this, - hideOn = this.get('hideOn'), - i = 0, - o = {node: undefined, ev: undefined, keyCode: undefined}; - - //push all events on which the widget should be hidden - for (; i < hideOn.length; i++) { - - o.node = hideOn[i].node; - o.ev = hideOn[i].eventName; - o.keyCode = hideOn[i].keyCode; - - //no keycode or node defined - if (!o.node && !o.keyCode && o.ev) { - uiHandles.push(bb.on(o.ev, hide)); - } +WidgetAutohide.prototype = { + // *** Instance Members *** // - //node defined, no keycode (not a keypress) - else if (o.node && !o.keyCode && o.ev) { - uiHandles.push(o.node.on(o.ev, hide)); + _uiHandlesAutohide : null, + + // *** Lifecycle Methods *** // + + destructor : function () { + + this._detachUIHandlesAutohide(); + }, + + /** + * Binds event listeners to the widget. + *

                              + * This method in invoked after bindUI is invoked for the Widget class + * using YUI's aop infrastructure. + *

                              + * @method _bindUIAutohide + * @protected + */ + _bindUIAutohide : function () { + + this.after(VISIBLE+CHANGE, this._afterHostVisibleChangeAutohide); + this.after("hideOnChange", this._afterHideOnChange); + }, + + /** + * Syncs up the widget based on its current state. In particular, removes event listeners if + * widget is not visible, and attaches them otherwise. + *

                              + * This method in invoked after syncUI is invoked for the Widget class + * using YUI's aop infrastructure. + *

                              + * @method _syncUIAutohide + * @protected + */ + _syncUIAutohide : function () { + + this._uiSetHostVisibleAutohide(this.get(VISIBLE)); + }, + + // *** Private Methods *** // + + /** + * Removes event listeners if widget is not visible, and attaches them otherwise. + * + * @method _uiSetHostVisibleAutohide + * @protected + */ + _uiSetHostVisibleAutohide : function (visible) { + + if (visible) { + //this._attachUIHandlesAutohide(); + Y.later(1, this, '_attachUIHandlesAutohide'); + } else { + this._detachUIHandlesAutohide(); + } + }, + + /** + * Iterates through all objects in the hideOn attribute and creates event listeners. + * + * @method _attachUIHandlesAutohide + * @protected + */ + _attachUIHandlesAutohide : function () { + + if (this._uiHandlesAutohide) { return; } + + var bb = this.get(BOUNDING_BOX), + hide = Y.bind(this.hide,this), + uiHandles = [], + self = this, + hideOn = this.get('hideOn'), + i = 0, + o = {node: undefined, ev: undefined, keyCode: undefined}; + + //push all events on which the widget should be hidden + for (; i < hideOn.length; i++) { + + o.node = hideOn[i].node; + o.ev = hideOn[i].eventName; + o.keyCode = hideOn[i].keyCode; + + //no keycode or node defined + if (!o.node && !o.keyCode && o.ev) { + uiHandles.push(bb.on(o.ev, hide)); + } + + //node defined, no keycode (not a keypress) + else if (o.node && !o.keyCode && o.ev) { + uiHandles.push(o.node.on(o.ev, hide)); + } + + //node defined, keycode defined, event defined (its a key press) + else if (o.node && o.keyCode && o.ev) { + uiHandles.push(o.node.on(o.ev, hide, o.keyCode)); + } + + else { + Y.log('The event with name "'+o.ev+'" could not be attached.'); + } + } - //node defined, keycode defined, event defined (its a key press) - else if (o.node && o.keyCode && o.ev) { - uiHandles.push(o.node.on(o.ev, hide, o.keyCode)); - } - - else { - Y.Log('The event with name "'+o.ev+'" could not be attached.'); - } - + this._uiHandlesAutohide = uiHandles; + }, + + /** + * Detaches all event listeners created by this extension + * + * @method _detachUIHandlesAutohide + * @protected + */ + _detachUIHandlesAutohide : function () { + + Y.each(this._uiHandlesAutohide, function(h){ + h.detach(); + }); + this._uiHandlesAutohide = null; + }, + + /** + * Default function called when the visibility of the widget changes. Determines + * whether to attach or detach event listeners based on the visibility of the widget. + * + * @method _afterHostVisibleChangeAutohide + * @protected + */ + _afterHostVisibleChangeAutohide : function (e) { + + this._uiSetHostVisibleAutohide(e.newVal); + }, + + /** + * Default function called when hideOn Attribute is changed. Remove existing listeners and create new listeners. + * + * @method _afterHideOnChange + */ + _afterHideOnChange : function(e) { + this._detachUIHandlesAutohide(); + + if (this.get(VISIBLE)) { + this._attachUIHandlesAutohide(); } - - this._uiHandles = uiHandles; - }, - - _detachUIHandles : function () { - - Y.each(this._uiHandles, function(h){ - h.detach(); - }); - this._uiHandles = null; - }, - - _afterHostVisibleChange : function (e) { - - this._uiSetHostVisible(e.newVal); - } - -}, { - - // *** Static *** // - - NS : AUTOHIDE, - - ATTRS : { - - /* - * @description An array of events that will cause the widget to hide. - * Each index in the array should be an object literal with the following properties: - * - * eventName (required, string): Refers to the event to listen to. If no other properties are - * provided, it listens to this event on the widget's boundingBox. (ex: "clickoutside", "focusoutside") - * - * node (optional, Y.Node): Refers to the node on which the "eventName" event should be listening. - * For example, to close the widget when a resize on "#someDiv" occurs, pass in "Y.one("#someDiv")" to node, and "resize:end" to eventName - * - * keyCode (optional, string): When listening to "key" events, this property can be filled with a keyCode such as "esc" or "down:27" - * - * By default, this attribute has 3 objects within its array, clicking outside the widget, focussing outside the widget, and pressing the escape key - * @attribute hideOn - * @public - * @type array - */ - hideOn: { - value: [ - { - eventName: CLICK_OUTSIDE - }, - { - eventName: FOCUS_OUTSIDE - }, - - { - node: Y.one(DOCUMENT), - eventName: KEY, - keyCode: PRESS_ESCAPE - } - ], - validator: Y.Lang.isArray } - } +} -}); -Y.namespace("Plugin").Autohide = WidgetAutohide; +Y.WidgetAutohide = WidgetAutohide; -}, '3.4.0' ,{requires:['base-build', 'widget', 'plugin', 'event-outside']}); +}, '3.4.0' ,{requires:['base-build','widget','event-outside','event-key']}); diff --git a/build/widget-autohide/widget-autohide-min.js b/build/widget-autohide/widget-autohide-min.js index 06be5b428aa..9bab2372031 100644 --- a/build/widget-autohide/widget-autohide-min.js +++ b/build/widget-autohide/widget-autohide-min.js @@ -5,4 +5,4 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("widget-autohide",function(a){var o="widgetAutohide",m="autohide",j="clickoutside",c="focusoutside",k="doc",e="key",p="esc",f="bindUI",n="syncUI",h="rendered",i="boundingBox",g="visible",l="host",d="Change",b=a.ClassNameManager.getClassName;WidgetAutohide=a.Base.create(o,a.Plugin.Base,[],{_uiHandles:null,initializer:function(q){this.afterHostMethod(f,this.bindUI);this.afterHostMethod(n,this.syncUI);if(this.get(l).get(h)){this.bindUI();this.syncUI();}},destructor:function(){this._detachUIHandles();},bindUI:function(){this.afterHostEvent(g+d,this._afterHostVisibleChange);},syncUI:function(){this._uiSetHostVisible(this.get(l).get(g));},_uiSetHostVisible:function(q){if(q){a.later(1,this,"_attachUIHandles");}else{this._detachUIHandles();}},_attachUIHandles:function(){if(this._uiHandles){return;}var v=this.get(l),x=v.get(i),u=a.bind(v.hide,v),r=[],q=this,s=this.get("hideOn"),t=0,w={node:undefined,ev:undefined,keyCode:undefined};for(;t
                              ',body:'
                              ',footer:'
                              '};P.prototype={_syncUIStdMod:function(){var L=this._stdModParsed;if(!L||!L[a]){this._uiSetStdMod(k,this.get(a));}if(!L||!L[i]){this._uiSetStdMod(A,this.get(i));}if(!L||!L[c]){this._uiSetStdMod(p,this.get(c));}this._uiSetFillHeight(this.get(N));},_renderUIStdMod:function(){this._stdModNode.addClass(e.getClassName(m));this._renderStdModSections();},_renderStdModSections:function(){if(f.isValue(this.get(a))){this._renderStdMod(k);}if(f.isValue(this.get(i))){this._renderStdMod(A);}if(f.isValue(this.get(c))){this._renderStdMod(p);}},_bindUIStdMod:function(){this.after(l,this._afterHeaderChange);this.after(B,this._afterBodyChange);this.after(o,this._afterFooterChange);this.after(r,this._afterFillHeightChange);this.after(t,this._fillHeight);this.after(O,this._fillHeight);},_afterHeaderChange:function(L){if(L.src!==s){this._uiSetStdMod(k,L.newVal,L.stdModPosition);}},_afterBodyChange:function(L){if(L.src!==s){this._uiSetStdMod(A,L.newVal,L.stdModPosition);}},_afterFooterChange:function(L){if(L.src!==s){this._uiSetStdMod(p,L.newVal,L.stdModPosition);}},_afterFillHeightChange:function(L){this._uiSetFillHeight(L.newVal);},_validateFillHeight:function(L){return !L||L==P.BODY||L==P.HEADER||L==P.FOOTER;},_uiSetFillHeight:function(R){var Q=this.getStdModNode(R);var L=this._currFillNode;if(L&&Q!==L){L.setStyle(z,d);}if(Q){this._currFillNode=Q;}this._fillHeight();},_fillHeight:function(){if(this.get(N)){var L=this.get(z);if(L!=d&&L!=y){this.fillHeight(this._currFillNode);}}},_uiSetStdMod:function(S,R,L){if(f.isValue(R)){var Q=this.getStdModNode(S)||this._renderStdMod(S);this._addStdModContent(Q,R,L);this.set(S+I,this._getStdModContent(S),{src:s});}else{this._eraseStdMod(S);}this.fire(O);},_renderStdMod:function(R){var L=this.get(v),Q=this._findStdModSection(R);if(!Q){Q=this._getStdModTemplate(R);}this._insertStdModSection(L,R,Q);this[R+u]=Q;return this[R+u];},_eraseStdMod:function(Q){var L=this.getStdModNode(Q);if(L){L.remove(true);delete this[Q+u];}},_insertStdModSection:function(L,S,R){var Q=L.get(C);if(S===p||!Q){L.appendChild(R);}else{if(S===k){L.insertBefore(R,Q);}else{var T=this[p+u];if(T){L.insertBefore(R,T);}else{L.appendChild(R);}}}},_getStdModTemplate:function(L){return q.create(P.TEMPLATES[L],this._stdModNode.get(n));},_addStdModContent:function(R,Q,L){switch(L){case P.BEFORE:L=0;break;case P.AFTER:L=undefined;break;default:L=P.REPLACE;}R.insert(Q,L);},_getPreciseHeight:function(R){var L=(R)?R.get(F):0,S="getBoundingClientRect";if(R&&R.hasMethod(S)){var Q=R.invoke(S);if(Q){L=Q.bottom-Q.top;}}return L;},_findStdModSection:function(L){return this.get(v).one("> ."+P.SECTION_CLASS_NAMES[L]);},_parseStdModHTML:function(Q){var L=this._findStdModSection(Q);if(L){if(!this._stdModParsed){this._stdModParsed={};b.before(this._applyStdModParsedConfig,this,H);}this._stdModParsed[Q+I]=1;return L.get("innerHTML");}return null;},_applyStdModParsedConfig:function(S,L,R){var Q=this._stdModParsed;if(Q){Q[a]=!(a in L)&&(a in Q);Q[i]=!(i in L)&&(i in Q);Q[c]=!(c in L)&&(c in Q);}},_getStdModContent:function(L){return(this[L+u])?this[L+u].get(h):null;},setStdModContent:function(R,Q,L){this.set(R+I,Q,{stdModPosition:L});},getStdModNode:function(L){return this[L+u]||null;},fillHeight:function(Q){if(Q){var V=this.get(v),W=[this.headerNode,this.bodyNode,this.footerNode],L,X,Y=0,T=0,S=false;for(var U=0,R=W.length;U=0){Q.set(F,T);}}}}}};b.WidgetStdMod=P;},"3.4.0",{requires:["base-build","widget"]}); \ No newline at end of file +YUI.add("widget-stdmod",function(b){var f=b.Lang,q=b.Node,x=b.UA,e=b.Widget,d="",J="hd",G="bd",j="ft",D="header",M="body",K="footer",N="fillHeight",m="stdmod",u="Node",I="Content",C="firstChild",h="childNodes",n="ownerDocument",v="contentBox",z="height",F="offsetHeight",y="auto",l="headerContentChange",B="bodyContentChange",o="footerContentChange",r="fillHeightChange",t="heightChange",O="contentUpdate",w="renderUI",E="bindUI",g="syncUI",H="_applyParsedConfig",s=b.Widget.UI_SRC;function P(L){this._stdModNode=this.get(v);b.before(this._renderUIStdMod,this,w);b.before(this._bindUIStdMod,this,E);b.before(this._syncUIStdMod,this,g);}P.HEADER=D;P.BODY=M;P.FOOTER=K;P.AFTER="after";P.BEFORE="before";P.REPLACE="replace";var k=P.HEADER,A=P.BODY,p=P.FOOTER,a=k+I,c=p+I,i=A+I;P.ATTRS={headerContent:{value:null},footerContent:{value:null},bodyContent:{value:null},fillHeight:{value:P.BODY,validator:function(L){return this._validateFillHeight(L);}}};P.HTML_PARSER={headerContent:function(L){return this._parseStdModHTML(k);},bodyContent:function(L){return this._parseStdModHTML(A);},footerContent:function(L){return this._parseStdModHTML(p);}};P.SECTION_CLASS_NAMES={header:e.getClassName(J),body:e.getClassName(G),footer:e.getClassName(j)};P.TEMPLATES={header:'
                              ',body:'
                              ',footer:'
                              '};P.prototype={_syncUIStdMod:function(){var L=this._stdModParsed;if(!L||!L[a]){this._uiSetStdMod(k,this.get(a));}if(!L||!L[i]){this._uiSetStdMod(A,this.get(i));}if(!L||!L[c]){this._uiSetStdMod(p,this.get(c));}this._uiSetFillHeight(this.get(N));},_renderUIStdMod:function(){this._stdModNode.addClass(e.getClassName(m));this._renderStdModSections();this.after(l,this._afterHeaderChange);this.after(B,this._afterBodyChange);this.after(o,this._afterFooterChange);},_renderStdModSections:function(){if(f.isValue(this.get(a))){this._renderStdMod(k);}if(f.isValue(this.get(i))){this._renderStdMod(A);}if(f.isValue(this.get(c))){this._renderStdMod(p);}},_bindUIStdMod:function(){this.after(r,this._afterFillHeightChange);this.after(t,this._fillHeight);this.after(O,this._fillHeight);},_afterHeaderChange:function(L){if(L.src!==s){this._uiSetStdMod(k,L.newVal,L.stdModPosition);}},_afterBodyChange:function(L){if(L.src!==s){this._uiSetStdMod(A,L.newVal,L.stdModPosition);}},_afterFooterChange:function(L){if(L.src!==s){this._uiSetStdMod(p,L.newVal,L.stdModPosition);}},_afterFillHeightChange:function(L){this._uiSetFillHeight(L.newVal);},_validateFillHeight:function(L){return !L||L==P.BODY||L==P.HEADER||L==P.FOOTER;},_uiSetFillHeight:function(R){var Q=this.getStdModNode(R);var L=this._currFillNode;if(L&&Q!==L){L.setStyle(z,d);}if(Q){this._currFillNode=Q;}this._fillHeight();},_fillHeight:function(){if(this.get(N)){var L=this.get(z);if(L!=d&&L!=y){this.fillHeight(this._currFillNode);}}},_uiSetStdMod:function(S,R,L){if(f.isValue(R)){var Q=this.getStdModNode(S)||this._renderStdMod(S);this._addStdModContent(Q,R,L);this.set(S+I,this._getStdModContent(S),{src:s});}else{this._eraseStdMod(S);}this.fire(O);},_renderStdMod:function(R){var L=this.get(v),Q=this._findStdModSection(R);if(!Q){Q=this._getStdModTemplate(R);}this._insertStdModSection(L,R,Q);this[R+u]=Q;return this[R+u];},_eraseStdMod:function(Q){var L=this.getStdModNode(Q);if(L){L.remove(true);delete this[Q+u];}},_insertStdModSection:function(L,S,R){var Q=L.get(C);if(S===p||!Q){L.appendChild(R);}else{if(S===k){L.insertBefore(R,Q);}else{var T=this[p+u];if(T){L.insertBefore(R,T);}else{L.appendChild(R);}}}},_getStdModTemplate:function(L){return q.create(P.TEMPLATES[L],this._stdModNode.get(n));},_addStdModContent:function(R,Q,L){switch(L){case P.BEFORE:L=0;break;case P.AFTER:L=undefined;break;default:L=P.REPLACE;}R.insert(Q,L);},_getPreciseHeight:function(R){var L=(R)?R.get(F):0,S="getBoundingClientRect";if(R&&R.hasMethod(S)){var Q=R.invoke(S);if(Q){L=Q.bottom-Q.top;}}return L;},_findStdModSection:function(L){return this.get(v).one("> ."+P.SECTION_CLASS_NAMES[L]);},_parseStdModHTML:function(Q){var L=this._findStdModSection(Q);if(L){if(!this._stdModParsed){this._stdModParsed={};b.before(this._applyStdModParsedConfig,this,H);}this._stdModParsed[Q+I]=1;return L.get("innerHTML");}return null;},_applyStdModParsedConfig:function(S,L,R){var Q=this._stdModParsed;if(Q){Q[a]=!(a in L)&&(a in Q);Q[i]=!(i in L)&&(i in Q);Q[c]=!(c in L)&&(c in Q);}},_getStdModContent:function(L){return(this[L+u])?this[L+u].get(h):null;},setStdModContent:function(R,Q,L){this.set(R+I,Q,{stdModPosition:L});},getStdModNode:function(L){return this[L+u]||null;},fillHeight:function(Q){if(Q){var V=this.get(v),W=[this.headerNode,this.bodyNode,this.footerNode],L,X,Y=0,T=0,S=false;for(var U=0,R=W.length;U=0){Q.set(F,T);}}}}}};b.WidgetStdMod=P;},"3.4.0",{requires:["base-build","widget"]}); \ No newline at end of file diff --git a/build/widget-stdmod/widget-stdmod.js b/build/widget-stdmod/widget-stdmod.js index d9789bc022c..bc68130814b 100644 --- a/build/widget-stdmod/widget-stdmod.js +++ b/build/widget-stdmod/widget-stdmod.js @@ -302,12 +302,20 @@ YUI.add('widget-stdmod', function(Y) { _renderUIStdMod : function() { this._stdModNode.addClass(Widget.getClassName(STDMOD)); this._renderStdModSections(); + + //This normally goes in bindUI but in order to allow setStdModContent() to work before renderUI + //stage, these listeners should be set up at the earliest possible time. + this.after(HeaderChange, this._afterHeaderChange); + this.after(BodyChange, this._afterBodyChange); + this.after(FooterChange, this._afterFooterChange); }, _renderStdModSections : function() { if (L.isValue(this.get(HEADER_CONTENT))) { this._renderStdMod(STD_HEADER); } if (L.isValue(this.get(BODY_CONTENT))) { this._renderStdMod(STD_BODY); } if (L.isValue(this.get(FOOTER_CONTENT))) { this._renderStdMod(STD_FOOTER); } + + }, /** @@ -321,9 +329,9 @@ YUI.add('widget-stdmod', function(Y) { * @protected */ _bindUIStdMod : function() { - this.after(HeaderChange, this._afterHeaderChange); - this.after(BodyChange, this._afterBodyChange); - this.after(FooterChange, this._afterFooterChange); + // this.after(HeaderChange, this._afterHeaderChange); + // this.after(BodyChange, this._afterBodyChange); + // this.after(FooterChange, this._afterFooterChange); this.after(FillHeightChange, this._afterFillHeightChange); this.after(HeightChange, this._fillHeight); @@ -681,7 +689,9 @@ YUI.add('widget-stdmod', function(Y) { * If not provided, the content will replace existing content in the section. */ setStdModContent : function(section, content, where) { + //var node = this.getStdModNode(section) || this._renderStdMod(section); this.set(section + CONTENT_SUFFIX, content, {stdModPosition:where}); + //this._addStdModContent(node, content, where); }, /** diff --git a/build/yql/yql-debug.js b/build/yql/yql-debug.js index 2596b77b8d5..a588bd99b74 100644 --- a/build/yql/yql-debug.js +++ b/build/yql/yql-debug.js @@ -33,7 +33,7 @@ YUI.add('yql', function(Y) { if (!params.env) { params.env = Y.YQLRequest.ENV; } - + this._params = params; this._opts = opts; this._callback = callback; @@ -135,9 +135,10 @@ YUI.add('yql', function(Y) { * @param {String} sql The SQL statement to execute * @param {Function} callback The callback to execute after the query (optional). * @param {Object} params An object literal of extra parameters to pass along (optional). + * @param {Object} opts An object literal of configuration options (optional): proto (http|https), base (url) */ - Y.YQL = function(sql, callback, params) { - return new Y.YQLRequest(sql, callback, params).send(); + Y.YQL = function(sql, callback, params, opts) { + return new Y.YQLRequest(sql, callback, params, opts).send(); }; diff --git a/build/yql/yql-min.js b/build/yql/yql-min.js index 81609a2a2c4..83410bbeb33 100644 --- a/build/yql/yql-min.js +++ b/build/yql/yql-min.js @@ -5,4 +5,4 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("yql",function(b){var a=function(e,f,d,c){if(!d){d={};}d.q=e;if(!d.format){d.format=b.YQLRequest.FORMAT;}if(!d.env){d.env=b.YQLRequest.ENV;}this._params=d;this._opts=c;this._callback=f;};a.prototype={_jsonp:null,_opts:null,_callback:null,_params:null,send:function(){var c=[],d=((this._opts&&this._opts.proto)?this._opts.proto:b.YQLRequest.PROTO);b.each(this._params,function(g,f){c.push(f+"="+encodeURIComponent(g));});c=c.join("&");d+=((this._opts&&this._opts.base)?this._opts.base:b.YQLRequest.BASE_URL)+c;var e=(!b.Lang.isFunction(this._callback))?this._callback:{on:{success:this._callback}};if(e.allowCache!==false){e.allowCache=true;}if(!this._jsonp){this._jsonp=b.jsonp(d,e);}else{this._jsonp.url=d;if(e.on&&e.on.success){this._jsonp._config.on.success=e.on.success;}this._jsonp.send();}return this;}};a.FORMAT="json";a.PROTO="http";a.BASE_URL=":/"+"/query.yahooapis.com/v1/public/yql?";a.ENV="http:/"+"/datatables.org/alltables.env";b.YQLRequest=a;b.YQL=function(d,e,c){return new b.YQLRequest(d,e,c).send();};},"3.4.0",{requires:["jsonp","jsonp-url"]}); \ No newline at end of file +YUI.add("yql",function(b){var a=function(e,f,d,c){if(!d){d={};}d.q=e;if(!d.format){d.format=b.YQLRequest.FORMAT;}if(!d.env){d.env=b.YQLRequest.ENV;}this._params=d;this._opts=c;this._callback=f;};a.prototype={_jsonp:null,_opts:null,_callback:null,_params:null,send:function(){var c=[],d=((this._opts&&this._opts.proto)?this._opts.proto:b.YQLRequest.PROTO);b.each(this._params,function(g,f){c.push(f+"="+encodeURIComponent(g));});c=c.join("&");d+=((this._opts&&this._opts.base)?this._opts.base:b.YQLRequest.BASE_URL)+c;var e=(!b.Lang.isFunction(this._callback))?this._callback:{on:{success:this._callback}};if(e.allowCache!==false){e.allowCache=true;}if(!this._jsonp){this._jsonp=b.jsonp(d,e);}else{this._jsonp.url=d;if(e.on&&e.on.success){this._jsonp._config.on.success=e.on.success;}this._jsonp.send();}return this;}};a.FORMAT="json";a.PROTO="http";a.BASE_URL=":/"+"/query.yahooapis.com/v1/public/yql?";a.ENV="http:/"+"/datatables.org/alltables.env";b.YQLRequest=a;b.YQL=function(e,f,d,c){return new b.YQLRequest(e,f,d,c).send();};},"3.4.0",{requires:["jsonp","jsonp-url"]}); \ No newline at end of file diff --git a/build/yql/yql.js b/build/yql/yql.js index 619dae7e84d..710bcf02f1e 100644 --- a/build/yql/yql.js +++ b/build/yql/yql.js @@ -33,7 +33,7 @@ YUI.add('yql', function(Y) { if (!params.env) { params.env = Y.YQLRequest.ENV; } - + this._params = params; this._opts = opts; this._callback = callback; @@ -134,9 +134,10 @@ YUI.add('yql', function(Y) { * @param {String} sql The SQL statement to execute * @param {Function} callback The callback to execute after the query (optional). * @param {Object} params An object literal of extra parameters to pass along (optional). + * @param {Object} opts An object literal of configuration options (optional): proto (http|https), base (url) */ - Y.YQL = function(sql, callback, params) { - return new Y.YQLRequest(sql, callback, params).send(); + Y.YQL = function(sql, callback, params, opts) { + return new Y.YQLRequest(sql, callback, params, opts).send(); }; diff --git a/build/yui-base/yui-base-debug.js b/build/yui-base/yui-base-debug.js index 7b174fb20ff..6ae8b209d60 100644 --- a/build/yui-base/yui-base-debug.js +++ b/build/yui-base/yui-base-debug.js @@ -18,30 +18,30 @@ if (typeof YUI != 'undefined') { } /** - * The YUI global namespace object. If YUI is already defined, the - * existing YUI object will not be overwritten so that defined - * namespaces are preserved. It is the constructor for the object - * the end user interacts with. As indicated below, each instance - * has full custom event support, but only if the event system - * is available. This is a self-instantiable factory function. You - * can invoke it directly like this: - * - * YUI().use('*', function(Y) { - * // ready - * }); - * - * But it also works like this: - * - * var Y = YUI(); - * - * @class YUI - * @constructor - * @global - * @uses EventTarget - * @param o* {object} 0..n optional configuration objects. these values - * are store in Y.config. See Config for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: false + use_rls: false, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -454,33 +509,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -926,7 +989,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -935,10 +998,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -948,10 +1008,14 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } @@ -959,7 +1023,8 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); G_ENV._rls_queue.add(function() { Y.log('executing queued rls request', 'info', 'rls'); - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -975,6 +1040,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1046,7 +1112,7 @@ Y.log('Fetching loader: ' + config.base + config.loaderPath, 'info', 'yui'); log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1997,7 +2063,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -2005,8 +2072,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2017,36 +2085,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `
                              ` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2073,22 +2138,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2109,19 +2175,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2140,20 +2206,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2168,29 +2234,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2206,18 +2272,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2232,43 +2298,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3309,9 +3376,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; @@ -3683,7 +3748,11 @@ var ua = Y.UA, _loaded = function(id, url) { var q = queues[id], - sync = !q.async; + sync = (q && !q.async); + + if (!q) { + return; + } if (sync) { _clearTimeout(q); @@ -3936,7 +4005,7 @@ Y.Get = { /** * The number of request required before an automatic purge. * Can be configured via the 'purgethreshold' config - * property PURGE_THRESH + * @property PURGE_THRESH * @static * @type int * @default 20 @@ -4253,7 +4322,7 @@ Y.mix(Y.namespace('Features'), { // Y.Features.test("load", "1"); // caps=1:1;2:0;3:1; -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ var add = Y.Features.add; // graphics-svg.js add('load', '0', { @@ -4314,14 +4383,30 @@ add('load', '3', { }, "trigger": "dom-style" }); -// 0 +// transition-test.js add('load', '4', { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" +}); +// 0 +add('load', '5', { "name": "widget-base-ie", "trigger": "widget-base", "ua": "ie" }); // autocomplete-list-keys-sniff.js -add('load', '5', { +add('load', '6', { "name": "autocomplete-list-keys", "test": function (Y) { // Only add keyboard support to autocomplete-list if this doesn't appear to @@ -4340,7 +4425,7 @@ add('load', '5', { "trigger": "autocomplete-list" }); // graphics-canvas.js -add('load', '6', { +add('load', '7', { "name": "graphics-canvas-default", "test": function(Y) { var DOCUMENT = Y.config.doc, @@ -4350,7 +4435,7 @@ add('load', '6', { "trigger": "graphics" }); // dd-gestures-test.js -add('load', '7', { +add('load', '8', { "name": "dd-gestures", "test": function(Y) { return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); @@ -4358,7 +4443,7 @@ add('load', '7', { "trigger": "dd-drag" }); // selector-test.js -add('load', '8', { +add('load', '9', { "name": "selector-css2", "test": function (Y) { var DOCUMENT = Y.config.doc, @@ -4369,7 +4454,7 @@ add('load', '8', { "trigger": "selector" }); // history-hash-ie-test.js -add('load', '9', { +add('load', '10', { "name": "history-hash-ie", "test": function (Y) { var docMode = Y.config.doc && Y.config.doc.documentMode; diff --git a/build/yui-base/yui-base-min.js b/build/yui-base/yui-base-min.js index c9fe2df3e43..079b2785713 100644 --- a/build/yui-base/yui-base-min.js +++ b/build/yui-base/yui-base-min.js @@ -5,8 +5,8 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString(); -if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","5",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","6",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","7",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","8",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d;},"trigger":"selector"});a("load","9",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]}); -YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); \ No newline at end of file +if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; +},"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); \ No newline at end of file diff --git a/build/yui-base/yui-base.js b/build/yui-base/yui-base.js index ba9fc9a8f20..7ed677e866f 100644 --- a/build/yui-base/yui-base.js +++ b/build/yui-base/yui-base.js @@ -18,30 +18,30 @@ if (typeof YUI != 'undefined') { } /** - * The YUI global namespace object. If YUI is already defined, the - * existing YUI object will not be overwritten so that defined - * namespaces are preserved. It is the constructor for the object - * the end user interacts with. As indicated below, each instance - * has full custom event support, but only if the event system - * is available. This is a self-instantiable factory function. You - * can invoke it directly like this: - * - * YUI().use('*', function(Y) { - * // ready - * }); - * - * But it also works like this: - * - * var Y = YUI(); - * - * @class YUI - * @constructor - * @global - * @uses EventTarget - * @param o* {object} 0..n optional configuration objects. these values - * are store in Y.config. See Config for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: false + use_rls: false, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -453,33 +508,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -915,7 +978,7 @@ proto = { loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -924,10 +987,7 @@ proto = { var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -936,17 +996,22 @@ proto = { rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } }; G_ENV._rls_queue.add(function() { - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -962,6 +1027,7 @@ proto = { Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1030,7 +1096,7 @@ proto = { log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1981,7 +2047,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -1989,8 +2056,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2001,36 +2069,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2057,22 +2122,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2093,19 +2159,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2124,20 +2190,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2152,29 +2218,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2190,18 +2256,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2216,43 +2282,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3293,9 +3360,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; @@ -3664,7 +3729,11 @@ var ua = Y.UA, _loaded = function(id, url) { var q = queues[id], - sync = !q.async; + sync = (q && !q.async); + + if (!q) { + return; + } if (sync) { _clearTimeout(q); @@ -3912,7 +3981,7 @@ Y.Get = { /** * The number of request required before an automatic purge. * Can be configured via the 'purgethreshold' config - * property PURGE_THRESH + * @property PURGE_THRESH * @static * @type int * @default 20 @@ -4221,7 +4290,7 @@ Y.mix(Y.namespace('Features'), { // Y.Features.test("load", "1"); // caps=1:1;2:0;3:1; -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ var add = Y.Features.add; // graphics-svg.js add('load', '0', { @@ -4282,14 +4351,30 @@ add('load', '3', { }, "trigger": "dom-style" }); -// 0 +// transition-test.js add('load', '4', { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" +}); +// 0 +add('load', '5', { "name": "widget-base-ie", "trigger": "widget-base", "ua": "ie" }); // autocomplete-list-keys-sniff.js -add('load', '5', { +add('load', '6', { "name": "autocomplete-list-keys", "test": function (Y) { // Only add keyboard support to autocomplete-list if this doesn't appear to @@ -4308,7 +4393,7 @@ add('load', '5', { "trigger": "autocomplete-list" }); // graphics-canvas.js -add('load', '6', { +add('load', '7', { "name": "graphics-canvas-default", "test": function(Y) { var DOCUMENT = Y.config.doc, @@ -4318,7 +4403,7 @@ add('load', '6', { "trigger": "graphics" }); // dd-gestures-test.js -add('load', '7', { +add('load', '8', { "name": "dd-gestures", "test": function(Y) { return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); @@ -4326,7 +4411,7 @@ add('load', '7', { "trigger": "dd-drag" }); // selector-test.js -add('load', '8', { +add('load', '9', { "name": "selector-css2", "test": function (Y) { var DOCUMENT = Y.config.doc, @@ -4337,7 +4422,7 @@ add('load', '8', { "trigger": "selector" }); // history-hash-ie-test.js -add('load', '9', { +add('load', '10', { "name": "history-hash-ie", "test": function (Y) { var docMode = Y.config.doc && Y.config.doc.documentMode; diff --git a/build/yui-core/yui-core-debug.js b/build/yui-core/yui-core-debug.js index 5cc10241dae..7721fd75694 100644 --- a/build/yui-core/yui-core-debug.js +++ b/build/yui-core/yui-core-debug.js @@ -18,30 +18,30 @@ if (typeof YUI != 'undefined') { } /** - * The YUI global namespace object. If YUI is already defined, the - * existing YUI object will not be overwritten so that defined - * namespaces are preserved. It is the constructor for the object - * the end user interacts with. As indicated below, each instance - * has full custom event support, but only if the event system - * is available. This is a self-instantiable factory function. You - * can invoke it directly like this: - * - * YUI().use('*', function(Y) { - * // ready - * }); - * - * But it also works like this: - * - * var Y = YUI(); - * - * @class YUI - * @constructor - * @global - * @uses EventTarget - * @param o* {object} 0..n optional configuration objects. these values - * are store in Y.config. See Config for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: false + use_rls: false, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -454,33 +509,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -926,7 +989,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -935,10 +998,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -948,10 +1008,14 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } @@ -959,7 +1023,8 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); G_ENV._rls_queue.add(function() { Y.log('executing queued rls request', 'info', 'rls'); - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -975,6 +1040,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1046,7 +1112,7 @@ Y.log('Fetching loader: ' + config.base + config.loaderPath, 'info', 'yui'); log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1997,7 +2063,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -2005,8 +2072,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2017,36 +2085,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2073,22 +2138,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2109,19 +2175,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2140,20 +2206,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2168,29 +2234,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2206,18 +2272,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2232,43 +2298,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3309,9 +3376,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; diff --git a/build/yui-core/yui-core-min.js b/build/yui-core/yui-core-min.js index 0470fdc6a3c..691fa119f06 100644 --- a/build/yui-core/yui-core-min.js +++ b/build/yui-core/yui-core-min.js @@ -5,7 +5,7 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString(); -if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&vConfig for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: false + use_rls: false, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -453,33 +508,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -915,7 +978,7 @@ proto = { loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -924,10 +987,7 @@ proto = { var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -936,17 +996,22 @@ proto = { rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } }; G_ENV._rls_queue.add(function() { - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -962,6 +1027,7 @@ proto = { Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1030,7 +1096,7 @@ proto = { log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1981,7 +2047,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -1989,8 +2056,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2001,36 +2069,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2057,22 +2122,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2093,19 +2159,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2124,20 +2190,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2152,29 +2218,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2190,18 +2256,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2216,43 +2282,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3293,9 +3360,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; diff --git a/build/yui-rls/yui-rls-debug.js b/build/yui-rls/yui-rls-debug.js index add4991cbee..74c90de6c60 100644 --- a/build/yui-rls/yui-rls-debug.js +++ b/build/yui-rls/yui-rls-debug.js @@ -18,30 +18,30 @@ if (typeof YUI != 'undefined') { } /** - * The YUI global namespace object. If YUI is already defined, the - * existing YUI object will not be overwritten so that defined - * namespaces are preserved. It is the constructor for the object - * the end user interacts with. As indicated below, each instance - * has full custom event support, but only if the event system - * is available. This is a self-instantiable factory function. You - * can invoke it directly like this: - * - * YUI().use('*', function(Y) { - * // ready - * }); - * - * But it also works like this: - * - * var Y = YUI(); - * - * @class YUI - * @constructor - * @global - * @uses EventTarget - * @param o* {object} 0..n optional configuration objects. these values - * are store in Y.config. See Config for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: true + use_rls: true, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -454,33 +509,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -926,7 +989,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -935,10 +998,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -948,10 +1008,14 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } @@ -959,7 +1023,8 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); G_ENV._rls_queue.add(function() { Y.log('executing queued rls request', 'info', 'rls'); - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -975,6 +1040,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1046,7 +1112,7 @@ Y.log('Fetching loader: ' + config.base + config.loaderPath, 'info', 'yui'); log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1997,7 +2063,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -2005,8 +2072,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2017,36 +2085,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2073,22 +2138,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2109,19 +2175,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2140,20 +2206,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2168,29 +2234,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2206,18 +2272,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2232,43 +2298,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3309,9 +3376,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; @@ -3683,7 +3748,11 @@ var ua = Y.UA, _loaded = function(id, url) { var q = queues[id], - sync = !q.async; + sync = (q && !q.async); + + if (!q) { + return; + } if (sync) { _clearTimeout(q); @@ -3936,7 +4005,7 @@ Y.Get = { /** * The number of request required before an automatic purge. * Can be configured via the 'purgethreshold' config - * property PURGE_THRESH + * @property PURGE_THRESH * @static * @type int * @default 20 @@ -4253,7 +4322,7 @@ Y.mix(Y.namespace('Features'), { // Y.Features.test("load", "1"); // caps=1:1;2:0;3:1; -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ var add = Y.Features.add; // graphics-svg.js add('load', '0', { @@ -4314,14 +4383,30 @@ add('load', '3', { }, "trigger": "dom-style" }); -// 0 +// transition-test.js add('load', '4', { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" +}); +// 0 +add('load', '5', { "name": "widget-base-ie", "trigger": "widget-base", "ua": "ie" }); // autocomplete-list-keys-sniff.js -add('load', '5', { +add('load', '6', { "name": "autocomplete-list-keys", "test": function (Y) { // Only add keyboard support to autocomplete-list if this doesn't appear to @@ -4340,7 +4425,7 @@ add('load', '5', { "trigger": "autocomplete-list" }); // graphics-canvas.js -add('load', '6', { +add('load', '7', { "name": "graphics-canvas-default", "test": function(Y) { var DOCUMENT = Y.config.doc, @@ -4350,7 +4435,7 @@ add('load', '6', { "trigger": "graphics" }); // dd-gestures-test.js -add('load', '7', { +add('load', '8', { "name": "dd-gestures", "test": function(Y) { return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); @@ -4358,7 +4443,7 @@ add('load', '7', { "trigger": "dd-drag" }); // selector-test.js -add('load', '8', { +add('load', '9', { "name": "selector-css2", "test": function (Y) { var DOCUMENT = Y.config.doc, @@ -4369,7 +4454,7 @@ add('load', '8', { "trigger": "selector" }); // history-hash-ie-test.js -add('load', '9', { +add('load', '10', { "name": "history-hash-ie", "test": function (Y) { var docMode = Y.config.doc && Y.config.doc.documentMode; @@ -4479,6 +4564,33 @@ YUI.add('rls', function(Y) { * @class rls */ + +Y.rls_handleTimeout = function(o) { + Y.Get.abort(o.tId); + o.purge(); + o.message = 'RLS request timed out, fetching loader'; + Y.rls_failure(o); +}; + +Y.rls_handleFailure = function(o) { + o.message = 'RLS request failed, fetching loader'; + Y.rls_failure(o); +}; + +Y.rls_failure = function(o) { + Y.log(o.message, 'warn', 'rls'); + YUI.Env.rls_disabled = true; + Y.config.use_rls = false; + if (o.data) { + o.data.unshift('loader'); + Y._use(o.data, function(Y, response) { + Y._notify(Y.rls_callback, response, o.data); + //Call the RLS done method, so it can progress the queue + Y.rls_advance(); + }); + } +}; + /** * Checks the environment for local modules and deals with them before firing off an RLS request. * This needs to make sure that all dependencies are calculated before it can make an RLS request in @@ -4492,6 +4604,14 @@ YUI.add('rls', function(Y) { * @param {Array} cb.argz The modified list or modules needed to require */ Y.rls_locals = function(instance, argz, cb) { + if (YUI.Env.rls_disabled) { + var data = { + message: 'RLS is disabled, moving to loader', + data: argz + }; + Y.rls_failure(data); + return; + } if (instance.config.modules) { var files = [], asked = Y.Array.hash(argz), PATH = 'fullpath', f, @@ -4541,11 +4661,26 @@ Y.rls_locals = function(instance, argz, cb) { */ Y.rls_needs = function(mod, instance) { var self = instance || this, - config = self.config; + config = self.config, i, + m = YUI.Env.aliases[mod]; + + if (m) { + Y.log('We have an alias (' + mod + '), are all the deps available?', 'info', 'rls'); + for (i = 0; i < m.length; i++) { + if (Y.rls_needs(m[i])) { + Y.log('Needs (' + mod + ')', 'info', 'rls'); + return true; + } + } + Y.log('Does not need (' + mod + ')', 'info', 'rls'); + return false; + } if (!YUI.Env.mods[mod] && !(config.modules && config.modules[mod])) { + Y.log('Needs (' + mod + ')', 'info', 'rls'); return true; } + Y.log('Does not need (' + mod + ')', 'info', 'rls'); return false; }; @@ -4558,7 +4693,7 @@ Y.rls_needs = function(mod, instance) { * @return {string} the url for the remote loader service call, returns false if no modules are required to be fetched (they are in the ENV already). */ Y._rls = function(what) { - what.push('intl'); + //what.push('intl'); Y.log('Issuing a new RLS Request', 'info', 'rls'); var config = Y.config, mods = config.modules, @@ -4576,6 +4711,7 @@ Y._rls = function(what) { '2v': config.yui2, filt: config.filter, filts: config.filters, + ignore: config.ignore, tests: 1 // required in the template }, // The rls base path @@ -4589,14 +4725,29 @@ Y._rls = function(what) { s.push(param + '={' + param + '}'); } } - // console.log('rls_tmpl: ' + s); return s.join('&'); }(), - m = [], asked = {}, o, d, mod, - w = [], gallery = [], + m = [], asked = {}, o, d, mod, a, j, + w = [], i, len = what.length, url; + //Explode our aliases.. + for (i = 0; i < len; i++) { + a = YUI.Env.aliases[what[i]]; + if (a) { + for (j = 0; j < a.length; j++) { + w.push(a[j]); + } + } else { + w.push(what[i]); + } + + } + what = w; + len = what.length; + + for (i = 0; i < len; i++) { asked[what[i]] = 1; if (Y.rls_needs(what[i])) { @@ -4609,7 +4760,7 @@ Y._rls = function(what) { if (mods) { for (i in mods) { - if (asked[i] && mods[i].requires) { + if (asked[i] && mods[i].requires && !mods[i].noop) { len = mods[i].requires.length; for (o = 0; o < len; o++) { mod = mods[i].requires[o]; @@ -4619,12 +4770,14 @@ Y._rls = function(what) { d = YUI.Env.mods[mod] || mods[mod]; if (d) { d = d.details || d; - if (d.requires) { - YArray.each(d.requires, function(o) { - if (Y.rls_needs(o)) { - m.push(o); - } - }); + if (!d.noop) { + if (d.requires) { + YArray.each(d.requires, function(o) { + if (Y.rls_needs(o)) { + m.push(o); + } + }); + } } } } @@ -4636,38 +4789,30 @@ Y._rls = function(what) { YObject.each(YUI.Env.mods, function(i) { if (asked[i.name]) { if (i.details && i.details.requires) { - YArray.each(i.details.requires, function(o) { - if (Y.rls_needs(o)) { - m.push(o); - } - }); - } - } - }); - - m = YArray.dedupe(m); - - YArray.each(m, function(mod) { - if (mod.indexOf('gallery-') === 0 || mod.indexOf('yui2-') === 0) { - gallery.push(mod); - if (!Y.Loader) { - //Fetch Loader.. - w.push('loader-base'); - what.push('loader-base'); + if (!i.noop) { + YArray.each(i.details.requires, function(o) { + if (Y.rls_needs(o)) { + m.push(o); + } + }); + } } - } else { - w.push(mod); } }); - m = w; + //Add in the debug modules if (rls.filt === 'debug') { m.unshift('dump', 'yui-log'); } + //If they have a groups config, add the loader-base module + if (Y.config.groups) { + m.unshift('loader-base'); + } + + m = YArray.dedupe(m); //Strip Duplicates m = YArray.dedupe(m); - gallery = YArray.dedupe(gallery); what = YArray.dedupe(what); if (!m.length) { @@ -4688,7 +4833,6 @@ Y._rls = function(what) { YUI._rls_active = { asked: what, attach: m, - gallery: gallery, inst: Y, url: url }; @@ -4704,6 +4848,15 @@ Y.rls_oncomplete = function(cb) { YUI._rls_active.cb = cb; }; +Y.rls_advance = function() { + var G_ENV = YUI.Env; + + G_ENV._rls_in_progress = false; + if (G_ENV._rls_queue.size()) { + G_ENV._rls_queue.next()(); + } +}; + /** * Calls the callback registered with Y.rls_oncomplete when the RLS request (and it's dependency requests) is done. * @method rls_done @@ -4711,6 +4864,7 @@ Y.rls_oncomplete = function(cb) { */ Y.rls_done = function(data) { Y.log('RLS Request complete', 'info', 'rls'); + data.success = true; YUI._rls_active.cb(data); }; @@ -4751,12 +4905,18 @@ if (!YUI.$rls) { Y = rls_active.inst; if (Y) { Y.log('RLS request received, processing', 'info', 'rls'); - if (req.css) { - Y.Get.css(rls_active.url + '&css=1'); + if (req.error) { + Y.rls_failure({ + message: req.error, + data: req.modules + }); + } + if (YUI.Env && YUI.Env.rls_disabled) { + Y.log('RLS processing on this instance is disabled.', 'warn', 'rls'); + return; } - if (rls_active.gallery.length) { - req.modules = req.modules || []; - req.modules = [].concat(req.modules, rls_active.gallery); + if (req.css && Y.config.fetchCSS) { + Y.Get.css(rls_active.url + '&css=1'); } if (req.modules && !req.css) { if (req.modules.length) { @@ -4775,18 +4935,29 @@ if (!YUI.$rls) { YUI._rls_skins.push(v); } }); - Y._attach([].concat(req.modules, rls_active.attach)); - if (rls_active.gallery.length && Y.Loader) { - Y.log('Making extra gallery request', 'info', 'rls'); + + Y._attach([].concat(req.modules, rls_active.asked)); + + var additional = req.missing; + + if (Y.config.groups) { + if (!additional) { + additional = []; + } + additional = [].concat(additional, rls_active.what); + } + + if (additional && Y.Loader) { + Y.log('Making extra Loader request', 'info', 'rls'); var loader = new Y.Loader(rls_active.inst.config); loader.onEnd = Y.rls_done; loader.context = Y; - loader.data = rls_active.gallery; + loader.data = additional; loader.ignoreRegistered = false; - loader.require(rls_active.gallery); + loader.require(additional); loader.insert(null, (Y.config.fetchCSS) ? null : 'js'); } else { - Y.rls_done({ data: rls_active.asked }); + Y.rls_done({ data: req.modules }); } } } diff --git a/build/yui-rls/yui-rls-min.js b/build/yui-rls/yui-rls-min.js index 72a7006bdfd..d98ff0342d1 100644 --- a/build/yui-rls/yui-rls-min.js +++ b/build/yui-rls/yui-rls-min.js @@ -5,8 +5,8 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","5",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","6",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","7",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","8",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d;},"trigger":"selector"});a("load","9",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]}); -YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("rls",function(a){a.rls_locals=function(c,i,b){if(c.config.modules){var g=[],j=a.Array.hash(i),d="fullpath",h,e=c.config.modules;for(h in e){if(e[h][d]){if(j[h]){g.push(e[h][d]);if(e[h].requires){a.Array.each(e[h].requires,function(k){if(!YUI.Env.mods[k]){if(e[k]){if(e[k][d]){g.push(e[k][d]);i.push(k);}}}});}}}}if(g.length){a.Get.script(g,{onEnd:function(f){b(c,i);},data:i});}else{b(c,i);}}else{b(c,i);}};a.rls_needs=function(e,b){var c=b||this,d=c.config;if(!YUI.Env.mods[e]&&!(d.modules&&d.modules[e])){return true;}return false;};a._rls=function(t){t.push("intl");var v=a.config,f=v.modules,h=a.Array,c=a.Object,g=v.rls||{m:1,v:a.version,gv:v.gallery,env:1,lang:v.lang,"2in3v":v["2in3"],"2v":v.yui2,filt:v.filter,filts:v.filters,tests:1},l=v.rls_base||"http://l.yimg.com/py/load?httpcache=rls-seed&gzip=1&",n=v.rls_tmpl||function(){var d=[],i;for(i in g){if(i in g&&g[i]){d.push(i+"={"+i+"}");}}return d.join("&");}(),q=[],j={},p,u,x,k=[],b=[],r,s=t.length,e;for(r=0;r-1){YUI._rls_skins.push(g);}});e._attach([].concat(d.modules,f.attach));if(f.gallery.length&&e.Loader){var b=new e.Loader(f.inst.config);b.onEnd=e.rls_done;b.context=e;b.data=f.gallery;b.ignoreRegistered=false;b.require(f.gallery);b.insert(null,(e.config.fetchCSS)?null:"js");}else{e.rls_done({data:f.asked});}}}};}},"3.4.0",{requires:["get","features"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","rls","yui-log","yui-later"]}); \ No newline at end of file +if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; +},"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("rls",function(a){a.rls_handleTimeout=function(b){a.Get.abort(b.tId);b.purge();b.message="RLS request timed out, fetching loader";a.rls_failure(b);};a.rls_handleFailure=function(b){b.message="RLS request failed, fetching loader";a.rls_failure(b);};a.rls_failure=function(b){YUI.Env.rls_disabled=true;a.config.use_rls=false;if(b.data){b.data.unshift("loader");a._use(b.data,function(d,c){d._notify(d.rls_callback,c,b.data);d.rls_advance();});}};a.rls_locals=function(i,e,c){if(YUI.Env.rls_disabled){var g={message:"RLS is disabled, moving to loader",data:e};a.rls_failure(g);return;}if(i.config.modules){var b=[],d=a.Array.hash(e),k="fullpath",h,j=i.config.modules;for(h in j){if(j[h][k]){if(d[h]){b.push(j[h][k]);if(j[h].requires){a.Array.each(j[h].requires,function(l){if(!YUI.Env.mods[l]){if(j[l]){if(j[l][k]){b.push(j[l][k]);e.push(l);}}}});}}}}if(b.length){a.Get.script(b,{onEnd:function(f){c(i,e);},data:e});}else{c(i,e);}}else{c(i,e);}};a.rls_needs=function(g,c){var d=c||this,e=d.config,f,b=YUI.Env.aliases[g];if(b){for(f=0;f-1){YUI._rls_skins.push(h);}});f._attach([].concat(e.modules,g.asked));var c=e.missing;if(f.config.groups){if(!c){c=[];}c=[].concat(c,g.what);}if(c&&f.Loader){var b=new f.Loader(g.inst.config);b.onEnd=f.rls_done;b.context=f;b.data=c;b.ignoreRegistered=false;b.require(c);b.insert(null,(f.config.fetchCSS)?null:"js");}else{f.rls_done({data:e.modules});}}}};}},"3.4.0",{requires:["get","features"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","rls","yui-log","yui-later"]}); \ No newline at end of file diff --git a/build/yui-rls/yui-rls.js b/build/yui-rls/yui-rls.js index 1e04773351d..e80a9ff0358 100644 --- a/build/yui-rls/yui-rls.js +++ b/build/yui-rls/yui-rls.js @@ -18,30 +18,30 @@ if (typeof YUI != 'undefined') { } /** - * The YUI global namespace object. If YUI is already defined, the - * existing YUI object will not be overwritten so that defined - * namespaces are preserved. It is the constructor for the object - * the end user interacts with. As indicated below, each instance - * has full custom event support, but only if the event system - * is available. This is a self-instantiable factory function. You - * can invoke it directly like this: - * - * YUI().use('*', function(Y) { - * // ready - * }); - * - * But it also works like this: - * - * var Y = YUI(); - * - * @class YUI - * @constructor - * @global - * @uses EventTarget - * @param o* {object} 0..n optional configuration objects. these values - * are store in Y.config. See Config for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: true + use_rls: true, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -453,33 +508,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -915,7 +978,7 @@ proto = { loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -924,10 +987,7 @@ proto = { var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -936,17 +996,22 @@ proto = { rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } }; G_ENV._rls_queue.add(function() { - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -962,6 +1027,7 @@ proto = { Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1030,7 +1096,7 @@ proto = { log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1981,7 +2047,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -1989,8 +2056,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2001,36 +2069,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2057,22 +2122,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2093,19 +2159,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2124,20 +2190,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2152,29 +2218,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2190,18 +2256,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2216,43 +2282,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3293,9 +3360,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; @@ -3664,7 +3729,11 @@ var ua = Y.UA, _loaded = function(id, url) { var q = queues[id], - sync = !q.async; + sync = (q && !q.async); + + if (!q) { + return; + } if (sync) { _clearTimeout(q); @@ -3912,7 +3981,7 @@ Y.Get = { /** * The number of request required before an automatic purge. * Can be configured via the 'purgethreshold' config - * property PURGE_THRESH + * @property PURGE_THRESH * @static * @type int * @default 20 @@ -4221,7 +4290,7 @@ Y.mix(Y.namespace('Features'), { // Y.Features.test("load", "1"); // caps=1:1;2:0;3:1; -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ var add = Y.Features.add; // graphics-svg.js add('load', '0', { @@ -4282,14 +4351,30 @@ add('load', '3', { }, "trigger": "dom-style" }); -// 0 +// transition-test.js add('load', '4', { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" +}); +// 0 +add('load', '5', { "name": "widget-base-ie", "trigger": "widget-base", "ua": "ie" }); // autocomplete-list-keys-sniff.js -add('load', '5', { +add('load', '6', { "name": "autocomplete-list-keys", "test": function (Y) { // Only add keyboard support to autocomplete-list if this doesn't appear to @@ -4308,7 +4393,7 @@ add('load', '5', { "trigger": "autocomplete-list" }); // graphics-canvas.js -add('load', '6', { +add('load', '7', { "name": "graphics-canvas-default", "test": function(Y) { var DOCUMENT = Y.config.doc, @@ -4318,7 +4403,7 @@ add('load', '6', { "trigger": "graphics" }); // dd-gestures-test.js -add('load', '7', { +add('load', '8', { "name": "dd-gestures", "test": function(Y) { return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); @@ -4326,7 +4411,7 @@ add('load', '7', { "trigger": "dd-drag" }); // selector-test.js -add('load', '8', { +add('load', '9', { "name": "selector-css2", "test": function (Y) { var DOCUMENT = Y.config.doc, @@ -4337,7 +4422,7 @@ add('load', '8', { "trigger": "selector" }); // history-hash-ie-test.js -add('load', '9', { +add('load', '10', { "name": "history-hash-ie", "test": function (Y) { var docMode = Y.config.doc && Y.config.doc.documentMode; @@ -4447,6 +4532,32 @@ YUI.add('rls', function(Y) { * @class rls */ + +Y.rls_handleTimeout = function(o) { + Y.Get.abort(o.tId); + o.purge(); + o.message = 'RLS request timed out, fetching loader'; + Y.rls_failure(o); +}; + +Y.rls_handleFailure = function(o) { + o.message = 'RLS request failed, fetching loader'; + Y.rls_failure(o); +}; + +Y.rls_failure = function(o) { + YUI.Env.rls_disabled = true; + Y.config.use_rls = false; + if (o.data) { + o.data.unshift('loader'); + Y._use(o.data, function(Y, response) { + Y._notify(Y.rls_callback, response, o.data); + //Call the RLS done method, so it can progress the queue + Y.rls_advance(); + }); + } +}; + /** * Checks the environment for local modules and deals with them before firing off an RLS request. * This needs to make sure that all dependencies are calculated before it can make an RLS request in @@ -4460,6 +4571,14 @@ YUI.add('rls', function(Y) { * @param {Array} cb.argz The modified list or modules needed to require */ Y.rls_locals = function(instance, argz, cb) { + if (YUI.Env.rls_disabled) { + var data = { + message: 'RLS is disabled, moving to loader', + data: argz + }; + Y.rls_failure(data); + return; + } if (instance.config.modules) { var files = [], asked = Y.Array.hash(argz), PATH = 'fullpath', f, @@ -4509,7 +4628,17 @@ Y.rls_locals = function(instance, argz, cb) { */ Y.rls_needs = function(mod, instance) { var self = instance || this, - config = self.config; + config = self.config, i, + m = YUI.Env.aliases[mod]; + + if (m) { + for (i = 0; i < m.length; i++) { + if (Y.rls_needs(m[i])) { + return true; + } + } + return false; + } if (!YUI.Env.mods[mod] && !(config.modules && config.modules[mod])) { return true; @@ -4526,7 +4655,7 @@ Y.rls_needs = function(mod, instance) { * @return {string} the url for the remote loader service call, returns false if no modules are required to be fetched (they are in the ENV already). */ Y._rls = function(what) { - what.push('intl'); + //what.push('intl'); var config = Y.config, mods = config.modules, YArray = Y.Array, @@ -4543,6 +4672,7 @@ Y._rls = function(what) { '2v': config.yui2, filt: config.filter, filts: config.filters, + ignore: config.ignore, tests: 1 // required in the template }, // The rls base path @@ -4556,14 +4686,29 @@ Y._rls = function(what) { s.push(param + '={' + param + '}'); } } - // console.log('rls_tmpl: ' + s); return s.join('&'); }(), - m = [], asked = {}, o, d, mod, - w = [], gallery = [], + m = [], asked = {}, o, d, mod, a, j, + w = [], i, len = what.length, url; + //Explode our aliases.. + for (i = 0; i < len; i++) { + a = YUI.Env.aliases[what[i]]; + if (a) { + for (j = 0; j < a.length; j++) { + w.push(a[j]); + } + } else { + w.push(what[i]); + } + + } + what = w; + len = what.length; + + for (i = 0; i < len; i++) { asked[what[i]] = 1; if (Y.rls_needs(what[i])) { @@ -4574,7 +4719,7 @@ Y._rls = function(what) { if (mods) { for (i in mods) { - if (asked[i] && mods[i].requires) { + if (asked[i] && mods[i].requires && !mods[i].noop) { len = mods[i].requires.length; for (o = 0; o < len; o++) { mod = mods[i].requires[o]; @@ -4584,12 +4729,14 @@ Y._rls = function(what) { d = YUI.Env.mods[mod] || mods[mod]; if (d) { d = d.details || d; - if (d.requires) { - YArray.each(d.requires, function(o) { - if (Y.rls_needs(o)) { - m.push(o); - } - }); + if (!d.noop) { + if (d.requires) { + YArray.each(d.requires, function(o) { + if (Y.rls_needs(o)) { + m.push(o); + } + }); + } } } } @@ -4601,38 +4748,30 @@ Y._rls = function(what) { YObject.each(YUI.Env.mods, function(i) { if (asked[i.name]) { if (i.details && i.details.requires) { - YArray.each(i.details.requires, function(o) { - if (Y.rls_needs(o)) { - m.push(o); - } - }); - } - } - }); - - m = YArray.dedupe(m); - - YArray.each(m, function(mod) { - if (mod.indexOf('gallery-') === 0 || mod.indexOf('yui2-') === 0) { - gallery.push(mod); - if (!Y.Loader) { - //Fetch Loader.. - w.push('loader-base'); - what.push('loader-base'); + if (!i.noop) { + YArray.each(i.details.requires, function(o) { + if (Y.rls_needs(o)) { + m.push(o); + } + }); + } } - } else { - w.push(mod); } }); - m = w; + //Add in the debug modules if (rls.filt === 'debug') { m.unshift('dump', 'yui-log'); } + //If they have a groups config, add the loader-base module + if (Y.config.groups) { + m.unshift('loader-base'); + } + + m = YArray.dedupe(m); //Strip Duplicates m = YArray.dedupe(m); - gallery = YArray.dedupe(gallery); what = YArray.dedupe(what); if (!m.length) { @@ -4652,7 +4791,6 @@ Y._rls = function(what) { YUI._rls_active = { asked: what, attach: m, - gallery: gallery, inst: Y, url: url }; @@ -4668,12 +4806,22 @@ Y.rls_oncomplete = function(cb) { YUI._rls_active.cb = cb; }; +Y.rls_advance = function() { + var G_ENV = YUI.Env; + + G_ENV._rls_in_progress = false; + if (G_ENV._rls_queue.size()) { + G_ENV._rls_queue.next()(); + } +}; + /** * Calls the callback registered with Y.rls_oncomplete when the RLS request (and it's dependency requests) is done. * @method rls_done * @param {Array} data The modules loaded */ Y.rls_done = function(data) { + data.success = true; YUI._rls_active.cb(data); }; @@ -4713,12 +4861,17 @@ if (!YUI.$rls) { var rls_active = YUI._rls_active, Y = rls_active.inst; if (Y) { - if (req.css) { - Y.Get.css(rls_active.url + '&css=1'); + if (req.error) { + Y.rls_failure({ + message: req.error, + data: req.modules + }); + } + if (YUI.Env && YUI.Env.rls_disabled) { + return; } - if (rls_active.gallery.length) { - req.modules = req.modules || []; - req.modules = [].concat(req.modules, rls_active.gallery); + if (req.css && Y.config.fetchCSS) { + Y.Get.css(rls_active.url + '&css=1'); } if (req.modules && !req.css) { if (req.modules.length) { @@ -4736,17 +4889,28 @@ if (!YUI.$rls) { YUI._rls_skins.push(v); } }); - Y._attach([].concat(req.modules, rls_active.attach)); - if (rls_active.gallery.length && Y.Loader) { + + Y._attach([].concat(req.modules, rls_active.asked)); + + var additional = req.missing; + + if (Y.config.groups) { + if (!additional) { + additional = []; + } + additional = [].concat(additional, rls_active.what); + } + + if (additional && Y.Loader) { var loader = new Y.Loader(rls_active.inst.config); loader.onEnd = Y.rls_done; loader.context = Y; - loader.data = rls_active.gallery; + loader.data = additional; loader.ignoreRegistered = false; - loader.require(rls_active.gallery); + loader.require(additional); loader.insert(null, (Y.config.fetchCSS) ? null : 'js'); } else { - Y.rls_done({ data: rls_active.asked }); + Y.rls_done({ data: req.modules }); } } } diff --git a/build/yui/yui-debug.js b/build/yui/yui-debug.js index db3a6ca3c3e..435452a6906 100644 --- a/build/yui/yui-debug.js +++ b/build/yui/yui-debug.js @@ -18,30 +18,30 @@ if (typeof YUI != 'undefined') { } /** - * The YUI global namespace object. If YUI is already defined, the - * existing YUI object will not be overwritten so that defined - * namespaces are preserved. It is the constructor for the object - * the end user interacts with. As indicated below, each instance - * has full custom event support, but only if the event system - * is available. This is a self-instantiable factory function. You - * can invoke it directly like this: - * - * YUI().use('*', function(Y) { - * // ready - * }); - * - * But it also works like this: - * - * var Y = YUI(); - * - * @class YUI - * @constructor - * @global - * @uses EventTarget - * @param o* {object} 0..n optional configuration objects. these values - * are store in Y.config. See Config for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: false + use_rls: false, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -454,33 +509,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -926,7 +989,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -935,10 +998,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -948,10 +1008,14 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } @@ -959,7 +1023,8 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); G_ENV._rls_queue.add(function() { Y.log('executing queued rls request', 'info', 'rls'); - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -975,6 +1040,7 @@ Y.log('Modules missing: ' + missing + ', ' + missing.length, 'info', 'yui'); Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1046,7 +1112,7 @@ Y.log('Fetching loader: ' + config.base + config.loaderPath, 'info', 'yui'); log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1997,7 +2063,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -2005,8 +2072,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2017,36 +2085,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2073,22 +2138,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2109,19 +2175,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2140,20 +2206,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2168,29 +2234,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2206,18 +2272,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2232,43 +2298,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3309,9 +3376,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; @@ -3683,7 +3748,11 @@ var ua = Y.UA, _loaded = function(id, url) { var q = queues[id], - sync = !q.async; + sync = (q && !q.async); + + if (!q) { + return; + } if (sync) { _clearTimeout(q); @@ -3936,7 +4005,7 @@ Y.Get = { /** * The number of request required before an automatic purge. * Can be configured via the 'purgethreshold' config - * property PURGE_THRESH + * @property PURGE_THRESH * @static * @type int * @default 20 @@ -4253,7 +4322,7 @@ Y.mix(Y.namespace('Features'), { // Y.Features.test("load", "1"); // caps=1:1;2:0;3:1; -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ var add = Y.Features.add; // graphics-svg.js add('load', '0', { @@ -4314,14 +4383,30 @@ add('load', '3', { }, "trigger": "dom-style" }); -// 0 +// transition-test.js add('load', '4', { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" +}); +// 0 +add('load', '5', { "name": "widget-base-ie", "trigger": "widget-base", "ua": "ie" }); // autocomplete-list-keys-sniff.js -add('load', '5', { +add('load', '6', { "name": "autocomplete-list-keys", "test": function (Y) { // Only add keyboard support to autocomplete-list if this doesn't appear to @@ -4340,7 +4425,7 @@ add('load', '5', { "trigger": "autocomplete-list" }); // graphics-canvas.js -add('load', '6', { +add('load', '7', { "name": "graphics-canvas-default", "test": function(Y) { var DOCUMENT = Y.config.doc, @@ -4350,7 +4435,7 @@ add('load', '6', { "trigger": "graphics" }); // dd-gestures-test.js -add('load', '7', { +add('load', '8', { "name": "dd-gestures", "test": function(Y) { return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); @@ -4358,7 +4443,7 @@ add('load', '7', { "trigger": "dd-drag" }); // selector-test.js -add('load', '8', { +add('load', '9', { "name": "selector-css2", "test": function (Y) { var DOCUMENT = Y.config.doc, @@ -4369,7 +4454,7 @@ add('load', '8', { "trigger": "selector" }); // history-hash-ie-test.js -add('load', '9', { +add('load', '10', { "name": "history-hash-ie", "test": function (Y) { var docMode = Y.config.doc && Y.config.doc.documentMode; @@ -4670,7 +4755,7 @@ if (!YUI.Env[Y.version]) { BUILD = '/build/', ROOT = VERSION + BUILD, CDN_BASE = Y.Env.base, - GALLERY_VERSION = 'gallery-2011.06.08-20-04', + GALLERY_VERSION = 'gallery-2011.08.03-21-18', TNT = '2in3', TNT_VERSION = '4', YUI2_VERSION = '2.9.0', @@ -5003,7 +5088,7 @@ Y.Loader = function(o) { * @type string * @default http://yui.yahooapis.com/[YUI VERSION]/build/ */ - self.base = Y.Env.meta.base; + self.base = Y.Env.meta.base + Y.Env.meta.root; /** * Base path for the combo service @@ -5028,7 +5113,14 @@ Y.Loader = function(o) { */ self.combine = o.base && (o.base.indexOf(self.comboBase.substr(0, 20)) > -1); - + + /** + * The default seperator to use between files in a combo URL + * @property comboSep + * @type {String} + * @default Ampersand + */ + self.comboSep = '&'; /** * Max url length for combo urls. The default is 2048 for * internet explorer, and 8192 otherwise. This is the URL @@ -5338,9 +5430,13 @@ Y.Loader.prototype = { 'replaceStr': '-debug.js' } }, - - _inspectPage: function() { - oeach(ON_PAGE, function(v, k) { + /* + * Check the pages meta-data and cache the result. + * @method _inspectPage + * @private + */ + _inspectPage: function() { + oeach(ON_PAGE, function(v, k) { if (v.details) { var m = this.moduleInfo[k], req = v.details.requires, @@ -5358,10 +5454,14 @@ Y.Loader.prototype = { m._inspected = true; } }, this); - }, - -// returns true if b is not loaded, and is required -// directly or by means of modules it supersedes. + }, + /* + * returns true if b is not loaded, and is required directly or by means of modules it supersedes. + * @private + * @method _requires + * @param {String} mod1 The first module to compare + * @param {String} mod2 The second module to compare + */ _requires: function(mod1, mod2) { var i, rm, after_map, s, @@ -5421,7 +5521,11 @@ Y.Loader.prototype = { return false; }, - + /** + * Apply a new config to the Loader instance + * @method _config + * @param {Object} o The new configuration + */ _config: function(o) { var i, j, val, f, group, groupName, self = this; // apply config values @@ -5661,7 +5765,7 @@ Y.Loader.prototype = { o.requires = this.filterRequires(o.requires) || []; // Handle submodule logic - var subs = o.submodules, i, l, sup, s, smod, plugins, plug, + var subs = o.submodules, i, l, t, sup, s, smod, plugins, plug, j, langs, packName, supName, flatSup, flatLang, lang, ret, overrides, skinname, when, conditions = this.conditions, trigger; @@ -5797,24 +5901,34 @@ Y.Loader.prototype = { } if (o.condition) { - trigger = o.condition.trigger; - when = o.condition.when; - conditions[trigger] = conditions[trigger] || {}; - conditions[trigger][name] = o.condition; - // the 'when' attribute can be 'before', 'after', or 'instead' - // the default is after. - if (when && when != 'after') { - if (when == 'instead') { // replace the trigger - o.supersedes = o.supersedes || []; - o.supersedes.push(trigger); - } else { // before the trigger - // the trigger requires the conditional mod, - // so it should appear before the conditional - // mod if we do not intersede. + t = o.condition.trigger; + if (YUI.Env.aliases[t]) { + t = YUI.Env.aliases[t]; + } + if (!Y.Lang.isArray(t)) { + t = [t]; + } + + for (i = 0; i < t.length; i++) { + trigger = t[i]; + when = o.condition.when; + conditions[trigger] = conditions[trigger] || {}; + conditions[trigger][name] = o.condition; + // the 'when' attribute can be 'before', 'after', or 'instead' + // the default is after. + if (when && when != 'after') { + if (when == 'instead') { // replace the trigger + o.supersedes = o.supersedes || []; + o.supersedes.push(trigger); + } else { // before the trigger + // the trigger requires the conditional mod, + // so it should appear before the conditional + // mod if we do not intersede. + } + } else { // after the trigger + o.after = o.after || []; + o.after.push(trigger); } - } else { // after the trigger - o.after = o.after || []; - o.after.push(trigger); } } @@ -5881,18 +5995,31 @@ Y.Loader.prototype = { } }, + /** + * Explodes the required array to remove aliases and replace them with real modules + * @method filterRequires + * @param {Array} r The original requires array + * @return {Array} The new array of exploded requirements + */ filterRequires: function(r) { if (r) { if (!Y.Lang.isArray(r)) { r = [r]; } r = Y.Array(r); - var c = []; - for (var i = 0; i < r.length; i++) { - var mod = this.getModule(r[i]); + var c = [], i, mod, o, m; + + for (i = 0; i < r.length; i++) { + mod = this.getModule(r[i]); if (mod && mod.use) { - for (var o = 0; o < mod.use.length; o++) { - c.push(mod.use[o]); + for (o = 0; o < mod.use.length; o++) { + //Must walk the other modules in case a module is a rollup of rollups (datatype) + m = this.getModule(mod.use[o]); + if (m && m.use) { + c = Y.Array.dedupe([].concat(c, this.filterRequires(m.use))); + } else { + c.push(mod.use[o]); + } } } else { c.push(r[i]); @@ -5921,7 +6048,7 @@ Y.Loader.prototype = { adddef = ON_PAGE[name] && ON_PAGE[name].details, d, k, m1, r, old_mod, - o, skinmod, skindef, + o, skinmod, skindef, skinpar, skinname, intl = mod.lang || mod.intl, info = this.moduleInfo, ftests = Y.Features && Y.Features.tests.load, @@ -6043,7 +6170,6 @@ Y.Loader.prototype = { }); } else { oeach(cond, function(def, condmod) { - if (!hash[condmod]) { go = def && ((def.ua && Y.UA[def.ua]) || (def.test && def.test(Y, r))); @@ -6067,9 +6193,18 @@ Y.Loader.prototype = { // Create skin modules if (mod.skinnable) { skindef = this.skin.overrides; - if (skindef && skindef[name]) { - for (i = 0; i < skindef[name].length; i++) { - skinmod = this._addSkin(skindef[name][i], name); + oeach(YUI.Env.aliases, function(o, n) { + if (Y.Array.indexOf(o, name) > -1) { + skinpar = n; + } + }); + if (skindef && (skindef[name] || (skinpar && skindef[skinpar]))) { + skinname = name; + if (skindef[skinpar]) { + skinname = skinpar; + } + for (i = 0; i < skindef[skinname].length; i++) { + skinmod = this._addSkin(skindef[skinname][i], name); d.push(skinmod); } } else { @@ -6162,7 +6297,14 @@ Y.Loader.prototype = { this._sort(); } }, - + /** + * Creates a "psuedo" package for languages provided in the lang array + * @method _addLangPack + * @param {String} lang The language to create + * @param {Object} m The module definition to create the language pack around + * @param {String} packName The name of the package (e.g: lang/datatype-date-en-US) + * @return {Object} The module definition + */ _addLangPack: function(lang, m, packName) { var name = m.name, packPath, @@ -6304,7 +6446,12 @@ Y.Loader.prototype = { // Y.log('After explode: ' + YObject.keys(r)); }, - + /** + * Get's the loader meta data for the requested module + * @method getModule + * @param {String} mname The module name to get + * @return {Object} The module metadata + */ getModule: function(mname) { //TODO: Remove name check - it's a quick hack to fix pattern WIP if (!mname) { @@ -6364,7 +6511,9 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + r = r || this.required; - var i, j, s, m, type = this.loadType; + var i, j, s, m, type = this.loadType, + ignore = this.ignore ? YArray.hash(this.ignore) : false; + for (i in r) { if (r.hasOwnProperty(i)) { m = this.getModule(i); @@ -6374,6 +6523,9 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + (type && m && m.type != type)) { delete r[i]; } + if (ignore && ignore[i]) { + delete r[i]; + } // remove anything this module supersedes s = m && m.supersedes; if (s) { @@ -6388,7 +6540,13 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + return r; }, - + /** + * Handles the queue when a module has been loaded for all cases + * @method _finish + * @private + * @param {String} msg The message from Loader + * @param {Boolean} success A boolean denoting success or failure + */ _finish: function(msg, success) { Y.log('loader finishing: ' + msg + ', ' + Y.id + ', ' + this.data, 'info', 'loader'); @@ -6405,7 +6563,11 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + } this._continue(); }, - + /** + * The default Loader onSuccess handler, calls this.onSuccess with a payload + * @method _onSuccess + * @private + */ _onSuccess: function() { var self = this, skipped = Y.merge(self.skipped), fn, failed = [], rreg = self.requireRegistration, @@ -6440,6 +6602,11 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + } self._finish(msg, success); }, + /** + * The default Loader onFailure handler, calls this.onFailure with a payload + * @method _onFailure + * @private + */ _onFailure: function(o) { Y.log('load error: ' + o.msg + ', ' + Y.id, 'error', 'loader'); var f = this.onFailure, msg = 'failure: ' + o.msg; @@ -6453,6 +6620,11 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + this._finish(msg, false); }, + /** + * The default Loader onTimeout handler, calls this.onTimeout with a payload + * @method _onTimeout + * @private + */ _onTimeout: function() { Y.log('loader timeout: ' + Y.id, 'error', 'loader'); var f = this.onTimeout; @@ -6536,12 +6708,23 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + this.sorted = s; }, - + /** + * (Unimplemented) + * @method partial + * @unimplemented + */ partial: function(partial, o, type) { this.sorted = partial; this.insert(o, type, true); }, - + /** + * Handles the actual insertion of script/link tags + * @method _insert + * @param {Object} source The YUI instance the request came from + * @param {Object} o The metadata to include + * @param {String} type JS or CSS + * @param {Boolean} [skipcalc=false] Do a Loader.calculate on the meta + */ _insert: function(source, o, type, skipcalc) { // Y.log('private _insert() ' + (type || '') + ', ' + Y.id, "info", "loader"); @@ -6607,9 +6790,11 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + this.loadNext(); }, - - // Once a loader operation is completely finished, process - // any additional queued items. + /** + * Once a loader operation is completely finished, process any additional queued items. + * @method _continue + * @private + */ _continue: function() { if (!(_queue.running) && _queue.size() > 0) { _queue.running = true; @@ -6649,7 +6834,7 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + */ loadNext: function(mname) { // It is possible that this function is executed due to something - // else one the page loading a YUI module. Only react when we + // else on the page loading a YUI module. Only react when we // are actively loading something if (!this._loading) { return; @@ -6740,7 +6925,7 @@ Y.log('Undefined module: ' + mname + ', matched a pattern: ' + url += frag; if (i < (len - 1)) { - url += '&'; + url += self.comboSep; } combining.push(m.name); @@ -6904,7 +7089,7 @@ Y.log('attempting to load ' + s[i] + ', ' + self.base, 'info', 'loader'); /** * Apply filter defined for this instance to a url/path - * method _filter + * @method _filter * @param {string} u the string to filter. * @param {string} name the name of the module, if we are processing * a single module as opposed to a combined url. @@ -6932,13 +7117,98 @@ Y.log('attempting to load ' + s[i] + ', ' + self.base, 'info', 'loader'); /** * Generates the full url for a module - * method _url + * @method _url * @param {string} path the path fragment. + * @param {String} name The name of the module + * @pamra {String} [base=self.base] The base url to use * @return {string} the full url. * @private */ _url: function(path, name, base) { return this._filter((base || this.base || '') + path, name); + }, + /** + * Returns an Object hash of file arrays built from `loader.sorted` or from an arbitrary list of sorted modules. + * @method resolve + * @param {Boolean} [calc=false] Perform a loader.calculate() before anything else + * @param {Array} [s=loader.sorted] An override for the loader.sorted array + * @return {Object} Object hash (js and css) of two arrays of file lists + * @example This method can be used as an off-line dep calculator + * + * var Y = YUI(); + * var loader = new Y.Loader({ + * filter: 'debug', + * base: '../../', + * root: 'build/', + * combine: true, + * require: ['node', 'dd', 'console'] + * }); + * var out = loader.resolve(true); + * + */ + resolve: function(calc, s) { + var self = this, i, m, url, out = { js: [], css: [] }; + + if (calc) { + self.calculate(); + } + s = s || self.sorted; + + for (i = 0; i < s.length; i++) { + m = self.getModule(s[i]); + if (m) { + if (self.combine) { + url = self._filter((self.root + m.path), m.name, self.root); + } else { + url = self._filter(m.fullpath, m.name, '') || self._url(m.path, m.name); + } + out[m.type].push(url); + } + } + if (self.combine) { + out.js = [self.comboBase + out.js.join(self.comboSep)]; + out.css = [self.comboBase + out.css.join(self.comboSep)]; + } + + return out; + }, + /** + * Returns an Object hash of hashes built from `loader.sorted` or from an arbitrary list of sorted modules. + * @method hash + * @private + * @param {Boolean} [calc=false] Perform a loader.calculate() before anything else + * @param {Array} [s=loader.sorted] An override for the loader.sorted array + * @return {Object} Object hash (js and css) of two object hashes of file lists, with the module name as the key + * @example This method can be used as an off-line dep calculator + * + * var Y = YUI(); + * var loader = new Y.Loader({ + * filter: 'debug', + * base: '../../', + * root: 'build/', + * combine: true, + * require: ['node', 'dd', 'console'] + * }); + * var out = loader.hash(true); + * + */ + hash: function(calc, s) { + var self = this, i, m, url, out = { js: {}, css: {} }; + + if (calc) { + self.calculate(); + } + s = s || self.sorted; + + for (i = 0; i < s.length; i++) { + m = self.getModule(s[i]); + if (m) { + url = self._filter(m.fullpath, m.name, '') || self._url(m.path, m.name); + out[m.type][m.name] = url; + } + } + + return out; } }; @@ -7051,7 +7321,7 @@ Y.Loader.prototype._rollup = function() { }, '3.4.0' ,{requires:['loader-base']}); YUI.add('loader-yui3', function(Y) { -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ /** * YUI 3 module metadata @@ -7216,6 +7486,7 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "requires": [ "autocomplete-base", "event-resize", + "node-screen", "selector-css3", "shim-plugin", "widget", @@ -7321,7 +7592,8 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "ru" ], "requires": [ - "calendar-base" + "calendar-base", + "calendarnavigator" ], "skinnable": true }, @@ -7334,14 +7606,23 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget", "substitute", "datatype-date", - "datatype-date-math" + "datatype-date-math", + "cssgrids" + ], + "skinnable": true + }, + "calendarnavigator": { + "requires": [ + "plugin", + "classnamemanager" ], "skinnable": true }, "charts": { "requires": [ "dom", - "datatype", + "datatype-number", + "datatype-date", "event-custom", "event-mouseenter", "widget", @@ -7369,14 +7650,6 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "array-invoke" ] }, - "compat": { - "requires": [ - "event-base", - "dom", - "dump", - "substitute" - ] - }, "console": { "lang": [ "en", @@ -8158,7 +8431,10 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (canvas && canvas.getContext && canvas.getContext("2d"))); }, "trigger": "graphics" - } + }, + "requires": [ + "graphics" + ] }, "graphics-canvas-default": { "condition": { @@ -8179,7 +8455,10 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { return (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")); }, "trigger": "graphics" - } + }, + "requires": [ + "graphics" + ] }, "graphics-svg-default": { "condition": { @@ -8200,7 +8479,10 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (!canvas || !canvas.getContext || !canvas.getContext("2d"))); }, "trigger": "graphics" - } + }, + "requires": [ + "graphics" + ] }, "graphics-vml-default": { "condition": { @@ -8392,6 +8674,7 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "array-invoke", "arraylist", "base-build", + "escape", "json-parse", "model" ] @@ -8508,14 +8791,23 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { ], "skinnable": true }, - "plugin": { + "panel": { "requires": [ - "base-base" - ] + "widget", + "widget-stdmod", + "widget-position", + "widget-position-align", + "widget-stack", + "widget-position-constrain", + "widget-modality", + "widget-autohide", + "widget-buttons" + ], + "skinnable": true }, - "pluginattr": { + "plugin": { "requires": [ - "plugin" + "base-base" ] }, "pluginhost": { @@ -8683,6 +8975,12 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "scrollview-base" ] }, + "scrollview-list": { + "requires": [ + "plugin" + ], + "skinnable": true + }, "scrollview-paginator": { "requires": [ "plugin" @@ -8839,20 +9137,28 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { ] }, "transition": { - "use": [ - "transition-native", - "transition-timer" - ] - }, - "transition-native": { "requires": [ - "node-base" + "node-style" ] }, "transition-timer": { + "condition": { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" + }, "requires": [ - "transition-native", - "node-style" + "transition" ] }, "uploader": { @@ -8870,7 +9176,6 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { ] }, "widget": { - "skinnable": true, "use": [ "widget-base", "widget-htmlparser", @@ -8888,9 +9193,9 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget-autohide": { "requires": [ "widget", - "plugin", "event-outside", - "base-build" + "base-build", + "event-key" ], "skinnable": false }, @@ -8903,7 +9208,8 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "node-base", "node-style", "classnamemanager" - ] + ], + "skinnable": true }, "widget-base-ie": { "condition": { @@ -8915,6 +9221,13 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget-base" ] }, + "widget-buttons": { + "requires": [ + "widget", + "base-build" + ], + "skinnable": false + }, "widget-child": { "requires": [ "base-build", @@ -8934,7 +9247,6 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget-modality": { "requires": [ "widget", - "plugin", "event-outside", "base-build" ], @@ -8994,19 +9306,7 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "jsonp-url" ] }, - "yui": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "yui-log", - "yui-later", - "loader-base", - "loader-rollup", - "loader-yui3" - ] - }, + "yui": {}, "yui-base": {}, "yui-later": { "requires": [ @@ -9018,24 +9318,14 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "yui-base" ] }, - "yui-rls": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "rls", - "yui-log", - "yui-later" - ] - }, + "yui-rls": {}, "yui-throttle": { "requires": [ "yui-base" ] } }; -YUI.Env[Y.version].md5 = 'ea3b697e30a4b7bf0c41e10e098f5bab'; +YUI.Env[Y.version].md5 = 'fbf2d694a982e8290f58fd1694becad2'; }, '3.4.0' ,{requires:['loader-base']}); diff --git a/build/yui/yui-min.js b/build/yui/yui-min.js index 9ad1fd0b30b..8318cc46ec8 100644 --- a/build/yui/yui-min.js +++ b/build/yui/yui-min.js @@ -5,13 +5,13 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","5",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","6",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","7",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","8",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d;},"trigger":"selector"});a("load","9",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]}); -YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("loader-base",function(d){if(!YUI.Env[d.version]){(function(){var I=d.version,E="/build/",F=I+E,D=d.Env.base,A="gallery-2011.06.08-20-04",C="2in3",B="4",z="2.9.0",G=D+"combo?",H={version:I,root:F,base:d.Env.base,comboBase:G,skin:{defaultSkin:"sam",base:"assets/skins/",path:"skin.css",after:["cssreset","cssfonts","cssgrids","cssbase","cssreset-context","cssfonts-context"]},groups:{},patterns:{}},y=H.groups,x=function(K,L){var J=C+"."+(K||B)+"/"+(L||z)+E;y.yui2.base=D+J;y.yui2.root=J;},w=function(J){var K=(J||A)+E;y.gallery.base=D+K;y.gallery.root=K;};y[I]={};y.gallery={ext:false,combine:true,comboBase:G,update:w,patterns:{"gallery-":{},"lang/gallery-":{},"gallerycss-":{type:"css"}}};y.yui2={combine:true,ext:false,comboBase:G,update:x,patterns:{"yui2-":{configFn:function(J){if(/-skin|reset|fonts|grids|base/.test(J.name)){J.type="css";J.path=J.path.replace(/\.js/,".css");J.path=J.path.replace(/\/yui2-skin/,"/assets/skins/sam/yui2-skin");}}}}};w();x();YUI.Env[I]=H;}());}var f={},c=[],m=(d.UA.ie)?2048:8192,a=YUI.Env,p=a._loaded,q="css",k="js",v="intl",s=d.version,u="",e=d.Object,r=e.each,j=d.Array,h=a._loaderQueue,t=a[s],b="skin-",i=d.Lang,n=a.mods,l,o,g=function(x,y,z,w){var A=x+"/"+y;if(!w){A+="-min";}A+="."+(z||q);return A;};d.Env.meta=t;d.Loader=function(A){var z=t.modules,x=this;l=t.md5;x.context=d;x.base=d.Env.meta.base;x.comboBase=d.Env.meta.comboBase;x.combine=A.base&&(A.base.indexOf(x.comboBase.substr(0,20))>-1);x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1){z=A;break;}}}if(z){if(A.action){A.action.call(this,B,x);}else{w=this.addModule(d.merge(z),B);w.temp=true;}}}return w;},_rollup:function(){},_reduce:function(B){B=B||this.required;var y,x,A,w,z=this.loadType;for(y in B){if(B.hasOwnProperty(y)){w=this.getModule(y);if(((this.loaded[y]||n[y])&&!this.forceMap[y]&&!this.ignoreRegistered)||(z&&w&&w.type!=z)){delete B[y];}A=w&&w.supersedes;if(A){for(x=0;x0){h.running=true;h.next()();}},insert:function(z,x,y){var w=this,A=d.merge(this);delete A.require;delete A.dirty;h.add(function(){w._insert(A,z,x,y);});this._continue();},loadNext:function(A){if(!this._loading){return;}var H,P,O,M,z,E,B,L,D,G,N,w,C,K,y,F,Q,R,J=this,x=J.loadType,S=function(T){J.loadNext(T.data);},I=function(V){J._combineComplete[x]=true;var U,T=F.length;for(U=0;UJ.maxURLLength)){Q.push(J._filter(z));z=N;}z+=w;if(O<(P-1)){z+="&";}F.push(M.name);}}if(F.length&&(z!=N)){Q.push(J._filter(z));}}}if(F.length){if(x===q){E=d.Get.css;L=J.cssAttributes;}else{E=d.Get.script;L=J.jsAttributes;}E(Q,{data:J._loading,onSuccess:I,onFailure:J._onFailure,onTimeout:J._onTimeout,insertBefore:J.insertBefore,charset:J.charset,attributes:L,timeout:J.timeout,autopurge:false,context:J});return;}else{J._combineComplete[x]=true;}}if(A){if(A!==J._loading){return;}J.inserted[A]=true;if(J.onProgress){J.onProgress.call(J.context,{name:A,data:J.data});}}H=J.sorted;P=H.length;for(O=0;O=g.rollup); -if(e){break;}}}}if(e){b[k]=true;d=true;this.getRequires(g);}}}}if(!d){break;}}};},"3.4.0",{requires:["loader-base"]});YUI.add("loader-yui3",function(a){YUI.Env[a.version].modules=YUI.Env[a.version].modules||{"align-plugin":{"requires":["node-screen","node-pluginhost"]},"anim":{"use":["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"]},"anim-base":{"requires":["base-base","node-style"]},"anim-color":{"requires":["anim-base"]},"anim-curve":{"requires":["anim-xy"]},"anim-easing":{"requires":["anim-base"]},"anim-node-plugin":{"requires":["node-pluginhost","anim-base"]},"anim-scroll":{"requires":["anim-base"]},"anim-xy":{"requires":["anim-base","node-screen"]},"app":{"use":["controller","model","model-list","view"]},"array-extras":{},"array-invoke":{},"arraylist":{},"arraylist-add":{"requires":["arraylist"]},"arraylist-filter":{"requires":["arraylist"]},"arraysort":{"requires":["yui-base"]},"async-queue":{"requires":["event-custom"]},"attribute":{"use":["attribute-base","attribute-complex"]},"attribute-base":{"requires":["event-custom"]},"attribute-complex":{"requires":["attribute-base"]},"autocomplete":{"use":["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"]},"autocomplete-base":{"optional":["autocomplete-sources"],"requires":["array-extras","base-build","escape","event-valuechange","node-base"]},"autocomplete-filters":{"requires":["array-extras","text-wordbreak"]},"autocomplete-filters-accentfold":{"requires":["array-extras","text-accentfold","text-wordbreak"]},"autocomplete-highlighters":{"requires":["array-extras","highlight-base"]},"autocomplete-highlighters-accentfold":{"requires":["array-extras","highlight-accentfold"]},"autocomplete-list":{"after":["autocomplete-sources"],"lang":["en"],"requires":["autocomplete-base","event-resize","selector-css3","shim-plugin","widget","widget-position","widget-position-align"],"skinnable":true},"autocomplete-list-keys":{"condition":{"name":"autocomplete-list-keys","test":function(b){return !(b.UA.ios||b.UA.android);},"trigger":"autocomplete-list"},"requires":["autocomplete-list","base-build"]},"autocomplete-plugin":{"requires":["autocomplete-list","node-pluginhost"]},"autocomplete-sources":{"optional":["io-base","json-parse","jsonp","yql"],"requires":["autocomplete-base"]},"base":{"use":["base-base","base-pluginhost","base-build"]},"base-base":{"after":["attribute-complex"],"requires":["attribute-base"]},"base-build":{"requires":["base-base"]},"base-pluginhost":{"requires":["base-base","pluginhost"]},"cache":{"use":["cache-base","cache-offline","cache-plugin"]},"cache-base":{"requires":["base"]},"cache-offline":{"requires":["cache-base","json"]},"cache-plugin":{"requires":["plugin","cache-base"]},"calendar":{"lang":["en","ru"],"requires":["calendar-base"],"skinnable":true},"calendar-base":{"lang":["en","ru"],"requires":["widget","substitute","datatype-date","datatype-date-math"],"skinnable":true},"charts":{"requires":["dom","datatype","event-custom","event-mouseenter","widget","widget-position","widget-stack","graphics"]},"classnamemanager":{"requires":["yui-base"]},"clickable-rail":{"requires":["slider-base"]},"collection":{"use":["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"]},"compat":{"requires":["event-base","dom","dump","substitute"]},"console":{"lang":["en","es"],"requires":["yui-log","widget","substitute"],"skinnable":true},"console-filters":{"requires":["plugin","console"],"skinnable":true},"controller":{"optional":["querystring-parse"],"requires":["array-extras","base-build","history"]},"cookie":{"requires":["yui-base"]},"createlink-base":{"requires":["editor-base"]},"cssbase":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssbase-context":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssfonts":{"type":"css"},"cssfonts-context":{"type":"css"},"cssgrids":{"optional":["cssreset","cssfonts"],"type":"css"},"cssgrids-context-deprecated":{"optional":["cssreset-context"],"requires":["cssfonts-context"],"type":"css"},"cssgrids-deprecated":{"optional":["cssreset"],"requires":["cssfonts"],"type":"css"},"cssreset":{"type":"css"},"cssreset-context":{"type":"css"},"dataschema":{"use":["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"]},"dataschema-array":{"requires":["dataschema-base"]},"dataschema-base":{"requires":["base"]},"dataschema-json":{"requires":["dataschema-base","json"]},"dataschema-text":{"requires":["dataschema-base"]},"dataschema-xml":{"requires":["dataschema-base"]},"datasource":{"use":["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"]},"datasource-arrayschema":{"requires":["datasource-local","plugin","dataschema-array"]},"datasource-cache":{"requires":["datasource-local","plugin","cache-base"]},"datasource-function":{"requires":["datasource-local"]},"datasource-get":{"requires":["datasource-local","get"]},"datasource-io":{"requires":["datasource-local","io-base"]},"datasource-jsonschema":{"requires":["datasource-local","plugin","dataschema-json"]},"datasource-local":{"requires":["base"]},"datasource-polling":{"requires":["datasource-local"]},"datasource-textschema":{"requires":["datasource-local","plugin","dataschema-text"]},"datasource-xmlschema":{"requires":["datasource-local","plugin","dataschema-xml"]},"datatable":{"use":["datatable-base","datatable-datasource","datatable-sort","datatable-scroll"]},"datatable-base":{"requires":["recordset-base","widget","substitute","event-mouseenter"],"skinnable":true},"datatable-datasource":{"requires":["datatable-base","plugin","datasource-local"]},"datatable-scroll":{"requires":["datatable-base","plugin","stylesheet"]},"datatable-sort":{"lang":["en"],"requires":["datatable-base","plugin","recordset-sort"]},"datatype":{"use":["datatype-number","datatype-date","datatype-xml"]},"datatype-date":{"supersedes":["datatype-date-format"],"use":["datatype-date-parse","datatype-date-format"]},"datatype-date-format":{"lang":["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"]},"datatype-date-math":{"requires":["yui-base"]},"datatype-date-parse":{},"datatype-number":{"use":["datatype-number-parse","datatype-number-format"]},"datatype-number-format":{},"datatype-number-parse":{},"datatype-xml":{"use":["datatype-xml-parse","datatype-xml-format"]},"datatype-xml-format":{},"datatype-xml-parse":{},"dd":{"use":["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"]},"dd-constrain":{"requires":["dd-drag"]},"dd-ddm":{"requires":["dd-ddm-base","event-resize"]},"dd-ddm-base":{"requires":["node","base","yui-throttle","classnamemanager"]},"dd-ddm-drop":{"requires":["dd-ddm"]},"dd-delegate":{"requires":["dd-drag","dd-drop-plugin","event-mouseenter"]},"dd-drag":{"requires":["dd-ddm-base"]},"dd-drop":{"requires":["dd-drag","dd-ddm-drop"]},"dd-drop-plugin":{"requires":["dd-drop"]},"dd-gestures":{"condition":{"name":"dd-gestures","test":function(b){return(b.config.win&&("ontouchstart" in b.config.win&&!b.UA.chrome)); -},"trigger":"dd-drag"},"requires":["dd-drag","event-synthetic","event-gestures"]},"dd-plugin":{"optional":["dd-constrain","dd-proxy"],"requires":["dd-drag"]},"dd-proxy":{"requires":["dd-drag"]},"dd-scroll":{"requires":["dd-drag"]},"dial":{"lang":["en","es"],"requires":["widget","dd-drag","substitute","event-mouseenter","event-move","event-key","transition","intl"],"skinnable":true},"dom":{"use":["dom-base","dom-screen","dom-style","selector-native","selector"]},"dom-base":{"requires":["dom-core"]},"dom-core":{"requires":["oop","features"]},"dom-deprecated":{"requires":["dom-base"]},"dom-screen":{"requires":["dom-base","dom-style"]},"dom-style":{"requires":["dom-base"]},"dom-style-ie":{"condition":{"name":"dom-style-ie","test":function(h){var f=h.Features.test,g=h.Features.add,d=h.config.win,e=h.config.doc,b="documentElement",c=false;g("style","computedStyle",{test:function(){return d&&"getComputedStyle" in d;}});g("style","opacity",{test:function(){return e&&"opacity" in e[b].style;}});c=(!f("style","opacity")&&!f("style","computedStyle"));return c;},"trigger":"dom-style"},"requires":["dom-style"]},"dump":{},"editor":{"use":["frame","selection","exec-command","editor-base","editor-para","editor-br","editor-bidi","editor-tab","createlink-base"]},"editor-base":{"requires":["base","frame","node","exec-command","selection"]},"editor-bidi":{"requires":["editor-base"]},"editor-br":{"requires":["editor-base"]},"editor-lists":{"requires":["editor-base"]},"editor-para":{"requires":["editor-base"]},"editor-tab":{"requires":["editor-base"]},"escape":{},"event":{"after":["node-base"],"use":["event-base","event-delegate","event-synthetic","event-mousewheel","event-mouseenter","event-key","event-focus","event-resize","event-hover","event-outside"]},"event-base":{"after":["node-base"],"requires":["event-custom-base"]},"event-base-ie":{"after":["event-base"],"condition":{"name":"event-base-ie","test":function(c){var b=c.config.doc&&c.config.doc.implementation;return(b&&(!b.hasFeature("Events","2.0")));},"trigger":"node-base"},"requires":["node-base"]},"event-custom":{"use":["event-custom-base","event-custom-complex"]},"event-custom-base":{"requires":["oop"]},"event-custom-complex":{"requires":["event-custom-base"]},"event-delegate":{"requires":["node-base"]},"event-flick":{"requires":["node-base","event-touch","event-synthetic"]},"event-focus":{"requires":["event-synthetic"]},"event-gestures":{"use":["event-flick","event-move"]},"event-hover":{"requires":["event-mouseenter"]},"event-key":{"requires":["event-synthetic"]},"event-mouseenter":{"requires":["event-synthetic"]},"event-mousewheel":{"requires":["node-base"]},"event-move":{"requires":["node-base","event-touch","event-synthetic"]},"event-outside":{"requires":["event-synthetic"]},"event-resize":{"requires":["node-base"]},"event-simulate":{"requires":["event-base"]},"event-synthetic":{"requires":["node-base","event-custom-complex"]},"event-touch":{"requires":["node-base"]},"event-valuechange":{"requires":["event-focus","event-synthetic"]},"exec-command":{"requires":["frame"]},"features":{"requires":["yui-base"]},"frame":{"requires":["base","node","selector-css3","substitute","yui-throttle"]},"get":{"requires":["yui-base"]},"graphics":{"requires":["node","event-custom","pluginhost"]},"graphics-canvas":{"condition":{"name":"graphics-canvas","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(b&&b.getContext&&b.getContext("2d")));},"trigger":"graphics"}},"graphics-canvas-default":{"condition":{"name":"graphics-canvas-default","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(b&&b.getContext&&b.getContext("2d")));},"trigger":"graphics"}},"graphics-svg":{"condition":{"name":"graphics-svg","test":function(c){var b=c.config.doc;return(b&&b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"}},"graphics-svg-default":{"condition":{"name":"graphics-svg-default","test":function(c){var b=c.config.doc;return(b&&b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"}},"graphics-vml":{"condition":{"name":"graphics-vml","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!b||!b.getContext||!b.getContext("2d")));},"trigger":"graphics"}},"graphics-vml-default":{"condition":{"name":"graphics-vml-default","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!b||!b.getContext||!b.getContext("2d")));},"trigger":"graphics"}},"highlight":{"use":["highlight-base","highlight-accentfold"]},"highlight-accentfold":{"requires":["highlight-base","text-accentfold"]},"highlight-base":{"requires":["array-extras","escape","text-wordbreak"]},"history":{"use":["history-base","history-hash","history-hash-ie","history-html5"]},"history-base":{"requires":["event-custom-complex"]},"history-hash":{"after":["history-html5"],"requires":["event-synthetic","history-base","yui-later"]},"history-hash-ie":{"condition":{"name":"history-hash-ie","test":function(c){var b=c.config.doc&&c.config.doc.documentMode;return c.UA.ie&&(!("onhashchange" in c.config.win)||!b||b<8);},"trigger":"history-hash"},"requires":["history-hash","node-base"]},"history-html5":{"optional":["json"],"requires":["event-base","history-base","node-base"]},"imageloader":{"requires":["base-base","node-style","node-screen"]},"intl":{"requires":["intl-base","event-custom"]},"intl-base":{"requires":["yui-base"]},"io":{"use":["io-base","io-xdr","io-form","io-upload-iframe","io-queue"]},"io-base":{"requires":["event-custom-base","querystring-stringify-simple"]},"io-form":{"requires":["io-base","node-base"]},"io-queue":{"requires":["io-base","queue-promote"]},"io-upload-iframe":{"requires":["io-base","node-base"]},"io-xdr":{"requires":["io-base","datatype-xml"]},"json":{"use":["json-parse","json-stringify"]},"json-parse":{},"json-stringify":{},"jsonp":{"requires":["get","oop"]},"jsonp-url":{"requires":["jsonp"]},"loader":{"use":["loader-base","loader-rollup","loader-yui3"]},"loader-base":{"requires":["get"]},"loader-rollup":{"requires":["loader-base"]},"loader-yui3":{"requires":["loader-base"]},"model":{"requires":["base-build","escape","json-parse"]},"model-list":{"requires":["array-extras","array-invoke","arraylist","base-build","json-parse","model"]},"node":{"use":["node-base","node-event-delegate","node-pluginhost","node-screen","node-style"]},"node-base":{"requires":["event-base","node-core","dom-base"]},"node-core":{"requires":["dom-core","selector"]},"node-deprecated":{"requires":["node-base"]},"node-event-delegate":{"requires":["node-base","event-delegate"]},"node-event-html5":{"requires":["node-base"]},"node-event-simulate":{"requires":["node-base","event-simulate"]},"node-flick":{"requires":["classnamemanager","transition","event-flick","plugin"],"skinnable":true},"node-focusmanager":{"requires":["attribute","node","plugin","node-event-simulate","event-key","event-focus"]},"node-load":{"requires":["node-base","io-base"]},"node-menunav":{"requires":["node","classnamemanager","plugin","node-focusmanager"],"skinnable":true},"node-pluginhost":{"requires":["node-base","pluginhost"]},"node-screen":{"requires":["dom-screen","node-base"]},"node-style":{"requires":["dom-style","node-base"]},"oop":{"requires":["yui-base"]},"overlay":{"requires":["widget","widget-stdmod","widget-position","widget-position-align","widget-stack","widget-position-constrain"],"skinnable":true},"plugin":{"requires":["base-base"]},"pluginattr":{"requires":["plugin"]},"pluginhost":{"use":["pluginhost-base","pluginhost-config"]},"pluginhost-base":{"requires":["yui-base"]},"pluginhost-config":{"requires":["pluginhost-base"]},"profiler":{"requires":["yui-base"]},"querystring":{"use":["querystring-parse","querystring-stringify"]},"querystring-parse":{"requires":["yui-base","array-extras"]},"querystring-parse-simple":{"requires":["yui-base"]},"querystring-stringify":{"requires":["yui-base"]},"querystring-stringify-simple":{"requires":["yui-base"]},"queue-promote":{"requires":["yui-base"]},"range-slider":{"requires":["slider-base","slider-value-range","clickable-rail"]},"recordset":{"use":["recordset-base","recordset-sort","recordset-filter","recordset-indexer"]},"recordset-base":{"requires":["base","arraylist"]},"recordset-filter":{"requires":["recordset-base","array-extras","plugin"]},"recordset-indexer":{"requires":["recordset-base","plugin"]},"recordset-sort":{"requires":["arraysort","recordset-base","plugin"]},"resize":{"use":["resize-base","resize-proxy","resize-constrain"]},"resize-base":{"requires":["base","widget","substitute","event","oop","dd-drag","dd-delegate","dd-drop"],"skinnable":true},"resize-constrain":{"requires":["plugin","resize-base"]},"resize-plugin":{"optional":["resize-constrain"],"requires":["resize-base","plugin"]},"resize-proxy":{"requires":["plugin","resize-base"]},"rls":{"requires":["get","features"]},"scrollview":{"requires":["scrollview-base","scrollview-scrollbars"]},"scrollview-base":{"requires":["widget","event-gestures","transition"],"skinnable":true},"scrollview-base-ie":{"condition":{"name":"scrollview-base-ie","trigger":"scrollview-base","ua":"ie"},"requires":["scrollview-base"]},"scrollview-paginator":{"requires":["plugin"]},"scrollview-scrollbars":{"requires":["classnamemanager","transition","plugin"],"skinnable":true},"selection":{"requires":["node"]},"selector":{"requires":["selector-native"]},"selector-css2":{"condition":{"name":"selector-css2","test":function(d){var c=d.config.doc,b=c&&!("querySelectorAll" in c); -return b;},"trigger":"selector"},"requires":["selector-native"]},"selector-css3":{"requires":["selector-native","selector-css2"]},"selector-native":{"requires":["dom-base"]},"shim-plugin":{"requires":["node-style","node-pluginhost"]},"slider":{"use":["slider-base","slider-value-range","clickable-rail","range-slider"]},"slider-base":{"requires":["widget","dd-constrain","substitute"],"skinnable":true},"slider-value-range":{"requires":["slider-base"]},"sortable":{"requires":["dd-delegate","dd-drop-plugin","dd-proxy"]},"sortable-scroll":{"requires":["dd-scroll","sortable"]},"stylesheet":{},"substitute":{"optional":["dump"]},"swf":{"requires":["event-custom","node","swfdetect"]},"swfdetect":{},"tabview":{"requires":["widget","widget-parent","widget-child","tabview-base","node-pluginhost","node-focusmanager"],"skinnable":true},"tabview-base":{"requires":["node-event-delegate","classnamemanager","skin-sam-tabview"]},"tabview-plugin":{"requires":["tabview-base"]},"test":{"requires":["event-simulate","event-custom","substitute","json-stringify"],"skinnable":true},"text":{"use":["text-accentfold","text-wordbreak"]},"text-accentfold":{"requires":["array-extras","text-data-accentfold"]},"text-data-accentfold":{},"text-data-wordbreak":{},"text-wordbreak":{"requires":["array-extras","text-data-wordbreak"]},"transition":{"use":["transition-native","transition-timer"]},"transition-native":{"requires":["node-base"]},"transition-timer":{"requires":["transition-native","node-style"]},"uploader":{"requires":["event-custom","node","base","swf"]},"view":{"requires":["base-build","node-event-delegate"]},"widget":{"skinnable":true,"use":["widget-base","widget-htmlparser","widget-uievents","widget-skin"]},"widget-anim":{"requires":["plugin","anim-base","widget"]},"widget-autohide":{"requires":["widget","plugin","event-outside","base-build"],"skinnable":false},"widget-base":{"requires":["attribute","event-focus","base-base","base-pluginhost","node-base","node-style","classnamemanager"]},"widget-base-ie":{"condition":{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"},"requires":["widget-base"]},"widget-child":{"requires":["base-build","widget"]},"widget-htmlparser":{"requires":["widget-base"]},"widget-locale":{"requires":["widget-base"]},"widget-modality":{"requires":["widget","plugin","event-outside","base-build"],"skinnable":false},"widget-parent":{"requires":["base-build","arraylist","widget"]},"widget-position":{"requires":["base-build","node-screen","widget"]},"widget-position-align":{"requires":["widget-position"]},"widget-position-constrain":{"requires":["widget-position"]},"widget-skin":{"requires":["widget-base"]},"widget-stack":{"requires":["base-build","widget"],"skinnable":true},"widget-stdmod":{"requires":["base-build","widget"]},"widget-uievents":{"requires":["widget-base","node-event-delegate"]},"yql":{"requires":["jsonp","jsonp-url"]},"yui":{"use":["yui-base","get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"]},"yui-base":{},"yui-later":{"requires":["yui-base"]},"yui-log":{"requires":["yui-base"]},"yui-rls":{"use":["yui-base","get","features","intl-base","rls","yui-log","yui-later"]},"yui-throttle":{"requires":["yui-base"]}};YUI.Env[a.version].md5="ea3b697e30a4b7bf0c41e10e098f5bab";},"3.4.0",{requires:["loader-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"]}); \ No newline at end of file +if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=arguments,a=b.length,e=function(h,g){return(h&&h.hasOwnProperty&&(h instanceof g));},d=(typeof YUI_config!=="undefined")&&YUI_config;if(!(e(f,YUI))){f=new YUI();}else{f._init();if(YUI.GlobalConfig){f.applyConfig(YUI.GlobalConfig);}if(d){f.applyConfig(d);}if(!a){f._setup();}}if(a){for(;c-1){q="3.3.0";}p={applyConfig:function(D){D=D||l;var y,A,z=this.config,B=z.modules,x=z.groups,C=z.rls,w=this.Env._loader;for(A in D){if(D.hasOwnProperty(A)){y=D[A];if(B&&A=="modules"){o(B,y);}else{if(x&&A=="groups"){o(x,y);}else{if(C&&A=="rls"){o(C,y);}else{if(A=="win"){z[A]=y.contentWindow||y;z.doc=z[A].document;}else{if(A=="_yuid"){}else{z[A]=y;}}}}}}}if(w){w._config(D);}},_config:function(w){this.applyConfig(w);},_init:function(){var y,z=this,w=YUI.Env,x=z.Env,A;z.version=q;if(!x){z.Env={mods:{},versions:{},base:n,cdn:n+q+"/build/",_idx:0,_used:{},_attached:{},_missed:[],_yidx:0,_uidx:0,_guidp:"y",_loaded:{},_BASE_RE:/(?:\?(?:[^&]*&)*([^&]*))?\b(simpleyui|yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,parseBasePath:function(F,D){var B=F.match(D),E,C;if(B){E=RegExp.leftContext||F.slice(0,F.indexOf(B[0]));C=B[3];if(B[1]){E+="?"+B[1];}E={filter:C,path:E};}return E;},getBase:w&&w.getBase||function(F){var D=(v&&v.getElementsByTagName("script"))||[],G=x.cdn,C,E,B,H;for(E=0,B=D.length;Ex&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; +},"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("loader-base",function(d){if(!YUI.Env[d.version]){(function(){var I=d.version,E="/build/",F=I+E,D=d.Env.base,A="gallery-2011.08.03-21-18",C="2in3",B="4",z="2.9.0",G=D+"combo?",H={version:I,root:F,base:d.Env.base,comboBase:G,skin:{defaultSkin:"sam",base:"assets/skins/",path:"skin.css",after:["cssreset","cssfonts","cssgrids","cssbase","cssreset-context","cssfonts-context"]},groups:{},patterns:{}},y=H.groups,x=function(K,L){var J=C+"."+(K||B)+"/"+(L||z)+E;y.yui2.base=D+J;y.yui2.root=J;},w=function(J){var K=(J||A)+E;y.gallery.base=D+K;y.gallery.root=K;};y[I]={};y.gallery={ext:false,combine:true,comboBase:G,update:w,patterns:{"gallery-":{},"lang/gallery-":{},"gallerycss-":{type:"css"}}};y.yui2={combine:true,ext:false,comboBase:G,update:x,patterns:{"yui2-":{configFn:function(J){if(/-skin|reset|fonts|grids|base/.test(J.name)){J.type="css";J.path=J.path.replace(/\.js/,".css");J.path=J.path.replace(/\/yui2-skin/,"/assets/skins/sam/yui2-skin");}}}}};w();x();YUI.Env[I]=H;}());}var f={},c=[],m=(d.UA.ie)?2048:8192,a=YUI.Env,p=a._loaded,q="css",k="js",v="intl",s=d.version,u="",e=d.Object,r=e.each,j=d.Array,h=a._loaderQueue,t=a[s],b="skin-",i=d.Lang,n=a.mods,l,o,g=function(x,y,z,w){var A=x+"/"+y;if(!w){A+="-min";}A+="."+(z||q);return A;};d.Env.meta=t;d.Loader=function(A){var z=t.modules,x=this;l=t.md5;x.context=d;x.base=d.Env.meta.base+d.Env.meta.root;x.comboBase=d.Env.meta.comboBase;x.combine=A.base&&(A.base.indexOf(x.comboBase.substr(0,20))>-1);x.comboSep="&";x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1){R=X;}});if(Q&&(Q[V]||(R&&Q[R]))){y=V;if(Q[R]){y=R;}for(M=0;M-1){z=A;break;}}}if(z){if(A.action){A.action.call(this,B,x);}else{w=this.addModule(d.merge(z),B);w.temp=true;}}}return w;},_rollup:function(){},_reduce:function(B){B=B||this.required;var y,x,A,w,z=this.loadType,C=this.ignore?j.hash(this.ignore):false;for(y in B){if(B.hasOwnProperty(y)){w=this.getModule(y);if(((this.loaded[y]||n[y])&&!this.forceMap[y]&&!this.ignoreRegistered)||(z&&w&&w.type!=z)){delete B[y];}if(C&&C[y]){delete B[y];}A=w&&w.supersedes;if(A){for(x=0;x0){h.running=true;h.next()();}},insert:function(z,x,y){var w=this,A=d.merge(this);delete A.require;delete A.dirty;h.add(function(){w._insert(A,z,x,y);});this._continue();},loadNext:function(A){if(!this._loading){return;}var H,P,O,M,z,E,B,L,D,G,N,w,C,K,y,F,Q,R,J=this,x=J.loadType,S=function(T){J.loadNext(T.data);},I=function(V){J._combineComplete[x]=true;var U,T=F.length;for(U=0;UJ.maxURLLength)){Q.push(J._filter(z));z=N;}z+=w;if(O<(P-1)){z+=J.comboSep;}F.push(M.name);}}if(F.length&&(z!=N)){Q.push(J._filter(z));}}}if(F.length){if(x===q){E=d.Get.css;L=J.cssAttributes;}else{E=d.Get.script;L=J.jsAttributes;}E(Q,{data:J._loading,onSuccess:I,onFailure:J._onFailure,onTimeout:J._onTimeout,insertBefore:J.insertBefore,charset:J.charset,attributes:L,timeout:J.timeout,autopurge:false,context:J});return;}else{J._combineComplete[x]=true;}}if(A){if(A!==J._loading){return;}J.inserted[A]=true;if(J.onProgress){J.onProgress.call(J.context,{name:A,data:J.data});}}H=J.sorted;P=H.length;for(O=0;O=g.rollup);if(e){break;}}}}if(e){b[k]=true;d=true;this.getRequires(g);}}}}if(!d){break;}}};},"3.4.0",{requires:["loader-base"]});YUI.add("loader-yui3",function(a){YUI.Env[a.version].modules=YUI.Env[a.version].modules||{"align-plugin":{"requires":["node-screen","node-pluginhost"]},"anim":{"use":["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"]},"anim-base":{"requires":["base-base","node-style"]},"anim-color":{"requires":["anim-base"]},"anim-curve":{"requires":["anim-xy"]},"anim-easing":{"requires":["anim-base"]},"anim-node-plugin":{"requires":["node-pluginhost","anim-base"]},"anim-scroll":{"requires":["anim-base"]},"anim-xy":{"requires":["anim-base","node-screen"]},"app":{"use":["controller","model","model-list","view"]},"array-extras":{},"array-invoke":{},"arraylist":{},"arraylist-add":{"requires":["arraylist"]},"arraylist-filter":{"requires":["arraylist"]},"arraysort":{"requires":["yui-base"]},"async-queue":{"requires":["event-custom"]},"attribute":{"use":["attribute-base","attribute-complex"]},"attribute-base":{"requires":["event-custom"]},"attribute-complex":{"requires":["attribute-base"]},"autocomplete":{"use":["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"]},"autocomplete-base":{"optional":["autocomplete-sources"],"requires":["array-extras","base-build","escape","event-valuechange","node-base"]},"autocomplete-filters":{"requires":["array-extras","text-wordbreak"]},"autocomplete-filters-accentfold":{"requires":["array-extras","text-accentfold","text-wordbreak"]},"autocomplete-highlighters":{"requires":["array-extras","highlight-base"]},"autocomplete-highlighters-accentfold":{"requires":["array-extras","highlight-accentfold"]},"autocomplete-list":{"after":["autocomplete-sources"],"lang":["en"],"requires":["autocomplete-base","event-resize","node-screen","selector-css3","shim-plugin","widget","widget-position","widget-position-align"],"skinnable":true},"autocomplete-list-keys":{"condition":{"name":"autocomplete-list-keys","test":function(b){return !(b.UA.ios||b.UA.android);},"trigger":"autocomplete-list"},"requires":["autocomplete-list","base-build"]},"autocomplete-plugin":{"requires":["autocomplete-list","node-pluginhost"]},"autocomplete-sources":{"optional":["io-base","json-parse","jsonp","yql"],"requires":["autocomplete-base"]},"base":{"use":["base-base","base-pluginhost","base-build"]},"base-base":{"after":["attribute-complex"],"requires":["attribute-base"]},"base-build":{"requires":["base-base"]},"base-pluginhost":{"requires":["base-base","pluginhost"]},"cache":{"use":["cache-base","cache-offline","cache-plugin"]},"cache-base":{"requires":["base"]},"cache-offline":{"requires":["cache-base","json"]},"cache-plugin":{"requires":["plugin","cache-base"]},"calendar":{"lang":["en","ru"],"requires":["calendar-base","calendarnavigator"],"skinnable":true},"calendar-base":{"lang":["en","ru"],"requires":["widget","substitute","datatype-date","datatype-date-math","cssgrids"],"skinnable":true},"calendarnavigator":{"requires":["plugin","classnamemanager"],"skinnable":true},"charts":{"requires":["dom","datatype-number","datatype-date","event-custom","event-mouseenter","widget","widget-position","widget-stack","graphics"]},"classnamemanager":{"requires":["yui-base"]},"clickable-rail":{"requires":["slider-base"]},"collection":{"use":["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"]},"console":{"lang":["en","es"],"requires":["yui-log","widget","substitute"],"skinnable":true},"console-filters":{"requires":["plugin","console"],"skinnable":true},"controller":{"optional":["querystring-parse"],"requires":["array-extras","base-build","history"]},"cookie":{"requires":["yui-base"]},"createlink-base":{"requires":["editor-base"]},"cssbase":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssbase-context":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssfonts":{"type":"css"},"cssfonts-context":{"type":"css"},"cssgrids":{"optional":["cssreset","cssfonts"],"type":"css"},"cssgrids-context-deprecated":{"optional":["cssreset-context"],"requires":["cssfonts-context"],"type":"css"},"cssgrids-deprecated":{"optional":["cssreset"],"requires":["cssfonts"],"type":"css"},"cssreset":{"type":"css"},"cssreset-context":{"type":"css"},"dataschema":{"use":["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"]},"dataschema-array":{"requires":["dataschema-base"]},"dataschema-base":{"requires":["base"]},"dataschema-json":{"requires":["dataschema-base","json"]},"dataschema-text":{"requires":["dataschema-base"]},"dataschema-xml":{"requires":["dataschema-base"]},"datasource":{"use":["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"]},"datasource-arrayschema":{"requires":["datasource-local","plugin","dataschema-array"]},"datasource-cache":{"requires":["datasource-local","plugin","cache-base"]},"datasource-function":{"requires":["datasource-local"]},"datasource-get":{"requires":["datasource-local","get"]},"datasource-io":{"requires":["datasource-local","io-base"]},"datasource-jsonschema":{"requires":["datasource-local","plugin","dataschema-json"]},"datasource-local":{"requires":["base"]},"datasource-polling":{"requires":["datasource-local"]},"datasource-textschema":{"requires":["datasource-local","plugin","dataschema-text"]},"datasource-xmlschema":{"requires":["datasource-local","plugin","dataschema-xml"]},"datatable":{"use":["datatable-base","datatable-datasource","datatable-sort","datatable-scroll"]},"datatable-base":{"requires":["recordset-base","widget","substitute","event-mouseenter"],"skinnable":true},"datatable-datasource":{"requires":["datatable-base","plugin","datasource-local"]},"datatable-scroll":{"requires":["datatable-base","plugin","stylesheet"]},"datatable-sort":{"lang":["en"],"requires":["datatable-base","plugin","recordset-sort"]},"datatype":{"use":["datatype-number","datatype-date","datatype-xml"]},"datatype-date":{"supersedes":["datatype-date-format"],"use":["datatype-date-parse","datatype-date-format"]},"datatype-date-format":{"lang":["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"]},"datatype-date-math":{"requires":["yui-base"]},"datatype-date-parse":{},"datatype-number":{"use":["datatype-number-parse","datatype-number-format"]},"datatype-number-format":{},"datatype-number-parse":{},"datatype-xml":{"use":["datatype-xml-parse","datatype-xml-format"]},"datatype-xml-format":{},"datatype-xml-parse":{},"dd":{"use":["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"]},"dd-constrain":{"requires":["dd-drag"]},"dd-ddm":{"requires":["dd-ddm-base","event-resize"]},"dd-ddm-base":{"requires":["node","base","yui-throttle","classnamemanager"]},"dd-ddm-drop":{"requires":["dd-ddm"]},"dd-delegate":{"requires":["dd-drag","dd-drop-plugin","event-mouseenter"]},"dd-drag":{"requires":["dd-ddm-base"]},"dd-drop":{"requires":["dd-drag","dd-ddm-drop"]},"dd-drop-plugin":{"requires":["dd-drop"]},"dd-gestures":{"condition":{"name":"dd-gestures","test":function(b){return(b.config.win&&("ontouchstart" in b.config.win&&!b.UA.chrome)); +},"trigger":"dd-drag"},"requires":["dd-drag","event-synthetic","event-gestures"]},"dd-plugin":{"optional":["dd-constrain","dd-proxy"],"requires":["dd-drag"]},"dd-proxy":{"requires":["dd-drag"]},"dd-scroll":{"requires":["dd-drag"]},"dial":{"lang":["en","es"],"requires":["widget","dd-drag","substitute","event-mouseenter","event-move","event-key","transition","intl"],"skinnable":true},"dom":{"use":["dom-base","dom-screen","dom-style","selector-native","selector"]},"dom-base":{"requires":["dom-core"]},"dom-core":{"requires":["oop","features"]},"dom-deprecated":{"requires":["dom-base"]},"dom-screen":{"requires":["dom-base","dom-style"]},"dom-style":{"requires":["dom-base"]},"dom-style-ie":{"condition":{"name":"dom-style-ie","test":function(h){var f=h.Features.test,g=h.Features.add,d=h.config.win,e=h.config.doc,b="documentElement",c=false;g("style","computedStyle",{test:function(){return d&&"getComputedStyle" in d;}});g("style","opacity",{test:function(){return e&&"opacity" in e[b].style;}});c=(!f("style","opacity")&&!f("style","computedStyle"));return c;},"trigger":"dom-style"},"requires":["dom-style"]},"dump":{},"editor":{"use":["frame","selection","exec-command","editor-base","editor-para","editor-br","editor-bidi","editor-tab","createlink-base"]},"editor-base":{"requires":["base","frame","node","exec-command","selection"]},"editor-bidi":{"requires":["editor-base"]},"editor-br":{"requires":["editor-base"]},"editor-lists":{"requires":["editor-base"]},"editor-para":{"requires":["editor-base"]},"editor-tab":{"requires":["editor-base"]},"escape":{},"event":{"after":["node-base"],"use":["event-base","event-delegate","event-synthetic","event-mousewheel","event-mouseenter","event-key","event-focus","event-resize","event-hover","event-outside"]},"event-base":{"after":["node-base"],"requires":["event-custom-base"]},"event-base-ie":{"after":["event-base"],"condition":{"name":"event-base-ie","test":function(c){var b=c.config.doc&&c.config.doc.implementation;return(b&&(!b.hasFeature("Events","2.0")));},"trigger":"node-base"},"requires":["node-base"]},"event-custom":{"use":["event-custom-base","event-custom-complex"]},"event-custom-base":{"requires":["oop"]},"event-custom-complex":{"requires":["event-custom-base"]},"event-delegate":{"requires":["node-base"]},"event-flick":{"requires":["node-base","event-touch","event-synthetic"]},"event-focus":{"requires":["event-synthetic"]},"event-gestures":{"use":["event-flick","event-move"]},"event-hover":{"requires":["event-mouseenter"]},"event-key":{"requires":["event-synthetic"]},"event-mouseenter":{"requires":["event-synthetic"]},"event-mousewheel":{"requires":["node-base"]},"event-move":{"requires":["node-base","event-touch","event-synthetic"]},"event-outside":{"requires":["event-synthetic"]},"event-resize":{"requires":["node-base"]},"event-simulate":{"requires":["event-base"]},"event-synthetic":{"requires":["node-base","event-custom-complex"]},"event-touch":{"requires":["node-base"]},"event-valuechange":{"requires":["event-focus","event-synthetic"]},"exec-command":{"requires":["frame"]},"features":{"requires":["yui-base"]},"frame":{"requires":["base","node","selector-css3","substitute","yui-throttle"]},"get":{"requires":["yui-base"]},"graphics":{"requires":["node","event-custom","pluginhost"]},"graphics-canvas":{"condition":{"name":"graphics-canvas","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(b&&b.getContext&&b.getContext("2d")));},"trigger":"graphics"},"requires":["graphics"]},"graphics-canvas-default":{"condition":{"name":"graphics-canvas-default","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(b&&b.getContext&&b.getContext("2d")));},"trigger":"graphics"}},"graphics-svg":{"condition":{"name":"graphics-svg","test":function(c){var b=c.config.doc;return(b&&b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"},"requires":["graphics"]},"graphics-svg-default":{"condition":{"name":"graphics-svg-default","test":function(c){var b=c.config.doc;return(b&&b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"}},"graphics-vml":{"condition":{"name":"graphics-vml","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!b||!b.getContext||!b.getContext("2d")));},"trigger":"graphics"},"requires":["graphics"]},"graphics-vml-default":{"condition":{"name":"graphics-vml-default","test":function(d){var c=d.config.doc,b=c&&c.createElement("canvas");return(c&&!c.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!b||!b.getContext||!b.getContext("2d")));},"trigger":"graphics"}},"highlight":{"use":["highlight-base","highlight-accentfold"]},"highlight-accentfold":{"requires":["highlight-base","text-accentfold"]},"highlight-base":{"requires":["array-extras","escape","text-wordbreak"]},"history":{"use":["history-base","history-hash","history-hash-ie","history-html5"]},"history-base":{"requires":["event-custom-complex"]},"history-hash":{"after":["history-html5"],"requires":["event-synthetic","history-base","yui-later"]},"history-hash-ie":{"condition":{"name":"history-hash-ie","test":function(c){var b=c.config.doc&&c.config.doc.documentMode;return c.UA.ie&&(!("onhashchange" in c.config.win)||!b||b<8);},"trigger":"history-hash"},"requires":["history-hash","node-base"]},"history-html5":{"optional":["json"],"requires":["event-base","history-base","node-base"]},"imageloader":{"requires":["base-base","node-style","node-screen"]},"intl":{"requires":["intl-base","event-custom"]},"intl-base":{"requires":["yui-base"]},"io":{"use":["io-base","io-xdr","io-form","io-upload-iframe","io-queue"]},"io-base":{"requires":["event-custom-base","querystring-stringify-simple"]},"io-form":{"requires":["io-base","node-base"]},"io-queue":{"requires":["io-base","queue-promote"]},"io-upload-iframe":{"requires":["io-base","node-base"]},"io-xdr":{"requires":["io-base","datatype-xml"]},"json":{"use":["json-parse","json-stringify"]},"json-parse":{},"json-stringify":{},"jsonp":{"requires":["get","oop"]},"jsonp-url":{"requires":["jsonp"]},"loader":{"use":["loader-base","loader-rollup","loader-yui3"]},"loader-base":{"requires":["get"]},"loader-rollup":{"requires":["loader-base"]},"loader-yui3":{"requires":["loader-base"]},"model":{"requires":["base-build","escape","json-parse"]},"model-list":{"requires":["array-extras","array-invoke","arraylist","base-build","escape","json-parse","model"]},"node":{"use":["node-base","node-event-delegate","node-pluginhost","node-screen","node-style"]},"node-base":{"requires":["event-base","node-core","dom-base"]},"node-core":{"requires":["dom-core","selector"]},"node-deprecated":{"requires":["node-base"]},"node-event-delegate":{"requires":["node-base","event-delegate"]},"node-event-html5":{"requires":["node-base"]},"node-event-simulate":{"requires":["node-base","event-simulate"]},"node-flick":{"requires":["classnamemanager","transition","event-flick","plugin"],"skinnable":true},"node-focusmanager":{"requires":["attribute","node","plugin","node-event-simulate","event-key","event-focus"]},"node-load":{"requires":["node-base","io-base"]},"node-menunav":{"requires":["node","classnamemanager","plugin","node-focusmanager"],"skinnable":true},"node-pluginhost":{"requires":["node-base","pluginhost"]},"node-screen":{"requires":["dom-screen","node-base"]},"node-style":{"requires":["dom-style","node-base"]},"oop":{"requires":["yui-base"]},"overlay":{"requires":["widget","widget-stdmod","widget-position","widget-position-align","widget-stack","widget-position-constrain"],"skinnable":true},"panel":{"requires":["widget","widget-stdmod","widget-position","widget-position-align","widget-stack","widget-position-constrain","widget-modality","widget-autohide","widget-buttons"],"skinnable":true},"plugin":{"requires":["base-base"]},"pluginhost":{"use":["pluginhost-base","pluginhost-config"]},"pluginhost-base":{"requires":["yui-base"]},"pluginhost-config":{"requires":["pluginhost-base"]},"profiler":{"requires":["yui-base"]},"querystring":{"use":["querystring-parse","querystring-stringify"]},"querystring-parse":{"requires":["yui-base","array-extras"]},"querystring-parse-simple":{"requires":["yui-base"]},"querystring-stringify":{"requires":["yui-base"]},"querystring-stringify-simple":{"requires":["yui-base"]},"queue-promote":{"requires":["yui-base"]},"range-slider":{"requires":["slider-base","slider-value-range","clickable-rail"]},"recordset":{"use":["recordset-base","recordset-sort","recordset-filter","recordset-indexer"]},"recordset-base":{"requires":["base","arraylist"]},"recordset-filter":{"requires":["recordset-base","array-extras","plugin"]},"recordset-indexer":{"requires":["recordset-base","plugin"]},"recordset-sort":{"requires":["arraysort","recordset-base","plugin"]},"resize":{"use":["resize-base","resize-proxy","resize-constrain"]},"resize-base":{"requires":["base","widget","substitute","event","oop","dd-drag","dd-delegate","dd-drop"],"skinnable":true},"resize-constrain":{"requires":["plugin","resize-base"]},"resize-plugin":{"optional":["resize-constrain"],"requires":["resize-base","plugin"]},"resize-proxy":{"requires":["plugin","resize-base"]},"rls":{"requires":["get","features"]},"scrollview":{"requires":["scrollview-base","scrollview-scrollbars"]},"scrollview-base":{"requires":["widget","event-gestures","transition"],"skinnable":true},"scrollview-base-ie":{"condition":{"name":"scrollview-base-ie","trigger":"scrollview-base","ua":"ie"},"requires":["scrollview-base"]},"scrollview-list":{"requires":["plugin"],"skinnable":true},"scrollview-paginator":{"requires":["plugin"]},"scrollview-scrollbars":{"requires":["classnamemanager","transition","plugin"],"skinnable":true},"selection":{"requires":["node"]},"selector":{"requires":["selector-native"]},"selector-css2":{"condition":{"name":"selector-css2","test":function(d){var c=d.config.doc,b=c&&!("querySelectorAll" in c); +return b;},"trigger":"selector"},"requires":["selector-native"]},"selector-css3":{"requires":["selector-native","selector-css2"]},"selector-native":{"requires":["dom-base"]},"shim-plugin":{"requires":["node-style","node-pluginhost"]},"slider":{"use":["slider-base","slider-value-range","clickable-rail","range-slider"]},"slider-base":{"requires":["widget","dd-constrain","substitute"],"skinnable":true},"slider-value-range":{"requires":["slider-base"]},"sortable":{"requires":["dd-delegate","dd-drop-plugin","dd-proxy"]},"sortable-scroll":{"requires":["dd-scroll","sortable"]},"stylesheet":{},"substitute":{"optional":["dump"]},"swf":{"requires":["event-custom","node","swfdetect"]},"swfdetect":{},"tabview":{"requires":["widget","widget-parent","widget-child","tabview-base","node-pluginhost","node-focusmanager"],"skinnable":true},"tabview-base":{"requires":["node-event-delegate","classnamemanager","skin-sam-tabview"]},"tabview-plugin":{"requires":["tabview-base"]},"test":{"requires":["event-simulate","event-custom","substitute","json-stringify"],"skinnable":true},"text":{"use":["text-accentfold","text-wordbreak"]},"text-accentfold":{"requires":["array-extras","text-data-accentfold"]},"text-data-accentfold":{},"text-data-wordbreak":{},"text-wordbreak":{"requires":["array-extras","text-data-wordbreak"]},"transition":{"requires":["node-style"]},"transition-timer":{"condition":{"name":"transition-timer","test":function(e){var d=e.config.doc,c=(d)?d.documentElement:null,b=true;if(c&&c.style){b=!("MozTransition" in c.style||"WebkitTransition" in c.style);}return b;},"trigger":"transition"},"requires":["transition"]},"uploader":{"requires":["event-custom","node","base","swf"]},"view":{"requires":["base-build","node-event-delegate"]},"widget":{"use":["widget-base","widget-htmlparser","widget-uievents","widget-skin"]},"widget-anim":{"requires":["plugin","anim-base","widget"]},"widget-autohide":{"requires":["widget","event-outside","base-build","event-key"],"skinnable":false},"widget-base":{"requires":["attribute","event-focus","base-base","base-pluginhost","node-base","node-style","classnamemanager"],"skinnable":true},"widget-base-ie":{"condition":{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"},"requires":["widget-base"]},"widget-buttons":{"requires":["widget","base-build"],"skinnable":false},"widget-child":{"requires":["base-build","widget"]},"widget-htmlparser":{"requires":["widget-base"]},"widget-locale":{"requires":["widget-base"]},"widget-modality":{"requires":["widget","event-outside","base-build"],"skinnable":false},"widget-parent":{"requires":["base-build","arraylist","widget"]},"widget-position":{"requires":["base-build","node-screen","widget"]},"widget-position-align":{"requires":["widget-position"]},"widget-position-constrain":{"requires":["widget-position"]},"widget-skin":{"requires":["widget-base"]},"widget-stack":{"requires":["base-build","widget"],"skinnable":true},"widget-stdmod":{"requires":["base-build","widget"]},"widget-uievents":{"requires":["widget-base","node-event-delegate"]},"yql":{"requires":["jsonp","jsonp-url"]},"yui":{},"yui-base":{},"yui-later":{"requires":["yui-base"]},"yui-log":{"requires":["yui-base"]},"yui-rls":{},"yui-throttle":{"requires":["yui-base"]}};YUI.Env[a.version].md5="fbf2d694a982e8290f58fd1694becad2";},"3.4.0",{requires:["loader-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later","loader-base","loader-rollup","loader-yui3"]}); \ No newline at end of file diff --git a/build/yui/yui.js b/build/yui/yui.js index 9cb4ef75dcd..6c1cd9fe6aa 100644 --- a/build/yui/yui.js +++ b/build/yui/yui.js @@ -18,30 +18,30 @@ if (typeof YUI != 'undefined') { } /** - * The YUI global namespace object. If YUI is already defined, the - * existing YUI object will not be overwritten so that defined - * namespaces are preserved. It is the constructor for the object - * the end user interacts with. As indicated below, each instance - * has full custom event support, but only if the event system - * is available. This is a self-instantiable factory function. You - * can invoke it directly like this: - * - * YUI().use('*', function(Y) { - * // ready - * }); - * - * But it also works like this: - * - * var Y = YUI(); - * - * @class YUI - * @constructor - * @global - * @uses EventTarget - * @param o* {object} 0..n optional configuration objects. these values - * are store in Y.config. See Config for the list of supported - * properties. - */ +The YUI global namespace object. If YUI is already defined, the +existing YUI object will not be overwritten so that defined +namespaces are preserved. It is the constructor for the object +the end user interacts with. As indicated below, each instance +has full custom event support, but only if the event system +is available. This is a self-instantiable factory function. You +can invoke it directly like this: + + YUI().use('*', function(Y) { + // ready + }); + +But it also works like this: + + var Y = YUI(); + +@class YUI +@constructor +@global +@uses EventTarget +@param o* {object} 0..n optional configuration objects. these values +are store in Y.config. See Config for the list of supported +properties. +*/ /*global YUI*/ /*global YUI_config*/ var YUI = function() { @@ -60,17 +60,61 @@ if (typeof YUI != 'undefined') { // set up the core environment Y._init(); - // YUI.GlobalConfig is a master configuration that might span - // multiple contexts in a non-browser environment. It is applied - // first to all instances in all contexts. + /** + YUI.GlobalConfig is a master configuration that might span + multiple contexts in a non-browser environment. It is applied + first to all instances in all contexts. + @property YUI.GlobalConfig + @type {Object} + @global + @example + + + YUI.GlobalConfig = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); + + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + + */ if (YUI.GlobalConfig) { Y.applyConfig(YUI.GlobalConfig); } + + /** + YUI_config is a page-level config. It is applied to all + instances created on the page. This is applied after + YUI.GlobalConfig, and before the instance level configuration + objects. + @global + @property YUI_config + @type {Object} + @example + + + //Single global var to include before YUI seed file + YUI_config = { + filter: 'debug' + }; + + YUI().use('node', function(Y) { + //debug files used here + }); - // YUI_Config is a page-level config. It is applied to all - // instances created on the page. This is applied after - // YUI.GlobalConfig, and before the instance level configuration - // objects. + YUI({ + filter: 'min' + }).use('node', function(Y) { + //min files used here + }); + */ if (gconf) { Y.applyConfig(gconf); } @@ -189,7 +233,7 @@ proto = { * update the loader cache if necessary. Updating Y.config directly * will not update the cache. * @method applyConfig - * @param {object} the configuration object. + * @param {object} o the configuration object. * @since 3.2.0 */ applyConfig: function(o) { @@ -229,7 +273,12 @@ proto = { loader._config(o); } }, - + /** + * Old way to apply a config to the instance (calls `applyConfig` under the hood) + * @private + * @method _config + * @param {Object} o The config to apply + */ _config: function(o) { this.applyConfig(o); }, @@ -237,6 +286,7 @@ proto = { /** * Initialize this YUI instance * @private + * @method _init */ _init: function() { var filter, @@ -383,9 +433,14 @@ proto = { bootstrap: true, cacheUse: true, fetchCSS: true, - use_rls: false + use_rls: false, + rls_timeout: 2000 }; + if (YUI.Env.rls_disabled) { + Y.config.use_rls = false; + } + Y.config.lang = Y.config.lang || 'en-US'; Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE); @@ -453,33 +508,41 @@ proto = { return null; }, - /** - * Registers a module with the YUI global. The easiest way to create a - * first-class YUI module is to use the YUI component build tool. - * - * http://yuilibrary.com/projects/builder - * - * The build system will produce the `YUI.add` wrapper for you module, along - * with any configuration info required for the module. - * @method add - * @param name {String} module name. - * @param fn {Function} entry point into the module that - * is used to bind module to the YUI instance. - * @param version {String} version string. - * @param details {Object} optional config data: - * @param details.requires {Array} features that must be present before this module can be attached. - * @param details.optional {Array} optional features that should be present if loadOptional - * is defined. Note: modules are not often loaded this way in YUI 3, - * but this field is still useful to inform the user that certain - * features in the component will require additional dependencies. - * @param details.use {Array} features that are included within this module which need to - * be attached automatically when this module is attached. This - * supports the YUI 3 rollup system -- a module with submodules - * defined will need to have the submodules listed in the 'use' - * config. The YUI component build tool does this for you. - * @return {YUI} the YUI instance. - * - */ +/** +Registers a module with the YUI global. The easiest way to create a +first-class YUI module is to use the YUI component build tool. + +http://yuilibrary.com/projects/builder + +The build system will produce the `YUI.add` wrapper for you module, along +with any configuration info required for the module. +@method add +@param name {String} module name. +@param fn {Function} entry point into the module that is used to bind module to the YUI instance. +@param {YUI} fn.Y The YUI instance this module is executed in. +@param {String} fn.name The name of the module +@param version {String} version string. +@param details {Object} optional config data: +@param details.requires {Array} features that must be present before this module can be attached. +@param details.optional {Array} optional features that should be present if loadOptional + is defined. Note: modules are not often loaded this way in YUI 3, + but this field is still useful to inform the user that certain + features in the component will require additional dependencies. +@param details.use {Array} features that are included within this module which need to + be attached automatically when this module is attached. This + supports the YUI 3 rollup system -- a module with submodules + defined will need to have the submodules listed in the 'use' + config. The YUI component build tool does this for you. +@return {YUI} the YUI instance. +@example + + YUI.add('davglass', function(Y, name) { + Y.davglass = function() { + alert('Dav was here!'); + }; + }, '3.4.0', { requires: ['yui-base', 'harley-davidson', 'mt-dew'] }); + +*/ add: function(name, fn, version, details) { details = details || {}; var env = YUI.Env, @@ -915,7 +978,7 @@ proto = { loader.insert(null, (fetchCSS) ? null : 'js'); // loader.partial(missing, (fetchCSS) ? null : 'js'); - } else if (len && Y.config.use_rls) { + } else if (len && Y.config.use_rls && !YUI.Env.rls_enabled) { G_ENV._rls_queue = G_ENV._rls_queue || new Y.Queue(); @@ -924,10 +987,7 @@ proto = { var rls_end = function(o) { handleLoader(o); - G_ENV._rls_in_progress = false; - if (G_ENV._rls_queue.size()) { - G_ENV._rls_queue.next()(); - } + instance.rls_advance(); }, rls_url = instance._rls(argz); @@ -936,17 +996,22 @@ proto = { rls_end(o); }); instance.Get.script(rls_url, { - data: argz + data: argz, + timeout: instance.config.rls_timeout, + onFailure: instance.rls_handleFailure, + onTimeout: instance.rls_handleTimeout }); } else { rls_end({ + success: true, data: argz }); } }; G_ENV._rls_queue.add(function() { - G_ENV._rls_in_progress = true; + G_ENV._rls_in_progress = true; + Y.rls_callback = callback; Y.rls_locals(Y, args, handleRLS); }); @@ -962,6 +1027,7 @@ proto = { Y._loading = false; queue.running = false; Env.bootstrapped = true; + G_ENV._bootstrapping = false; if (Y._attach(['loader'])) { Y._use(args, callback); } @@ -1030,7 +1096,7 @@ proto = { log: NOOP, message: NOOP, // this is replaced if the dump module is included - dump: NOOP, + dump: function (o) { return ''+o; }, /** * Report an error. The reporting mechanism is controled by @@ -1981,7 +2047,8 @@ L.sub = function(s, o) { * Returns the current time in milliseconds. * * @method now - * @return {int} Current time in milliseconds. + * @return {Number} Current time in milliseconds. + * @static * @since 3.3.0 */ L.now = Date.now || function () { @@ -1989,8 +2056,9 @@ L.now = Date.now || function () { }; /** * The YUI module contains the components required for building the YUI seed - * file. This includes the script loading mechanism, a simple queue, and the + * file. This includes the script loading mechanism, a simple queue, and the * core utilities for the library. + * * @module yui * @submodule yui-base */ @@ -2001,36 +2069,33 @@ var Lang = Y.Lang, hasOwn = Object.prototype.hasOwnProperty; /** - * Adds utilities to the YUI instance for working with arrays. Additional array - * helpers can be found in the `collection` module. - * - * @class Array - */ - -/** - * `Y.Array(thing)` returns an array created from _thing_. Depending on - * _thing_'s type, one of the following will happen: - * - * * Arrays are returned unmodified unless a non-zero _startIndex_ is - * specified. - * * Array-like collections (see `Array.test()`) are converted to arrays. - * * For everything else, a new array is created with _thing_ as the sole - * item. - * - * Note: elements that are also collections, such as `` and `` +elements, are not automatically converted to arrays. To force a conversion, +pass `true` as the value of the _force_ parameter. + +@class Array +@constructor +@param {Any} thing The thing to arrayify. +@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like + collection, a subset of items starting at the specified index will be + returned. +@param {Boolean} [force=false] If `true`, _thing_ will be treated as an + array-like collection no matter what. +@return {Array} A native array created from _thing_, according to the rules + described above. +**/ function YArray(thing, startIndex, force) { var len, result; @@ -2057,22 +2122,23 @@ function YArray(thing, startIndex, force) { Y.Array = YArray; /** - * Evaluates _obj_ to determine if it's an array, an array-like collection, or - * something else. This is useful when working with the function `arguments` - * collection and `HTMLElement` collections. - * - * Note: This implementation doesn't consider elements that are also - * collections, such as `` and ``, to be array-like. + +@method test +@param {Object} obj Object to test. +@return {Number} A number indicating the results of the test: + + * 0: Neither an array nor an array-like collection. + * 1: Real array. + * 2: Array-like collection. + +@static +**/ YArray.test = function (obj) { var result = 0; @@ -2093,19 +2159,19 @@ YArray.test = function (obj) { }; /** - * Dedupes an array of strings, returning an array that's guaranteed to contain - * only one copy of a given string. - * - * This method differs from `Y.Array.unique` in that it's optimized for use only - * with strings, whereas `unique` may be used with other types (but is slower). - * Using `dedupe` with non-string values may result in unexpected behavior. - * - * @method dedupe - * @param {String[]} array Array of strings to dedupe. - * @return {Array} Deduped copy of _array_. - * @static - * @since 3.4.0 - */ +Dedupes an array of strings, returning an array that's guaranteed to contain +only one copy of a given string. + +This method differs from `Array.unique()` in that it's optimized for use only +with strings, whereas `unique` may be used with other types (but is slower). +Using `dedupe()` with non-string values may result in unexpected behavior. + +@method dedupe +@param {String[]} array Array of strings to dedupe. +@return {Array} Deduped copy of _array_. +@static +@since 3.4.0 +**/ YArray.dedupe = function (array) { var hash = {}, results = [], @@ -2124,20 +2190,20 @@ YArray.dedupe = function (array) { }; /** - * Executes the supplied function on each item in the array. This method wraps - * the native ES5 `Array.forEach()` method if available. - * - * @method each - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item in the array. - * @param {mixed} fn.item Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {YUI} The YUI instance. - * @chainable - * @static - */ +Executes the supplied function on each item in the array. This method wraps +the native ES5 `Array.forEach()` method if available. + +@method each +@param {Array} array Array to iterate. +@param {Function} fn Function to execute on each item in the array. The function + will receive the following arguments: + @param {Any} fn.item Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {YUI} The YUI instance. +@static +**/ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { Native.forEach.call(array || [], fn, thisObj || Y); return Y; @@ -2152,29 +2218,29 @@ YArray.each = YArray.forEach = Native.forEach ? function (array, fn, thisObj) { }; /** - * Alias for `each`. - * - * @method forEach - * @static - */ +Alias for `each()`. + +@method forEach +@static +**/ /** - * Returns an object using the first array as keys and the second as values. If - * the second array is not provided, or if it doesn't contain the same number of - * values as the first array, then `true` will be used in place of the missing - * values. - * - * @example - * - * Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); - * // => {a: 'foo', b: 'bar', c: true} - * - * @method hash - * @param {Array} keys Array to use as keys. - * @param {Array} [values] Array to use as values. - * @return {Object} - * @static - */ +Returns an object using the first array as keys and the second as values. If +the second array is not provided, or if it doesn't contain the same number of +values as the first array, then `true` will be used in place of the missing +values. + +@example + + Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']); + // => {a: 'foo', b: 'bar', c: true} + +@method hash +@param {String[]} keys Array of strings to use as keys. +@param {Array} [values] Array to use as values. +@return {Object} Hash using the first array as keys and the second as values. +@static +**/ YArray.hash = function (keys, values) { var hash = {}, vlen = (values && values.length) || 0, @@ -2190,18 +2256,18 @@ YArray.hash = function (keys, values) { }; /** - * Returns the index of the first item in the array that's equal (using a strict - * equality check) to the specified _value_, or `-1` if the value isn't found. - * - * This method wraps the native ES5 `Array.indexOf()` method if available. - * - * @method indexOf - * @param {Array} array Array to search. - * @param {any} value Value to search for. - * @return {Number} Index of the item strictly equal to _value_, or `-1` if not - * found. - * @static - */ +Returns the index of the first item in the array that's equal (using a strict +equality check) to the specified _value_, or `-1` if the value isn't found. + +This method wraps the native ES5 `Array.indexOf()` method if available. + +@method indexOf +@param {Array} array Array to search. +@param {Any} value Value to search for. +@return {Number} Index of the item strictly equal to _value_, or `-1` if not + found. +@static +**/ YArray.indexOf = Native.indexOf ? function (array, value) { // TODO: support fromIndex return Native.indexOf.call(array, value); @@ -2216,43 +2282,44 @@ YArray.indexOf = Native.indexOf ? function (array, value) { }; /** - * Numeric sort convenience function. - * - * The native `Array.prototype.sort()` function converts values to strings and - * sorts them in lexicographic order, which is unsuitable for sorting numeric - * values. Provide `Y.Array.numericSort` as a custom sort function when you want - * to sort values in numeric order. - * - * @example - * - * [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); - * // => [4, 8, 15, 16, 23, 42] - * - * @method numericSort - * @param {Number} a First value to compare. - * @param {Number} b Second value to compare. - * @return {Number} Difference between _a_ and _b_. - * @static - */ +Numeric sort convenience function. + +The native `Array.prototype.sort()` function converts values to strings and +sorts them in lexicographic order, which is unsuitable for sorting numeric +values. Provide `Array.numericSort` as a custom sort function when you want +to sort values in numeric order. + +@example + + [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort); + // => [4, 8, 15, 16, 23, 42] + +@method numericSort +@param {Number} a First value to compare. +@param {Number} b Second value to compare. +@return {Number} Difference between _a_ and _b_. +@static +**/ YArray.numericSort = function (a, b) { return a - b; }; /** - * Executes the supplied function on each item in the array. Returning a truthy - * value from the function will stop the processing of remaining items. - * - * @method some - * @param {Array} array Array to iterate. - * @param {Function} fn Function to execute on each item. - * @param {mixed} fn.value Current array item. - * @param {Number} fn.index Current array index. - * @param {Array} fn.array Array being iterated. - * @param {Object} [thisObj] `this` object to use when calling _fn_. - * @return {Boolean} `true` if the function returns a truthy value on any of the - * items in the array; `false` otherwise. - * @static - */ +Executes the supplied function on each item in the array. Returning a truthy +value from the function will stop the processing of remaining items. + +@method some +@param {Array} array Array to iterate over. +@param {Function} fn Function to execute on each item. The function will receive + the following arguments: + @param {Any} fn.value Current array item. + @param {Number} fn.index Current array index. + @param {Array} fn.array Array being iterated over. +@param {Object} [thisObj] `this` object to use when calling _fn_. +@return {Boolean} `true` if the function returns a truthy value on any of the + items in the array; `false` otherwise. +@static +**/ YArray.some = Native.some ? function (array, fn, thisObj) { return Native.some.call(array, fn, thisObj); } : function (array, fn, thisObj) { @@ -3293,9 +3360,7 @@ YUI.Env.aliases = { "resize": ["resize-base","resize-proxy","resize-constrain"], "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"], "text": ["text-accentfold","text-wordbreak"], - "transition": ["transition-native","transition-timer"], - "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"], - "yui-rls": ["yui-base","get","features","intl-base","rls","yui-log","yui-later"] + "widget": ["widget-base","widget-htmlparser","widget-uievents","widget-skin"] }; @@ -3664,7 +3729,11 @@ var ua = Y.UA, _loaded = function(id, url) { var q = queues[id], - sync = !q.async; + sync = (q && !q.async); + + if (!q) { + return; + } if (sync) { _clearTimeout(q); @@ -3912,7 +3981,7 @@ Y.Get = { /** * The number of request required before an automatic purge. * Can be configured via the 'purgethreshold' config - * property PURGE_THRESH + * @property PURGE_THRESH * @static * @type int * @default 20 @@ -4221,7 +4290,7 @@ Y.mix(Y.namespace('Features'), { // Y.Features.test("load", "1"); // caps=1:1;2:0;3:1; -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ var add = Y.Features.add; // graphics-svg.js add('load', '0', { @@ -4282,14 +4351,30 @@ add('load', '3', { }, "trigger": "dom-style" }); -// 0 +// transition-test.js add('load', '4', { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" +}); +// 0 +add('load', '5', { "name": "widget-base-ie", "trigger": "widget-base", "ua": "ie" }); // autocomplete-list-keys-sniff.js -add('load', '5', { +add('load', '6', { "name": "autocomplete-list-keys", "test": function (Y) { // Only add keyboard support to autocomplete-list if this doesn't appear to @@ -4308,7 +4393,7 @@ add('load', '5', { "trigger": "autocomplete-list" }); // graphics-canvas.js -add('load', '6', { +add('load', '7', { "name": "graphics-canvas-default", "test": function(Y) { var DOCUMENT = Y.config.doc, @@ -4318,7 +4403,7 @@ add('load', '6', { "trigger": "graphics" }); // dd-gestures-test.js -add('load', '7', { +add('load', '8', { "name": "dd-gestures", "test": function(Y) { return (Y.config.win && ('ontouchstart' in Y.config.win && !Y.UA.chrome)); @@ -4326,7 +4411,7 @@ add('load', '7', { "trigger": "dd-drag" }); // selector-test.js -add('load', '8', { +add('load', '9', { "name": "selector-css2", "test": function (Y) { var DOCUMENT = Y.config.doc, @@ -4337,7 +4422,7 @@ add('load', '8', { "trigger": "selector" }); // history-hash-ie-test.js -add('load', '9', { +add('load', '10', { "name": "history-hash-ie", "test": function (Y) { var docMode = Y.config.doc && Y.config.doc.documentMode; @@ -4638,7 +4723,7 @@ if (!YUI.Env[Y.version]) { BUILD = '/build/', ROOT = VERSION + BUILD, CDN_BASE = Y.Env.base, - GALLERY_VERSION = 'gallery-2011.06.08-20-04', + GALLERY_VERSION = 'gallery-2011.08.03-21-18', TNT = '2in3', TNT_VERSION = '4', YUI2_VERSION = '2.9.0', @@ -4971,7 +5056,7 @@ Y.Loader = function(o) { * @type string * @default http://yui.yahooapis.com/[YUI VERSION]/build/ */ - self.base = Y.Env.meta.base; + self.base = Y.Env.meta.base + Y.Env.meta.root; /** * Base path for the combo service @@ -4996,7 +5081,14 @@ Y.Loader = function(o) { */ self.combine = o.base && (o.base.indexOf(self.comboBase.substr(0, 20)) > -1); - + + /** + * The default seperator to use between files in a combo URL + * @property comboSep + * @type {String} + * @default Ampersand + */ + self.comboSep = '&'; /** * Max url length for combo urls. The default is 2048 for * internet explorer, and 8192 otherwise. This is the URL @@ -5306,9 +5398,13 @@ Y.Loader.prototype = { 'replaceStr': '-debug.js' } }, - - _inspectPage: function() { - oeach(ON_PAGE, function(v, k) { + /* + * Check the pages meta-data and cache the result. + * @method _inspectPage + * @private + */ + _inspectPage: function() { + oeach(ON_PAGE, function(v, k) { if (v.details) { var m = this.moduleInfo[k], req = v.details.requires, @@ -5326,10 +5422,14 @@ Y.Loader.prototype = { m._inspected = true; } }, this); - }, - -// returns true if b is not loaded, and is required -// directly or by means of modules it supersedes. + }, + /* + * returns true if b is not loaded, and is required directly or by means of modules it supersedes. + * @private + * @method _requires + * @param {String} mod1 The first module to compare + * @param {String} mod2 The second module to compare + */ _requires: function(mod1, mod2) { var i, rm, after_map, s, @@ -5389,7 +5489,11 @@ Y.Loader.prototype = { return false; }, - + /** + * Apply a new config to the Loader instance + * @method _config + * @param {Object} o The new configuration + */ _config: function(o) { var i, j, val, f, group, groupName, self = this; // apply config values @@ -5627,7 +5731,7 @@ Y.Loader.prototype = { o.requires = this.filterRequires(o.requires) || []; // Handle submodule logic - var subs = o.submodules, i, l, sup, s, smod, plugins, plug, + var subs = o.submodules, i, l, t, sup, s, smod, plugins, plug, j, langs, packName, supName, flatSup, flatLang, lang, ret, overrides, skinname, when, conditions = this.conditions, trigger; @@ -5761,24 +5865,34 @@ Y.Loader.prototype = { } if (o.condition) { - trigger = o.condition.trigger; - when = o.condition.when; - conditions[trigger] = conditions[trigger] || {}; - conditions[trigger][name] = o.condition; - // the 'when' attribute can be 'before', 'after', or 'instead' - // the default is after. - if (when && when != 'after') { - if (when == 'instead') { // replace the trigger - o.supersedes = o.supersedes || []; - o.supersedes.push(trigger); - } else { // before the trigger - // the trigger requires the conditional mod, - // so it should appear before the conditional - // mod if we do not intersede. + t = o.condition.trigger; + if (YUI.Env.aliases[t]) { + t = YUI.Env.aliases[t]; + } + if (!Y.Lang.isArray(t)) { + t = [t]; + } + + for (i = 0; i < t.length; i++) { + trigger = t[i]; + when = o.condition.when; + conditions[trigger] = conditions[trigger] || {}; + conditions[trigger][name] = o.condition; + // the 'when' attribute can be 'before', 'after', or 'instead' + // the default is after. + if (when && when != 'after') { + if (when == 'instead') { // replace the trigger + o.supersedes = o.supersedes || []; + o.supersedes.push(trigger); + } else { // before the trigger + // the trigger requires the conditional mod, + // so it should appear before the conditional + // mod if we do not intersede. + } + } else { // after the trigger + o.after = o.after || []; + o.after.push(trigger); } - } else { // after the trigger - o.after = o.after || []; - o.after.push(trigger); } } @@ -5845,18 +5959,31 @@ Y.Loader.prototype = { } }, + /** + * Explodes the required array to remove aliases and replace them with real modules + * @method filterRequires + * @param {Array} r The original requires array + * @return {Array} The new array of exploded requirements + */ filterRequires: function(r) { if (r) { if (!Y.Lang.isArray(r)) { r = [r]; } r = Y.Array(r); - var c = []; - for (var i = 0; i < r.length; i++) { - var mod = this.getModule(r[i]); + var c = [], i, mod, o, m; + + for (i = 0; i < r.length; i++) { + mod = this.getModule(r[i]); if (mod && mod.use) { - for (var o = 0; o < mod.use.length; o++) { - c.push(mod.use[o]); + for (o = 0; o < mod.use.length; o++) { + //Must walk the other modules in case a module is a rollup of rollups (datatype) + m = this.getModule(mod.use[o]); + if (m && m.use) { + c = Y.Array.dedupe([].concat(c, this.filterRequires(m.use))); + } else { + c.push(mod.use[o]); + } } } else { c.push(r[i]); @@ -5884,7 +6011,7 @@ Y.Loader.prototype = { adddef = ON_PAGE[name] && ON_PAGE[name].details, d, k, m1, r, old_mod, - o, skinmod, skindef, + o, skinmod, skindef, skinpar, skinname, intl = mod.lang || mod.intl, info = this.moduleInfo, ftests = Y.Features && Y.Features.tests.load, @@ -6002,7 +6129,6 @@ Y.Loader.prototype = { }); } else { oeach(cond, function(def, condmod) { - if (!hash[condmod]) { go = def && ((def.ua && Y.UA[def.ua]) || (def.test && def.test(Y, r))); @@ -6025,9 +6151,18 @@ Y.Loader.prototype = { // Create skin modules if (mod.skinnable) { skindef = this.skin.overrides; - if (skindef && skindef[name]) { - for (i = 0; i < skindef[name].length; i++) { - skinmod = this._addSkin(skindef[name][i], name); + oeach(YUI.Env.aliases, function(o, n) { + if (Y.Array.indexOf(o, name) > -1) { + skinpar = n; + } + }); + if (skindef && (skindef[name] || (skinpar && skindef[skinpar]))) { + skinname = name; + if (skindef[skinpar]) { + skinname = skinpar; + } + for (i = 0; i < skindef[skinname].length; i++) { + skinmod = this._addSkin(skindef[skinname][i], name); d.push(skinmod); } } else { @@ -6119,7 +6254,14 @@ Y.Loader.prototype = { this._sort(); } }, - + /** + * Creates a "psuedo" package for languages provided in the lang array + * @method _addLangPack + * @param {String} lang The language to create + * @param {Object} m The module definition to create the language pack around + * @param {String} packName The name of the package (e.g: lang/datatype-date-en-US) + * @return {Object} The module definition + */ _addLangPack: function(lang, m, packName) { var name = m.name, packPath, @@ -6260,7 +6402,12 @@ Y.Loader.prototype = { }); }, - + /** + * Get's the loader meta data for the requested module + * @method getModule + * @param {String} mname The module name to get + * @return {Object} The module metadata + */ getModule: function(mname) { //TODO: Remove name check - it's a quick hack to fix pattern WIP if (!mname) { @@ -6315,7 +6462,9 @@ Y.Loader.prototype = { r = r || this.required; - var i, j, s, m, type = this.loadType; + var i, j, s, m, type = this.loadType, + ignore = this.ignore ? YArray.hash(this.ignore) : false; + for (i in r) { if (r.hasOwnProperty(i)) { m = this.getModule(i); @@ -6325,6 +6474,9 @@ Y.Loader.prototype = { (type && m && m.type != type)) { delete r[i]; } + if (ignore && ignore[i]) { + delete r[i]; + } // remove anything this module supersedes s = m && m.supersedes; if (s) { @@ -6339,7 +6491,13 @@ Y.Loader.prototype = { return r; }, - + /** + * Handles the queue when a module has been loaded for all cases + * @method _finish + * @private + * @param {String} msg The message from Loader + * @param {Boolean} success A boolean denoting success or failure + */ _finish: function(msg, success) { _queue.running = false; @@ -6354,7 +6512,11 @@ Y.Loader.prototype = { } this._continue(); }, - + /** + * The default Loader onSuccess handler, calls this.onSuccess with a payload + * @method _onSuccess + * @private + */ _onSuccess: function() { var self = this, skipped = Y.merge(self.skipped), fn, failed = [], rreg = self.requireRegistration, @@ -6389,6 +6551,11 @@ Y.Loader.prototype = { } self._finish(msg, success); }, + /** + * The default Loader onFailure handler, calls this.onFailure with a payload + * @method _onFailure + * @private + */ _onFailure: function(o) { var f = this.onFailure, msg = 'failure: ' + o.msg; if (f) { @@ -6401,6 +6568,11 @@ Y.Loader.prototype = { this._finish(msg, false); }, + /** + * The default Loader onTimeout handler, calls this.onTimeout with a payload + * @method _onTimeout + * @private + */ _onTimeout: function() { var f = this.onTimeout; if (f) { @@ -6483,12 +6655,23 @@ Y.Loader.prototype = { this.sorted = s; }, - + /** + * (Unimplemented) + * @method partial + * @unimplemented + */ partial: function(partial, o, type) { this.sorted = partial; this.insert(o, type, true); }, - + /** + * Handles the actual insertion of script/link tags + * @method _insert + * @param {Object} source The YUI instance the request came from + * @param {Object} o The metadata to include + * @param {String} type JS or CSS + * @param {Boolean} [skipcalc=false] Do a Loader.calculate on the meta + */ _insert: function(source, o, type, skipcalc) { @@ -6552,9 +6735,11 @@ Y.Loader.prototype = { this.loadNext(); }, - - // Once a loader operation is completely finished, process - // any additional queued items. + /** + * Once a loader operation is completely finished, process any additional queued items. + * @method _continue + * @private + */ _continue: function() { if (!(_queue.running) && _queue.size() > 0) { _queue.running = true; @@ -6592,7 +6777,7 @@ Y.Loader.prototype = { */ loadNext: function(mname) { // It is possible that this function is executed due to something - // else one the page loading a YUI module. Only react when we + // else on the page loading a YUI module. Only react when we // are actively loading something if (!this._loading) { return; @@ -6683,7 +6868,7 @@ Y.Loader.prototype = { url += frag; if (i < (len - 1)) { - url += '&'; + url += self.comboSep; } combining.push(m.name); @@ -6839,7 +7024,7 @@ Y.Loader.prototype = { /** * Apply filter defined for this instance to a url/path - * method _filter + * @method _filter * @param {string} u the string to filter. * @param {string} name the name of the module, if we are processing * a single module as opposed to a combined url. @@ -6867,13 +7052,98 @@ Y.Loader.prototype = { /** * Generates the full url for a module - * method _url + * @method _url * @param {string} path the path fragment. + * @param {String} name The name of the module + * @pamra {String} [base=self.base] The base url to use * @return {string} the full url. * @private */ _url: function(path, name, base) { return this._filter((base || this.base || '') + path, name); + }, + /** + * Returns an Object hash of file arrays built from `loader.sorted` or from an arbitrary list of sorted modules. + * @method resolve + * @param {Boolean} [calc=false] Perform a loader.calculate() before anything else + * @param {Array} [s=loader.sorted] An override for the loader.sorted array + * @return {Object} Object hash (js and css) of two arrays of file lists + * @example This method can be used as an off-line dep calculator + * + * var Y = YUI(); + * var loader = new Y.Loader({ + * filter: 'debug', + * base: '../../', + * root: 'build/', + * combine: true, + * require: ['node', 'dd', 'console'] + * }); + * var out = loader.resolve(true); + * + */ + resolve: function(calc, s) { + var self = this, i, m, url, out = { js: [], css: [] }; + + if (calc) { + self.calculate(); + } + s = s || self.sorted; + + for (i = 0; i < s.length; i++) { + m = self.getModule(s[i]); + if (m) { + if (self.combine) { + url = self._filter((self.root + m.path), m.name, self.root); + } else { + url = self._filter(m.fullpath, m.name, '') || self._url(m.path, m.name); + } + out[m.type].push(url); + } + } + if (self.combine) { + out.js = [self.comboBase + out.js.join(self.comboSep)]; + out.css = [self.comboBase + out.css.join(self.comboSep)]; + } + + return out; + }, + /** + * Returns an Object hash of hashes built from `loader.sorted` or from an arbitrary list of sorted modules. + * @method hash + * @private + * @param {Boolean} [calc=false] Perform a loader.calculate() before anything else + * @param {Array} [s=loader.sorted] An override for the loader.sorted array + * @return {Object} Object hash (js and css) of two object hashes of file lists, with the module name as the key + * @example This method can be used as an off-line dep calculator + * + * var Y = YUI(); + * var loader = new Y.Loader({ + * filter: 'debug', + * base: '../../', + * root: 'build/', + * combine: true, + * require: ['node', 'dd', 'console'] + * }); + * var out = loader.hash(true); + * + */ + hash: function(calc, s) { + var self = this, i, m, url, out = { js: {}, css: {} }; + + if (calc) { + self.calculate(); + } + s = s || self.sorted; + + for (i = 0; i < s.length; i++) { + m = self.getModule(s[i]); + if (m) { + url = self._filter(m.fullpath, m.name, '') || self._url(m.path, m.name); + out[m.type][m.name] = url; + } + } + + return out; } }; @@ -6983,7 +7253,7 @@ Y.Loader.prototype._rollup = function() { }, '3.4.0' ,{requires:['loader-base']}); YUI.add('loader-yui3', function(Y) { -/* This file is auto-generated by src/loader/meta_join.py */ +/* This file is auto-generated by src/loader/scripts/meta_join.py */ /** * YUI 3 module metadata @@ -7148,6 +7418,7 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "requires": [ "autocomplete-base", "event-resize", + "node-screen", "selector-css3", "shim-plugin", "widget", @@ -7253,7 +7524,8 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "ru" ], "requires": [ - "calendar-base" + "calendar-base", + "calendarnavigator" ], "skinnable": true }, @@ -7266,14 +7538,23 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget", "substitute", "datatype-date", - "datatype-date-math" + "datatype-date-math", + "cssgrids" + ], + "skinnable": true + }, + "calendarnavigator": { + "requires": [ + "plugin", + "classnamemanager" ], "skinnable": true }, "charts": { "requires": [ "dom", - "datatype", + "datatype-number", + "datatype-date", "event-custom", "event-mouseenter", "widget", @@ -7301,14 +7582,6 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "array-invoke" ] }, - "compat": { - "requires": [ - "event-base", - "dom", - "dump", - "substitute" - ] - }, "console": { "lang": [ "en", @@ -8090,7 +8363,10 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (canvas && canvas.getContext && canvas.getContext("2d"))); }, "trigger": "graphics" - } + }, + "requires": [ + "graphics" + ] }, "graphics-canvas-default": { "condition": { @@ -8111,7 +8387,10 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { return (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")); }, "trigger": "graphics" - } + }, + "requires": [ + "graphics" + ] }, "graphics-svg-default": { "condition": { @@ -8132,7 +8411,10 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (!canvas || !canvas.getContext || !canvas.getContext("2d"))); }, "trigger": "graphics" - } + }, + "requires": [ + "graphics" + ] }, "graphics-vml-default": { "condition": { @@ -8324,6 +8606,7 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "array-invoke", "arraylist", "base-build", + "escape", "json-parse", "model" ] @@ -8440,14 +8723,23 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { ], "skinnable": true }, - "plugin": { + "panel": { "requires": [ - "base-base" - ] + "widget", + "widget-stdmod", + "widget-position", + "widget-position-align", + "widget-stack", + "widget-position-constrain", + "widget-modality", + "widget-autohide", + "widget-buttons" + ], + "skinnable": true }, - "pluginattr": { + "plugin": { "requires": [ - "plugin" + "base-base" ] }, "pluginhost": { @@ -8615,6 +8907,12 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "scrollview-base" ] }, + "scrollview-list": { + "requires": [ + "plugin" + ], + "skinnable": true + }, "scrollview-paginator": { "requires": [ "plugin" @@ -8771,20 +9069,28 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { ] }, "transition": { - "use": [ - "transition-native", - "transition-timer" - ] - }, - "transition-native": { "requires": [ - "node-base" + "node-style" ] }, "transition-timer": { + "condition": { + "name": "transition-timer", + "test": function (Y) { + var DOCUMENT = Y.config.doc, + node = (DOCUMENT) ? DOCUMENT.documentElement: null, + ret = true; + + if (node && node.style) { + ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style); + } + + return ret; +}, + "trigger": "transition" + }, "requires": [ - "transition-native", - "node-style" + "transition" ] }, "uploader": { @@ -8802,7 +9108,6 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { ] }, "widget": { - "skinnable": true, "use": [ "widget-base", "widget-htmlparser", @@ -8820,9 +9125,9 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget-autohide": { "requires": [ "widget", - "plugin", "event-outside", - "base-build" + "base-build", + "event-key" ], "skinnable": false }, @@ -8835,7 +9140,8 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "node-base", "node-style", "classnamemanager" - ] + ], + "skinnable": true }, "widget-base-ie": { "condition": { @@ -8847,6 +9153,13 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget-base" ] }, + "widget-buttons": { + "requires": [ + "widget", + "base-build" + ], + "skinnable": false + }, "widget-child": { "requires": [ "base-build", @@ -8866,7 +9179,6 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "widget-modality": { "requires": [ "widget", - "plugin", "event-outside", "base-build" ], @@ -8926,19 +9238,7 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "jsonp-url" ] }, - "yui": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "yui-log", - "yui-later", - "loader-base", - "loader-rollup", - "loader-yui3" - ] - }, + "yui": {}, "yui-base": {}, "yui-later": { "requires": [ @@ -8950,24 +9250,14 @@ YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || { "yui-base" ] }, - "yui-rls": { - "use": [ - "yui-base", - "get", - "features", - "intl-base", - "rls", - "yui-log", - "yui-later" - ] - }, + "yui-rls": {}, "yui-throttle": { "requires": [ "yui-base" ] } }; -YUI.Env[Y.version].md5 = 'ea3b697e30a4b7bf0c41e10e098f5bab'; +YUI.Env[Y.version].md5 = 'fbf2d694a982e8290f58fd1694becad2'; }, '3.4.0' ,{requires:['loader-base']}); From f04e6708cba62e84b15685b1687923801ec19fee Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 12:41:32 -0300 Subject: [PATCH 034/132] Updating API to YUI3 master dev --- demos/diagram-builder/index.html | 2 -- src/aui-diagram-builder/js/aui-diagram-builder-connector.js | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index 77b13568dca..877a7be383f 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -158,8 +158,6 @@

                              Alloy - diagram-builder-base Demo

                              // TODO Realign anchors to best fit? // TODO Better Connection path? -AUI().use('async-queue', function(A) {}); - AUI().use('aui-diagram-builder', 'io-form', function(A) { var Lang = A.Lang, diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-connector.js b/src/aui-diagram-builder/js/aui-diagram-builder-connector.js index 2cb7e48b852..2aabe795a80 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-connector.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-connector.js @@ -247,7 +247,7 @@ A.Connector = A.Base.create('line', A.Base, [], { _initShapes: function() { var instance = this; - var shape = instance.shape = instance.get(GRAPHIC).getShape( + var shape = instance.shape = instance.get(GRAPHIC).addShape( instance.get(SHAPE) ); From 52357ce95d2363c8d397f5d776b3a0a75b59bc2f Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 12:41:44 -0300 Subject: [PATCH 035/132] Build files --- .../aui-diagram-builder/aui-diagram-builder-connector-debug.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-connector-min.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-connector.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-debug.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-min.js | 2 +- build/aui-diagram-builder/aui-diagram-builder.js | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js b/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js index 28b84483f3c..e5c59fbf2a6 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-connector-debug.js @@ -248,7 +248,7 @@ A.Connector = A.Base.create('line', A.Base, [], { _initShapes: function() { var instance = this; - var shape = instance.shape = instance.get(GRAPHIC).getShape( + var shape = instance.shape = instance.get(GRAPHIC).addShape( instance.get(SHAPE) ); diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector-min.js b/build/aui-diagram-builder/aui-diagram-builder-connector-min.js index d01924b5361..780d9883e47 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-connector-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-connector-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).getShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                              ',NODE_TEMPLATE:'
                              ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                              ',NODE_TEMPLATE:'
                              ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-connector.js b/build/aui-diagram-builder/aui-diagram-builder-connector.js index 28b84483f3c..e5c59fbf2a6 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-connector.js +++ b/build/aui-diagram-builder/aui-diagram-builder-connector.js @@ -248,7 +248,7 @@ A.Connector = A.Base.create('line', A.Base, [], { _initShapes: function() { var instance = this; - var shape = instance.shape = instance.get(GRAPHIC).getShape( + var shape = instance.shape = instance.get(GRAPHIC).addShape( instance.get(SHAPE) ); diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 8970bfcc236..9315afa5519 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -2372,7 +2372,7 @@ A.Connector = A.Base.create('line', A.Base, [], { _initShapes: function() { var instance = this; - var shape = instance.shape = instance.get(GRAPHIC).getShape( + var shape = instance.shape = instance.get(GRAPHIC).addShape( instance.get(SHAPE) ); diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index 045d990eca6..08e27b0aaaa 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -2,5 +2,5 @@ AUI.add("aui-diagram-builder-base",function(ad){var S=ad.Lang,d=S.isArray,ap=S.i },_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);aF.appendChild(aG);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                              ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                              ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag(); A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A; },prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                              ',CONTROLS_TEMPLATE:'
                              ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,EXTENDS:au.DiagramNode});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{type:{value:ab}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{type:{value:aZ}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{type:{value:t}},EXTENDS:au.DiagramNodeState,}); -au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{type:{value:at}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).getShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                              ',NODE_TEMPLATE:'
                              ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                              ',NODE_TEMPLATE:'
                              ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index 8970bfcc236..9315afa5519 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -2372,7 +2372,7 @@ A.Connector = A.Base.create('line', A.Base, [], { _initShapes: function() { var instance = this; - var shape = instance.shape = instance.get(GRAPHIC).getShape( + var shape = instance.shape = instance.get(GRAPHIC).addShape( instance.get(SHAPE) ); From 29d0ff743e9798c7c0d9527041e8ca16c0583ff7 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 15:42:41 -0300 Subject: [PATCH 036/132] AUI-461 Adding minor visual changes to the diagram builder anchors --- demos/diagram-builder/index.html | 429 +++++++++--------- .../assets/aui-diagram-builder-base-core.css | 7 +- .../assets/skins/sam/anchor-default.png | Bin 3553 -> 1090 bytes .../assets/skins/sam/anchor-valid.png | Bin 3503 -> 1174 bytes .../sam/aui-diagram-builder-base-skin.css | 13 + .../assets/skins/sam/end.png | Bin 1434 -> 1311 bytes .../assets/skins/sam/start.png | Bin 1334 -> 1358 bytes .../assets/skins/sam/state.png | Bin 1086 -> 1206 bytes .../js/aui-diagram-builder-impl.js | 41 +- 9 files changed, 257 insertions(+), 233 deletions(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index 877a7be383f..0dee8c26850 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -44,15 +44,15 @@ .aui-diagram-builder-anchor-node.yui3-dd-dragging { } - .aui-diagram-builder-anchor-hover, +/* .aui-diagram-builder-anchor-hover, .aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid { background: #fff !important; border: 3px solid #484A4C !important; width: 9px !important; height: 9px !important; - } + }*/ - .aui-diagram-builder-anchor-node.yui3-dd-drop-over { +/* .aui-diagram-builder-anchor-node.yui3-dd-drop-over { background: #F7F3E8; border: 2px solid #747E80; -moz-transform: scale(1.3); @@ -61,7 +61,7 @@ -webkit-transform: scale(1.3); -webkit-transition:-moz-transform 0.4s ease-in-out; -webkit-transition: background-color 0.4s linear; - } + }*/ .log { width: 300px; @@ -1136,256 +1136,239 @@

                              Alloy - diagram-builder-base Demo

                              A.WorkflowDesigner.types = A.DiagramBuilder.types; - // A.DiagramNodeState = A.Component.create({ - // NAME: DIAGRAM_NODE_NAME, + A.DiagramNodeStateCustom = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, - // ATTRS: { - // initial: { - // value: false, - // validation: isBoolean - // }, + ATTRS: { + initial: { + value: false, + validation: isBoolean + }, - // notifications: { - // // value: { - // // name: 'string', - // // description: 'string', - // // template: 'string', - // // 'template-type': 'string', - // // 'notification-type': 'string', - // // recipients: { - // // address: 'string', - // // - // // role: { - // // roleId: 1234, - // // roleType: 'string', - // // name: 'string', - // // autoCreate: true - // // }, - // // - // // user: { - // // 'user-id': 1234, - // // 'screen-name': 'string', - // // 'email-address': 'string' - // // } - // // } - // // } - // }, + notifications: { + }, - // actions: { - // // value: { - // // name: 'string', - // // description: 'string', - // // script: 'string', - // // 'script-language': 'string', - // // priority: 0 - // // } - // }, + actions: { + }, - // strings: { - // value: { - // actions: 'Actions', - // addAnchorMessage: 'Add Anchor', - // assignments: 'Assignments', - // closeMessage: 'Close', - // deleteNodesMessage: 'Are you sure you want to delete the selected node(s)?', - // description: 'Description', - // editMessage: 'Edit', - // initial: 'Initial', - // name: 'Name', - // notifications: 'Notifications', - // type: 'Type' - // } - // }, + strings: { + value: { + actions: 'Actions', + addAnchorMessage: 'Add Anchor', + assignments: 'Assignments', + closeMessage: 'Close', + deleteNodesMessage: 'Are you sure you want to delete the selected node(s)?', + description: 'Description', + editMessage: 'Edit', + initial: 'Initial', + name: 'Name', + notifications: 'Notifications', + type: 'Type' + } + }, - // xmlType: { - // value: STATE - // } - // }, + xmlType: { + value: STATE + } + }, - // EXTENDS: A.DiagramNodeState, + EXTENDS: A.DiagramNodeState, - // prototype: { - // SERIALIZABLE_ATTRS: A.DiagramNode.prototype.SERIALIZABLE_ATTRS.concat([INITIAL, XML_TYPE]), + prototype: { + SERIALIZABLE_ATTRS: A.DiagramNode.prototype.SERIALIZABLE_ATTRS.concat([INITIAL, XML_TYPE]), - // getConnectionNode: function() { - // return new A.DiagramNodeTask({ - // xy: [100, 100] // TODO - find best position? - // }); - // }, + getConnectionNode: function() { + return new A.DiagramNodeTask({ + xy: [100, 100] // TODO - find best position? + }); + }, - // getPropertyModel: function() { - // var instance = this; - - // var strings = instance.getStrings(); - // var parentModel = A.DiagramNodeState.superclass.getPropertyModel.apply(this, arguments); - - // return AArray(parentModel).concat([ - // { - // attributeName: ACTIONS, - // editor: new A.ActionsEditor(), - // name: strings[ACTIONS] - // }, - // { - // attributeName: NOTIFICATIONS, - // editor: new A.NotificationsEditor(), - // name: strings[NOTIFICATIONS] - // } - // ]); - // } - // } - // }); + getPropertyModel: function() { + var instance = this; - // A.DiagramNodeStart = A.Component.create({ - // NAME: DIAGRAM_NODE_NAME, + var strings = instance.getStrings(); + var parentModel = A.DiagramNodeStateCustom.superclass.getPropertyModel.apply(this, arguments); - // ATTRS: { - // initial: { - // value: true - // }, + return AArray(parentModel).concat([ + { + attributeName: ACTIONS, + editor: new A.ActionsEditor(), + name: strings[ACTIONS] + }, + { + attributeName: NOTIFICATIONS, + editor: new A.NotificationsEditor(), + name: strings[NOTIFICATIONS] + } + ]); + } + } + }); - // maxFields: { - // value: 1 - // }, + A.DiagramNodeStartCustom = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, - // required: { - // value: true - // } - // }, + ATTRS: { + initial: { + value: true + }, - // EXTENDS: A.DiagramNodeStart, + maxFields: { + value: 1 + }, - // prototype: { - // getConnectionNode: function() { - // return new A.DiagramNodeCondition({ - // xy: [100, 100] // TODO - find best position? - // }); - // }, + required: { + value: true + } + }, - // _valueControlsToolbar: function(val) { - // var instance = this; - - // var strings = instance.getStrings(); - - // return { - // activeState: false, - // children: [ - // { - // handler: A.bind(instance._handleEditEvent, instance), - // icon: PENCIL, - // id: EDIT_EVENT, - // title: strings[EDIT_MESSAGE] - // }, - // { - // handler: A.bind(instance._handleAddAnchorEvent, instance), - // icon: LINK, - // id: ADD_ANCHOR, - // title: strings[ADD_ANCHOR_MESSAGE] - // }, - // { - // handler: A.bind(instance._handleAddNodeEvent, instance), - // icon: SHUFFLE, - // id: ADD_NODE - // } - // ] - // }; - // } - // } - // }); + EXTENDS: A.DiagramNodeStateCustom, - // A.DiagramNodeEnd = A.Component.create({ - // NAME: DIAGRAM_NODE_NAME, + prototype: { + getConnectionNode: function() { + return new A.DiagramNodeCondition({ + xy: [100, 100] // TODO - find best position? + }); + }, - // ATTRS: { - // required: { - // value: true - // } - // }, + _valueControlsToolbar: function(val) { + var instance = this; - // EXTENDS: A.DiagramNodeEnd, + var strings = instance.getStrings(); - // prototype: { - // _handleAddAnchorEvent: function(event) { - // var instance = this; + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + }, + { + handler: A.bind(instance._handleAddNodeEvent, instance), + icon: SHUFFLE, + id: ADD_NODE + } + ] + }; + } + } + }); - // instance.addField( - // { - // maxTargets: 0 - // } - // ); - // }, + A.DiagramNodeEndCustom = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, - // _valueControlsToolbar: function(val) { - // var instance = this; - - // var strings = instance.getStrings(); - - // return { - // activeState: false, - // children: [ - // { - // handler: A.bind(instance._handleEditEvent, instance), - // icon: PENCIL, - // id: EDIT_EVENT, - // title: strings[EDIT_MESSAGE] - // }, - // { - // handler: A.bind(instance._handleAddAnchorEvent, instance), - // icon: LINK, - // id: ADD_ANCHOR, - // title: strings[ADD_ANCHOR_MESSAGE] - // } - // ] - // }; - // } - // } - // }); + ATTRS: { + required: { + value: true + } + }, - // A.DiagramNodeTask = A.Component.create({ - // NAME: DIAGRAM_NODE_NAME, + EXTENDS: A.DiagramNodeStateCustom, - // ATTRS: { - // assignments: { - // value: { - // assignmentType: _EMPTY_STR - // }, - // validator: isObject - // }, + prototype: { + _handleAddAnchorEvent: function(event) { + var instance = this; - // notifications: { - // value: { - // assignmentType: _EMPTY_STR - // }, - // validator: isObject - // }, + instance.addField( + { + maxTargets: 0 + } + ); + }, - // xmlType: { - // value: TASK - // } - // }, + _valueControlsToolbar: function(val) { + var instance = this; - // EXTENDS: A.DiagramNodeTask, + var strings = instance.getStrings(); - // prototype: { - // SERIALIZABLE_ATTRS: A.DiagramNodeState.prototype.SERIALIZABLE_ATTRS.concat([ASSIGNMENTS, ACTIONS, NOTIFICATIONS]), + return { + activeState: false, + children: [ + { + handler: A.bind(instance._handleEditEvent, instance), + icon: PENCIL, + id: EDIT_EVENT, + title: strings[EDIT_MESSAGE] + }, + { + handler: A.bind(instance._handleAddAnchorEvent, instance), + icon: LINK, + id: ADD_ANCHOR, + title: strings[ADD_ANCHOR_MESSAGE] + } + ] + }; + } + } + }); - // getPropertyModel: function() { - // var instance = this; + A.DiagramNodeTaskCustom = A.Component.create({ + NAME: DIAGRAM_NODE_NAME, - // var strings = instance.getStrings(); - // var parentModel = A.DiagramNodeTask.superclass.getPropertyModel.apply(this, arguments); + ATTRS: { + assignments: { + value: { + assignmentType: _EMPTY_STR + }, + validator: isObject + }, - // return AArray(parentModel).concat( - // [ - // { - // attributeName: ASSIGNMENTS, - // editor: new A.AssignmentsEditor(), - // name: strings[ASSIGNMENTS] - // } - // ] - // ); - // } - // } - // }); + notifications: { + value: { + assignmentType: _EMPTY_STR + }, + validator: isObject + }, + + height: { + value: 70 + }, + + xmlType: { + value: TASK + }, + + width: { + value: 70 + } + }, + + EXTENDS: A.DiagramNodeStateCustom, + + prototype: { + SERIALIZABLE_ATTRS: A.DiagramNodeState.prototype.SERIALIZABLE_ATTRS.concat([ASSIGNMENTS, ACTIONS, NOTIFICATIONS]), + + getPropertyModel: function() { + var instance = this; + + var strings = instance.getStrings(); + var parentModel = A.DiagramNodeTaskCustom.superclass.getPropertyModel.apply(this, arguments); + + return AArray(parentModel).concat( + [ + { + attributeName: ASSIGNMENTS, + editor: new A.AssignmentsEditor(), + name: strings[ASSIGNMENTS] + } + ] + ); + } + } + }); + + A.DiagramBuilder.types.state = A.DiagramNodeStateCustom; + A.DiagramBuilder.types.end = A.DiagramNodeEndCustom; + A.DiagramBuilder.types.start = A.DiagramNodeStartCustom; + A.DiagramBuilder.types.task = A.DiagramNodeTaskCustom; // End of Liferay Workflow Nodes. diff --git a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index f3e5feb2c71..a6814d4d828 100644 --- a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -5,6 +5,7 @@ .aui-diagram-builder-base .aui-diagram-builder-base-field { border-radius: 4px 4px 4px 4px; float: left; + height: 63px; list-style: none outside none; margin: 2px; text-align: center; @@ -37,6 +38,10 @@ padding-left: 260px; } +.aui-diagram-builder-base-tabs-container .aui-tabview-list { + margin-bottom: 5px; +} + .aui-diagram-builder-base-tabs-container { float: left; margin-left: -260px; @@ -68,8 +73,6 @@ } .aui-diagram-builder-anchor-node { - background: #484A4C; - border-radius: 12px; cursor: pointer; height: 15px; position: absolute; diff --git a/src/aui-diagram-builder/assets/skins/sam/anchor-default.png b/src/aui-diagram-builder/assets/skins/sam/anchor-default.png index c837993be6a1b87f978bed97481c205336caa627..4107e3f4d307fd6a53098e9d68e09ab465fd6f37 100644 GIT binary patch literal 1090 zcmaJ=O-K|`93NN7GB+g*vJZKU9V*)S(skR(Ro5LiHym5mg%%=coO!x~&b(>n*^W}M zN`X=ygaW;ULea+|=+Fm6kBnh#UvDKAL#5wE;0D#kYJBD?(>6wnUcA z<#J4}i9z-t%ZI~ZPeTv_1QBpXO{};9(`hU!NYGJj-NHIDfv2eSqY)gTNu--87}mC| z>1>sW6pVEhi{%;4OQ{Hy<^MwsV;k+@6x@mTpTbUh)PigZI%vdJN#h0@Jy(_(v!Q~K zoknQ5SjA)(VdP|y1!8?cASv%6^5GcI zcX4N$g%*j6cLrn8E-4s~7P%5qM+|748DJx2Q7;`! zxTM||S1TP$v?P}$!LVLq|7vvcicF7p+#XwEY!5y($+X*KtRFQ7mdTTNnUJDs_jAA2 z;cNKP=IeOcFj=0@lqFWnY7zDA!_iBxuIKj%v|gdl)-3s|Uzc^O^m5*B6_V3G>nAJ6 zLHWUj-gg%kQzo32i-t@SJ~9;>Y27H*w7*)cvf?(2B|qf%SFu~;F8zvum+ zFum-mfWLouZe9=0NQL?1>*MuHZ=ByN{sX}mx99IxEgh*CzH{@TF)(}LQ+_U4*q?o} iukP{Qd41j2QwtU;(`m^TzFvOdz3N0)uk@_*%ETX5-Ctk; literal 3553 zcmV<74Ic7|P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009FNklgo*t|Nm!*iU?(7+`VW2e?C55hQELRGVI>H=Ky01stHrge!Hpm*##B8U{T3KPSI`j{VVJeGXvg`#y@IKv|Z9$N1rvnL$aK zMF+Lo*z-IP{XQzCu*~z9xZmqgl4cx)A!M}*OITpT(AzCOW;5L1-4Hzup84o7gp?9O z2rx60)>wV6(7tRDC27XZ<{2F6z!El?4YXF6Os2T*UJ)f}7M-3Pj~k6TDz*({3^v6# zUfUpQC`)|vw#Ww+Zg9>0(zlRe-|p;EbQTs3PbrBKSn6~S=? zuoz>}Mw6zRU1%It6rRmAp-GJmia)U!FB423?9SirX0u}^oz2d!yW)iHW~BobbTV_ZJ0>%C zoVn?4mOQMYRl!195DJ2%6;dU&K3UHu~T?Fmvy@ zeBXD@J?CRyEY3VMIB?GZMNxx=yjmjb?(p5&N4^hUefeRs4CAbhXVE;a89t=a7Mg>g z;20HHf`+yH)D<{MQ8Z(hb*yWTNG5VvBgC+E$0KZtn%rOa408cuFb6BPD>FY|c%K2b zB{K&T8n1a7She#FAI>&r%4TE1Oj*qSDKJ@=h=2pJ0qV}88%TAT+0>QDK0M|aunEBn zGIO&iT`PhN@*zmDeAMK}c`z=pLM)z4Ciel67kG{rIYEpHNhu~uJP)=WhGg@td8wr4 zwsMh3W~vx_635kQHMSOGkze72R4Nr}h+>o=qQSC@je67#Mmq{B3{2nlu#H?0DjIWW z3Cj$r^yU>DZ(G(4w%SA*#?=jv6IedHQU|DM{||MXZFGQ3@Sl4BQ#dFudyp%^04@0@ z8QlD6n97qfJ~S}$%LpxYx>&3tjDjliKxQ@pG{dyrFy6##npAKDY`7*Ys4_zoSlhNF zF)hTBLM}Hgq%wk#xp>tU}*D z46U4x9I$z1$?jf@+Es6hYjvwd$Yr~7IZ_N44)$Mz?i>;KgxhV~l3?5T&?Rp7iLD2I z`*fb7A_E0AU9NvMXDK}+*QR=uH%DHen|h@1Q)CEH*FU`Xv2!cUevz?v*e7;h?z!c? zNZw>VYYuv!C`bE?N4>Q(Z|$l)zP>X2&8o5*d8v5j+VfxT{JdP&TYw$wJNW0u7Y`h{ z^jClTNb}HI`|VSwuik1+wBm=~JtzF)1+VG!^$Y70u|tKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0008oNklUY^`zaI;0TPS}CPqjQIx7WjXu)hEfVCFC52CN{Q{g#lMAfZnV}CLZG!a zc)!LE*>jAWFc1X+bpFDwtY9Q66H}RzROSe|#n&E<&=Qa$gt$Q(pyUXqAO(mB?Ft-A zj`G_z1?&= z=@YZfoO6jb2F*qTB7(9kp_IaMxgcV;A|iNbwV<_zh@dD6TrU^Q=Wj&JHjBDZ(r$;) z+SG+FoKBw@zl?~OZKwMfod-_?gkgy4yMl8L>(%DxL#;@aQrk2g;&43RW554Z-1#DR z+yr6(h(6ov7$OlNu~mq|1t@Zb+#uzO%RmkTyJc>WDz-w!2jJiq?7qJQl@legtIMXyUye zmt~2R0x1=N^mpJE670ySz?f1LG;gHTvhn6u2A#ko@y;<|NSg`tB{T%V18wY!7 d`PYqK0{|w)QG+;6$MFCF002ovPDHLkV1lk=f13aR diff --git a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css index e2c5611145a..b73816e10ec 100644 --- a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css +++ b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css @@ -1,3 +1,16 @@ +.aui-diagram-builder-anchor-node { + background: url(anchor-default.png) no-repeat scroll center center transparent; +} + +.aui-diagram-builder-anchor-hover, +.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid { + background: url(anchor-valid.png) no-repeat scroll center center transparent; +} + +.aui-diagram-builder-anchor-node.yui3-dd-drop-over { + background: url(anchor-drop-active.png) no-repeat scroll center center transparent; +} + .aui-diagram-builder-base .aui-diagram-builder-base-field { -moz-border-radius: 4px; -webkit-border-radius: 4px; diff --git a/src/aui-diagram-builder/assets/skins/sam/end.png b/src/aui-diagram-builder/assets/skins/sam/end.png index 4d8e01a79e7357e86827097f0d4cfceb344744fe..a4c3cf630e181d43b0a066fd3f95a84ab53d0169 100644 GIT binary patch literal 1311 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=mv8#)Po1vkTk(raBp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLaz}{y`ZF!TL84#CABECEH%ZgC_h&L>}9J=oNfVHj?*m= zy(zfeVt`YxKF~4xpom3^XqXT%^?;c0WDDfL6MkwQFtrx}ll9-(>hBpC7$`vSEi>nqub)b(NbBx9jUUUwn9U z>)nXrN5avQeMFB=j_zyWy}wmOtzEuqV#2{d7M2W|o2}Jhed-gsKRlRY-I}?fcDZ8A zorj+$@#Knf|8YITeo9tz+J~<_ho)37J>v9Z{-L&|TX#C_>`ijKe@4S+=X=e~i}YsS`Z(^hDr>hg)j> zDt67ed!VYT!d>^Aw7=H1@XYoKlS_NonQ8sDK6~%Pw`&O#XI{Ifck6=wFV4@>^10@W aYz!Z_?R=A>XZ#6NWO=&!xvX_2u6s-p8u1e{=i*96>l;?e{Z zoR2O65I{tS0g5ho7+^CFuN5FkCTNgi0|y9ukyyX}N45qafEe)@3kv6cAXWh4LZH_+ z;0y;e>jZ&{Kj3mFN;*Muk^(Uye-AT+2|1AgO?*IP%pCxSGn7-vKpFrg^$*BSxlc^0 zfqL&h*3iac0LTUbY?%rmfG9%v;<*7x)q?^DXqzKZnhE$DCH@(SN(86{N+M8x0X&|O zG+w|JAW)|p0`YtdQ;E&o$Wg_F6zPe?XhwD!6O!NpQlpBAl6XcAFb8rqe}i(uYZ0)jx~vWyXjEubv;9+xH<00^J~Lqrz} zpi&B2gcAcCfxbLIw#7I~vqWq`2MuCSW(`1-O2n3H7>TeDR5}=v8kEqA4mq_cBG)K* zQx`SLXQUDs1Qr0zOvG2ae^ReffS3yk{`JVI9JvfBpoOJS^N`cTdh}AjpT;@p0InkU zAdM|{z-lotI2!Pls+7esa{f=mR>=rLX#r|k4y}Lg!>SZmo+c(ACz4Zb5;BL8gaQC1 zAL8*HdL@aq1;t3D%M&o#E(B6AuIAc+1AqYJSb+_KFc7p%02}BAe=vbM0u$&6H~}Nz z2snYR;0A6W8@Pf%TJyZ$@@+qAVq;=R+FZZ??cM$V{Zv4u4*A|`ZeHpa>8cB_69x7x zE>>YF#*1?gJk4XjfkTXwVclayeJ{n*&(GMvL+_yf+jDn6cS;n^D#p%9%gvPUsV#EK ziA00yC^KNDQ=K{*e;8STG87bnn^C(W&cV@0ssAl1*f-x+fysr`3x$MzO-0;*$=yPB zv>cl&4La%a7)MM2pQKSyk#3@my+~8w7l7BF5cbKO@D`G|6~11HtK^+w?GlV zQy_?&bCmzWMIeM^vWkg0l}QOcNG6@*-dly9kFNGQz6grj2}jf1l^XJ-^QEc)Y-L4;h}0yiEhuy>L16az_9&Nbc0LgTw|r>nf8Mz)-<< zQU{}~1CJdB@8ucq5~`u;yw?J$Y`g*{x}FTKfU@09jGPoAC)0e@SZcL-;*?_p>Hy?s zN~k$lLoXv#lK{hf`$2?m1Kqx3Ga6{wHMJ(y12WyLf3;%xQ(^7EHxqE{^>Iy6Dv?Xo zkb#6?iWzhvgH9C1q9o?Wpuhq@Sup%SRBbAJ>MPEt`INx^@s$FNoofck71M7tuBZEttEy#bR7|D#r9BEPO)90V3 z>rG%_g=Zg-OM=)OZOFqD!-d))4zU1}dm-lNjrQ!jC5f;i-k!Xg*)ln9v6D5CBf^yD zsvLW?RLDTub=WHLD&qaasMxpA);R*1g37VhTufI+LIn4;)AC~W(BB&>)Bu>+&^u-> z?^;Kei=(^!pJY}urEdkbV^joj4|yhlKWakI)H(oI*vhf90XB#RD*xLUC}?!{1?C)J UD><8@ssI2007*qoM6N<$f?;-WYybcN diff --git a/src/aui-diagram-builder/assets/skins/sam/start.png b/src/aui-diagram-builder/assets/skins/sam/start.png index 885a996e72276ad91b714622c3590e2adc43547b..b5cd5ebcc4b9628400f68d3bcf7fec9a06d5f432 100644 GIT binary patch literal 1358 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=mv8#)Po1v+bk(raBp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLa!N4y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<(X&zK> z3U0TU;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3edcjmEdvANAx{^_kcwMJ zraStzI0(4T{>CKZC~TZ$wrEIBlTGkx0HN;%5_J|^J_y+4=eX;#-eOHE$5>Udz>cGbN~Pjy_E9Q1$P z(|1&I5l2O#{D#AA+|MnucIO^`(XeSdpYOS&_APG;UzMMTV$LgZc06EVQRtpnKxeuTLxMcSRJGt$#W5((m0}7A{&!hI3sKTIN^x zJo?b~KF`Y_{Tk~JmqkjPORBO0dwN|Y&$QRAuD8h$U3Dw!(H2ps`39#at=PKM&0w=n zph8`4nD{Rh{bmLV>HN$RUx7SS%YriJH>%XGz`{i`g@8>5je%g2M(Z90m zdJ2qwKlsF(H!cu+7pp4K%e2U`@ui|dU{cpE3Ff+6k WT#j1NC6Ny*;XGaaT-G@yGywn*A@ODa delta 1313 zcmV++1>XA33bqO%iBL{Q4GJ0x0000DNk~Le0000y0000y2nGNE0Zseq_=iNpi8c2AO`?7o@XMU#sH==fgI!iV-uW@E&&igL>t$D*Jy%v z;|x*;>i7+tB4ld-0*DchLQpvO12HIS3wLbYvVmgjaRxuR9$rsQAi>gCAsKdlKsM<< z#Zd!|4h3Q~0R#|5h><`Nt_R`+f513)q{u%|?+D=2IG=#Q0$4LPv7rr3w&dq2nAc#5 z#DT6mqjDi^y zFQAl@2-LrT=*&uX^+95BOq+5UEvj&OhE|rM`8)t6GXez)K=lGGEe6IlBQ)MoN&!%+ zY@}CqLbmuI5a-j~Vqh?UDvJOb$MJnw4TWCG2+}ZB&xd+&0io1qK;_h&Kx_*LWHG2Z zX@o`tsg}Vi3#=_DMj{OXf4LTx`9VQ75op*2G&Kd#s$GDj<{G^LKmc;A=mtR;h(;!m z3B(O#16FVXaReuD1l_>8fg|7sZXg?!4U|h>liIYUlq;HeA>jvjz4mzb-u>UTh$tF5 z?;Uz`0h%T95&gNgtiVQbQBhrSS3wI=ze`YI4G96t=n2DAhGYbyf1pL2`{xf+oXnt% zal9|VRQV`+885`V_ecRs)O&fGpXbv&KUz2MrH6Q^lW-8bi`?jV4n+CMaK>f%)veytN~ zhxsHn>rE>d4XRfY955=Fx&Vlyt+ANSQ`SiQUP(Gk{B?I)uYj4oK~Y@#0%-xiW6^i+ zwVcy&S}`W(f8NaT51t3W+Rw`zCR8c=jnu6@S_N}JtF;|aL)zmSA0`22yvd2iL;#$) z;h+PVS&9-lPWP9*8a#u36}``UvhLhc6ohc}YGWCwEyVoyPP&Ed(0d5q$rET*yyP)> z)hJ+`+Y)+boiK|eC9|?cxMcoIvIEDkVfAPb@FTu|f383)kZD=i&M;B8s~h=%N)ZDp zKea*G+KmCGG3euteaFySH= zj;%kjce1q%vI)gtkF(t&ZJG#xwx;ts8?YAf9lPh65XuT?bSrvy)VT>X3$P*TmH7WZ z0d>y5=0=~r5aV;tG7d9OQBZ#J^9V=R3yKtG!@dK+&84y@3w-Vh(fimZ8|Bh diff --git a/src/aui-diagram-builder/assets/skins/sam/state.png b/src/aui-diagram-builder/assets/skins/sam/state.png index d262f7c56c69d6a8269c41e9efc57aa14632c7a1..85d38d19450aaea2ea21b58cac83ae057ec6f7d8 100644 GIT binary patch literal 1206 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=mv8#)Pn}Lgyk(raBp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLa!@My`ZF!TL84#CABECEH%ZgC_h&L>}9J=EN-zhbFy?c zHZua6XN=t~5WOk5-QtYXE&4#m=z}5_DWYLQz|;d`!jmnK15fy=dBD_O1WeXz&-@T& zU|`hpba4!+xb$VR^$D5N8=B_sY+M<7 z;gZqPrS*qcOf&*Z(pl~Qs7y$`?^kAYChKdH)!jJB?TmNYUl(W^tF$RwH2nRVRe5T5 z@N))Eqt@tGwyhr|xI6AKF?$GBe(^zOcMNm!X!! z++5$LJK$(>b-7^ix4fx6Qd8b$9tl=m-m-M3h0N47T5Z~swy?FGUa;lYu_875vjv|Q zJn&wTGDZ2Xx<%Q6US9G1OjT9m0tP;gH`WZl+oU%K2uKMTpMAAa!6H%gMbVA-=dMQe zYDHW&Drw7je)E4tlI3CLv_Br3)$iUD+q8JYeepNnnfj0Fzp*s^a(KE_)pB=1ljwx3BCv+iBL{Q4GJ0x0000DNk~Le0000y0000y2nGNE0Zseq+v2_b0Tmew>KQ`SUMNIgN2WkvpBH)Decoo2{fH{aD z0NS}8-N66>M06M+>v{mRQW2m3KQI9$8gQ5@0CIIbE<2g50e?aO!k!F5? z`tk$0<%j_ZnUsOp_#qTe|EV3cILj|s^90lap<&d*6B>GMTu47fK@W961HP6wDZT_+ zxPaWU8rBRW7J!=M4Ge=3e*gr~$U`JG(t&XeD%}cz*dAH}fl}!OAl?X!(+RX_2#}Jv zh)P(D1S|ykuAj`%bi~%#Bqkq&3K0WJ%Vk&*No)(`Jr!%K3qZ>a(FK`t_*8+430Oi! zO-1AxeTb% z*`&Ca3r)@Rx0sGiTZX|A)c6YX;pt;Kf(O_vPNajyI7eUp)6!Pt&N+He7t+vPN4yOI zDmMafHU{W227+zKnTc41WP%U4%px?gae)F$Hvr8LB)eTr;@}zs1Em9Oc-qeWdV*p2R1dbfx<_*1hGftpPAS1{Gt^gC@2y9^7fDvr< z9Z1tJN-4DX661ly_@m|V{=amIW>&KUUJo=mlR%q5g4Sv~=%?XImbS5`0|edWhPo*s z-J6i(&t2A;j03|e5;d_Oad#5%bWmUj8`T)Izi7Sy)zTOPe})x(O$=1Yvgk|z88YLI zZPfvT7rcur32bGd8JVslOKVAi!LNmmzHUPdy~WU_5-`Z&o#Qh`fT7M@?>e>|kdG~cS>0z)_R4Z4tR>D)8mTnG$-+m}@) z5wcckS~0!%d>yPOD=+g5@z;4e4BhQC03$>Mj&0+#uK*ws@!`PhC#IiSEnq4|O)(#z zRqdv(#3Rt;sLy8VD{2Iog3s{R#S(l2t6Av&z{2FeX&qxbAv33uY8V`fJ}!DNV1=8( g?e=3Ff|x~p04sN4pTN}0i~s-t07*qoM6N<$g48(30ssI2 diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js index 8cb8be38c29..f40f0ae92c1 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js @@ -1251,19 +1251,20 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeState = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[STATE] = A.DiagramNodeState; - A.DiagramNodeState = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 40 + }, + type: { value: STATE + }, + + width: { + value: 40 } }, @@ -1276,8 +1277,16 @@ A.DiagramNodeCondition = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: CONDITION + }, + + width: { + value: 60 } }, @@ -1318,8 +1327,16 @@ A.DiagramNodeJoin = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: JOIN + }, + + width: { + value: 60 } }, @@ -1332,8 +1349,16 @@ A.DiagramNodeFork = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: FORK + }, + + width: { + value: 60 } }, @@ -1347,7 +1372,7 @@ A.DiagramNodeTask = A.Component.create({ ATTRS: { height: { - value: 70 + value: 70 }, type: { From cb826aa51533bc29f9dab1ae2bd2c2508b29115f Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 15:43:09 -0300 Subject: [PATCH 037/132] AUI-461 Adding minor visual changes to the diagram builder anchors (missing icon) --- .../assets/skins/sam/anchor-drop-active.png | Bin 0 -> 1765 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/aui-diagram-builder/assets/skins/sam/anchor-drop-active.png diff --git a/src/aui-diagram-builder/assets/skins/sam/anchor-drop-active.png b/src/aui-diagram-builder/assets/skins/sam/anchor-drop-active.png new file mode 100644 index 0000000000000000000000000000000000000000..ff869e5b3f97838133ae989e12b9c6e5f9646122 GIT binary patch literal 1765 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0dc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=uv!SV>qp5+Dk(ryJp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLa!lCy`ZF!TL84#CABECEH%ZgC_h&L>}9J=oNh63#c3W? zZwgMgn7HB8s}FRHJ}6?5A{r(HOg$hbJlO&{@Pwb52Tbinz+`>2Do6^LTOvJO978H@ z^@Mq6i#Q6rdsq49&0!l+(V|X9R{m#&JaR7lRUa4GADmt9aCGv12f@7^RicWF`i^@w zmE@W(Dp+bTy0UhzKk`P|+SvAPng6c#Szh^@SY7?|zh4W#`Zu)n;^}UAPNA-S3lEiY zx^+G)&^hv+F{RhoB#4DAbV2@`5Y97tMoZ)*6c?DTGBwV6enE2gc80?a^8)wEHRN+- z@D{fRG4E40da;)EB7@?EuAgVw-Lo2lmTtVnl9Bahx>D=JNCj>I&9zd!d#3cZMBg*C zPYwRXKT|)vaz?G!s+-}aZ?*0kad94dSoo`h$BtoDb|{1UqOgL_)Gsx8w%U3QDzV%|};%4iH1u}9RSLQKV=enGIu%}RB^YnxbHuG)#(%T8;nwyz?+H>2vk>aCUXvu}%f8Endmn2{L3F>R)= z=bZ=oS8iOA77H`ua^9;H6%ncbtkAYL=gk|2lBSh5Kj(&R+I?-tIpy#ct3}r9uW_Y^ z?41+5^;5Uz8H1HeeX}~XcId5gthT5$`k*~4Wa+CpY;)@WoA(D9hnzkZ=620`4};je zntONd@6GHgeAChMqwhr0@4Q^O7xx0Te%z|HBi!V)$%r@__>}*< zj4BqtED1?hT}hvkhz*>ptZwXhanXHRlqE;U!NT(%RknXuSWew-x>88QkK@&=X(#pC fmae|_M?8Vy@7{gae*M=s098Dmu6{1-oD!M Date: Thu, 4 Aug 2011 15:43:26 -0300 Subject: [PATCH 038/132] Build files --- .../assets/aui-diagram-builder-base-core.css | 7 ++- .../assets/skins/sam/anchor-active.png | Bin 694 -> 0 bytes .../assets/skins/sam/anchor-default.png | Bin 3553 -> 1090 bytes .../assets/skins/sam/anchor-hover.png | Bin 751 -> 0 bytes .../assets/skins/sam/anchor-valid.png | Bin 3503 -> 1174 bytes .../assets/skins/sam/anchor.png | Bin 543 -> 0 bytes .../sam/aui-diagram-builder-base-skin.css | 13 ++++++ .../skins/sam/aui-diagram-builder-base.css | 2 +- .../assets/skins/sam/aui-diagram-builder.css | 2 +- .../assets/skins/sam/end.png | Bin 1434 -> 1311 bytes .../assets/skins/sam/start.png | Bin 1334 -> 1358 bytes .../assets/skins/sam/state.png | Bin 1086 -> 1206 bytes .../aui-diagram-builder-debug.js | 41 ++++++++++++++---- .../aui-diagram-builder-impl-debug.js | 41 ++++++++++++++---- .../aui-diagram-builder-impl-min.js | 2 +- .../aui-diagram-builder-impl.js | 41 ++++++++++++++---- .../aui-diagram-builder-min.js | 6 +-- .../aui-diagram-builder.js | 41 ++++++++++++++---- .../assets/skins/sam/anchor-active.png | Bin 694 -> 0 bytes .../assets/skins/sam/anchor-hover.png | Bin 751 -> 0 bytes .../assets/skins/sam/anchor.png | Bin 543 -> 0 bytes 21 files changed, 156 insertions(+), 40 deletions(-) delete mode 100644 build/aui-diagram-builder/assets/skins/sam/anchor-active.png delete mode 100644 build/aui-diagram-builder/assets/skins/sam/anchor-hover.png delete mode 100644 build/aui-diagram-builder/assets/skins/sam/anchor.png delete mode 100644 src/aui-diagram-builder/assets/skins/sam/anchor-active.png delete mode 100644 src/aui-diagram-builder/assets/skins/sam/anchor-hover.png delete mode 100644 src/aui-diagram-builder/assets/skins/sam/anchor.png diff --git a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index f3e5feb2c71..a6814d4d828 100644 --- a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -5,6 +5,7 @@ .aui-diagram-builder-base .aui-diagram-builder-base-field { border-radius: 4px 4px 4px 4px; float: left; + height: 63px; list-style: none outside none; margin: 2px; text-align: center; @@ -37,6 +38,10 @@ padding-left: 260px; } +.aui-diagram-builder-base-tabs-container .aui-tabview-list { + margin-bottom: 5px; +} + .aui-diagram-builder-base-tabs-container { float: left; margin-left: -260px; @@ -68,8 +73,6 @@ } .aui-diagram-builder-anchor-node { - background: #484A4C; - border-radius: 12px; cursor: pointer; height: 15px; position: absolute; diff --git a/build/aui-diagram-builder/assets/skins/sam/anchor-active.png b/build/aui-diagram-builder/assets/skins/sam/anchor-active.png deleted file mode 100644 index f138638cf10bfdf5f76e95cdc525a81dce63ab14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)IeWBcNv)WA2@V?o0Elshl`ov;loFc00D%owg1xPEB_xneDweD z(c>WP4q*3yh^yCb{1+7!!LaY-sWS{LAjaRnzZh7Ufo^1G0qS4^+V>ae=D%QfGa^|r zUsgssfsc=u;mOly3?Dy!a*PZQIRFqq41@q9RJQ;pC+B+ueO-p%zkf5FIeY#AP`4sn z)s?H)z#az$CkTVsTej`^50Ya7*)1j}26QMWF#m%wh;3$S0y0?v3lkWF*o^;wgA^P9>o|4#^#8A4-v9sk{Sz32*c&!&0UH4h zsJr(b3O;%I;=Qtx0>hs_e}Vk_55htM!M*?pFh*>C2RRPvHUT8z3qY@Lz#2}lumV#1 zwKUZY6y)Whp7{?~1@t1r_wU~s&Yru#@agmCM4({{kOSHQ7}@(l0S(gwGXNAiFd7El zzyAO<===eoA&yK?v3ebCEpQlv6vJ$WX@b!(IROEF1_gOJ2av@qFjN2j{ma12%*23* z6GjwUA(|210;vbbG*rG3n3#ca^NWFvr#!`nBn7#=@) z3i84Mj6jr=l{V1QRAb=c;$mQ8g1F*8&})DG{9$n*^W}M zN`X=ygaW;ULea+|=+Fm6kBnh#UvDKAL#5wE;0D#kYJBD?(>6wnUcA z<#J4}i9z-t%ZI~ZPeTv_1QBpXO{};9(`hU!NYGJj-NHIDfv2eSqY)gTNu--87}mC| z>1>sW6pVEhi{%;4OQ{Hy<^MwsV;k+@6x@mTpTbUh)PigZI%vdJN#h0@Jy(_(v!Q~K zoknQ5SjA)(VdP|y1!8?cASv%6^5GcI zcX4N$g%*j6cLrn8E-4s~7P%5qM+|748DJx2Q7;`! zxTM||S1TP$v?P}$!LVLq|7vvcicF7p+#XwEY!5y($+X*KtRFQ7mdTTNnUJDs_jAA2 z;cNKP=IeOcFj=0@lqFWnY7zDA!_iBxuIKj%v|gdl)-3s|Uzc^O^m5*B6_V3G>nAJ6 zLHWUj-gg%kQzo32i-t@SJ~9;>Y27H*w7*)cvf?(2B|qf%SFu~;F8zvum+ zFum-mfWLouZe9=0NQL?1>*MuHZ=ByN{sX}mx99IxEgh*CzH{@TF)(}LQ+_U4*q?o} iukP{Qd41j2QwtU;(`m^TzFvOdz3N0)uk@_*%ETX5-Ctk; literal 3553 zcmV<74Ic7|P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009FNklgo*t|Nm!*iU?(7+`VW2e?C55hQELRGVI>H=Ky01stHrge!Hpm*##B8U{T3KPSI`j{VVJeGXvg`#y@IKv|Z9$N1rvnL$aK zMF+Lo*z-IP{XQzCu*~z9xZmqgl4cx)A!M}*OITpT(AzCOW;5L1-4Hzup84o7gp?9O z2rx60)>wV6(7tRDC27XZ<{2F6z!El?4YXF6Os2T*UJ)f}7M-3Pj~k6TDz*({3^v6# zUfUpQC`)|vw#Ww+Zg9>0(zlRe-|p;EbQTs3PbrBKSn6~S=? zuoz>}Mw6zRGn4m>4)%nFIj>h!LiD`N}o>e=u@6 z@Cpbse0=$kfs2jFFfu&k0$9QN1DF0QC@L{9F)=bQ0!2W^{rUT!;nv9=55UgiVq;_w z4??;pd@KmQ=ELbigFPuM|HT!i83wHpkatc+kQ00M}C5MYGrR`~Jz z-+f*&d4|s)-ZF6f|8@YV+Yzh)C@JuZUHH9*o(YQ1JEwMjh>i#m1Ud4&wt*=F3(yBl zOh6vc2Y-Ry;F3@i04Zbw8m#~f5RktaxLKLOG$)X+tfCCE+JOlu`GAwsr89ASpRoY?T?H)Fk)nIi)$D=PyN10>SH3ZRh>N|Ye_*Y95pH_jem;9~mK2sESt ztZe?0RsWUrtr-OP1;8l=h`<^dVO9V&f|ADne~>u%`t>Wr%`*qU>5&EIL?)mt2Qc)Q znIITq2*ep6+y4Rm_YbJ~FVK+REKG2(fmuM48t>n{z`)A*8_50#jL83xcw_qyj5i3) z1;ik6R;E7;SI?aQ>j8S<14bZn3Wy4r8W}JM@^OP*0#X2S_Lpxz8IGSi$ME(2OUyvT h6OHmvp@+Dl5db%t@us@7o;Lsh002ovPDHLkV1f@3P|^SZ diff --git a/build/aui-diagram-builder/assets/skins/sam/anchor-valid.png b/build/aui-diagram-builder/assets/skins/sam/anchor-valid.png index d1101a0706a3dff58b9a550123ed7bd213424f32..593eea5714b3f7ca8e2a501a25cd2d7e3445f0f3 100644 GIT binary patch literal 1174 zcmaJ>U1%It6rRmAp-GJmia)U!FB423?9SirX0u}^oz2d!yW)iHW~BobbTV_ZJ0>%C zoVn?4mOQMYRl!195DJ2%6;dU&K3UHu~T?Fmvy@ zeBXD@J?CRyEY3VMIB?GZMNxx=yjmjb?(p5&N4^hUefeRs4CAbhXVE;a89t=a7Mg>g z;20HHf`+yH)D<{MQ8Z(hb*yWTNG5VvBgC+E$0KZtn%rOa408cuFb6BPD>FY|c%K2b zB{K&T8n1a7She#FAI>&r%4TE1Oj*qSDKJ@=h=2pJ0qV}88%TAT+0>QDK0M|aunEBn zGIO&iT`PhN@*zmDeAMK}c`z=pLM)z4Ciel67kG{rIYEpHNhu~uJP)=WhGg@td8wr4 zwsMh3W~vx_635kQHMSOGkze72R4Nr}h+>o=qQSC@je67#Mmq{B3{2nlu#H?0DjIWW z3Cj$r^yU>DZ(G(4w%SA*#?=jv6IedHQU|DM{||MXZFGQ3@Sl4BQ#dFudyp%^04@0@ z8QlD6n97qfJ~S}$%LpxYx>&3tjDjliKxQ@pG{dyrFy6##npAKDY`7*Ys4_zoSlhNF zF)hTBLM}Hgq%wk#xp>tU}*D z46U4x9I$z1$?jf@+Es6hYjvwd$Yr~7IZ_N44)$Mz?i>;KgxhV~l3?5T&?Rp7iLD2I z`*fb7A_E0AU9NvMXDK}+*QR=uH%DHen|h@1Q)CEH*FU`Xv2!cUevz?v*e7;h?z!c? zNZw>VYYuv!C`bE?N4>Q(Z|$l)zP>X2&8o5*d8v5j+VfxT{JdP&TYw$wJNW0u7Y`h{ z^jClTNb}HI`|VSwuik1+wBm=~JtzF)1+VG!^$Y70u|tKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0008oNklUY^`zaI;0TPS}CPqjQIx7WjXu)hEfVCFC52CN{Q{g#lMAfZnV}CLZG!a zc)!LE*>jAWFc1X+bpFDwtY9Q66H}RzROSe|#n&E<&=Qa$gt$Q(pyUXqAO(mB?Ft-A zj`G_z1?&= z=@YZfoO6jb2F*qTB7(9kp_IaMxgcV;A|iNbwV<_zh@dD6TrU^Q=Wj&JHjBDZ(r$;) z+SG+FoKBw@zl?~OZKwMfod-_?gkgy4yMl8L>(%DxL#;@aQrk2g;&43RW554Z-1#DR z+yr6(h(6ov7$OlNu~mq|1t@Zb+#uzO%RmkTyJc>WDz-w!2jJiq?7qJQl@legtIMXyUye zmt~2R0x1=N^mpJE670ySz?f1LG;gHTvhn6u2A#ko@y;<|NSg`tB{T%V18wY!7 d`PYqK0{|w)QG+;6$MFCF002ovPDHLkV1lk=f13aR diff --git a/build/aui-diagram-builder/assets/skins/sam/anchor.png b/build/aui-diagram-builder/assets/skins/sam/anchor.png deleted file mode 100644 index c81cc71a7ba5e13a5e5b83a03a8d84c59ae1aeb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)R5%f}lut_nK^Vr{rIJtxvM#lqq=k;5;!y+-eG5N8H?Mi^ z7T)>*eh)!Bibls^!;{vf3<4!A(4L>U%c%ITKLhKGGtcwed3WA-tl@CD@t19L9?Y_= zQ>`WRxO#TSx;OQno`yDZKc1WDW`F`6NRf+1qi3;L>{$JNC=}Yk)$jM;JDtu;v)MeC z?oLxBfuC9Pn`MS9(TQ!_7s+HY?z-+#Hk*A-rBYqTaXv7#+wJXItrjVl%X^;ZJ=W{> z+reOPBgVrFkevy3naO0*YFqhy{wW*|4}787_j*0MSS%h^tJTj+rBW62%HOFOa*mw= zD-;TCy})EljCm0nO*-9fH?CdhG`>b;^CR;q-;6NX*&-Nv8XB~C@WNnz1XQ2k0QhF} z!bCjX(Bi?XH8LUqx|}8lFl}1)9}iyXNUs36OKSM1xeQ{i;~A&bC|CWEP0g>yKJbmC zCC}ES;lV2(RTPBmQ2`|Fxc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=mv8#)Po1vkTk(raBp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLaz}{y`ZF!TL84#CABECEH%ZgC_h&L>}9J=oNfVHj?*m= zy(zfeVt`YxKF~4xpom3^XqXT%^?;c0WDDfL6MkwQFtrx}ll9-(>hBpC7$`vSEi>nqub)b(NbBx9jUUUwn9U z>)nXrN5avQeMFB=j_zyWy}wmOtzEuqV#2{d7M2W|o2}Jhed-gsKRlRY-I}?fcDZ8A zorj+$@#Knf|8YITeo9tz+J~<_ho)37J>v9Z{-L&|TX#C_>`ijKe@4S+=X=e~i}YsS`Z(^hDr>hg)j> zDt67ed!VYT!d>^Aw7=H1@XYoKlS_NonQ8sDK6~%Pw`&O#XI{Ifck6=wFV4@>^10@W aYz!Z_?R=A>XZ#6NWO=&!xvX_2u6s-p8u1e{=i*96>l;?e{Z zoR2O65I{tS0g5ho7+^CFuN5FkCTNgi0|y9ukyyX}N45qafEe)@3kv6cAXWh4LZH_+ z;0y;e>jZ&{Kj3mFN;*Muk^(Uye-AT+2|1AgO?*IP%pCxSGn7-vKpFrg^$*BSxlc^0 zfqL&h*3iac0LTUbY?%rmfG9%v;<*7x)q?^DXqzKZnhE$DCH@(SN(86{N+M8x0X&|O zG+w|JAW)|p0`YtdQ;E&o$Wg_F6zPe?XhwD!6O!NpQlpBAl6XcAFb8rqe}i(uYZ0)jx~vWyXjEubv;9+xH<00^J~Lqrz} zpi&B2gcAcCfxbLIw#7I~vqWq`2MuCSW(`1-O2n3H7>TeDR5}=v8kEqA4mq_cBG)K* zQx`SLXQUDs1Qr0zOvG2ae^ReffS3yk{`JVI9JvfBpoOJS^N`cTdh}AjpT;@p0InkU zAdM|{z-lotI2!Pls+7esa{f=mR>=rLX#r|k4y}Lg!>SZmo+c(ACz4Zb5;BL8gaQC1 zAL8*HdL@aq1;t3D%M&o#E(B6AuIAc+1AqYJSb+_KFc7p%02}BAe=vbM0u$&6H~}Nz z2snYR;0A6W8@Pf%TJyZ$@@+qAVq;=R+FZZ??cM$V{Zv4u4*A|`ZeHpa>8cB_69x7x zE>>YF#*1?gJk4XjfkTXwVclayeJ{n*&(GMvL+_yf+jDn6cS;n^D#p%9%gvPUsV#EK ziA00yC^KNDQ=K{*e;8STG87bnn^C(W&cV@0ssAl1*f-x+fysr`3x$MzO-0;*$=yPB zv>cl&4La%a7)MM2pQKSyk#3@my+~8w7l7BF5cbKO@D`G|6~11HtK^+w?GlV zQy_?&bCmzWMIeM^vWkg0l}QOcNG6@*-dly9kFNGQz6grj2}jf1l^XJ-^QEc)Y-L4;h}0yiEhuy>L16az_9&Nbc0LgTw|r>nf8Mz)-<< zQU{}~1CJdB@8ucq5~`u;yw?J$Y`g*{x}FTKfU@09jGPoAC)0e@SZcL-;*?_p>Hy?s zN~k$lLoXv#lK{hf`$2?m1Kqx3Ga6{wHMJ(y12WyLf3;%xQ(^7EHxqE{^>Iy6Dv?Xo zkb#6?iWzhvgH9C1q9o?Wpuhq@Sup%SRBbAJ>MPEt`INx^@s$FNoofck71M7tuBZEttEy#bR7|D#r9BEPO)90V3 z>rG%_g=Zg-OM=)OZOFqD!-d))4zU1}dm-lNjrQ!jC5f;i-k!Xg*)ln9v6D5CBf^yD zsvLW?RLDTub=WHLD&qaasMxpA);R*1g37VhTufI+LIn4;)AC~W(BB&>)Bu>+&^u-> z?^;Kei=(^!pJY}urEdkbV^joj4|yhlKWakI)H(oI*vhf90XB#RD*xLUC}?!{1?C)J UD><8@ssI2007*qoM6N<$f?;-WYybcN diff --git a/build/aui-diagram-builder/assets/skins/sam/start.png b/build/aui-diagram-builder/assets/skins/sam/start.png index 885a996e72276ad91b714622c3590e2adc43547b..b5cd5ebcc4b9628400f68d3bcf7fec9a06d5f432 100644 GIT binary patch literal 1358 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=mv8#)Po1v+bk(raBp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLa!N4y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<(X&zK> z3U0TU;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3edcjmEdvANAx{^_kcwMJ zraStzI0(4T{>CKZC~TZ$wrEIBlTGkx0HN;%5_J|^J_y+4=eX;#-eOHE$5>Udz>cGbN~Pjy_E9Q1$P z(|1&I5l2O#{D#AA+|MnucIO^`(XeSdpYOS&_APG;UzMMTV$LgZc06EVQRtpnKxeuTLxMcSRJGt$#W5((m0}7A{&!hI3sKTIN^x zJo?b~KF`Y_{Tk~JmqkjPORBO0dwN|Y&$QRAuD8h$U3Dw!(H2ps`39#at=PKM&0w=n zph8`4nD{Rh{bmLV>HN$RUx7SS%YriJH>%XGz`{i`g@8>5je%g2M(Z90m zdJ2qwKlsF(H!cu+7pp4K%e2U`@ui|dU{cpE3Ff+6k WT#j1NC6Ny*;XGaaT-G@yGywn*A@ODa delta 1313 zcmV++1>XA33bqO%iBL{Q4GJ0x0000DNk~Le0000y0000y2nGNE0Zseq_=iNpi8c2AO`?7o@XMU#sH==fgI!iV-uW@E&&igL>t$D*Jy%v z;|x*;>i7+tB4ld-0*DchLQpvO12HIS3wLbYvVmgjaRxuR9$rsQAi>gCAsKdlKsM<< z#Zd!|4h3Q~0R#|5h><`Nt_R`+f513)q{u%|?+D=2IG=#Q0$4LPv7rr3w&dq2nAc#5 z#DT6mqjDi^y zFQAl@2-LrT=*&uX^+95BOq+5UEvj&OhE|rM`8)t6GXez)K=lGGEe6IlBQ)MoN&!%+ zY@}CqLbmuI5a-j~Vqh?UDvJOb$MJnw4TWCG2+}ZB&xd+&0io1qK;_h&Kx_*LWHG2Z zX@o`tsg}Vi3#=_DMj{OXf4LTx`9VQ75op*2G&Kd#s$GDj<{G^LKmc;A=mtR;h(;!m z3B(O#16FVXaReuD1l_>8fg|7sZXg?!4U|h>liIYUlq;HeA>jvjz4mzb-u>UTh$tF5 z?;Uz`0h%T95&gNgtiVQbQBhrSS3wI=ze`YI4G96t=n2DAhGYbyf1pL2`{xf+oXnt% zal9|VRQV`+885`V_ecRs)O&fGpXbv&KUz2MrH6Q^lW-8bi`?jV4n+CMaK>f%)veytN~ zhxsHn>rE>d4XRfY955=Fx&Vlyt+ANSQ`SiQUP(Gk{B?I)uYj4oK~Y@#0%-xiW6^i+ zwVcy&S}`W(f8NaT51t3W+Rw`zCR8c=jnu6@S_N}JtF;|aL)zmSA0`22yvd2iL;#$) z;h+PVS&9-lPWP9*8a#u36}``UvhLhc6ohc}YGWCwEyVoyPP&Ed(0d5q$rET*yyP)> z)hJ+`+Y)+boiK|eC9|?cxMcoIvIEDkVfAPb@FTu|f383)kZD=i&M;B8s~h=%N)ZDp zKea*G+KmCGG3euteaFySH= zj;%kjce1q%vI)gtkF(t&ZJG#xwx;ts8?YAf9lPh65XuT?bSrvy)VT>X3$P*TmH7WZ z0d>y5=0=~r5aV;tG7d9OQBZ#J^9V=R3yKtG!@dK+&84y@3w-Vh(fimZ8|Bh diff --git a/build/aui-diagram-builder/assets/skins/sam/state.png b/build/aui-diagram-builder/assets/skins/sam/state.png index d262f7c56c69d6a8269c41e9efc57aa14632c7a1..85d38d19450aaea2ea21b58cac83ae057ec6f7d8 100644 GIT binary patch literal 1206 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=mv8#)Pn}Lgyk(raBp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLa!@My`ZF!TL84#CABECEH%ZgC_h&L>}9J=EN-zhbFy?c zHZua6XN=t~5WOk5-QtYXE&4#m=z}5_DWYLQz|;d`!jmnK15fy=dBD_O1WeXz&-@T& zU|`hpba4!+xb$VR^$D5N8=B_sY+M<7 z;gZqPrS*qcOf&*Z(pl~Qs7y$`?^kAYChKdH)!jJB?TmNYUl(W^tF$RwH2nRVRe5T5 z@N))Eqt@tGwyhr|xI6AKF?$GBe(^zOcMNm!X!! z++5$LJK$(>b-7^ix4fx6Qd8b$9tl=m-m-M3h0N47T5Z~swy?FGUa;lYu_875vjv|Q zJn&wTGDZ2Xx<%Q6US9G1OjT9m0tP;gH`WZl+oU%K2uKMTpMAAa!6H%gMbVA-=dMQe zYDHW&Drw7je)E4tlI3CLv_Br3)$iUD+q8JYeepNnnfj0Fzp*s^a(KE_)pB=1ljwx3BCv+iBL{Q4GJ0x0000DNk~Le0000y0000y2nGNE0Zseq+v2_b0Tmew>KQ`SUMNIgN2WkvpBH)Decoo2{fH{aD z0NS}8-N66>M06M+>v{mRQW2m3KQI9$8gQ5@0CIIbE<2g50e?aO!k!F5? z`tk$0<%j_ZnUsOp_#qTe|EV3cILj|s^90lap<&d*6B>GMTu47fK@W961HP6wDZT_+ zxPaWU8rBRW7J!=M4Ge=3e*gr~$U`JG(t&XeD%}cz*dAH}fl}!OAl?X!(+RX_2#}Jv zh)P(D1S|ykuAj`%bi~%#Bqkq&3K0WJ%Vk&*No)(`Jr!%K3qZ>a(FK`t_*8+430Oi! zO-1AxeTb% z*`&Ca3r)@Rx0sGiTZX|A)c6YX;pt;Kf(O_vPNajyI7eUp)6!Pt&N+He7t+vPN4yOI zDmMafHU{W227+zKnTc41WP%U4%px?gae)F$Hvr8LB)eTr;@}zs1Em9Oc-qeWdV*p2R1dbfx<_*1hGftpPAS1{Gt^gC@2y9^7fDvr< z9Z1tJN-4DX661ly_@m|V{=amIW>&KUUJo=mlR%q5g4Sv~=%?XImbS5`0|edWhPo*s z-J6i(&t2A;j03|e5;d_Oad#5%bWmUj8`T)Izi7Sy)zTOPe})x(O$=1Yvgk|z88YLI zZPfvT7rcur32bGd8JVslOKVAi!LNmmzHUPdy~WU_5-`Z&o#Qh`fT7M@?>e>|kdG~cS>0z)_R4Z4tR>D)8mTnG$-+m}@) z5wcckS~0!%d>yPOD=+g5@z;4e4BhQC03$>Mj&0+#uK*ws@!`PhC#IiSEnq4|O)(#z zRqdv(#3Rt;sLy8VD{2Iog3s{R#S(l2t6Av&z{2FeX&qxbAv33uY8V`fJ}!DNV1=8( g?e=3Ff|x~p04sN4pTN}0i~s-t07*qoM6N<$g48(30ssI2 diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 9315afa5519..4f9f7b9d461 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -2008,19 +2008,20 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeState = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[STATE] = A.DiagramNodeState; - A.DiagramNodeState = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 40 + }, + type: { value: STATE + }, + + width: { + value: 40 } }, @@ -2033,8 +2034,16 @@ A.DiagramNodeCondition = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: CONDITION + }, + + width: { + value: 60 } }, @@ -2075,8 +2084,16 @@ A.DiagramNodeJoin = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: JOIN + }, + + width: { + value: 60 } }, @@ -2089,8 +2106,16 @@ A.DiagramNodeFork = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: FORK + }, + + width: { + value: 60 } }, @@ -2104,7 +2129,7 @@ A.DiagramNodeTask = A.Component.create({ ATTRS: { height: { - value: 70 + value: 70 }, type: { diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js index f6ce5db5e73..dfc75428e76 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js @@ -1252,19 +1252,20 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeState = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[STATE] = A.DiagramNodeState; - A.DiagramNodeState = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 40 + }, + type: { value: STATE + }, + + width: { + value: 40 } }, @@ -1277,8 +1278,16 @@ A.DiagramNodeCondition = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: CONDITION + }, + + width: { + value: 60 } }, @@ -1319,8 +1328,16 @@ A.DiagramNodeJoin = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: JOIN + }, + + width: { + value: 60 } }, @@ -1333,8 +1350,16 @@ A.DiagramNodeFork = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: FORK + }, + + width: { + value: 60 } }, @@ -1348,7 +1373,7 @@ A.DiagramNodeTask = A.Component.create({ ATTRS: { height: { - value: 70 + value: 70 }, type: { diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js index a595807ce7a..7f0cddc370e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js @@ -1,3 +1,3 @@ AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                              ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                              ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes(); A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                              ',CONTROLS_TEMPLATE:'
                              ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180; -return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,EXTENDS:au.DiagramNode});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{type:{value:ab}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{type:{value:aZ}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{type:{value:t}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{type:{value:at}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file +return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl.js b/build/aui-diagram-builder/aui-diagram-builder-impl.js index f6ce5db5e73..dfc75428e76 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl.js @@ -1252,19 +1252,20 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeState = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[STATE] = A.DiagramNodeState; - A.DiagramNodeState = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 40 + }, + type: { value: STATE + }, + + width: { + value: 40 } }, @@ -1277,8 +1278,16 @@ A.DiagramNodeCondition = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: CONDITION + }, + + width: { + value: 60 } }, @@ -1319,8 +1328,16 @@ A.DiagramNodeJoin = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: JOIN + }, + + width: { + value: 60 } }, @@ -1333,8 +1350,16 @@ A.DiagramNodeFork = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: FORK + }, + + width: { + value: 60 } }, @@ -1348,7 +1373,7 @@ A.DiagramNodeTask = A.Component.create({ ATTRS: { height: { - value: 70 + value: 70 }, type: { diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index 08e27b0aaaa..76887a20336 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,6 +1,6 @@ AUI.add("aui-diagram-builder-base",function(ad){var S=ad.Lang,d=S.isArray,ap=S.isBoolean,K=S.isNumber,B=S.isObject,at=S.isString,H=function(A){return(A instanceof ad.ArrayList);},Q=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,U="add",k="addNode",aC="auto",L="availableField",P="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Y="cancel",aa="canvas",aq="clearfix",aq="clearfix",a="container",ab="content",u="contentBox",O="contentNode",E="createDocumentFragment",y="diagram",F="diagram-builder-base",Z="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",p="helper",V="icon",v="iconClass",aj="id",af="label",ah="list",N="maxFields",r="node",ac="propertyList",ax="rendered",al="save",q="settings",M="tab",G="tabView",b="tabs",e="tabview",J="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",h="#",aB=" ",z="_",x=w(y,aw,am,aa),aE=w(y,aw,am,ay,a),C=w(y,aw,am,ao),ag=w(y,aw,am,ao,o),c=w(y,aw,am,ao,V),T=w(y,aw,am,ao,af),f=w(y,aw,am,t,a),ai=w(y,aw,am,M,U),I=w(y,aw,am,M,q),m=w(y,aw,am,b,a),W=w(y,aw,am,b,a,ab),au=w(y,aw,am,J,a),ae=w(p,aq),ae=w(p,aq),l=w(V),av=w(e,ab),aA=w(e,ah);var i=ad.Component.create({NAME:L,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!Q(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(L,A);}return aF;},validator:Q,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return P+z+ao+z+A;},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ad.one(A).getData(L);},prototype:{FIELD_ITEM_TEMPLATE:'
                            • '+''+'
                              '+"
                            • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+T);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);}}});ad.AvailableField=i;var R=function(){};R.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||H(A);}},maxFields:{value:Infinity,validator:K}};ad.mix(R.prototype,{_setFields:function(aF){var A=this;if(H(aF)){return aF;}else{return A.createFields(aF);}},_updateFields:function(aF){var A=this;A.set(t,aF);},addField:function(aF){var A=this;if(A.get(t).size()
                              ',TOOLBAR_CONTAINER_TEMPLATE:'
                              ',FIELDS_CONTAINER_TEMPLATE:'
                                ',CANVAS_TEMPLATE:'
                                ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(aa);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(P));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(O);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,K(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Y);},_handleSaveEvent:function(){var A=this;A.fire(al); },_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);aF.appendChild(aG);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag(); A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A; -},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                ',CONTROLS_TEMPLATE:'
                                ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,EXTENDS:au.DiagramNode});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{type:{value:ab}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{type:{value:aZ}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{type:{value:t}},EXTENDS:au.DiagramNodeState,}); -au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{type:{value:at}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                ',NODE_TEMPLATE:'
                                ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file +},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                ',CONTROLS_TEMPLATE:'
                                ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,}); +au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                ',NODE_TEMPLATE:'
                                ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index 9315afa5519..4f9f7b9d461 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -2008,19 +2008,20 @@ A.DiagramNode = DiagramNode; A.DiagramBuilder.types[NODE] = A.DiagramNode; -A.DiagramNodeState = A.Component.create({ - NAME: DIAGRAM_NODE_NAME, - EXTENDS: A.DiagramNode -}); - -A.DiagramBuilder.types[STATE] = A.DiagramNodeState; - A.DiagramNodeState = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 40 + }, + type: { value: STATE + }, + + width: { + value: 40 } }, @@ -2033,8 +2034,16 @@ A.DiagramNodeCondition = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: CONDITION + }, + + width: { + value: 60 } }, @@ -2075,8 +2084,16 @@ A.DiagramNodeJoin = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: JOIN + }, + + width: { + value: 60 } }, @@ -2089,8 +2106,16 @@ A.DiagramNodeFork = A.Component.create({ NAME: DIAGRAM_NODE_NAME, ATTRS: { + height: { + value: 60 + }, + type: { value: FORK + }, + + width: { + value: 60 } }, @@ -2104,7 +2129,7 @@ A.DiagramNodeTask = A.Component.create({ ATTRS: { height: { - value: 70 + value: 70 }, type: { diff --git a/src/aui-diagram-builder/assets/skins/sam/anchor-active.png b/src/aui-diagram-builder/assets/skins/sam/anchor-active.png deleted file mode 100644 index f138638cf10bfdf5f76e95cdc525a81dce63ab14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)IeWBcNv)WA2@V?o0Elshl`ov;loFc00D%owg1xPEB_xneDweD z(c>WP4q*3yh^yCb{1+7!!LaY-sWS{LAjaRnzZh7Ufo^1G0qS4^+V>ae=D%QfGa^|r zUsgssfsc=u;mOly3?Dy!a*PZQIRFqq41@q9RJQ;pC+B+ueO-p%zkf5FIeY#AP`4sn z)s?H)z#az$CkTVsTej`^50Ya7*)1j}26QMWF#m%wh;3$S0y0?v3lkWF*o^;wgA^P9>o|4#^#8A4-v9sk{Sz32*c&!&0UH4h zsJr(b3O;%I;=Qtx0>hs_e}Vk_55htM!M*?pFh*>C2RRPvHUT8z3qY@Lz#2}lumV#1 zwKUZY6y)Whp7{?~1@t1r_wU~s&Yru#@agmCM4({{kOSHQ7}@(l0S(gwGXNAiFd7El zzyAO<===eoA&yK?v3ebCEpQlv6vJ$WX@b!(IROEF1_gOJ2av@qFjN2j{ma12%*23* z6GjwUA(|210;vbbG*rG3n3#ca^NWFvr#!`nBn7#=@) z3i84Mj6jr=l{V1QRAb=c;$mQ8g1F*8&})DG{9$Gn4m>4)%nFIj>h!LiD`N}o>e=u@6 z@Cpbse0=$kfs2jFFfu&k0$9QN1DF0QC@L{9F)=bQ0!2W^{rUT!;nv9=55UgiVq;_w z4??;pd@KmQ=ELbigFPuM|HT!i83wHpkatc+kQ00M}C5MYGrR`~Jz z-+f*&d4|s)-ZF6f|8@YV+Yzh)C@JuZUHH9*o(YQ1JEwMjh>i#m1Ud4&wt*=F3(yBl zOh6vc2Y-Ry;F3@i04Zbw8m#~f5RktaxLKLOG$)X+tfCCE+JOlu`GAwsr89ASpRoY?T?H)Fk)nIi)$D=PyN10>SH3ZRh>N|Ye_*Y95pH_jem;9~mK2sESt ztZe?0RsWUrtr-OP1;8l=h`<^dVO9V&f|ADne~>u%`t>Wr%`*qU>5&EIL?)mt2Qc)Q znIITq2*ep6+y4Rm_YbJ~FVK+REKG2(fmuM48t>n{z`)A*8_50#jL83xcw_qyj5i3) z1;ik6R;E7;SI?aQ>j8S<14bZn3Wy4r8W}JM@^OP*0#X2S_Lpxz8IGSi$ME(2OUyvT h6OHmvp@+Dl5db%t@us@7o;Lsh002ovPDHLkV1f@3P|^SZ diff --git a/src/aui-diagram-builder/assets/skins/sam/anchor.png b/src/aui-diagram-builder/assets/skins/sam/anchor.png deleted file mode 100644 index c81cc71a7ba5e13a5e5b83a03a8d84c59ae1aeb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)R5%f}lut_nK^Vr{rIJtxvM#lqq=k;5;!y+-eG5N8H?Mi^ z7T)>*eh)!Bibls^!;{vf3<4!A(4L>U%c%ITKLhKGGtcwed3WA-tl@CD@t19L9?Y_= zQ>`WRxO#TSx;OQno`yDZKc1WDW`F`6NRf+1qi3;L>{$JNC=}Yk)$jM;JDtu;v)MeC z?oLxBfuC9Pn`MS9(TQ!_7s+HY?z-+#Hk*A-rBYqTaXv7#+wJXItrjVl%X^;ZJ=W{> z+reOPBgVrFkevy3naO0*YFqhy{wW*|4}787_j*0MSS%h^tJTj+rBW62%HOFOa*mw= zD-;TCy})EljCm0nO*-9fH?CdhG`>b;^CR;q-;6NX*&-Nv8XB~C@WNnz1XQ2k0QhF} z!bCjX(Bi?XH8LUqx|}8lFl}1)9}iyXNUs36OKSM1xeQ{i;~A&bC|CWEP0g>yKJbmC zCC}ES;lV2(RTPBmQ2`|Fx Date: Thu, 4 Aug 2011 15:43:43 -0300 Subject: [PATCH 039/132] Build files --- .../assets/skins/sam/anchor-drop-active.png | Bin 0 -> 1765 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 build/aui-diagram-builder/assets/skins/sam/anchor-drop-active.png diff --git a/build/aui-diagram-builder/assets/skins/sam/anchor-drop-active.png b/build/aui-diagram-builder/assets/skins/sam/anchor-drop-active.png new file mode 100644 index 0000000000000000000000000000000000000000..ff869e5b3f97838133ae989e12b9c6e5f9646122 GIT binary patch literal 1765 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0dc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=uv!SV>qp5+Dk(ryJp{s#~iIJI$ft!=5v!knv zshcBAuSMv>2~2MaLa!lCy`ZF!TL84#CABECEH%ZgC_h&L>}9J=oNh63#c3W? zZwgMgn7HB8s}FRHJ}6?5A{r(HOg$hbJlO&{@Pwb52Tbinz+`>2Do6^LTOvJO978H@ z^@Mq6i#Q6rdsq49&0!l+(V|X9R{m#&JaR7lRUa4GADmt9aCGv12f@7^RicWF`i^@w zmE@W(Dp+bTy0UhzKk`P|+SvAPng6c#Szh^@SY7?|zh4W#`Zu)n;^}UAPNA-S3lEiY zx^+G)&^hv+F{RhoB#4DAbV2@`5Y97tMoZ)*6c?DTGBwV6enE2gc80?a^8)wEHRN+- z@D{fRG4E40da;)EB7@?EuAgVw-Lo2lmTtVnl9Bahx>D=JNCj>I&9zd!d#3cZMBg*C zPYwRXKT|)vaz?G!s+-}aZ?*0kad94dSoo`h$BtoDb|{1UqOgL_)Gsx8w%U3QDzV%|};%4iH1u}9RSLQKV=enGIu%}RB^YnxbHuG)#(%T8;nwyz?+H>2vk>aCUXvu}%f8Endmn2{L3F>R)= z=bZ=oS8iOA77H`ua^9;H6%ncbtkAYL=gk|2lBSh5Kj(&R+I?-tIpy#ct3}r9uW_Y^ z?41+5^;5Uz8H1HeeX}~XcId5gthT5$`k*~4Wa+CpY;)@WoA(D9hnzkZ=620`4};je zntONd@6GHgeAChMqwhr0@4Q^O7xx0Te%z|HBi!V)$%r@__>}*< zj4BqtED1?hT}hvkhz*>ptZwXhanXHRlqE;U!NT(%RknXuSWew-x>88QkK@&=X(#pC fmae|_M?8Vy@7{gae*M=s098Dmu6{1-oD!M Date: Thu, 4 Aug 2011 17:11:43 -0300 Subject: [PATCH 040/132] AUI-452 Updating aui-datatable due to update to recent YUI 3.4.0 master dev --- src/aui-datatable/js/aui-datatable-base.js | 8 ++++++-- src/aui-datatable/js/aui-datatable-edit.js | 2 -- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/aui-datatable/js/aui-datatable-base.js b/src/aui-datatable/js/aui-datatable-base.js index b3a88a31e12..232272bc525 100644 --- a/src/aui-datatable/js/aui-datatable-base.js +++ b/src/aui-datatable/js/aui-datatable-base.js @@ -5,11 +5,14 @@ var Lang = A.Lang, isNumber = Lang.isNumber, isString = Lang.isString, + CHANGE = 'change', CHILD_NODES = 'childNodes', COLUMNSET = 'columnset', DATA = 'data', HEADERS = 'headers', ID = 'id', + RECORDSET = 'recordset', + RENDER = 'render', _HASH = '#', _SPACE = ' '; @@ -18,8 +21,8 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after('render', instance._afterRender); - instance.after('recordsetChange', instance._afterRecordsetChangeExt); + instance.after(RENDER, instance._afterRender); + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); }, getCellNode: function(record, column) { @@ -50,6 +53,7 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { _afterRecordsetChangeExt: function(event) { var instance = this; + instance._uiSetRecordset(instance.get('recordset')); instance._fixPluginsUI(); }, diff --git a/src/aui-datatable/js/aui-datatable-edit.js b/src/aui-datatable/js/aui-datatable-edit.js index 6b04f9ad310..4ddca68b4f2 100644 --- a/src/aui-datatable/js/aui-datatable-edit.js +++ b/src/aui-datatable/js/aui-datatable-edit.js @@ -293,8 +293,6 @@ A.mix(CellEditorSupport.prototype, { selection.getActiveColumn().get(KEY), event.newVal ); - - instance.set(RECORDSET, recordset); } }, From fca910787cc58e804c1297f7aec33d70e285f652 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 17:11:57 -0300 Subject: [PATCH 041/132] Build files --- build/aui-datatable/aui-datatable-base-debug.js | 8 ++++++-- build/aui-datatable/aui-datatable-base-min.js | 2 +- build/aui-datatable/aui-datatable-base.js | 8 ++++++-- build/aui-datatable/aui-datatable-debug.js | 10 ++++++---- build/aui-datatable/aui-datatable-edit-debug.js | 2 -- build/aui-datatable/aui-datatable-edit-min.js | 6 +++--- build/aui-datatable/aui-datatable-edit.js | 2 -- build/aui-datatable/aui-datatable-min.js | 4 ++-- build/aui-datatable/aui-datatable.js | 10 ++++++---- 9 files changed, 30 insertions(+), 22 deletions(-) diff --git a/build/aui-datatable/aui-datatable-base-debug.js b/build/aui-datatable/aui-datatable-base-debug.js index b1f895b52ce..cd2016dc80f 100644 --- a/build/aui-datatable/aui-datatable-base-debug.js +++ b/build/aui-datatable/aui-datatable-base-debug.js @@ -6,11 +6,14 @@ var Lang = A.Lang, isNumber = Lang.isNumber, isString = Lang.isString, + CHANGE = 'change', CHILD_NODES = 'childNodes', COLUMNSET = 'columnset', DATA = 'data', HEADERS = 'headers', ID = 'id', + RECORDSET = 'recordset', + RENDER = 'render', _HASH = '#', _SPACE = ' '; @@ -19,8 +22,8 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after('render', instance._afterRender); - instance.after('recordsetChange', instance._afterRecordsetChangeExt); + instance.after(RENDER, instance._afterRender); + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); }, getCellNode: function(record, column) { @@ -51,6 +54,7 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { _afterRecordsetChangeExt: function(event) { var instance = this; + instance._uiSetRecordset(instance.get('recordset')); instance._fixPluginsUI(); }, diff --git a/build/aui-datatable/aui-datatable-base-min.js b/build/aui-datatable/aui-datatable-base-min.js index 03bca503f0c..8c3933bbeb8 100644 --- a/build/aui-datatable/aui-datatable-base-min.js +++ b/build/aui-datatable/aui-datatable-base-min.js @@ -1 +1 @@ -AUI.add("aui-datatable-base",function(d){var g=d.Lang,b=d.ArraySort.compare,l=g.isNumber,c=g.isString,j="childNodes",f="columnset",e="data",h="headers",i="id",a="#",k=" ";d.DataTable.Base=d.Base.create("datatable",d.DataTable.Base,[],{initializer:function(){var m=this;m.after("render",m._afterRender);m.after("recordsetChange",m._afterRecordsetChangeExt);},getCellNode:function(n,o){var m=this;return m.getRowNode(n).get(j).item(o.keyIndex);},getColNode:function(n){var m=this;var p=m.get(f);var o=p.getColumnIndex(p.getColumnByCell(n));return m._colgroupNode.get(j).item(o);},getRowNode:function(m){return d.one(a+m.get(i));},_afterRender:function(){var m=this;m._bindPluginsEvents();m._fixPluginsUI();},_afterRecordsetChangeExt:function(n){var m=this;m._fixPluginsUI();},_bindPluginsEvents:function(){var m=this;var n=m.sort;if(n){n.after("lastSortedByChange",d.bind(m._fixPluginsUI,m));}},_fixPluginsUI:function(){var n=this;var o=n.sort;var m=n.scroll;if(o&&m){m.syncUI();m._syncWidths();}}},{});d.Column=d.Base.create("column",d.Column,[],{},{ATTRS:{sortFn:{value:function(o,m,p,q){var n=b(o.getValue(p),m.getValue(p),q);if(n===0){n=b(o.get("id"),m.get("id"),q);}return n;}}}});d.Columnset=d.Base.create("columnset",d.Columnset,[],{getColumn:function(n){var m=this;if(c(n)){return this.idHash[n];}else{if(l(n)){return m.keys[n];}}return null;},getColumnByCell:function(n){var m=this;var o=n.getAttribute(h).split(k).pop()||n.get(i);return m.getColumn(o);},getColumnIndex:function(m){return m.keyIndex;},getLength:function(){var m=this;return m.keys.length;},_setDefinitions:function(m){return m;}},{});d.Recordset=d.Base.create("recordset",d.Recordset,[],{getRecordByRow:function(n){var m=this;return m.getRecord(n.get(i));},getRecordIndex:function(n){var m=this;return d.Array.indexOf(m._items,n);},updateRecordDataByKey:function(n,o,q){var m=this;var p=n.get(e);if(p){p[o]=q;n.set(e,p);}m.update(n,m.getRecordIndex(n));}},{});d.Plugin.DataTableScroll=d.Base.create("dataTableScroll",d.Plugin.DataTableScroll,[],{_syncWidths:function(){try{d.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(m){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]}); \ No newline at end of file +AUI.add("aui-datatable-base",function(f){var j=f.Lang,d=f.ArraySort.compare,o=j.isNumber,e=j.isString,h="change",m="childNodes",i="columnset",g="data",k="headers",l="id",c="recordset",b="render",a="#",n=" ";f.DataTable.Base=f.Base.create("datatable",f.DataTable.Base,[],{initializer:function(){var p=this;p.after(b,p._afterRender);p.get(c).after(h,f.bind(p._afterRecordsetChangeExt,p));},getCellNode:function(q,r){var p=this;return p.getRowNode(q).get(m).item(r.keyIndex);},getColNode:function(q){var p=this;var s=p.get(i);var r=s.getColumnIndex(s.getColumnByCell(q));return p._colgroupNode.get(m).item(r);},getRowNode:function(p){return f.one(a+p.get(l));},_afterRender:function(){var p=this;p._bindPluginsEvents();p._fixPluginsUI();},_afterRecordsetChangeExt:function(q){var p=this;p._uiSetRecordset(p.get("recordset"));p._fixPluginsUI();},_bindPluginsEvents:function(){var p=this;var q=p.sort;if(q){q.after("lastSortedByChange",f.bind(p._fixPluginsUI,p));}},_fixPluginsUI:function(){var q=this;var r=q.sort;var p=q.scroll;if(r&&p){p.syncUI();p._syncWidths();}}},{});f.Column=f.Base.create("column",f.Column,[],{},{ATTRS:{sortFn:{value:function(r,p,s,t){var q=d(r.getValue(s),p.getValue(s),t);if(q===0){q=d(r.get("id"),p.get("id"),t);}return q;}}}});f.Columnset=f.Base.create("columnset",f.Columnset,[],{getColumn:function(q){var p=this;if(e(q)){return this.idHash[q];}else{if(o(q)){return p.keys[q];}}return null;},getColumnByCell:function(q){var p=this;var r=q.getAttribute(k).split(n).pop()||q.get(l);return p.getColumn(r);},getColumnIndex:function(p){return p.keyIndex;},getLength:function(){var p=this;return p.keys.length;},_setDefinitions:function(p){return p;}},{});f.Recordset=f.Base.create("recordset",f.Recordset,[],{getRecordByRow:function(q){var p=this;return p.getRecord(q.get(l));},getRecordIndex:function(q){var p=this;return f.Array.indexOf(p._items,q);},updateRecordDataByKey:function(q,r,t){var p=this;var s=q.get(g);if(s){s[r]=t;q.set(g,s);}p.update(q,p.getRecordIndex(q));}},{});f.Plugin.DataTableScroll=f.Base.create("dataTableScroll",f.Plugin.DataTableScroll,[],{_syncWidths:function(){try{f.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(p){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]}); \ No newline at end of file diff --git a/build/aui-datatable/aui-datatable-base.js b/build/aui-datatable/aui-datatable-base.js index b1f895b52ce..cd2016dc80f 100644 --- a/build/aui-datatable/aui-datatable-base.js +++ b/build/aui-datatable/aui-datatable-base.js @@ -6,11 +6,14 @@ var Lang = A.Lang, isNumber = Lang.isNumber, isString = Lang.isString, + CHANGE = 'change', CHILD_NODES = 'childNodes', COLUMNSET = 'columnset', DATA = 'data', HEADERS = 'headers', ID = 'id', + RECORDSET = 'recordset', + RENDER = 'render', _HASH = '#', _SPACE = ' '; @@ -19,8 +22,8 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after('render', instance._afterRender); - instance.after('recordsetChange', instance._afterRecordsetChangeExt); + instance.after(RENDER, instance._afterRender); + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); }, getCellNode: function(record, column) { @@ -51,6 +54,7 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { _afterRecordsetChangeExt: function(event) { var instance = this; + instance._uiSetRecordset(instance.get('recordset')); instance._fixPluginsUI(); }, diff --git a/build/aui-datatable/aui-datatable-debug.js b/build/aui-datatable/aui-datatable-debug.js index 13c54fbfeba..9711a45df12 100644 --- a/build/aui-datatable/aui-datatable-debug.js +++ b/build/aui-datatable/aui-datatable-debug.js @@ -6,11 +6,14 @@ var Lang = A.Lang, isNumber = Lang.isNumber, isString = Lang.isString, + CHANGE = 'change', CHILD_NODES = 'childNodes', COLUMNSET = 'columnset', DATA = 'data', HEADERS = 'headers', ID = 'id', + RECORDSET = 'recordset', + RENDER = 'render', _HASH = '#', _SPACE = ' '; @@ -19,8 +22,8 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after('render', instance._afterRender); - instance.after('recordsetChange', instance._afterRecordsetChangeExt); + instance.after(RENDER, instance._afterRender); + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); }, getCellNode: function(record, column) { @@ -51,6 +54,7 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { _afterRecordsetChangeExt: function(event) { var instance = this; + instance._uiSetRecordset(instance.get('recordset')); instance._fixPluginsUI(); }, @@ -710,8 +714,6 @@ A.mix(CellEditorSupport.prototype, { selection.getActiveColumn().get(KEY), event.newVal ); - - instance.set(RECORDSET, recordset); } }, diff --git a/build/aui-datatable/aui-datatable-edit-debug.js b/build/aui-datatable/aui-datatable-edit-debug.js index ef7a0e865c8..2860faccd09 100644 --- a/build/aui-datatable/aui-datatable-edit-debug.js +++ b/build/aui-datatable/aui-datatable-edit-debug.js @@ -294,8 +294,6 @@ A.mix(CellEditorSupport.prototype, { selection.getActiveColumn().get(KEY), event.newVal ); - - instance.set(RECORDSET, recordset); } }, diff --git a/build/aui-datatable/aui-datatable-edit-min.js b/build/aui-datatable/aui-datatable-edit-min.js index 2cf363388ff..6300dad4033 100644 --- a/build/aui-datatable/aui-datatable-edit-min.js +++ b/build/aui-datatable/aui-datatable-edit-min.js @@ -1,3 +1,3 @@ -AUI.add("aui-datatable-edit",function(aw){var ae=aw.Lang,bg=aw.Array,e=ae.isArray,aV=ae.isBoolean,aQ=ae.isFunction,J=ae.isObject,a0=ae.isString,aP=ae.String,aN=aw.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),a6=function(A){return(A instanceof aw.BaseCellEditor);},at=aw.WidgetStdMod,B=aw.getClassName,ag="add",a7="addOption",aO="baseCellEditor",s="boundingBox",S="calendar",ao="cancel",aS="cell",aA="celleditor",D="checkboxCellEditor",p="checked",aK="click",C="columnset",w="contentBox",aG="data",Q="datatable",M="dateCellEditor",an="dd",W="delete",ar="disk",aI="dotted",aR="dropDownCellEditor",N="edit",aa="editable",f="editor",G="editEvent",al="editOptions",I="element",aF="elementName",aT="field",c="grip",F="handle",v="hide",ay="hideOnSave",aj="icon",aJ="id",o="initEdit",bf="initToolbar",ax="initValidator",ac="input",d="inputFormatter",be="key",az="label",au="link",Y="mousedown",ab="multiple",m="name",aX="option",a2="options",u="optionsCellEditor",bb="outputFormatter",l="pencil",am="radioCellEditor",ak="records",k="recordset",bc="remove",a9="rendered",ai="return",n="row",aM="save",ah="saveOptions",aY="selected",aD="selectedAttrName",Z="showToolbar",a1="submit",T="textAreaCellEditor",y="textCellEditor",P="toolbar",z="unescapeValue",X="validator",a5="value",av="vertical",af="visible",a3="wrapper",bj=",",i=".",U="",h="#",a8="\n",bd=" ",t=//gi,E=/[\r\n]/g,b=B(aA,N),g=B(aA,N,ag,aX),bi=B(aA,N,an,F),aW=B(aA,N,W,aX),ba=B(aA,N,v,aX),aB=B(aA,N,ac,m),aL=B(aA,N,ac,a5),aq=B(aA,N,az),q=B(aA,N,au),aE=B(aA,N,aX,n),R=B(aA,N,aM,aX),V=B(aA,I),aZ=B(aA,az),L=B(aA,aX),x=B(aA,a3),H=B(Q,aa),j=B(aj),ad=B(aj,c,aI,av),aU="
                                ";var a4=function(){};a4.NAME="dataTableCellEditorSupport";a4.ATTRS={editEvent:{setter:"_setEditEvent",validator:a0,value:aK}};aw.mix(a4.prototype,{initializer:function(){var A=this;A.after({render:A._afterRenderEditor});A.on(A.get(G),A._onCellEdit);A.after(A._afterUiSetRecordset,A,"_uiSetRecordset");},getCellEditor:function(bk,bm){var A=this;var bl=bm.get(f);var bn=bk.get(aG).editor;if(bl===false||bn===false){return null;}return bn||bl;},getRecordColumnValue:function(A,bk){return A.getValue(bk.get(aT));},syncEditableColumnsUI:function(){var A=this;var bl=A.get(C);var bk=A.get(k);aw.each(bl.idHash,function(bn){var bm=bn.get(f);if(a6(bm)){aw.all("[headers="+bn.get(aJ)+"]").addClass(H);}});aw.each(bk.get(ak),function(bm){var bn=bm.get(aG).editor;var bo=a6(bn);aw.all(h+bm.get("id")+">td").each(function(br,bp){var bq=bl.getColumn(bp);if(bn===false){br.removeClass(H);}else{if(bo||(bq.get(f)!==false)){br.addClass(H);}}});});},_afterUiSetRecordset:function(bk){var A=this;A.syncEditableColumnsUI();},_afterRenderEditor:function(bk){var A=this;if(!A.events){A.plug(aw.Plugin.DataTableEvents);}},_editCell:function(bo){var A=this;var bq=A.get(C);var bp=A.get(k);var bn=bo.column;var bk=bo.record;A.activeColumnIndex=bq.getColumnIndex(bn);A.activeRecordIndex=bp.getRecordIndex(bk);var bl=bo.alignNode||bo.cell;var bm=A.getCellEditor(bk,bn);if(a6(bm)){if(!bm.get(a9)){bm.on({visibleChange:aw.bind(A._onEditorVisibleChange,A),save:aw.bind(A._onEditorSave,A)});bm.render();}bm.set(a5,A.getRecordColumnValue(bk,bn));bm.show().move(bl.getXY());}},_onCellEdit:function(bk){var A=this;A._editCell(bk);},_onEditorVisibleChange:function(bp){var bk=this;var bn=bp.currentTarget;var bm=bk.selection;if(bm){var bl=bm.getActiveRecord();var bo=bm.getActiveColumn();var A=bk.getCellNode(bl,bo);var bq=bk.getRowNode(bl);if(bp.newVal){bn._syncFocus();}else{bm.select(A,bq);}}},_onEditorSave:function(bm){var A=this;var bl=bm.currentTarget;var bn=A.get(k);bl.set(a5,bm.newVal);var bk=A.selection;if(bk){bn.updateRecordDataByKey(bk.getActiveRecord(),bk.getActiveColumn().get(be),bm.newVal);A.set(k,bn);}},_setEditEvent:function(A){return aS+aN(A);}});aw.DataTable.CellEditorSupport=a4;aw.DataTable.Base=aw.Base.create("dataTable",aw.DataTable.Base,[aw.DataTable.CellEditorSupport]);var r=aw.Component.create({NAME:aO,ATTRS:{editable:{value:false,validator:aV},elementName:{value:a5,validator:a0},footerContent:{value:U},hideOnSave:{value:true,validator:aV},inputFormatter:{value:function(A){if(a0(A)){A=A.replace(E,aU);}return A;}},outputFormatter:{value:function(bk){var A=this;if(a0(bk)){if(A.get(z)){bk=aP.unescapeEntities(bk);}bk=bk.replace(t,a8);}return bk;}},showToolbar:{value:true,validator:aV},strings:{value:{edit:"Edit",save:"Save",cancel:"Cancel"}},tabIndex:{value:1},toolbar:{setter:"_setToolbar",validator:J,value:null},unescapeValue:{value:true,validator:aV},validator:{setter:"_setValidator",validator:J,value:null},value:{value:U},visible:{value:false}},EXTENDS:aw.Overlay,UI_ATTRS:[aa,Z,a5],prototype:{CONTENT_TEMPLATE:"",ELEMENT_TEMPLATE:null,elements:null,validator:null,_hDocMouseDownEv:null,initializer:function(bk){var A=this;A._initEvents();},destructor:function(){var bk=this;var A=bk._hDocMouseDownEv;var bm=bk.toolbar;var bl=bk.validator;if(A){A.detach();}if(bm){bm.destroy();}if(bl){bl.destroy();}},bindUI:function(){var A=this;A.get(s).on(be,aw.bind(A._onEscKey,A),"down:27");},formatValue:function(bk,bl){var A=this;if(aQ(bk)){bl=bk.call(A,bl);}return bl;},getValue:function(){var A=this;return A.formatValue(A.get(d),A.getElementsValue());},_initEvents:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn},initEdit:{defaultFn:A._defInitEditFn,fireOnce:true},initValidator:{defaultFn:A._defInitValidatorFn,fireOnce:true},initToolbar:{defaultFn:A._defInitToolbarFn,fireOnce:true},save:{defaultFn:A._defSaveFn}});A.after({render:A._afterRender,visibleChange:aw.debounce(A._debounceVisibleChange,350,A)});A.on({"form-validator:submit":aw.bind(A._onSubmit,A)});},_afterRender:function(){var A=this;A._handleInitValidatorEvent();A._handleInitToolbarEvent();},_defCancelFn:function(bk){var A=this;A.hide();},_defInitValidatorFn:function(bk){var A=this;A.validator=new aw.FormValidator(A.get(X));},_defInitToolbarFn:function(bl){var A=this;var bk=A.get(aa);A.toolbar=new aw.Toolbar(A.get(P)).render(A.footerNode); -if(bk){A._uiSetEditable(bk);}},_defSaveFn:function(bk){var A=this;if(A.get(ay)){A.hide();}},_debounceVisibleChange:function(bl){var bk=this;var A=bk._hDocMouseDownEv;if(bl.newVal){if(!A){bk._hDocMouseDownEv=aw.getDoc().on(Y,aw.bind(bk._onDocMouseDownExt,bk));}}else{if(A){A.detach();bk._hDocMouseDownEv=null;}}},_handleCancelEvent:function(){var A=this;A.fire(ao);},_handleEditEvent:function(){var A=this;A.fire(N);},_handleInitEditEvent:function(){var A=this;if(A.get(a9)){this.fire(o);}},_handleInitValidatorEvent:function(){var A=this;if(A.get(a9)){this.fire(ax);}},_handleInitToolbarEvent:function(){var A=this;if(A.get(a9)&&A.get(Z)){this.fire(bf);}},_handleSaveEvent:function(){var A=this;if(!A.validator.hasErrors()){A.fire(aM,{newVal:A.getValue(),prevVal:A.get(a5)});}},_onDocMouseDownExt:function(bl){var A=this;var bk=A.get(s);if(!bk.contains(bl.target)){A.set(af,false);}},_onEscKey:function(bk){var A=this;A.hide();},_onSubmit:function(bl){var A=this;var bk=bl.validator;A._handleSaveEvent();if(bk){bk.formEvent.halt();}},_setToolbar:function(bl){var bk=this;var A=bk.getStrings();return aw.merge({activeState:false,children:[{label:A[aM],icon:ar,type:a1},{handler:aw.bind(bk._handleCancelEvent,bk),label:A[ao]}]},bl);},_setValidator:function(bk){var A=this;return aw.merge({boundingBox:A.get(w),bubbleTargets:A},bk);},_uiSetShowToolbar:function(bl){var A=this;var bk=A.footerNode;if(bl){bk.show();}else{bk.hide();}A._handleInitToolbarEvent();},getElementsValue:function(){var A=this;var bk=A.elements;if(bk){return bk.get(a5);}return U;},renderUI:function(){var A=this;if(A.ELEMENT_TEMPLATE){A.elements=aw.Node.create(A.ELEMENT_TEMPLATE);A._syncElementsName();A.setStdModContent(at.BODY,A.elements);}},_defInitEditFn:function(A){},_syncElementsFocus:function(){var A=this;A.elements.selectText();},_syncElementsName:function(){var A=this;A.elements.setAttribute(m,A.get(aF));},_syncFocus:function(){var A=this;aw.later(0,A,A._syncElementsFocus);},_uiSetEditable:function(bl){var A=this;var bk=A.toolbar;if(A.get(a9)&&bk){if(bl){bk.add({handler:aw.bind(A._handleEditEvent,A),icon:l,label:A.getString(N)},1);}else{bk.remove(1);}}},_uiSetValue:function(bl){var A=this;var bk=A.elements;if(bk){bk.val(A.formatValue(A.get(bb),bl));}}}});aw.BaseCellEditor=r;var bh=aw.Component.create({NAME:u,ATTRS:{inputFormatter:{value:null},options:{setter:"_setOptions",value:{},validator:J},outputFormatter:{value:null},selectedAttrName:{value:aY,validator:a0},strings:{value:{add:"Add",cancel:"Cancel",addOption:"Add option",edit:"Edit options",editOptions:"Edit option(s)",name:"Name",remove:"Remove",save:"Save",saveOptions:"Save options",stopEditing:"Stop editing",value:"Value"}}},EXTENDS:aw.BaseCellEditor,UI_ATTRS:[a2],prototype:{EDIT_TEMPLATE:'
                                ',EDIT_OPTION_ROW_TEMPLATE:'
                                '+''+' '+' '+'{remove} '+"
                                ",EDIT_ADD_LINK_TEMPLATE:'{addOption} ',EDIT_LABEL_TEMPLATE:'
                                {editOptions}
                                ',EDIT_SAVE_LINK_TEMPLATE:'{saveOptions} ',editContainer:null,editSortable:null,options:null,initializer:function(){var A=this;A.on(N,A._onEditEvent);A.on(aM,A._onSave);A.after(bf,A._afterInitToolbar);},addNewOption:function(bl,bn){var A=this;var bm=A.editContainer.all(i+aE).last();var bk=aw.Node.create(A._createEditOption(bl||U,bn||U));bm.placeAfter(bk);bk.one(ac).focus();},removeOption:function(A){A.remove();},saveOptions:function(){var A=this;var bn=A.editContainer;if(bn){var bm=bn.all(i+aB);var bk=bn.all(i+aL);var bl={};bm.each(function(bq,bp){var bo=bq.val();var br=bk.item(bp).val();if(bo&&br){bl[br]=bo;}});A.set(a2,bl);A._uiSetValue(A.get(a5));A.toggleEdit();}},toggleEdit:function(){var A=this;A.editContainer.toggle();},_createOptions:function(bl){var bp=this;var A=bp.elements;var bn=[];var bk=[];var bm=bp.OPTION_TEMPLATE;var bq=bp.OPTION_WRAPPER;aw.each(bl,function(bu,bt){var bs={id:aw.guid(),label:bu,name:bt,value:bt};if(bm){bn.push(aw.substitute(bm,bs));}if(bq){bk.push(aw.substitute(bq,bs));}});var br=aw.NodeList.create(bn.join(U));var bo=aw.NodeList.create(bk.join(U));if(bo.size()){bo.each(function(bt,bs){bt.prepend(br.item(bs));});A.setContent(bo);}else{A.setContent(br);}bp.options=br;},_createEditBuffer:function(){var bk=this;var A=bk.getStrings();var bl=[];bl.push(ae.sub(bk.EDIT_LABEL_TEMPLATE,{editOptions:A[al]}));aw.each(bk.get(a2),function(bm,bn){bl.push(bk._createEditOption(bm,bn));});bl.push(ae.sub(bk.EDIT_ADD_LINK_TEMPLATE,{addOption:A[a7]}));bl.push(ae.sub(bk.EDIT_SAVE_LINK_TEMPLATE,{saveOptions:A[ah]}));return bl.join(U);},_createEditOption:function(bl,bm){var bk=this;var A=bk.getStrings();return ae.sub(bk.EDIT_OPTION_ROW_TEMPLATE,{remove:A[bc],titleName:A[m],titleValue:A[a5],valueName:bl,valueValue:bm});},_defInitEditFn:function(bk){var A=this;var bl=aw.Node.create(A.EDIT_TEMPLATE);bl.delegate("click",aw.bind(A._onEditLinkClickEvent,A),i+q);bl.delegate("keydown",aw.bind(A._onEditKeyEvent,A),ac);A.editContainer=bl;A.setStdModContent(at.BODY,bl.hide(),at.AFTER);A.editSortable=new aw.Sortable({container:bl,handles:[i+bi],nodes:i+aE,opacity:".3"}).delegate.dd.plug(aw.Plugin.DDConstrained,{constrain:bl,stickY:true});A._syncEditOptionsUI();},_getSelectedOptions:function(){var A=this;var bk=[];A.options.each(function(bl){if(bl.get(A.get(aD))){bk.push(bl);}});return aw.all(bk);},_onEditEvent:function(bk){var A=this;A._handleInitEditEvent();A.toggleEdit();A._syncEditOptionsUI();},_onEditLinkClickEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bl.test(i+g)){A.addNewOption();}else{if(bl.test(i+R)){A.saveOptions();}else{if(bl.test(i+ba)){A.toggleEdit(); -}else{if(bl.test(i+aW)){A.removeOption(bl.ancestor(i+aE));}}}}bk.halt();},_onEditKeyEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bk.isKey(ai)){var bm=bl.next(ac);if(bm){bm.selectText();}else{A.addNewOption();}bk.halt();}},_onSave:function(bk){var A=this;A.saveOptions();},_setOptions:function(bk){var A={};if(e(bk)){bg.each(bk,function(bl){A[bl]=bl;});}else{if(J(bk)){A=bk;}}return A;},_syncEditOptionsUI:function(){var A=this;A.editContainer.setContent(A._createEditBuffer());},_uiSetOptions:function(bk){var A=this;A._createOptions(bk);A._syncElementsName();},_uiSetValue:function(bl){var A=this;var bk=A.options;if(bk&&bk.size()){bk.set(A.get(aD),false);bg.each(bg(bl),function(bm){bk.filter('[value="'+bm+'"]').set(A.get(aD),true);});}return bl;}}});aw.BaseOptionsCellEditor=bh;var aC=aw.Component.create({NAME:y,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextCellEditor=aC;var aH=aw.Component.create({NAME:T,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextAreaCellEditor=aH;var O=aw.Component.create({NAME:aR,ATTRS:{multiple:{value:false,validator:aV}},EXTENDS:aw.BaseOptionsCellEditor,UI_ATTRS:[ab],prototype:{ELEMENT_TEMPLATE:'',OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;if(A.get(ab)){return A._getSelectedOptions().get(a5);}return A.elements.get(a5);},_syncElementsFocus:function(){var A=this;A.elements.focus();},_uiSetMultiple:function(bl){var A=this;var bk=A.elements;if(bl){bk.setAttribute(ab,ab);}else{bk.removeAttribute(ab);}}}});aw.DropDownCellEditor=O;var ap=aw.Component.create({NAME:D,ATTRS:{selectedAttrName:{value:p}},EXTENDS:aw.BaseOptionsCellEditor,prototype:{ELEMENT_TEMPLATE:'
                                ',OPTION_TEMPLATE:'',OPTION_WRAPPER:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5);},_syncElementsFocus:function(){var A=this;var bk=A.options;if(bk&&bk.size()){bk.item(0).focus();}}}});aw.CheckboxCellEditor=ap;var K=aw.Component.create({NAME:am,EXTENDS:aw.CheckboxCellEditor,prototype:{OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5)[0];},_syncElementsName:function(){var A=this;var bk=A.options;if(bk){bk.setAttribute(m,A.get(aF));}}}});aw.RadioCellEditor=K;var a=aw.Component.create({NAME:M,EXTENDS:aw.BaseCellEditor,ATTRS:{bodyContent:{value:U},calendar:{setter:"_setCalendar",validator:J,value:null}},prototype:{ELEMENT_TEMPLATE:'',initializer:function(){var A=this;A.on("calendar:select",aw.bind(A._onDateSelect,A));},getElementsValue:function(){var A=this;return A.calendar.getFormattedSelectedDates().join(bj);},_afterRender:function(){var A=this;aw.DateCellEditor.superclass._afterRender.apply(A,arguments);A.calendar=new aw.Calendar(A.get(S)).render(A.bodyNode);},_onDateSelect:function(bk){var A=this;A.elements.val(bk.date.formatted.join(bj));},_setCalendar:function(bk){var A=this;return aw.merge({bubbleTargets:A},bk);},_uiSetValue:function(bl){var A=this;var bk=A.calendar;if(bk){if(bl&&a0(bl)){bl=bl.split(bj);}A.calendar.set("dates",bl);}}}});aw.DateCellEditor=a;},"@VERSION@",{requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"],skinnable:true}); \ No newline at end of file +AUI.add("aui-datatable-edit",function(aw){var ae=aw.Lang,bg=aw.Array,e=ae.isArray,aV=ae.isBoolean,aQ=ae.isFunction,J=ae.isObject,a0=ae.isString,aP=ae.String,aN=aw.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),a6=function(A){return(A instanceof aw.BaseCellEditor);},at=aw.WidgetStdMod,B=aw.getClassName,ag="add",a7="addOption",aO="baseCellEditor",s="boundingBox",S="calendar",ao="cancel",aS="cell",aA="celleditor",D="checkboxCellEditor",p="checked",aK="click",C="columnset",w="contentBox",aG="data",Q="datatable",M="dateCellEditor",an="dd",W="delete",ar="disk",aI="dotted",aR="dropDownCellEditor",N="edit",aa="editable",f="editor",G="editEvent",al="editOptions",I="element",aF="elementName",aT="field",c="grip",F="handle",v="hide",ay="hideOnSave",aj="icon",aJ="id",o="initEdit",bf="initToolbar",ax="initValidator",ac="input",d="inputFormatter",be="key",az="label",au="link",Y="mousedown",ab="multiple",m="name",aX="option",a2="options",u="optionsCellEditor",bb="outputFormatter",l="pencil",am="radioCellEditor",ak="records",k="recordset",bc="remove",a9="rendered",ai="return",n="row",aM="save",ah="saveOptions",aY="selected",aD="selectedAttrName",Z="showToolbar",a1="submit",T="textAreaCellEditor",y="textCellEditor",P="toolbar",z="unescapeValue",X="validator",a5="value",av="vertical",af="visible",a3="wrapper",bj=",",i=".",U="",h="#",a8="\n",bd=" ",t=//gi,E=/[\r\n]/g,b=B(aA,N),g=B(aA,N,ag,aX),bi=B(aA,N,an,F),aW=B(aA,N,W,aX),ba=B(aA,N,v,aX),aB=B(aA,N,ac,m),aL=B(aA,N,ac,a5),aq=B(aA,N,az),q=B(aA,N,au),aE=B(aA,N,aX,n),R=B(aA,N,aM,aX),V=B(aA,I),aZ=B(aA,az),L=B(aA,aX),x=B(aA,a3),H=B(Q,aa),j=B(aj),ad=B(aj,c,aI,av),aU="
                                ";var a4=function(){};a4.NAME="dataTableCellEditorSupport";a4.ATTRS={editEvent:{setter:"_setEditEvent",validator:a0,value:aK}};aw.mix(a4.prototype,{initializer:function(){var A=this;A.after({render:A._afterRenderEditor});A.on(A.get(G),A._onCellEdit);A.after(A._afterUiSetRecordset,A,"_uiSetRecordset");},getCellEditor:function(bk,bm){var A=this;var bl=bm.get(f);var bn=bk.get(aG).editor;if(bl===false||bn===false){return null;}return bn||bl;},getRecordColumnValue:function(A,bk){return A.getValue(bk.get(aT));},syncEditableColumnsUI:function(){var A=this;var bl=A.get(C);var bk=A.get(k);aw.each(bl.idHash,function(bn){var bm=bn.get(f);if(a6(bm)){aw.all("[headers="+bn.get(aJ)+"]").addClass(H);}});aw.each(bk.get(ak),function(bm){var bn=bm.get(aG).editor;var bo=a6(bn);aw.all(h+bm.get("id")+">td").each(function(br,bp){var bq=bl.getColumn(bp);if(bn===false){br.removeClass(H);}else{if(bo||(bq.get(f)!==false)){br.addClass(H);}}});});},_afterUiSetRecordset:function(bk){var A=this;A.syncEditableColumnsUI();},_afterRenderEditor:function(bk){var A=this;if(!A.events){A.plug(aw.Plugin.DataTableEvents);}},_editCell:function(bo){var A=this;var bq=A.get(C);var bp=A.get(k);var bn=bo.column;var bk=bo.record;A.activeColumnIndex=bq.getColumnIndex(bn);A.activeRecordIndex=bp.getRecordIndex(bk);var bl=bo.alignNode||bo.cell;var bm=A.getCellEditor(bk,bn);if(a6(bm)){if(!bm.get(a9)){bm.on({visibleChange:aw.bind(A._onEditorVisibleChange,A),save:aw.bind(A._onEditorSave,A)});bm.render();}bm.set(a5,A.getRecordColumnValue(bk,bn));bm.show().move(bl.getXY());}},_onCellEdit:function(bk){var A=this;A._editCell(bk);},_onEditorVisibleChange:function(bp){var bk=this;var bn=bp.currentTarget;var bm=bk.selection;if(bm){var bl=bm.getActiveRecord();var bo=bm.getActiveColumn();var A=bk.getCellNode(bl,bo);var bq=bk.getRowNode(bl);if(bp.newVal){bn._syncFocus();}else{bm.select(A,bq);}}},_onEditorSave:function(bm){var A=this;var bl=bm.currentTarget;var bn=A.get(k);bl.set(a5,bm.newVal);var bk=A.selection;if(bk){bn.updateRecordDataByKey(bk.getActiveRecord(),bk.getActiveColumn().get(be),bm.newVal);}},_setEditEvent:function(A){return aS+aN(A);}});aw.DataTable.CellEditorSupport=a4;aw.DataTable.Base=aw.Base.create("dataTable",aw.DataTable.Base,[aw.DataTable.CellEditorSupport]);var r=aw.Component.create({NAME:aO,ATTRS:{editable:{value:false,validator:aV},elementName:{value:a5,validator:a0},footerContent:{value:U},hideOnSave:{value:true,validator:aV},inputFormatter:{value:function(A){if(a0(A)){A=A.replace(E,aU);}return A;}},outputFormatter:{value:function(bk){var A=this;if(a0(bk)){if(A.get(z)){bk=aP.unescapeEntities(bk);}bk=bk.replace(t,a8);}return bk;}},showToolbar:{value:true,validator:aV},strings:{value:{edit:"Edit",save:"Save",cancel:"Cancel"}},tabIndex:{value:1},toolbar:{setter:"_setToolbar",validator:J,value:null},unescapeValue:{value:true,validator:aV},validator:{setter:"_setValidator",validator:J,value:null},value:{value:U},visible:{value:false}},EXTENDS:aw.Overlay,UI_ATTRS:[aa,Z,a5],prototype:{CONTENT_TEMPLATE:"
                                ",ELEMENT_TEMPLATE:null,elements:null,validator:null,_hDocMouseDownEv:null,initializer:function(bk){var A=this;A._initEvents();},destructor:function(){var bk=this;var A=bk._hDocMouseDownEv;var bm=bk.toolbar;var bl=bk.validator;if(A){A.detach();}if(bm){bm.destroy();}if(bl){bl.destroy();}},bindUI:function(){var A=this;A.get(s).on(be,aw.bind(A._onEscKey,A),"down:27");},formatValue:function(bk,bl){var A=this;if(aQ(bk)){bl=bk.call(A,bl);}return bl;},getValue:function(){var A=this;return A.formatValue(A.get(d),A.getElementsValue());},_initEvents:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn},initEdit:{defaultFn:A._defInitEditFn,fireOnce:true},initValidator:{defaultFn:A._defInitValidatorFn,fireOnce:true},initToolbar:{defaultFn:A._defInitToolbarFn,fireOnce:true},save:{defaultFn:A._defSaveFn}});A.after({render:A._afterRender,visibleChange:aw.debounce(A._debounceVisibleChange,350,A)});A.on({"form-validator:submit":aw.bind(A._onSubmit,A)});},_afterRender:function(){var A=this;A._handleInitValidatorEvent();A._handleInitToolbarEvent();},_defCancelFn:function(bk){var A=this;A.hide();},_defInitValidatorFn:function(bk){var A=this;A.validator=new aw.FormValidator(A.get(X));},_defInitToolbarFn:function(bl){var A=this;var bk=A.get(aa);A.toolbar=new aw.Toolbar(A.get(P)).render(A.footerNode);if(bk){A._uiSetEditable(bk); +}},_defSaveFn:function(bk){var A=this;if(A.get(ay)){A.hide();}},_debounceVisibleChange:function(bl){var bk=this;var A=bk._hDocMouseDownEv;if(bl.newVal){if(!A){bk._hDocMouseDownEv=aw.getDoc().on(Y,aw.bind(bk._onDocMouseDownExt,bk));}}else{if(A){A.detach();bk._hDocMouseDownEv=null;}}},_handleCancelEvent:function(){var A=this;A.fire(ao);},_handleEditEvent:function(){var A=this;A.fire(N);},_handleInitEditEvent:function(){var A=this;if(A.get(a9)){this.fire(o);}},_handleInitValidatorEvent:function(){var A=this;if(A.get(a9)){this.fire(ax);}},_handleInitToolbarEvent:function(){var A=this;if(A.get(a9)&&A.get(Z)){this.fire(bf);}},_handleSaveEvent:function(){var A=this;if(!A.validator.hasErrors()){A.fire(aM,{newVal:A.getValue(),prevVal:A.get(a5)});}},_onDocMouseDownExt:function(bl){var A=this;var bk=A.get(s);if(!bk.contains(bl.target)){A.set(af,false);}},_onEscKey:function(bk){var A=this;A.hide();},_onSubmit:function(bl){var A=this;var bk=bl.validator;A._handleSaveEvent();if(bk){bk.formEvent.halt();}},_setToolbar:function(bl){var bk=this;var A=bk.getStrings();return aw.merge({activeState:false,children:[{label:A[aM],icon:ar,type:a1},{handler:aw.bind(bk._handleCancelEvent,bk),label:A[ao]}]},bl);},_setValidator:function(bk){var A=this;return aw.merge({boundingBox:A.get(w),bubbleTargets:A},bk);},_uiSetShowToolbar:function(bl){var A=this;var bk=A.footerNode;if(bl){bk.show();}else{bk.hide();}A._handleInitToolbarEvent();},getElementsValue:function(){var A=this;var bk=A.elements;if(bk){return bk.get(a5);}return U;},renderUI:function(){var A=this;if(A.ELEMENT_TEMPLATE){A.elements=aw.Node.create(A.ELEMENT_TEMPLATE);A._syncElementsName();A.setStdModContent(at.BODY,A.elements);}},_defInitEditFn:function(A){},_syncElementsFocus:function(){var A=this;A.elements.selectText();},_syncElementsName:function(){var A=this;A.elements.setAttribute(m,A.get(aF));},_syncFocus:function(){var A=this;aw.later(0,A,A._syncElementsFocus);},_uiSetEditable:function(bl){var A=this;var bk=A.toolbar;if(A.get(a9)&&bk){if(bl){bk.add({handler:aw.bind(A._handleEditEvent,A),icon:l,label:A.getString(N)},1);}else{bk.remove(1);}}},_uiSetValue:function(bl){var A=this;var bk=A.elements;if(bk){bk.val(A.formatValue(A.get(bb),bl));}}}});aw.BaseCellEditor=r;var bh=aw.Component.create({NAME:u,ATTRS:{inputFormatter:{value:null},options:{setter:"_setOptions",value:{},validator:J},outputFormatter:{value:null},selectedAttrName:{value:aY,validator:a0},strings:{value:{add:"Add",cancel:"Cancel",addOption:"Add option",edit:"Edit options",editOptions:"Edit option(s)",name:"Name",remove:"Remove",save:"Save",saveOptions:"Save options",stopEditing:"Stop editing",value:"Value"}}},EXTENDS:aw.BaseCellEditor,UI_ATTRS:[a2],prototype:{EDIT_TEMPLATE:'
                                ',EDIT_OPTION_ROW_TEMPLATE:'
                                '+''+' '+' '+'{remove} '+"
                                ",EDIT_ADD_LINK_TEMPLATE:'{addOption} ',EDIT_LABEL_TEMPLATE:'
                                {editOptions}
                                ',EDIT_SAVE_LINK_TEMPLATE:'{saveOptions} ',editContainer:null,editSortable:null,options:null,initializer:function(){var A=this;A.on(N,A._onEditEvent);A.on(aM,A._onSave);A.after(bf,A._afterInitToolbar);},addNewOption:function(bl,bn){var A=this;var bm=A.editContainer.all(i+aE).last();var bk=aw.Node.create(A._createEditOption(bl||U,bn||U));bm.placeAfter(bk);bk.one(ac).focus();},removeOption:function(A){A.remove();},saveOptions:function(){var A=this;var bn=A.editContainer;if(bn){var bm=bn.all(i+aB);var bk=bn.all(i+aL);var bl={};bm.each(function(bq,bp){var bo=bq.val();var br=bk.item(bp).val();if(bo&&br){bl[br]=bo;}});A.set(a2,bl);A._uiSetValue(A.get(a5));A.toggleEdit();}},toggleEdit:function(){var A=this;A.editContainer.toggle();},_createOptions:function(bl){var bp=this;var A=bp.elements;var bn=[];var bk=[];var bm=bp.OPTION_TEMPLATE;var bq=bp.OPTION_WRAPPER;aw.each(bl,function(bu,bt){var bs={id:aw.guid(),label:bu,name:bt,value:bt};if(bm){bn.push(aw.substitute(bm,bs));}if(bq){bk.push(aw.substitute(bq,bs));}});var br=aw.NodeList.create(bn.join(U));var bo=aw.NodeList.create(bk.join(U));if(bo.size()){bo.each(function(bt,bs){bt.prepend(br.item(bs));});A.setContent(bo);}else{A.setContent(br);}bp.options=br;},_createEditBuffer:function(){var bk=this;var A=bk.getStrings();var bl=[];bl.push(ae.sub(bk.EDIT_LABEL_TEMPLATE,{editOptions:A[al]}));aw.each(bk.get(a2),function(bm,bn){bl.push(bk._createEditOption(bm,bn));});bl.push(ae.sub(bk.EDIT_ADD_LINK_TEMPLATE,{addOption:A[a7]}));bl.push(ae.sub(bk.EDIT_SAVE_LINK_TEMPLATE,{saveOptions:A[ah]}));return bl.join(U);},_createEditOption:function(bl,bm){var bk=this;var A=bk.getStrings();return ae.sub(bk.EDIT_OPTION_ROW_TEMPLATE,{remove:A[bc],titleName:A[m],titleValue:A[a5],valueName:bl,valueValue:bm});},_defInitEditFn:function(bk){var A=this;var bl=aw.Node.create(A.EDIT_TEMPLATE);bl.delegate("click",aw.bind(A._onEditLinkClickEvent,A),i+q);bl.delegate("keydown",aw.bind(A._onEditKeyEvent,A),ac);A.editContainer=bl;A.setStdModContent(at.BODY,bl.hide(),at.AFTER);A.editSortable=new aw.Sortable({container:bl,handles:[i+bi],nodes:i+aE,opacity:".3"}).delegate.dd.plug(aw.Plugin.DDConstrained,{constrain:bl,stickY:true});A._syncEditOptionsUI();},_getSelectedOptions:function(){var A=this;var bk=[];A.options.each(function(bl){if(bl.get(A.get(aD))){bk.push(bl);}});return aw.all(bk);},_onEditEvent:function(bk){var A=this;A._handleInitEditEvent();A.toggleEdit();A._syncEditOptionsUI();},_onEditLinkClickEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bl.test(i+g)){A.addNewOption();}else{if(bl.test(i+R)){A.saveOptions();}else{if(bl.test(i+ba)){A.toggleEdit();}else{if(bl.test(i+aW)){A.removeOption(bl.ancestor(i+aE)); +}}}}bk.halt();},_onEditKeyEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bk.isKey(ai)){var bm=bl.next(ac);if(bm){bm.selectText();}else{A.addNewOption();}bk.halt();}},_onSave:function(bk){var A=this;A.saveOptions();},_setOptions:function(bk){var A={};if(e(bk)){bg.each(bk,function(bl){A[bl]=bl;});}else{if(J(bk)){A=bk;}}return A;},_syncEditOptionsUI:function(){var A=this;A.editContainer.setContent(A._createEditBuffer());},_uiSetOptions:function(bk){var A=this;A._createOptions(bk);A._syncElementsName();},_uiSetValue:function(bl){var A=this;var bk=A.options;if(bk&&bk.size()){bk.set(A.get(aD),false);bg.each(bg(bl),function(bm){bk.filter('[value="'+bm+'"]').set(A.get(aD),true);});}return bl;}}});aw.BaseOptionsCellEditor=bh;var aC=aw.Component.create({NAME:y,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextCellEditor=aC;var aH=aw.Component.create({NAME:T,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextAreaCellEditor=aH;var O=aw.Component.create({NAME:aR,ATTRS:{multiple:{value:false,validator:aV}},EXTENDS:aw.BaseOptionsCellEditor,UI_ATTRS:[ab],prototype:{ELEMENT_TEMPLATE:'',OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;if(A.get(ab)){return A._getSelectedOptions().get(a5);}return A.elements.get(a5);},_syncElementsFocus:function(){var A=this;A.elements.focus();},_uiSetMultiple:function(bl){var A=this;var bk=A.elements;if(bl){bk.setAttribute(ab,ab);}else{bk.removeAttribute(ab);}}}});aw.DropDownCellEditor=O;var ap=aw.Component.create({NAME:D,ATTRS:{selectedAttrName:{value:p}},EXTENDS:aw.BaseOptionsCellEditor,prototype:{ELEMENT_TEMPLATE:'
                                ',OPTION_TEMPLATE:'',OPTION_WRAPPER:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5);},_syncElementsFocus:function(){var A=this;var bk=A.options;if(bk&&bk.size()){bk.item(0).focus();}}}});aw.CheckboxCellEditor=ap;var K=aw.Component.create({NAME:am,EXTENDS:aw.CheckboxCellEditor,prototype:{OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5)[0];},_syncElementsName:function(){var A=this;var bk=A.options;if(bk){bk.setAttribute(m,A.get(aF));}}}});aw.RadioCellEditor=K;var a=aw.Component.create({NAME:M,EXTENDS:aw.BaseCellEditor,ATTRS:{bodyContent:{value:U},calendar:{setter:"_setCalendar",validator:J,value:null}},prototype:{ELEMENT_TEMPLATE:'',initializer:function(){var A=this;A.on("calendar:select",aw.bind(A._onDateSelect,A));},getElementsValue:function(){var A=this;return A.calendar.getFormattedSelectedDates().join(bj);},_afterRender:function(){var A=this;aw.DateCellEditor.superclass._afterRender.apply(A,arguments);A.calendar=new aw.Calendar(A.get(S)).render(A.bodyNode);},_onDateSelect:function(bk){var A=this;A.elements.val(bk.date.formatted.join(bj));},_setCalendar:function(bk){var A=this;return aw.merge({bubbleTargets:A},bk);},_uiSetValue:function(bl){var A=this;var bk=A.calendar;if(bk){if(bl&&a0(bl)){bl=bl.split(bj);}A.calendar.set("dates",bl);}}}});aw.DateCellEditor=a;},"@VERSION@",{requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-datatable/aui-datatable-edit.js b/build/aui-datatable/aui-datatable-edit.js index ef7a0e865c8..2860faccd09 100644 --- a/build/aui-datatable/aui-datatable-edit.js +++ b/build/aui-datatable/aui-datatable-edit.js @@ -294,8 +294,6 @@ A.mix(CellEditorSupport.prototype, { selection.getActiveColumn().get(KEY), event.newVal ); - - instance.set(RECORDSET, recordset); } }, diff --git a/build/aui-datatable/aui-datatable-min.js b/build/aui-datatable/aui-datatable-min.js index c3c00227af4..9fbee38f1c4 100644 --- a/build/aui-datatable/aui-datatable-min.js +++ b/build/aui-datatable/aui-datatable-min.js @@ -1,5 +1,5 @@ -AUI.add("aui-datatable-base",function(d){var g=d.Lang,b=d.ArraySort.compare,l=g.isNumber,c=g.isString,j="childNodes",f="columnset",e="data",h="headers",i="id",a="#",k=" ";d.DataTable.Base=d.Base.create("datatable",d.DataTable.Base,[],{initializer:function(){var m=this;m.after("render",m._afterRender);m.after("recordsetChange",m._afterRecordsetChangeExt);},getCellNode:function(n,o){var m=this;return m.getRowNode(n).get(j).item(o.keyIndex);},getColNode:function(n){var m=this;var p=m.get(f);var o=p.getColumnIndex(p.getColumnByCell(n));return m._colgroupNode.get(j).item(o);},getRowNode:function(m){return d.one(a+m.get(i));},_afterRender:function(){var m=this;m._bindPluginsEvents();m._fixPluginsUI();},_afterRecordsetChangeExt:function(n){var m=this;m._fixPluginsUI();},_bindPluginsEvents:function(){var m=this;var n=m.sort;if(n){n.after("lastSortedByChange",d.bind(m._fixPluginsUI,m));}},_fixPluginsUI:function(){var n=this;var o=n.sort;var m=n.scroll;if(o&&m){m.syncUI();m._syncWidths();}}},{});d.Column=d.Base.create("column",d.Column,[],{},{ATTRS:{sortFn:{value:function(o,m,p,q){var n=b(o.getValue(p),m.getValue(p),q);if(n===0){n=b(o.get("id"),m.get("id"),q);}return n;}}}});d.Columnset=d.Base.create("columnset",d.Columnset,[],{getColumn:function(n){var m=this;if(c(n)){return this.idHash[n];}else{if(l(n)){return m.keys[n];}}return null;},getColumnByCell:function(n){var m=this;var o=n.getAttribute(h).split(k).pop()||n.get(i);return m.getColumn(o);},getColumnIndex:function(m){return m.keyIndex;},getLength:function(){var m=this;return m.keys.length;},_setDefinitions:function(m){return m;}},{});d.Recordset=d.Base.create("recordset",d.Recordset,[],{getRecordByRow:function(n){var m=this;return m.getRecord(n.get(i));},getRecordIndex:function(n){var m=this;return d.Array.indexOf(m._items,n);},updateRecordDataByKey:function(n,o,q){var m=this;var p=n.get(e);if(p){p[o]=q;n.set(e,p);}m.update(n,m.getRecordIndex(n));}},{});d.Plugin.DataTableScroll=d.Base.create("dataTableScroll",d.Plugin.DataTableScroll,[],{_syncWidths:function(){try{d.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(m){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]});AUI.add("aui-datatable-events",function(j){var R=j.Lang,s=R.isArray,F=R.isObject,e=R.isValue,b=j.Array.each,E=j.Object.keys,L=j.Object.values,x=j.Selector.test,l=j.ClassNameManager.getClassName,t=j.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),h=j.cached(function(S,A){return S+t(A.toLowerCase());}),M="boundingBox",O="cell",D="cellSelector",H="click",n="column",r="dblclick",c="events",w="header",p="host",d="inHead",Q="keydown",P="keyup",G="liner",y="mousedown",f="mouseenter",k="mouseleave",i="mouseup",C="recordset",I="row",u="table",N="tags",a="tagName",J="tbody",v="thead",B="tr",m="datatable",z="columnset",o=",",q=".",K=l(m,G);var g=j.Base.create("dataTableEvents",j.Plugin.Base,[],{_bubbling:false,_handler:null,_tagsFilter:null,initializer:function(T){var A=this;var S=A.get(N);A._tagsFilter=E(S).join(o);A._initEvents();},destructor:function(){var A=this;var S=A._handler;if(S){S.detach();}},updateEventPayload:function(V,S){var A=this;var U=A.get(p);var W=U._theadNode;var X=V.getData(d);var T=V.getData(G);var Y=V.getData(I);if(!e(X)){X=W.contains(V);V.setData(d,X);}if(!e(T)){T=V.one(q+K);V.setData(G,T);}if(!e(Y)){Y=V.ancestor(B);V.setData(I,Y);}return j.mix(S,{cell:V,column:U.get(z).getColumnByCell(V),inHead:X,liner:T,originalEvent:S,row:Y,record:U.get(C).getRecordByRow(Y)},true);},_filterBubble:function(X){var A=this;var W=A.get(p);var S=W._tableNode.getDOM();var T=[];while(X){var V=(X===S);if(x(X,A._tagsFilter,(V?null:S))){T.push(X);}if(V){break;}X=X.parentNode;}if(T.length){var U=W.getColNode(j.one(T[0]));if(U){T.splice(2,0,U.getDOM());}}return T;},_handleEvents:function(A){var W,U;var Z=this;var aa=Z.get(p);var ab=Z.get(N);var T=A.currentTarget;var S=Z._filterBubble(T.getDOM());var Y=Z.updateEventPayload(T,A);Z._bubbling=true;for(W=0,U=S.length;(W/gi,E=/[\r\n]/g,b=B(aA,N),g=B(aA,N,ag,aX),bi=B(aA,N,an,F),aW=B(aA,N,W,aX),ba=B(aA,N,v,aX),aB=B(aA,N,ac,m),aL=B(aA,N,ac,a5),aq=B(aA,N,az),q=B(aA,N,au),aE=B(aA,N,aX,n),R=B(aA,N,aM,aX),V=B(aA,I),aZ=B(aA,az),L=B(aA,aX),x=B(aA,a3),H=B(Q,aa),j=B(aj),ad=B(aj,c,aI,av),aU="
                                "; -var a4=function(){};a4.NAME="dataTableCellEditorSupport";a4.ATTRS={editEvent:{setter:"_setEditEvent",validator:a0,value:aK}};aw.mix(a4.prototype,{initializer:function(){var A=this;A.after({render:A._afterRenderEditor});A.on(A.get(G),A._onCellEdit);A.after(A._afterUiSetRecordset,A,"_uiSetRecordset");},getCellEditor:function(bk,bm){var A=this;var bl=bm.get(f);var bn=bk.get(aG).editor;if(bl===false||bn===false){return null;}return bn||bl;},getRecordColumnValue:function(A,bk){return A.getValue(bk.get(aT));},syncEditableColumnsUI:function(){var A=this;var bl=A.get(C);var bk=A.get(k);aw.each(bl.idHash,function(bn){var bm=bn.get(f);if(a6(bm)){aw.all("[headers="+bn.get(aJ)+"]").addClass(H);}});aw.each(bk.get(ak),function(bm){var bn=bm.get(aG).editor;var bo=a6(bn);aw.all(h+bm.get("id")+">td").each(function(br,bp){var bq=bl.getColumn(bp);if(bn===false){br.removeClass(H);}else{if(bo||(bq.get(f)!==false)){br.addClass(H);}}});});},_afterUiSetRecordset:function(bk){var A=this;A.syncEditableColumnsUI();},_afterRenderEditor:function(bk){var A=this;if(!A.events){A.plug(aw.Plugin.DataTableEvents);}},_editCell:function(bo){var A=this;var bq=A.get(C);var bp=A.get(k);var bn=bo.column;var bk=bo.record;A.activeColumnIndex=bq.getColumnIndex(bn);A.activeRecordIndex=bp.getRecordIndex(bk);var bl=bo.alignNode||bo.cell;var bm=A.getCellEditor(bk,bn);if(a6(bm)){if(!bm.get(a9)){bm.on({visibleChange:aw.bind(A._onEditorVisibleChange,A),save:aw.bind(A._onEditorSave,A)});bm.render();}bm.set(a5,A.getRecordColumnValue(bk,bn));bm.show().move(bl.getXY());}},_onCellEdit:function(bk){var A=this;A._editCell(bk);},_onEditorVisibleChange:function(bp){var bk=this;var bn=bp.currentTarget;var bm=bk.selection;if(bm){var bl=bm.getActiveRecord();var bo=bm.getActiveColumn();var A=bk.getCellNode(bl,bo);var bq=bk.getRowNode(bl);if(bp.newVal){bn._syncFocus();}else{bm.select(A,bq);}}},_onEditorSave:function(bm){var A=this;var bl=bm.currentTarget;var bn=A.get(k);bl.set(a5,bm.newVal);var bk=A.selection;if(bk){bn.updateRecordDataByKey(bk.getActiveRecord(),bk.getActiveColumn().get(be),bm.newVal);A.set(k,bn);}},_setEditEvent:function(A){return aS+aN(A);}});aw.DataTable.CellEditorSupport=a4;aw.DataTable.Base=aw.Base.create("dataTable",aw.DataTable.Base,[aw.DataTable.CellEditorSupport]);var r=aw.Component.create({NAME:aO,ATTRS:{editable:{value:false,validator:aV},elementName:{value:a5,validator:a0},footerContent:{value:U},hideOnSave:{value:true,validator:aV},inputFormatter:{value:function(A){if(a0(A)){A=A.replace(E,aU);}return A;}},outputFormatter:{value:function(bk){var A=this;if(a0(bk)){if(A.get(z)){bk=aP.unescapeEntities(bk);}bk=bk.replace(t,a8);}return bk;}},showToolbar:{value:true,validator:aV},strings:{value:{edit:"Edit",save:"Save",cancel:"Cancel"}},tabIndex:{value:1},toolbar:{setter:"_setToolbar",validator:J,value:null},unescapeValue:{value:true,validator:aV},validator:{setter:"_setValidator",validator:J,value:null},value:{value:U},visible:{value:false}},EXTENDS:aw.Overlay,UI_ATTRS:[aa,Z,a5],prototype:{CONTENT_TEMPLATE:"
                                ",ELEMENT_TEMPLATE:null,elements:null,validator:null,_hDocMouseDownEv:null,initializer:function(bk){var A=this;A._initEvents();},destructor:function(){var bk=this;var A=bk._hDocMouseDownEv;var bm=bk.toolbar;var bl=bk.validator;if(A){A.detach();}if(bm){bm.destroy();}if(bl){bl.destroy();}},bindUI:function(){var A=this;A.get(s).on(be,aw.bind(A._onEscKey,A),"down:27");},formatValue:function(bk,bl){var A=this;if(aQ(bk)){bl=bk.call(A,bl);}return bl;},getValue:function(){var A=this;return A.formatValue(A.get(d),A.getElementsValue());},_initEvents:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn},initEdit:{defaultFn:A._defInitEditFn,fireOnce:true},initValidator:{defaultFn:A._defInitValidatorFn,fireOnce:true},initToolbar:{defaultFn:A._defInitToolbarFn,fireOnce:true},save:{defaultFn:A._defSaveFn}});A.after({render:A._afterRender,visibleChange:aw.debounce(A._debounceVisibleChange,350,A)});A.on({"form-validator:submit":aw.bind(A._onSubmit,A)});},_afterRender:function(){var A=this;A._handleInitValidatorEvent();A._handleInitToolbarEvent();},_defCancelFn:function(bk){var A=this;A.hide();},_defInitValidatorFn:function(bk){var A=this;A.validator=new aw.FormValidator(A.get(X));},_defInitToolbarFn:function(bl){var A=this;var bk=A.get(aa);A.toolbar=new aw.Toolbar(A.get(P)).render(A.footerNode);if(bk){A._uiSetEditable(bk);}},_defSaveFn:function(bk){var A=this;if(A.get(ay)){A.hide();}},_debounceVisibleChange:function(bl){var bk=this;var A=bk._hDocMouseDownEv;if(bl.newVal){if(!A){bk._hDocMouseDownEv=aw.getDoc().on(Y,aw.bind(bk._onDocMouseDownExt,bk));}}else{if(A){A.detach();bk._hDocMouseDownEv=null;}}},_handleCancelEvent:function(){var A=this;A.fire(ao);},_handleEditEvent:function(){var A=this;A.fire(N);},_handleInitEditEvent:function(){var A=this;if(A.get(a9)){this.fire(o);}},_handleInitValidatorEvent:function(){var A=this;if(A.get(a9)){this.fire(ax);}},_handleInitToolbarEvent:function(){var A=this;if(A.get(a9)&&A.get(Z)){this.fire(bf);}},_handleSaveEvent:function(){var A=this;if(!A.validator.hasErrors()){A.fire(aM,{newVal:A.getValue(),prevVal:A.get(a5)});}},_onDocMouseDownExt:function(bl){var A=this;var bk=A.get(s);if(!bk.contains(bl.target)){A.set(af,false);}},_onEscKey:function(bk){var A=this;A.hide();},_onSubmit:function(bl){var A=this;var bk=bl.validator;A._handleSaveEvent();if(bk){bk.formEvent.halt();}},_setToolbar:function(bl){var bk=this;var A=bk.getStrings();return aw.merge({activeState:false,children:[{label:A[aM],icon:ar,type:a1},{handler:aw.bind(bk._handleCancelEvent,bk),label:A[ao]}]},bl);},_setValidator:function(bk){var A=this;return aw.merge({boundingBox:A.get(w),bubbleTargets:A},bk);},_uiSetShowToolbar:function(bl){var A=this;var bk=A.footerNode;if(bl){bk.show();}else{bk.hide();}A._handleInitToolbarEvent();},getElementsValue:function(){var A=this;var bk=A.elements;if(bk){return bk.get(a5);}return U;},renderUI:function(){var A=this;if(A.ELEMENT_TEMPLATE){A.elements=aw.Node.create(A.ELEMENT_TEMPLATE);A._syncElementsName(); +AUI.add("aui-datatable-base",function(f){var j=f.Lang,d=f.ArraySort.compare,o=j.isNumber,e=j.isString,h="change",m="childNodes",i="columnset",g="data",k="headers",l="id",c="recordset",b="render",a="#",n=" ";f.DataTable.Base=f.Base.create("datatable",f.DataTable.Base,[],{initializer:function(){var p=this;p.after(b,p._afterRender);p.get(c).after(h,f.bind(p._afterRecordsetChangeExt,p));},getCellNode:function(q,r){var p=this;return p.getRowNode(q).get(m).item(r.keyIndex);},getColNode:function(q){var p=this;var s=p.get(i);var r=s.getColumnIndex(s.getColumnByCell(q));return p._colgroupNode.get(m).item(r);},getRowNode:function(p){return f.one(a+p.get(l));},_afterRender:function(){var p=this;p._bindPluginsEvents();p._fixPluginsUI();},_afterRecordsetChangeExt:function(q){var p=this;p._uiSetRecordset(p.get("recordset"));p._fixPluginsUI();},_bindPluginsEvents:function(){var p=this;var q=p.sort;if(q){q.after("lastSortedByChange",f.bind(p._fixPluginsUI,p));}},_fixPluginsUI:function(){var q=this;var r=q.sort;var p=q.scroll;if(r&&p){p.syncUI();p._syncWidths();}}},{});f.Column=f.Base.create("column",f.Column,[],{},{ATTRS:{sortFn:{value:function(r,p,s,t){var q=d(r.getValue(s),p.getValue(s),t);if(q===0){q=d(r.get("id"),p.get("id"),t);}return q;}}}});f.Columnset=f.Base.create("columnset",f.Columnset,[],{getColumn:function(q){var p=this;if(e(q)){return this.idHash[q];}else{if(o(q)){return p.keys[q];}}return null;},getColumnByCell:function(q){var p=this;var r=q.getAttribute(k).split(n).pop()||q.get(l);return p.getColumn(r);},getColumnIndex:function(p){return p.keyIndex;},getLength:function(){var p=this;return p.keys.length;},_setDefinitions:function(p){return p;}},{});f.Recordset=f.Base.create("recordset",f.Recordset,[],{getRecordByRow:function(q){var p=this;return p.getRecord(q.get(l));},getRecordIndex:function(q){var p=this;return f.Array.indexOf(p._items,q);},updateRecordDataByKey:function(q,r,t){var p=this;var s=q.get(g);if(s){s[r]=t;q.set(g,s);}p.update(q,p.getRecordIndex(q));}},{});f.Plugin.DataTableScroll=f.Base.create("dataTableScroll",f.Plugin.DataTableScroll,[],{_syncWidths:function(){try{f.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(p){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]});AUI.add("aui-datatable-events",function(j){var R=j.Lang,s=R.isArray,F=R.isObject,e=R.isValue,b=j.Array.each,E=j.Object.keys,L=j.Object.values,x=j.Selector.test,l=j.ClassNameManager.getClassName,t=j.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),h=j.cached(function(S,A){return S+t(A.toLowerCase());}),M="boundingBox",O="cell",D="cellSelector",H="click",n="column",r="dblclick",c="events",w="header",p="host",d="inHead",Q="keydown",P="keyup",G="liner",y="mousedown",f="mouseenter",k="mouseleave",i="mouseup",C="recordset",I="row",u="table",N="tags",a="tagName",J="tbody",v="thead",B="tr",m="datatable",z="columnset",o=",",q=".",K=l(m,G);var g=j.Base.create("dataTableEvents",j.Plugin.Base,[],{_bubbling:false,_handler:null,_tagsFilter:null,initializer:function(T){var A=this;var S=A.get(N);A._tagsFilter=E(S).join(o);A._initEvents();},destructor:function(){var A=this;var S=A._handler;if(S){S.detach();}},updateEventPayload:function(V,S){var A=this;var U=A.get(p);var W=U._theadNode;var X=V.getData(d);var T=V.getData(G);var Y=V.getData(I);if(!e(X)){X=W.contains(V);V.setData(d,X);}if(!e(T)){T=V.one(q+K);V.setData(G,T);}if(!e(Y)){Y=V.ancestor(B);V.setData(I,Y);}return j.mix(S,{cell:V,column:U.get(z).getColumnByCell(V),inHead:X,liner:T,originalEvent:S,row:Y,record:U.get(C).getRecordByRow(Y)},true);},_filterBubble:function(X){var A=this;var W=A.get(p);var S=W._tableNode.getDOM();var T=[];while(X){var V=(X===S);if(x(X,A._tagsFilter,(V?null:S))){T.push(X);}if(V){break;}X=X.parentNode;}if(T.length){var U=W.getColNode(j.one(T[0]));if(U){T.splice(2,0,U.getDOM());}}return T;},_handleEvents:function(A){var W,U;var Z=this;var aa=Z.get(p);var ab=Z.get(N);var T=A.currentTarget;var S=Z._filterBubble(T.getDOM());var Y=Z.updateEventPayload(T,A);Z._bubbling=true;for(W=0,U=S.length;(W/gi,E=/[\r\n]/g,b=B(aA,N),g=B(aA,N,ag,aX),bi=B(aA,N,an,F),aW=B(aA,N,W,aX),ba=B(aA,N,v,aX),aB=B(aA,N,ac,m),aL=B(aA,N,ac,a5),aq=B(aA,N,az),q=B(aA,N,au),aE=B(aA,N,aX,n),R=B(aA,N,aM,aX),V=B(aA,I),aZ=B(aA,az),L=B(aA,aX),x=B(aA,a3),H=B(Q,aa),j=B(aj),ad=B(aj,c,aI,av),aU="
                                "; +var a4=function(){};a4.NAME="dataTableCellEditorSupport";a4.ATTRS={editEvent:{setter:"_setEditEvent",validator:a0,value:aK}};aw.mix(a4.prototype,{initializer:function(){var A=this;A.after({render:A._afterRenderEditor});A.on(A.get(G),A._onCellEdit);A.after(A._afterUiSetRecordset,A,"_uiSetRecordset");},getCellEditor:function(bk,bm){var A=this;var bl=bm.get(f);var bn=bk.get(aG).editor;if(bl===false||bn===false){return null;}return bn||bl;},getRecordColumnValue:function(A,bk){return A.getValue(bk.get(aT));},syncEditableColumnsUI:function(){var A=this;var bl=A.get(C);var bk=A.get(k);aw.each(bl.idHash,function(bn){var bm=bn.get(f);if(a6(bm)){aw.all("[headers="+bn.get(aJ)+"]").addClass(H);}});aw.each(bk.get(ak),function(bm){var bn=bm.get(aG).editor;var bo=a6(bn);aw.all(h+bm.get("id")+">td").each(function(br,bp){var bq=bl.getColumn(bp);if(bn===false){br.removeClass(H);}else{if(bo||(bq.get(f)!==false)){br.addClass(H);}}});});},_afterUiSetRecordset:function(bk){var A=this;A.syncEditableColumnsUI();},_afterRenderEditor:function(bk){var A=this;if(!A.events){A.plug(aw.Plugin.DataTableEvents);}},_editCell:function(bo){var A=this;var bq=A.get(C);var bp=A.get(k);var bn=bo.column;var bk=bo.record;A.activeColumnIndex=bq.getColumnIndex(bn);A.activeRecordIndex=bp.getRecordIndex(bk);var bl=bo.alignNode||bo.cell;var bm=A.getCellEditor(bk,bn);if(a6(bm)){if(!bm.get(a9)){bm.on({visibleChange:aw.bind(A._onEditorVisibleChange,A),save:aw.bind(A._onEditorSave,A)});bm.render();}bm.set(a5,A.getRecordColumnValue(bk,bn));bm.show().move(bl.getXY());}},_onCellEdit:function(bk){var A=this;A._editCell(bk);},_onEditorVisibleChange:function(bp){var bk=this;var bn=bp.currentTarget;var bm=bk.selection;if(bm){var bl=bm.getActiveRecord();var bo=bm.getActiveColumn();var A=bk.getCellNode(bl,bo);var bq=bk.getRowNode(bl);if(bp.newVal){bn._syncFocus();}else{bm.select(A,bq);}}},_onEditorSave:function(bm){var A=this;var bl=bm.currentTarget;var bn=A.get(k);bl.set(a5,bm.newVal);var bk=A.selection;if(bk){bn.updateRecordDataByKey(bk.getActiveRecord(),bk.getActiveColumn().get(be),bm.newVal);}},_setEditEvent:function(A){return aS+aN(A);}});aw.DataTable.CellEditorSupport=a4;aw.DataTable.Base=aw.Base.create("dataTable",aw.DataTable.Base,[aw.DataTable.CellEditorSupport]);var r=aw.Component.create({NAME:aO,ATTRS:{editable:{value:false,validator:aV},elementName:{value:a5,validator:a0},footerContent:{value:U},hideOnSave:{value:true,validator:aV},inputFormatter:{value:function(A){if(a0(A)){A=A.replace(E,aU);}return A;}},outputFormatter:{value:function(bk){var A=this;if(a0(bk)){if(A.get(z)){bk=aP.unescapeEntities(bk);}bk=bk.replace(t,a8);}return bk;}},showToolbar:{value:true,validator:aV},strings:{value:{edit:"Edit",save:"Save",cancel:"Cancel"}},tabIndex:{value:1},toolbar:{setter:"_setToolbar",validator:J,value:null},unescapeValue:{value:true,validator:aV},validator:{setter:"_setValidator",validator:J,value:null},value:{value:U},visible:{value:false}},EXTENDS:aw.Overlay,UI_ATTRS:[aa,Z,a5],prototype:{CONTENT_TEMPLATE:"
                                ",ELEMENT_TEMPLATE:null,elements:null,validator:null,_hDocMouseDownEv:null,initializer:function(bk){var A=this;A._initEvents();},destructor:function(){var bk=this;var A=bk._hDocMouseDownEv;var bm=bk.toolbar;var bl=bk.validator;if(A){A.detach();}if(bm){bm.destroy();}if(bl){bl.destroy();}},bindUI:function(){var A=this;A.get(s).on(be,aw.bind(A._onEscKey,A),"down:27");},formatValue:function(bk,bl){var A=this;if(aQ(bk)){bl=bk.call(A,bl);}return bl;},getValue:function(){var A=this;return A.formatValue(A.get(d),A.getElementsValue());},_initEvents:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn},initEdit:{defaultFn:A._defInitEditFn,fireOnce:true},initValidator:{defaultFn:A._defInitValidatorFn,fireOnce:true},initToolbar:{defaultFn:A._defInitToolbarFn,fireOnce:true},save:{defaultFn:A._defSaveFn}});A.after({render:A._afterRender,visibleChange:aw.debounce(A._debounceVisibleChange,350,A)});A.on({"form-validator:submit":aw.bind(A._onSubmit,A)});},_afterRender:function(){var A=this;A._handleInitValidatorEvent();A._handleInitToolbarEvent();},_defCancelFn:function(bk){var A=this;A.hide();},_defInitValidatorFn:function(bk){var A=this;A.validator=new aw.FormValidator(A.get(X));},_defInitToolbarFn:function(bl){var A=this;var bk=A.get(aa);A.toolbar=new aw.Toolbar(A.get(P)).render(A.footerNode);if(bk){A._uiSetEditable(bk);}},_defSaveFn:function(bk){var A=this;if(A.get(ay)){A.hide();}},_debounceVisibleChange:function(bl){var bk=this;var A=bk._hDocMouseDownEv;if(bl.newVal){if(!A){bk._hDocMouseDownEv=aw.getDoc().on(Y,aw.bind(bk._onDocMouseDownExt,bk));}}else{if(A){A.detach();bk._hDocMouseDownEv=null;}}},_handleCancelEvent:function(){var A=this;A.fire(ao);},_handleEditEvent:function(){var A=this;A.fire(N);},_handleInitEditEvent:function(){var A=this;if(A.get(a9)){this.fire(o);}},_handleInitValidatorEvent:function(){var A=this;if(A.get(a9)){this.fire(ax);}},_handleInitToolbarEvent:function(){var A=this;if(A.get(a9)&&A.get(Z)){this.fire(bf);}},_handleSaveEvent:function(){var A=this;if(!A.validator.hasErrors()){A.fire(aM,{newVal:A.getValue(),prevVal:A.get(a5)});}},_onDocMouseDownExt:function(bl){var A=this;var bk=A.get(s);if(!bk.contains(bl.target)){A.set(af,false);}},_onEscKey:function(bk){var A=this;A.hide();},_onSubmit:function(bl){var A=this;var bk=bl.validator;A._handleSaveEvent();if(bk){bk.formEvent.halt();}},_setToolbar:function(bl){var bk=this;var A=bk.getStrings();return aw.merge({activeState:false,children:[{label:A[aM],icon:ar,type:a1},{handler:aw.bind(bk._handleCancelEvent,bk),label:A[ao]}]},bl);},_setValidator:function(bk){var A=this;return aw.merge({boundingBox:A.get(w),bubbleTargets:A},bk);},_uiSetShowToolbar:function(bl){var A=this;var bk=A.footerNode;if(bl){bk.show();}else{bk.hide();}A._handleInitToolbarEvent();},getElementsValue:function(){var A=this;var bk=A.elements;if(bk){return bk.get(a5);}return U;},renderUI:function(){var A=this;if(A.ELEMENT_TEMPLATE){A.elements=aw.Node.create(A.ELEMENT_TEMPLATE);A._syncElementsName(); A.setStdModContent(at.BODY,A.elements);}},_defInitEditFn:function(A){},_syncElementsFocus:function(){var A=this;A.elements.selectText();},_syncElementsName:function(){var A=this;A.elements.setAttribute(m,A.get(aF));},_syncFocus:function(){var A=this;aw.later(0,A,A._syncElementsFocus);},_uiSetEditable:function(bl){var A=this;var bk=A.toolbar;if(A.get(a9)&&bk){if(bl){bk.add({handler:aw.bind(A._handleEditEvent,A),icon:l,label:A.getString(N)},1);}else{bk.remove(1);}}},_uiSetValue:function(bl){var A=this;var bk=A.elements;if(bk){bk.val(A.formatValue(A.get(bb),bl));}}}});aw.BaseCellEditor=r;var bh=aw.Component.create({NAME:u,ATTRS:{inputFormatter:{value:null},options:{setter:"_setOptions",value:{},validator:J},outputFormatter:{value:null},selectedAttrName:{value:aY,validator:a0},strings:{value:{add:"Add",cancel:"Cancel",addOption:"Add option",edit:"Edit options",editOptions:"Edit option(s)",name:"Name",remove:"Remove",save:"Save",saveOptions:"Save options",stopEditing:"Stop editing",value:"Value"}}},EXTENDS:aw.BaseCellEditor,UI_ATTRS:[a2],prototype:{EDIT_TEMPLATE:'
                                ',EDIT_OPTION_ROW_TEMPLATE:'
                                '+''+' '+' '+'{remove} '+"
                                ",EDIT_ADD_LINK_TEMPLATE:'{addOption} ',EDIT_LABEL_TEMPLATE:'
                                {editOptions}
                                ',EDIT_SAVE_LINK_TEMPLATE:'{saveOptions} ',editContainer:null,editSortable:null,options:null,initializer:function(){var A=this;A.on(N,A._onEditEvent);A.on(aM,A._onSave);A.after(bf,A._afterInitToolbar);},addNewOption:function(bl,bn){var A=this;var bm=A.editContainer.all(i+aE).last();var bk=aw.Node.create(A._createEditOption(bl||U,bn||U));bm.placeAfter(bk);bk.one(ac).focus();},removeOption:function(A){A.remove();},saveOptions:function(){var A=this;var bn=A.editContainer;if(bn){var bm=bn.all(i+aB);var bk=bn.all(i+aL);var bl={};bm.each(function(bq,bp){var bo=bq.val();var br=bk.item(bp).val();if(bo&&br){bl[br]=bo;}});A.set(a2,bl);A._uiSetValue(A.get(a5));A.toggleEdit();}},toggleEdit:function(){var A=this;A.editContainer.toggle();},_createOptions:function(bl){var bp=this;var A=bp.elements;var bn=[];var bk=[];var bm=bp.OPTION_TEMPLATE;var bq=bp.OPTION_WRAPPER;aw.each(bl,function(bu,bt){var bs={id:aw.guid(),label:bu,name:bt,value:bt};if(bm){bn.push(aw.substitute(bm,bs));}if(bq){bk.push(aw.substitute(bq,bs));}});var br=aw.NodeList.create(bn.join(U));var bo=aw.NodeList.create(bk.join(U));if(bo.size()){bo.each(function(bt,bs){bt.prepend(br.item(bs));});A.setContent(bo);}else{A.setContent(br);}bp.options=br;},_createEditBuffer:function(){var bk=this;var A=bk.getStrings();var bl=[];bl.push(ae.sub(bk.EDIT_LABEL_TEMPLATE,{editOptions:A[al]}));aw.each(bk.get(a2),function(bm,bn){bl.push(bk._createEditOption(bm,bn));});bl.push(ae.sub(bk.EDIT_ADD_LINK_TEMPLATE,{addOption:A[a7]}));bl.push(ae.sub(bk.EDIT_SAVE_LINK_TEMPLATE,{saveOptions:A[ah]}));return bl.join(U);},_createEditOption:function(bl,bm){var bk=this;var A=bk.getStrings();return ae.sub(bk.EDIT_OPTION_ROW_TEMPLATE,{remove:A[bc],titleName:A[m],titleValue:A[a5],valueName:bl,valueValue:bm});},_defInitEditFn:function(bk){var A=this;var bl=aw.Node.create(A.EDIT_TEMPLATE);bl.delegate("click",aw.bind(A._onEditLinkClickEvent,A),i+q);bl.delegate("keydown",aw.bind(A._onEditKeyEvent,A),ac);A.editContainer=bl;A.setStdModContent(at.BODY,bl.hide(),at.AFTER);A.editSortable=new aw.Sortable({container:bl,handles:[i+bi],nodes:i+aE,opacity:".3"}).delegate.dd.plug(aw.Plugin.DDConstrained,{constrain:bl,stickY:true});A._syncEditOptionsUI();},_getSelectedOptions:function(){var A=this;var bk=[];A.options.each(function(bl){if(bl.get(A.get(aD))){bk.push(bl);}});return aw.all(bk);},_onEditEvent:function(bk){var A=this;A._handleInitEditEvent();A.toggleEdit();A._syncEditOptionsUI();},_onEditLinkClickEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bl.test(i+g)){A.addNewOption();}else{if(bl.test(i+R)){A.saveOptions();}else{if(bl.test(i+ba)){A.toggleEdit();}else{if(bl.test(i+aW)){A.removeOption(bl.ancestor(i+aE));}}}}bk.halt();},_onEditKeyEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bk.isKey(ai)){var bm=bl.next(ac);if(bm){bm.selectText();}else{A.addNewOption();}bk.halt();}},_onSave:function(bk){var A=this;A.saveOptions();},_setOptions:function(bk){var A={};if(e(bk)){bg.each(bk,function(bl){A[bl]=bl;});}else{if(J(bk)){A=bk;}}return A;},_syncEditOptionsUI:function(){var A=this;A.editContainer.setContent(A._createEditBuffer());},_uiSetOptions:function(bk){var A=this;A._createOptions(bk);A._syncElementsName();},_uiSetValue:function(bl){var A=this;var bk=A.options;if(bk&&bk.size()){bk.set(A.get(aD),false);bg.each(bg(bl),function(bm){bk.filter('[value="'+bm+'"]').set(A.get(aD),true);});}return bl;}}});aw.BaseOptionsCellEditor=bh;var aC=aw.Component.create({NAME:y,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextCellEditor=aC;var aH=aw.Component.create({NAME:T,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextAreaCellEditor=aH;var O=aw.Component.create({NAME:aR,ATTRS:{multiple:{value:false,validator:aV}},EXTENDS:aw.BaseOptionsCellEditor,UI_ATTRS:[ab],prototype:{ELEMENT_TEMPLATE:'',OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;if(A.get(ab)){return A._getSelectedOptions().get(a5);}return A.elements.get(a5);},_syncElementsFocus:function(){var A=this;A.elements.focus();},_uiSetMultiple:function(bl){var A=this;var bk=A.elements;if(bl){bk.setAttribute(ab,ab);}else{bk.removeAttribute(ab); }}}});aw.DropDownCellEditor=O;var ap=aw.Component.create({NAME:D,ATTRS:{selectedAttrName:{value:p}},EXTENDS:aw.BaseOptionsCellEditor,prototype:{ELEMENT_TEMPLATE:'
                                ',OPTION_TEMPLATE:'',OPTION_WRAPPER:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5);},_syncElementsFocus:function(){var A=this;var bk=A.options;if(bk&&bk.size()){bk.item(0).focus();}}}});aw.CheckboxCellEditor=ap;var K=aw.Component.create({NAME:am,EXTENDS:aw.CheckboxCellEditor,prototype:{OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5)[0];},_syncElementsName:function(){var A=this;var bk=A.options;if(bk){bk.setAttribute(m,A.get(aF));}}}});aw.RadioCellEditor=K;var a=aw.Component.create({NAME:M,EXTENDS:aw.BaseCellEditor,ATTRS:{bodyContent:{value:U},calendar:{setter:"_setCalendar",validator:J,value:null}},prototype:{ELEMENT_TEMPLATE:'',initializer:function(){var A=this;A.on("calendar:select",aw.bind(A._onDateSelect,A));},getElementsValue:function(){var A=this;return A.calendar.getFormattedSelectedDates().join(bj);},_afterRender:function(){var A=this;aw.DateCellEditor.superclass._afterRender.apply(A,arguments);A.calendar=new aw.Calendar(A.get(S)).render(A.bodyNode);},_onDateSelect:function(bk){var A=this;A.elements.val(bk.date.formatted.join(bj));},_setCalendar:function(bk){var A=this;return aw.merge({bubbleTargets:A},bk);},_uiSetValue:function(bl){var A=this;var bk=A.calendar;if(bk){if(bl&&a0(bl)){bl=bl.split(bj);}A.calendar.set("dates",bl);}}}});aw.DateCellEditor=a;},"@VERSION@",{requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"],skinnable:true});AUI.add("aui-datatable-selection",function(B){var j=B.Lang,s=j.isBoolean,v=j.isString,G=B.getClassName,i=B.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),o="cell",m="columnset",g="columnsetChange",r="datatable",E="down",J="esc",u="focused",H="host",p="id",d="keydown",x="left",q="mousedown",D="mouseEvent",w="multiple",I="recordset",f="recordsetChange",l="return",t="right",n="row",c="select",k="selected",y="selectRow",e="tab",z="tabindex",F="tr",h="up",a=G(r,o,k),C=G(r,n,k);var b=B.Base.create("dataTableSelection",B.Plugin.Base,[],{activeColumnIndex:-1,activeRecordIndex:-1,handlerKeyDown:null,selectedCellHash:null,selectedColumnHash:null,selectedRowHash:null,initializer:function(){var A=this;A.selectedCellHash={};A.selectedColumnHash={};A.selectedRowHash={};A.publish({select:{defaultFn:A._defSelectFn}});A.afterHostEvent(A.get(D),A._afterMouseEvent);A.afterHostEvent(g,A._afterHostColumnsetChange);A.afterHostEvent(f,A._afterHostRecordsetChange);A.handlerKeyDown=B.getDoc().on(d,B.bind(A._afterKeyEvent,A));},destroy:function(){var A=this;var K=A.handlerKeyDown;if(K){K.detach();}},getActiveColumn:function(){var A=this;var K=A.get(H);return K.get(m).getColumn(A.activeColumnIndex);},getActiveRecord:function(){var A=this;var K=A.get(H);return K.get(I).getRecord(A.activeRecordIndex);},isCellSelected:function(K){var A=this;return A.selectedCellHash[K.get(p)];},isColumnSelected:function(A){},isRowSelected:function(K){var A=this;return A.selectedRowHash[K.get(p)];},select:function(K,Q){var A=this;var N=A.get(H);var P=N.get(m);var O=N.get(I);var M=P.getColumnByCell(K);var L=O.getRecordByRow(Q||K.ancestor(F));A.activeColumnIndex=P.getColumnIndex(M);A.activeRecordIndex=O.getRecordIndex(L);if(K){A.selectCell(K);}if(A.get(y)&&Q){A.selectRow(Q);}},selectCell:function(K){var A=this;if(!A.get(w)){A.unselectAllCells();}A.selectedCellHash[K.get(p)]=K;K.setAttribute(z,0).focus();K.addClass(a);},selectColumn:function(A){},selectRow:function(K){var A=this;if(!A.get(w)){A.unselectAllRows();}A.selectedRowHash[K.get(p)]=K;K.addClass(C);},toggleCell:function(K,L){var A=this;if(L||!A.isCellSelected(K)){A.selectCell(K);}else{A.unselectCell(K);}},toggleColumn:function(A,K){},toggleRow:function(L,K){var A=this;if(K||!A.isRowSelected(L)){A.selectRow(L);}else{A.unselectRow(L);}},unselectCell:function(K){var A=this;delete A.selectedCellHash[K.get(p)];K.removeAttribute(z);K.removeClass(a);},unselectColumn:function(A){},unselectRow:function(K){var A=this;delete A.selectedRowHash[K.get(p)];K.removeClass(C);},unselectAllCells:function(){var A=this;B.each(A.selectedCellHash,B.bind(A.unselectCell,A));},unselectAllColumns:function(){},unselectAllRows:function(){var A=this;B.each(A.selectedRowHash,B.bind(A.unselectRow,A));},_afterHostColumnsetChange:function(K){var A=this;A._cleanUp();},_afterHostRecordsetChange:function(K){var A=this;A._cleanUp();},_afterMouseEvent:function(K){var A=this;A._handleSelectEvent(K);},_afterKeyEvent:function(N){var A=this;var M=A.get(H);var L=A.getActiveColumn();var K=A.getActiveRecord();if(!M.get(u)||!L||!K){return;}if(M.events){M.events.updateEventPayload(M.getCellNode(K,L),N);}if(N.isNavKey()){if(N.isKey(J)){A._onEscKey(N);}else{if(N.isKey(l)){A._onReturnKey(N);}else{A._navigate(N);}}N.halt();}},_cleanUp:function(){var A=this;A.selectedCellHash={};A.selectedColumnHash={};A.selectedRowHash={};},_defSelectFn:function(K){var A=this;A.select(K.cell,K.row);},_navigate:function(K){var A=this;A._updateNavKeyInfo(K);A._handleSelectEvent(K);},_onEscKey:function(M){var A=this;var L=A.get(H);var K=L.getCellEditor(M.record,M.column);if(K){K.hide();}},_onReturnKey:function(L){var A=this;var K=A.get(H);K._editCell(L);},_handleSelectEvent:function(K){var A=this;A.fire(c,{cell:K.cell,column:K.column,inHead:K.inHead,liner:K.liner,originalEvent:K.originalEvent,row:K.row,record:K.record});},_updateNavKeyInfo:function(A){var T=this;var U=T.get(H);var K=A.originalEvent;var M=U.get(m);var Q=A.column.keyIndex;var S=U.get(I);var N=S.getRecordIndex(A.record);var L=K.ctrlKey||K.metaKey; var R=K.shiftKey;if(K.isKey(x)||(R&&K.isKey(e))){if(L){Q=0;}else{Q--;}}else{if(K.isKey(t)||(!R&&K.isKey(e))){if(L){Q=M.getLength()-1;}else{Q++;}}else{if(K.isKey(E)){if(L){N=S.getLength()-1;}else{N++;}}else{if(K.isKey(h)){if(L){N=0;}else{N--;}}}}}Q=Math.max(Math.min(Q,M.getLength()-1),0);N=Math.max(Math.min(N,S.getLength()-1),0);if(U.events){var O=M.getColumn(Q);var P=S.getRecord(N);U.events.updateEventPayload(U.getCellNode(P,O),A);}},_setMouseEvent:function(A){return o+i(A);}},{NS:"selection",NAME:"dataTableSelection",ATTRS:{selectRow:{value:false,validator:s},multiple:{value:false,validator:s},mouseEvent:{setter:"_setMouseEvent",value:q,validator:v}}});B.namespace("Plugin").DataTableSelection=b;},"@VERSION@",{requires:["aui-datatable-base"],skinnable:true});AUI.add("aui-datatable",function(a){},"@VERSION@",{use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-datatable/aui-datatable.js b/build/aui-datatable/aui-datatable.js index 13c54fbfeba..9711a45df12 100644 --- a/build/aui-datatable/aui-datatable.js +++ b/build/aui-datatable/aui-datatable.js @@ -6,11 +6,14 @@ var Lang = A.Lang, isNumber = Lang.isNumber, isString = Lang.isString, + CHANGE = 'change', CHILD_NODES = 'childNodes', COLUMNSET = 'columnset', DATA = 'data', HEADERS = 'headers', ID = 'id', + RECORDSET = 'recordset', + RENDER = 'render', _HASH = '#', _SPACE = ' '; @@ -19,8 +22,8 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after('render', instance._afterRender); - instance.after('recordsetChange', instance._afterRecordsetChangeExt); + instance.after(RENDER, instance._afterRender); + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); }, getCellNode: function(record, column) { @@ -51,6 +54,7 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { _afterRecordsetChangeExt: function(event) { var instance = this; + instance._uiSetRecordset(instance.get('recordset')); instance._fixPluginsUI(); }, @@ -710,8 +714,6 @@ A.mix(CellEditorSupport.prototype, { selection.getActiveColumn().get(KEY), event.newVal ); - - instance.set(RECORDSET, recordset); } }, From 763ad9f08db07de5ec5e02dcd15e8d3bbe97a12b Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 17:13:03 -0300 Subject: [PATCH 042/132] AUI-452 Updating aui-propertylist due to update to recent YUI 3.4.0 master dev --- build/aui-property-list/aui-property-list.js | 1 - 1 file changed, 1 deletion(-) diff --git a/build/aui-property-list/aui-property-list.js b/build/aui-property-list/aui-property-list.js index 30912a128dd..7f49bc1544a 100644 --- a/build/aui-property-list/aui-property-list.js +++ b/build/aui-property-list/aui-property-list.js @@ -87,7 +87,6 @@ var PropertyList = A.Component.create({ initializer: function() { var instance = this; - instance.after(RECORDSET_CHANGE, instance._plugDependencies); instance.after(instance._syncScrollWidth, instance, '_uiSetWidth'); instance.after(instance._syncScrollHeight, instance, '_uiSetHeight'); From 4ab48a771beb3007ef23f674f1eaa129f7bcc33a Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 17:13:18 -0300 Subject: [PATCH 043/132] Build files --- build/aui-property-list/aui-property-list-debug.js | 1 - build/aui-property-list/aui-property-list-min.js | 2 +- src/aui-property-list/js/aui-property-list.js | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/build/aui-property-list/aui-property-list-debug.js b/build/aui-property-list/aui-property-list-debug.js index 30912a128dd..7f49bc1544a 100644 --- a/build/aui-property-list/aui-property-list-debug.js +++ b/build/aui-property-list/aui-property-list-debug.js @@ -87,7 +87,6 @@ var PropertyList = A.Component.create({ initializer: function() { var instance = this; - instance.after(RECORDSET_CHANGE, instance._plugDependencies); instance.after(instance._syncScrollWidth, instance, '_uiSetWidth'); instance.after(instance._syncScrollHeight, instance, '_uiSetHeight'); diff --git a/build/aui-property-list/aui-property-list-min.js b/build/aui-property-list/aui-property-list-min.js index be427c954d5..7e26a81a57a 100644 --- a/build/aui-property-list/aui-property-list-min.js +++ b/build/aui-property-list/aui-property-list-min.js @@ -1 +1 @@ -AUI.add("aui-property-list",function(q){var i=q.Lang,n=i.isObject,p="auto",l="columnset",d="dblclick",r="height",c="key",k="name",b="propertyName",u="recordset",f="recordsetChange",o="scroll",s="selection",g="sort",e="td",j="value",h="width",m="",t="property-list";var a=q.Component.create({NAME:t,ATTRS:{columnset:{valueFn:function(){var v=this;return[{editor:false,key:k,label:v.getString(b),sortable:true},{editor:v.getDefaultEditor(),key:j,label:v.getString(j),sortable:true,width:"auto"}];}},editEvent:{value:d},recordset:{value:[{name:m,value:m}]},scroll:{value:{width:p},validator:n},selection:{value:{selectRow:true},validator:n},sort:{validator:n},strings:{value:{propertyName:"Property Name",value:"Value"}}},EXTENDS:q.DataTable.Base,prototype:{initializer:function(){var v=this;v.after(f,v._plugDependencies);v.after(v._syncScrollWidth,v,"_uiSetWidth");v.after(v._syncScrollHeight,v,"_uiSetHeight");v._plugDependencies();},_editCell:function(w){var v=this;var x=v.get(l);if(w.column.get(c)===k){w.alignNode=w.cell.next(e);w.column=x.keyHash[j];}return q.PropertyList.superclass._editCell.call(this,w);},getDefaultEditor:function(){return new q.TextCellEditor();},_onEditorSave:function(x){var v=this;var w=v.selection;if(w){w.activeColumnIndex=1;}return q.PropertyList.superclass._onEditorSave.call(this,x);},_plugDependencies:function(){var v=this;var w=v.get(u);if(!w.hasPlugin(q.Plugin.RecordsetSort)){w.plug(q.Plugin.RecordsetSort,{dt:v});w.sort.addTarget(v);}v.plug(q.Plugin.DataTableSelection,v.get(s)).plug(q.Plugin.DataTableSort,v.get(g)).plug(q.Plugin.DataTableScroll,v.get(o));},_syncScrollHeight:function(w){var v=this;v.scroll.set(r,w);},_syncScrollWidth:function(w){var v=this;v.scroll.set(h,w);}}});q.PropertyList=a;},"@VERSION@",{requires:["aui-datatable"],skinnable:true}); \ No newline at end of file +AUI.add("aui-property-list",function(q){var i=q.Lang,n=i.isObject,p="auto",l="columnset",d="dblclick",r="height",c="key",k="name",b="propertyName",u="recordset",f="recordsetChange",o="scroll",s="selection",g="sort",e="td",j="value",h="width",m="",t="property-list";var a=q.Component.create({NAME:t,ATTRS:{columnset:{valueFn:function(){var v=this;return[{editor:false,key:k,label:v.getString(b),sortable:true},{editor:v.getDefaultEditor(),key:j,label:v.getString(j),sortable:true,width:"auto"}];}},editEvent:{value:d},recordset:{value:[{name:m,value:m}]},scroll:{value:{width:p},validator:n},selection:{value:{selectRow:true},validator:n},sort:{validator:n},strings:{value:{propertyName:"Property Name",value:"Value"}}},EXTENDS:q.DataTable.Base,prototype:{initializer:function(){var v=this;v.after(v._syncScrollWidth,v,"_uiSetWidth");v.after(v._syncScrollHeight,v,"_uiSetHeight");v._plugDependencies();},_editCell:function(w){var v=this;var x=v.get(l);if(w.column.get(c)===k){w.alignNode=w.cell.next(e);w.column=x.keyHash[j];}return q.PropertyList.superclass._editCell.call(this,w);},getDefaultEditor:function(){return new q.TextCellEditor();},_onEditorSave:function(x){var v=this;var w=v.selection;if(w){w.activeColumnIndex=1;}return q.PropertyList.superclass._onEditorSave.call(this,x);},_plugDependencies:function(){var v=this;var w=v.get(u);if(!w.hasPlugin(q.Plugin.RecordsetSort)){w.plug(q.Plugin.RecordsetSort,{dt:v});w.sort.addTarget(v);}v.plug(q.Plugin.DataTableSelection,v.get(s)).plug(q.Plugin.DataTableSort,v.get(g)).plug(q.Plugin.DataTableScroll,v.get(o));},_syncScrollHeight:function(w){var v=this;v.scroll.set(r,w);},_syncScrollWidth:function(w){var v=this;v.scroll.set(h,w);}}});q.PropertyList=a;},"@VERSION@",{requires:["aui-datatable"],skinnable:true}); \ No newline at end of file diff --git a/src/aui-property-list/js/aui-property-list.js b/src/aui-property-list/js/aui-property-list.js index 3daab8fdf9b..139c9441d66 100755 --- a/src/aui-property-list/js/aui-property-list.js +++ b/src/aui-property-list/js/aui-property-list.js @@ -86,7 +86,6 @@ var PropertyList = A.Component.create({ initializer: function() { var instance = this; - instance.after(RECORDSET_CHANGE, instance._plugDependencies); instance.after(instance._syncScrollWidth, instance, '_uiSetWidth'); instance.after(instance._syncScrollHeight, instance, '_uiSetHeight'); From 35ad5c00042c678e00fee334349655e8458966da Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 18:47:26 -0300 Subject: [PATCH 044/132] AUI-452 Updating API to YUI3 master dev --- build/charts/charts-debug.js | 1 + build/charts/charts.js | 1 + .../graphics-canvas/graphics-canvas-debug.js | 21 +++-- build/graphics-canvas/graphics-canvas.js | 21 +++-- build/graphics-svg/graphics-svg-debug.js | 31 +++++-- build/graphics-svg/graphics-svg.js | 31 +++++-- build/graphics-vml/graphics-vml-debug.js | 87 ++++++++++++++++--- build/graphics-vml/graphics-vml.js | 87 ++++++++++++++++--- build/loader-base/loader-base-debug.js | 2 +- build/loader-base/loader-base-min.js | 2 +- build/loader-base/loader-base.js | 2 +- build/loader/loader-debug.js | 2 +- build/loader/loader-min.js | 2 +- build/loader/loader.js | 2 +- build/yui/yui-debug.js | 2 +- build/yui/yui-min.js | 2 +- build/yui/yui.js | 2 +- 17 files changed, 227 insertions(+), 71 deletions(-) diff --git a/build/charts/charts-debug.js b/build/charts/charts-debug.js index 8bee29ea5fb..c9cccdf94d9 100644 --- a/build/charts/charts-debug.js +++ b/build/charts/charts-debug.js @@ -4590,6 +4590,7 @@ CurveUtil.prototype = { /** * Creates an array of start, end and control points for splines. * + * @method getCurveControlPoints * @param {Array} xcoords Collection of x-coordinates used for calculate the curves * @param {Array} ycoords Collection of y-coordinates used for calculate the curves * @return Object diff --git a/build/charts/charts.js b/build/charts/charts.js index 8bee29ea5fb..c9cccdf94d9 100644 --- a/build/charts/charts.js +++ b/build/charts/charts.js @@ -4590,6 +4590,7 @@ CurveUtil.prototype = { /** * Creates an array of start, end and control points for splines. * + * @method getCurveControlPoints * @param {Array} xcoords Collection of x-coordinates used for calculate the curves * @param {Array} ycoords Collection of y-coordinates used for calculate the curves * @return Object diff --git a/build/graphics-canvas/graphics-canvas-debug.js b/build/graphics-canvas/graphics-canvas-debug.js index 2561a54320c..1aa06957cf1 100644 --- a/build/graphics-canvas/graphics-canvas-debug.js +++ b/build/graphics-canvas/graphics-canvas-debug.js @@ -380,15 +380,16 @@ CanvasDrawing.prototype = { }, /** - * @private * Draws a wedge. - * - * @param x x component of the wedge's center point - * @param y y component of the wedge's center point - * @param startAngle starting angle in degrees - * @param arc sweep of the wedge. Negative values draw clockwise. - * @param radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. - * @param yRadius [optional] y radius for wedge. + * + * @method drawWedge + * @param {Number} x x-coordinate of the wedge's center point + * @param {Number} y y-coordinate of the wedge's center point + * @param {Number} startAngle starting angle in degrees + * @param {Number} arc sweep of the wedge. Negative values draw clockwise. + * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. + * @param {Number} yRadius [optional] y radius for wedge. + * @private */ drawWedge: function(x, y, startAngle, arc, radius, yRadius) { @@ -1909,8 +1910,9 @@ Y.extend(CanvasPath, Y.CanvasShape, { /** * Creates the dom node for the shape. * - * @private + * @method createNode * @return HTMLElement + * @private */ createNode: function() { @@ -2732,6 +2734,7 @@ Y.extend(CanvasGraphic, Y.BaseGraphic, { /** * Returns a shape class. Used by `addShape`. * + * @method _getShapeClass * @param {Shape | String} val Indicates which shape class. * @return Function * @private diff --git a/build/graphics-canvas/graphics-canvas.js b/build/graphics-canvas/graphics-canvas.js index 2561a54320c..1aa06957cf1 100644 --- a/build/graphics-canvas/graphics-canvas.js +++ b/build/graphics-canvas/graphics-canvas.js @@ -380,15 +380,16 @@ CanvasDrawing.prototype = { }, /** - * @private * Draws a wedge. - * - * @param x x component of the wedge's center point - * @param y y component of the wedge's center point - * @param startAngle starting angle in degrees - * @param arc sweep of the wedge. Negative values draw clockwise. - * @param radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. - * @param yRadius [optional] y radius for wedge. + * + * @method drawWedge + * @param {Number} x x-coordinate of the wedge's center point + * @param {Number} y y-coordinate of the wedge's center point + * @param {Number} startAngle starting angle in degrees + * @param {Number} arc sweep of the wedge. Negative values draw clockwise. + * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. + * @param {Number} yRadius [optional] y radius for wedge. + * @private */ drawWedge: function(x, y, startAngle, arc, radius, yRadius) { @@ -1909,8 +1910,9 @@ Y.extend(CanvasPath, Y.CanvasShape, { /** * Creates the dom node for the shape. * - * @private + * @method createNode * @return HTMLElement + * @private */ createNode: function() { @@ -2732,6 +2734,7 @@ Y.extend(CanvasGraphic, Y.BaseGraphic, { /** * Returns a shape class. Used by `addShape`. * + * @method _getShapeClass * @param {Shape | String} val Indicates which shape class. * @return Function * @private diff --git a/build/graphics-svg/graphics-svg-debug.js b/build/graphics-svg/graphics-svg-debug.js index 8066ab3a930..ce2c808a572 100644 --- a/build/graphics-svg/graphics-svg-debug.js +++ b/build/graphics-svg/graphics-svg-debug.js @@ -165,13 +165,15 @@ SVGDrawing.prototype = { /** * Draws a wedge. - * - * @param {Number} x x-coordinate of the wedge's center point - * @param {Number} y y-coordinate of the wedge's center point - * @param {Number} startAngle starting angle in degrees - * @param {Number} arc sweep of the wedge. Negative values draw clockwise. - * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. - * @param {Number} yRadius [optional] y radius for wedge. + * + * @method drawWedge + * @param {Number} x x-coordinate of the wedge's center point + * @param {Number} y y-coordinate of the wedge's center point + * @param {Number} startAngle starting angle in degrees + * @param {Number} arc sweep of the wedge. Negative values draw clockwise. + * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. + * @param {Number} yRadius [optional] y radius for wedge. + * @private */ drawWedge: function(x, y, startAngle, arc, radius, yRadius) { @@ -1652,7 +1654,11 @@ Y.extend(SVGPath, Y.SVGShape, { _type: "path", /** - * @private + * Storage for path + * + * @property _path + * @type String + * @private */ _path: "" }); @@ -2245,11 +2251,19 @@ SVGGraphic.ATTRS = { Y.extend(SVGGraphic, Y.BaseGraphic, { /** + * Storage for `x` attribute. + * + * @property _x + * @type Number * @private */ _x: 0, /** + * Storage for `y` attribute. + * + * @property _y + * @type Number * @private */ _y: 0, @@ -2484,6 +2498,7 @@ Y.extend(SVGGraphic, Y.BaseGraphic, { /** * Returns a shape class. Used by `addShape`. * + * @method _getShapeClass * @param {Shape | String} val Indicates which shape class. * @return Function * @private diff --git a/build/graphics-svg/graphics-svg.js b/build/graphics-svg/graphics-svg.js index 8066ab3a930..ce2c808a572 100644 --- a/build/graphics-svg/graphics-svg.js +++ b/build/graphics-svg/graphics-svg.js @@ -165,13 +165,15 @@ SVGDrawing.prototype = { /** * Draws a wedge. - * - * @param {Number} x x-coordinate of the wedge's center point - * @param {Number} y y-coordinate of the wedge's center point - * @param {Number} startAngle starting angle in degrees - * @param {Number} arc sweep of the wedge. Negative values draw clockwise. - * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. - * @param {Number} yRadius [optional] y radius for wedge. + * + * @method drawWedge + * @param {Number} x x-coordinate of the wedge's center point + * @param {Number} y y-coordinate of the wedge's center point + * @param {Number} startAngle starting angle in degrees + * @param {Number} arc sweep of the wedge. Negative values draw clockwise. + * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. + * @param {Number} yRadius [optional] y radius for wedge. + * @private */ drawWedge: function(x, y, startAngle, arc, radius, yRadius) { @@ -1652,7 +1654,11 @@ Y.extend(SVGPath, Y.SVGShape, { _type: "path", /** - * @private + * Storage for path + * + * @property _path + * @type String + * @private */ _path: "" }); @@ -2245,11 +2251,19 @@ SVGGraphic.ATTRS = { Y.extend(SVGGraphic, Y.BaseGraphic, { /** + * Storage for `x` attribute. + * + * @property _x + * @type Number * @private */ _x: 0, /** + * Storage for `y` attribute. + * + * @property _y + * @type Number * @private */ _y: 0, @@ -2484,6 +2498,7 @@ Y.extend(SVGGraphic, Y.BaseGraphic, { /** * Returns a shape class. Used by `addShape`. * + * @method _getShapeClass * @param {Shape | String} val Indicates which shape class. * @return Function * @private diff --git a/build/graphics-vml/graphics-vml-debug.js b/build/graphics-vml/graphics-vml-debug.js index 7f7f6af3193..8d61023c840 100644 --- a/build/graphics-vml/graphics-vml-debug.js +++ b/build/graphics-vml/graphics-vml-debug.js @@ -34,11 +34,19 @@ function VMLDrawing() {} */ VMLDrawing.prototype = { /** + * Current x position of the drqwing. + * + * @property _currentX + * @type Number * @private */ _currentX: 0, /** + * Current y position of the drqwing. + * + * @property _currentY + * @type Number * @private */ _currentY: 0, @@ -137,13 +145,15 @@ VMLDrawing.prototype = { /** * Draws a wedge. - * - * @param {Number} x x-coordinate of the wedge's center point - * @param {Number} y y-coordinate of the wedge's center point - * @param {Number} startAngle starting angle in degrees - * @param {Number} arc sweep of the wedge. Negative values draw clockwise. - * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. - * @param {Number} yRadius [optional] y radius for wedge. + * + * @method drawWedge + * @param {Number} x x-coordinate of the wedge's center point + * @param {Number} y y-coordinate of the wedge's center point + * @param {Number} startAngle starting angle in degrees + * @param {Number} arc sweep of the wedge. Negative values draw clockwise. + * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. + * @param {Number} yRadius [optional] y radius for wedge. + * @private */ drawWedge: function(x, y, startAngle, arc, radius, yRadius) { @@ -565,6 +575,11 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Calculates and returns properties for setting an initial stroke. + * + * @method _getStrokeProps + * @return Object + * * @private */ _getStrokeProps: function() @@ -709,6 +724,11 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Calculates and returns properties for setting an initial fill. + * + * @method _getFillProps + * @return Object + * * @private */ _getFillProps: function() @@ -845,10 +865,8 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ this._fillFlag = false; }, - /** - * @private - */ - _updateFillNode: function(node) + //not used. remove next release. + _updateFillNode: function(node) { if(!this._fillNode) { @@ -857,6 +875,13 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ } }, + /** + * Calculates and returns an object containing gradient properties for a fill node. + * + * @method _getGradientFill + * @param {Object} fill Object containing fill properties. + * @return Object + */ _getGradientFill: function(fill) { var gradientProps = {}, @@ -937,7 +962,12 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ return gradientProps; }, - /** + /** + * Adds a transform to the shape. + * + * @method _addTransform + * @param {String} type The transform being applied. + * @param {Array} args The arguments for the transform. * @private */ _addTransform: function(type, args) @@ -952,7 +982,10 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ } }, - /** + /** + * Applies all transforms. + * + * @method _updateTransform * @private */ _updateTransform: function() @@ -1052,9 +1085,11 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ node.style.top = y + "px"; }, - /** + /** * Storage for translateX * + * @property _translateX + * @type Number * @private */ _translateX: 0, @@ -1062,6 +1097,8 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ /** * Storage for translateY * + * @property _translateY + * @type Number * @private */ _translateY: 0, @@ -1183,6 +1220,12 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Overrides default `on` method. Checks to see if its a dom interaction event. If so, + * return an event attached to the `node` element. If not, return the normal functionality. + * + * @method on + * @param {String} type event type + * @param {Object} callback function * @private */ on: function(type, fn) @@ -1205,6 +1248,9 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Updates `Shape` based on attribute changes. + * + * @method _updateHandler * @private */ _updateHandler: function(e) @@ -1289,6 +1335,7 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ * The calculated bounding box is used by the graphic instance to calculate its viewBox. * * @method getBounds + * @param {Matrix} [optional] cfg Reference to matrix instance * @return Object */ getBounds: function(cfg) @@ -1706,6 +1753,9 @@ VMLPath = function() VMLPath.NAME = "vmlPath"; Y.extend(VMLPath, Y.VMLShape, { /** + * Updates `Shape` based on attribute changes. + * + * @method _updateHandler * @private */ _updateHandler: function() @@ -2258,11 +2308,19 @@ VMLGraphic.ATTRS = { Y.extend(VMLGraphic, Y.BaseGraphic, { /** + * Storage for `x` attribute. + * + * @property _x + * @type Number * @private */ _x: 0, /** + * Storage for `y` attribute. + * + * @property _y + * @type Number * @private */ _y: 0, @@ -2556,6 +2614,7 @@ Y.extend(VMLGraphic, Y.BaseGraphic, { /** * Returns a shape class. Used by `addShape`. * + * @method _getShapeClass * @param {Shape | String} val Indicates which shape class. * @return Function * @private diff --git a/build/graphics-vml/graphics-vml.js b/build/graphics-vml/graphics-vml.js index 894ae0c38ce..53514556a51 100644 --- a/build/graphics-vml/graphics-vml.js +++ b/build/graphics-vml/graphics-vml.js @@ -33,11 +33,19 @@ function VMLDrawing() {} */ VMLDrawing.prototype = { /** + * Current x position of the drqwing. + * + * @property _currentX + * @type Number * @private */ _currentX: 0, /** + * Current y position of the drqwing. + * + * @property _currentY + * @type Number * @private */ _currentY: 0, @@ -136,13 +144,15 @@ VMLDrawing.prototype = { /** * Draws a wedge. - * - * @param {Number} x x-coordinate of the wedge's center point - * @param {Number} y y-coordinate of the wedge's center point - * @param {Number} startAngle starting angle in degrees - * @param {Number} arc sweep of the wedge. Negative values draw clockwise. - * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. - * @param {Number} yRadius [optional] y radius for wedge. + * + * @method drawWedge + * @param {Number} x x-coordinate of the wedge's center point + * @param {Number} y y-coordinate of the wedge's center point + * @param {Number} startAngle starting angle in degrees + * @param {Number} arc sweep of the wedge. Negative values draw clockwise. + * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius. + * @param {Number} yRadius [optional] y radius for wedge. + * @private */ drawWedge: function(x, y, startAngle, arc, radius, yRadius) { @@ -564,6 +574,11 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Calculates and returns properties for setting an initial stroke. + * + * @method _getStrokeProps + * @return Object + * * @private */ _getStrokeProps: function() @@ -708,6 +723,11 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Calculates and returns properties for setting an initial fill. + * + * @method _getFillProps + * @return Object + * * @private */ _getFillProps: function() @@ -844,10 +864,8 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ this._fillFlag = false; }, - /** - * @private - */ - _updateFillNode: function(node) + //not used. remove next release. + _updateFillNode: function(node) { if(!this._fillNode) { @@ -856,6 +874,13 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ } }, + /** + * Calculates and returns an object containing gradient properties for a fill node. + * + * @method _getGradientFill + * @param {Object} fill Object containing fill properties. + * @return Object + */ _getGradientFill: function(fill) { var gradientProps = {}, @@ -936,7 +961,12 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ return gradientProps; }, - /** + /** + * Adds a transform to the shape. + * + * @method _addTransform + * @param {String} type The transform being applied. + * @param {Array} args The arguments for the transform. * @private */ _addTransform: function(type, args) @@ -951,7 +981,10 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ } }, - /** + /** + * Applies all transforms. + * + * @method _updateTransform * @private */ _updateTransform: function() @@ -1051,9 +1084,11 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ node.style.top = y + "px"; }, - /** + /** * Storage for translateX * + * @property _translateX + * @type Number * @private */ _translateX: 0, @@ -1061,6 +1096,8 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ /** * Storage for translateY * + * @property _translateY + * @type Number * @private */ _translateY: 0, @@ -1182,6 +1219,12 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Overrides default `on` method. Checks to see if its a dom interaction event. If so, + * return an event attached to the `node` element. If not, return the normal functionality. + * + * @method on + * @param {String} type event type + * @param {Object} callback function * @private */ on: function(type, fn) @@ -1204,6 +1247,9 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ }, /** + * Updates `Shape` based on attribute changes. + * + * @method _updateHandler * @private */ _updateHandler: function(e) @@ -1288,6 +1334,7 @@ Y.extend(VMLShape, Y.BaseGraphic, Y.mix({ * The calculated bounding box is used by the graphic instance to calculate its viewBox. * * @method getBounds + * @param {Matrix} [optional] cfg Reference to matrix instance * @return Object */ getBounds: function(cfg) @@ -1705,6 +1752,9 @@ VMLPath = function() VMLPath.NAME = "vmlPath"; Y.extend(VMLPath, Y.VMLShape, { /** + * Updates `Shape` based on attribute changes. + * + * @method _updateHandler * @private */ _updateHandler: function() @@ -2257,11 +2307,19 @@ VMLGraphic.ATTRS = { Y.extend(VMLGraphic, Y.BaseGraphic, { /** + * Storage for `x` attribute. + * + * @property _x + * @type Number * @private */ _x: 0, /** + * Storage for `y` attribute. + * + * @property _y + * @type Number * @private */ _y: 0, @@ -2555,6 +2613,7 @@ Y.extend(VMLGraphic, Y.BaseGraphic, { /** * Returns a shape class. Used by `addShape`. * + * @method _getShapeClass * @param {Shape | String} val Indicates which shape class. * @return Function * @private diff --git a/build/loader-base/loader-base-debug.js b/build/loader-base/loader-base-debug.js index 355b17765f4..69f2045969b 100644 --- a/build/loader-base/loader-base-debug.js +++ b/build/loader-base/loader-base-debug.js @@ -20,7 +20,7 @@ if (!YUI.Env[Y.version]) { BUILD = '/build/', ROOT = VERSION + BUILD, CDN_BASE = Y.Env.base, - GALLERY_VERSION = 'gallery-2011.08.03-21-18', + GALLERY_VERSION = 'gallery-2011.08.04-15-16', TNT = '2in3', TNT_VERSION = '4', YUI2_VERSION = '2.9.0', diff --git a/build/loader-base/loader-base-min.js b/build/loader-base/loader-base-min.js index 44cc08fcc82..25034dbb4ad 100644 --- a/build/loader-base/loader-base-min.js +++ b/build/loader-base/loader-base-min.js @@ -5,6 +5,6 @@ http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ -YUI.add("loader-base",function(d){if(!YUI.Env[d.version]){(function(){var I=d.version,E="/build/",F=I+E,D=d.Env.base,A="gallery-2011.08.03-21-18",C="2in3",B="4",z="2.9.0",G=D+"combo?",H={version:I,root:F,base:d.Env.base,comboBase:G,skin:{defaultSkin:"sam",base:"assets/skins/",path:"skin.css",after:["cssreset","cssfonts","cssgrids","cssbase","cssreset-context","cssfonts-context"]},groups:{},patterns:{}},y=H.groups,x=function(K,L){var J=C+"."+(K||B)+"/"+(L||z)+E;y.yui2.base=D+J;y.yui2.root=J;},w=function(J){var K=(J||A)+E;y.gallery.base=D+K;y.gallery.root=K;};y[I]={};y.gallery={ext:false,combine:true,comboBase:G,update:w,patterns:{"gallery-":{},"lang/gallery-":{},"gallerycss-":{type:"css"}}};y.yui2={combine:true,ext:false,comboBase:G,update:x,patterns:{"yui2-":{configFn:function(J){if(/-skin|reset|fonts|grids|base/.test(J.name)){J.type="css";J.path=J.path.replace(/\.js/,".css");J.path=J.path.replace(/\/yui2-skin/,"/assets/skins/sam/yui2-skin");}}}}};w();x();YUI.Env[I]=H;}());}var f={},c=[],m=(d.UA.ie)?2048:8192,a=YUI.Env,p=a._loaded,q="css",k="js",v="intl",s=d.version,u="",e=d.Object,r=e.each,j=d.Array,h=a._loaderQueue,t=a[s],b="skin-",i=d.Lang,n=a.mods,l,o,g=function(x,y,z,w){var A=x+"/"+y;if(!w){A+="-min";}A+="."+(z||q);return A;};d.Env.meta=t;d.Loader=function(A){var z=t.modules,x=this;l=t.md5;x.context=d;x.base=d.Env.meta.base+d.Env.meta.root;x.comboBase=d.Env.meta.comboBase;x.combine=A.base&&(A.base.indexOf(x.comboBase.substr(0,20))>-1);x.comboSep="&";x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1);x.comboSep="&";x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1){R=X;}});if(Q&&(Q[V]||(R&&Q[R]))){y=V;if(Q[R]){y=R;}for(M=0;M-1){z=A;break;}}}if(z){if(A.action){A.action.call(this,B,x);}else{w=this.addModule(d.merge(z),B);w.temp=true;}}}return w;},_rollup:function(){},_reduce:function(B){B=B||this.required;var y,x,A,w,z=this.loadType,C=this.ignore?j.hash(this.ignore):false;for(y in B){if(B.hasOwnProperty(y)){w=this.getModule(y);if(((this.loaded[y]||n[y])&&!this.forceMap[y]&&!this.ignoreRegistered)||(z&&w&&w.type!=z)){delete B[y];}if(C&&C[y]){delete B[y];}A=w&&w.supersedes;if(A){for(x=0;x0){h.running=true;h.next()();}},insert:function(z,x,y){var w=this,A=d.merge(this);delete A.require;delete A.dirty;h.add(function(){w._insert(A,z,x,y);});this._continue();},loadNext:function(A){if(!this._loading){return;}var H,P,O,M,z,E,B,L,D,G,N,w,C,K,y,F,Q,R,J=this,x=J.loadType,S=function(T){J.loadNext(T.data);},I=function(V){J._combineComplete[x]=true;var U,T=F.length;for(U=0;UJ.maxURLLength)){Q.push(J._filter(z));z=N;}z+=w;if(O<(P-1)){z+=J.comboSep;}F.push(M.name);}}if(F.length&&(z!=N)){Q.push(J._filter(z));}}}if(F.length){if(x===q){E=d.Get.css;L=J.cssAttributes;}else{E=d.Get.script;L=J.jsAttributes;}E(Q,{data:J._loading,onSuccess:I,onFailure:J._onFailure,onTimeout:J._onTimeout,insertBefore:J.insertBefore,charset:J.charset,attributes:L,timeout:J.timeout,autopurge:false,context:J});return;}else{J._combineComplete[x]=true;}}if(A){if(A!==J._loading){return;}J.inserted[A]=true;if(J.onProgress){J.onProgress.call(J.context,{name:A,data:J.data});}}H=J.sorted;P=H.length;for(O=0;O-1);x.comboSep="&";x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1);x.comboSep="&";x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1){R=X;}});if(Q&&(Q[V]||(R&&Q[R]))){y=V;if(Q[R]){y=R;}for(M=0;M-1){z=A;break;}}}if(z){if(A.action){A.action.call(this,B,x);}else{w=this.addModule(d.merge(z),B);w.temp=true;}}}return w;},_rollup:function(){},_reduce:function(B){B=B||this.required;var y,x,A,w,z=this.loadType,C=this.ignore?j.hash(this.ignore):false;for(y in B){if(B.hasOwnProperty(y)){w=this.getModule(y);if(((this.loaded[y]||n[y])&&!this.forceMap[y]&&!this.ignoreRegistered)||(z&&w&&w.type!=z)){delete B[y];}if(C&&C[y]){delete B[y];}A=w&&w.supersedes;if(A){for(x=0;x0){h.running=true;h.next()();}},insert:function(z,x,y){var w=this,A=d.merge(this);delete A.require;delete A.dirty;h.add(function(){w._insert(A,z,x,y);});this._continue();},loadNext:function(A){if(!this._loading){return;}var H,P,O,M,z,E,B,L,D,G,N,w,C,K,y,F,Q,R,J=this,x=J.loadType,S=function(T){J.loadNext(T.data);},I=function(V){J._combineComplete[x]=true;var U,T=F.length;for(U=0;UJ.maxURLLength)){Q.push(J._filter(z));z=N;}z+=w;if(O<(P-1)){z+=J.comboSep;}F.push(M.name);}}if(F.length&&(z!=N)){Q.push(J._filter(z));}}}if(F.length){if(x===q){E=d.Get.css;L=J.cssAttributes;}else{E=d.Get.script;L=J.jsAttributes;}E(Q,{data:J._loading,onSuccess:I,onFailure:J._onFailure,onTimeout:J._onTimeout,insertBefore:J.insertBefore,charset:J.charset,attributes:L,timeout:J.timeout,autopurge:false,context:J});return;}else{J._combineComplete[x]=true;}}if(A){if(A!==J._loading){return;}J.inserted[A]=true;if(J.onProgress){J.onProgress.call(J.context,{name:A,data:J.data});}}H=J.sorted;P=H.length;for(O=0;O=g.rollup);if(e){break;}}}}if(e){b[k]=true;d=true;this.getRequires(g);}}}}if(!d){break;}}};},"3.4.0",{requires:["loader-base"]});YUI.add("loader-yui3",function(a){YUI.Env[a.version].modules=YUI.Env[a.version].modules||{"align-plugin":{"requires":["node-screen","node-pluginhost"]},"anim":{"use":["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"]},"anim-base":{"requires":["base-base","node-style"]},"anim-color":{"requires":["anim-base"]},"anim-curve":{"requires":["anim-xy"]},"anim-easing":{"requires":["anim-base"]},"anim-node-plugin":{"requires":["node-pluginhost","anim-base"]},"anim-scroll":{"requires":["anim-base"]},"anim-xy":{"requires":["anim-base","node-screen"]},"app":{"use":["controller","model","model-list","view"]},"array-extras":{},"array-invoke":{},"arraylist":{},"arraylist-add":{"requires":["arraylist"]},"arraylist-filter":{"requires":["arraylist"]},"arraysort":{"requires":["yui-base"]},"async-queue":{"requires":["event-custom"]},"attribute":{"use":["attribute-base","attribute-complex"]},"attribute-base":{"requires":["event-custom"]},"attribute-complex":{"requires":["attribute-base"]},"autocomplete":{"use":["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"]},"autocomplete-base":{"optional":["autocomplete-sources"],"requires":["array-extras","base-build","escape","event-valuechange","node-base"]},"autocomplete-filters":{"requires":["array-extras","text-wordbreak"]},"autocomplete-filters-accentfold":{"requires":["array-extras","text-accentfold","text-wordbreak"]},"autocomplete-highlighters":{"requires":["array-extras","highlight-base"]},"autocomplete-highlighters-accentfold":{"requires":["array-extras","highlight-accentfold"]},"autocomplete-list":{"after":["autocomplete-sources"],"lang":["en"],"requires":["autocomplete-base","event-resize","node-screen","selector-css3","shim-plugin","widget","widget-position","widget-position-align"],"skinnable":true},"autocomplete-list-keys":{"condition":{"name":"autocomplete-list-keys","test":function(b){return !(b.UA.ios||b.UA.android); },"trigger":"autocomplete-list"},"requires":["autocomplete-list","base-build"]},"autocomplete-plugin":{"requires":["autocomplete-list","node-pluginhost"]},"autocomplete-sources":{"optional":["io-base","json-parse","jsonp","yql"],"requires":["autocomplete-base"]},"base":{"use":["base-base","base-pluginhost","base-build"]},"base-base":{"after":["attribute-complex"],"requires":["attribute-base"]},"base-build":{"requires":["base-base"]},"base-pluginhost":{"requires":["base-base","pluginhost"]},"cache":{"use":["cache-base","cache-offline","cache-plugin"]},"cache-base":{"requires":["base"]},"cache-offline":{"requires":["cache-base","json"]},"cache-plugin":{"requires":["plugin","cache-base"]},"calendar":{"lang":["en","ru"],"requires":["calendar-base","calendarnavigator"],"skinnable":true},"calendar-base":{"lang":["en","ru"],"requires":["widget","substitute","datatype-date","datatype-date-math","cssgrids"],"skinnable":true},"calendarnavigator":{"requires":["plugin","classnamemanager"],"skinnable":true},"charts":{"requires":["dom","datatype-number","datatype-date","event-custom","event-mouseenter","widget","widget-position","widget-stack","graphics"]},"classnamemanager":{"requires":["yui-base"]},"clickable-rail":{"requires":["slider-base"]},"collection":{"use":["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"]},"console":{"lang":["en","es"],"requires":["yui-log","widget","substitute"],"skinnable":true},"console-filters":{"requires":["plugin","console"],"skinnable":true},"controller":{"optional":["querystring-parse"],"requires":["array-extras","base-build","history"]},"cookie":{"requires":["yui-base"]},"createlink-base":{"requires":["editor-base"]},"cssbase":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssbase-context":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssfonts":{"type":"css"},"cssfonts-context":{"type":"css"},"cssgrids":{"optional":["cssreset","cssfonts"],"type":"css"},"cssgrids-context-deprecated":{"optional":["cssreset-context"],"requires":["cssfonts-context"],"type":"css"},"cssgrids-deprecated":{"optional":["cssreset"],"requires":["cssfonts"],"type":"css"},"cssreset":{"type":"css"},"cssreset-context":{"type":"css"},"dataschema":{"use":["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"]},"dataschema-array":{"requires":["dataschema-base"]},"dataschema-base":{"requires":["base"]},"dataschema-json":{"requires":["dataschema-base","json"]},"dataschema-text":{"requires":["dataschema-base"]},"dataschema-xml":{"requires":["dataschema-base"]},"datasource":{"use":["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"]},"datasource-arrayschema":{"requires":["datasource-local","plugin","dataschema-array"]},"datasource-cache":{"requires":["datasource-local","plugin","cache-base"]},"datasource-function":{"requires":["datasource-local"]},"datasource-get":{"requires":["datasource-local","get"]},"datasource-io":{"requires":["datasource-local","io-base"]},"datasource-jsonschema":{"requires":["datasource-local","plugin","dataschema-json"]},"datasource-local":{"requires":["base"]},"datasource-polling":{"requires":["datasource-local"]},"datasource-textschema":{"requires":["datasource-local","plugin","dataschema-text"]},"datasource-xmlschema":{"requires":["datasource-local","plugin","dataschema-xml"]},"datatable":{"use":["datatable-base","datatable-datasource","datatable-sort","datatable-scroll"]},"datatable-base":{"requires":["recordset-base","widget","substitute","event-mouseenter"],"skinnable":true},"datatable-datasource":{"requires":["datatable-base","plugin","datasource-local"]},"datatable-scroll":{"requires":["datatable-base","plugin","stylesheet"]},"datatable-sort":{"lang":["en"],"requires":["datatable-base","plugin","recordset-sort"]},"datatype":{"use":["datatype-number","datatype-date","datatype-xml"]},"datatype-date":{"supersedes":["datatype-date-format"],"use":["datatype-date-parse","datatype-date-format"]},"datatype-date-format":{"lang":["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"]},"datatype-date-math":{"requires":["yui-base"]},"datatype-date-parse":{},"datatype-number":{"use":["datatype-number-parse","datatype-number-format"]},"datatype-number-format":{},"datatype-number-parse":{},"datatype-xml":{"use":["datatype-xml-parse","datatype-xml-format"]},"datatype-xml-format":{},"datatype-xml-parse":{},"dd":{"use":["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"]},"dd-constrain":{"requires":["dd-drag"]},"dd-ddm":{"requires":["dd-ddm-base","event-resize"]},"dd-ddm-base":{"requires":["node","base","yui-throttle","classnamemanager"]},"dd-ddm-drop":{"requires":["dd-ddm"]},"dd-delegate":{"requires":["dd-drag","dd-drop-plugin","event-mouseenter"]},"dd-drag":{"requires":["dd-ddm-base"]},"dd-drop":{"requires":["dd-drag","dd-ddm-drop"]},"dd-drop-plugin":{"requires":["dd-drop"]},"dd-gestures":{"condition":{"name":"dd-gestures","test":function(b){return(b.config.win&&("ontouchstart" in b.config.win&&!b.UA.chrome));},"trigger":"dd-drag"},"requires":["dd-drag","event-synthetic","event-gestures"]},"dd-plugin":{"optional":["dd-constrain","dd-proxy"],"requires":["dd-drag"]},"dd-proxy":{"requires":["dd-drag"]},"dd-scroll":{"requires":["dd-drag"]},"dial":{"lang":["en","es"],"requires":["widget","dd-drag","substitute","event-mouseenter","event-move","event-key","transition","intl"],"skinnable":true},"dom":{"use":["dom-base","dom-screen","dom-style","selector-native","selector"]},"dom-base":{"requires":["dom-core"]},"dom-core":{"requires":["oop","features"]},"dom-deprecated":{"requires":["dom-base"]},"dom-screen":{"requires":["dom-base","dom-style"]},"dom-style":{"requires":["dom-base"]},"dom-style-ie":{"condition":{"name":"dom-style-ie","test":function(h){var f=h.Features.test,g=h.Features.add,d=h.config.win,e=h.config.doc,b="documentElement",c=false; diff --git a/build/loader/loader.js b/build/loader/loader.js index 11e3578897d..e40507054d0 100644 --- a/build/loader/loader.js +++ b/build/loader/loader.js @@ -20,7 +20,7 @@ if (!YUI.Env[Y.version]) { BUILD = '/build/', ROOT = VERSION + BUILD, CDN_BASE = Y.Env.base, - GALLERY_VERSION = 'gallery-2011.08.03-21-18', + GALLERY_VERSION = 'gallery-2011.08.04-15-16', TNT = '2in3', TNT_VERSION = '4', YUI2_VERSION = '2.9.0', diff --git a/build/yui/yui-debug.js b/build/yui/yui-debug.js index 435452a6906..24f23339095 100644 --- a/build/yui/yui-debug.js +++ b/build/yui/yui-debug.js @@ -4755,7 +4755,7 @@ if (!YUI.Env[Y.version]) { BUILD = '/build/', ROOT = VERSION + BUILD, CDN_BASE = Y.Env.base, - GALLERY_VERSION = 'gallery-2011.08.03-21-18', + GALLERY_VERSION = 'gallery-2011.08.04-15-16', TNT = '2in3', TNT_VERSION = '4', YUI2_VERSION = '2.9.0', diff --git a/build/yui/yui-min.js b/build/yui/yui-min.js index 8318cc46ec8..92d654675eb 100644 --- a/build/yui/yui-min.js +++ b/build/yui/yui-min.js @@ -9,7 +9,7 @@ if(typeof YUI!="undefined"){YUI._YUI=YUI;}var YUI=function(){var c=0,f=this,b=ar }if(C[W]){return;}var U=z[W],X,V;if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){L.push(W);}else{C[W]=true;}}if(X&&X.length){I(X);}if(V&&V.length){I(V,1);}});},G=function(W){var U=W||{success:true,msg:"not dynamic"},T,S,V=true,X=U.data;x._loading=false;if(X){S=L;L=[];H=[];I(X);T=L.length;if(T){if(L.sort().join()==S.sort().join()){T=false;}}}if(T&&X){x._loading=false;x._use(y,function(){if(x._attach(X)){x._notify(A,U,X);}});}else{if(X){V=x._attach(X);}if(V){x._notify(A,U,y);}}if(x._useQueue&&x._useQueue.size()&&!x._loading){x._use.apply(x,x._useQueue.next());}};if(R==="*"){Q=x._attach(x.Object.keys(z));if(Q){G();}return x;}if(D&&x.Loader&&y.length){F=j(x);F.require(y);F.ignoreRegistered=true;F.calculate(null,(B)?null:"js");y=F.sorted;}I(y);M=L.length;if(M){L=x.Object.keys(E.hash(L));M=L.length;}if(D&&M&&x.Loader){x._loading=true;F=j(x);F.onEnd=G;F.context=x;F.data=y;F.ignoreRegistered=false;F.require(y);F.insert(null,(B)?null:"js");}else{if(M&&x.config.use_rls&&!YUI.Env.rls_enabled){O._rls_queue=O._rls_queue||new x.Queue();K=function(S,U){var T=function(W){G(W);S.rls_advance();},V=S._rls(U);if(V){S.rls_oncomplete(function(W){T(W);});S.Get.script(V,{data:U,timeout:S.config.rls_timeout,onFailure:S.rls_handleFailure,onTimeout:S.rls_handleTimeout});}else{T({success:true,data:U});}};O._rls_queue.add(function(){O._rls_in_progress=true;x.rls_callback=A;x.rls_locals(x,y,K);});if(!O._rls_in_progress&&O._rls_queue.size()){O._rls_queue.next()();}}else{if(D&&M&&x.Get&&!w.bootstrapped){x._loading=true;N=function(){x._loading=false;J.running=false;w.bootstrapped=true;O._bootstrapping=false;if(x._attach(["loader"])){x._use(y,A);}};if(O._bootstrapping){J.add(N);}else{O._bootstrapping=true;x.Get.script(P.base+P.loaderPath,{onEnd:N});}}else{Q=x._attach(y);if(Q){G();}}}}return x;},namespace:function(){var x=arguments,B=this,z=0,y,A,w;for(;zx&&x in w?w[x]:true;}}return z;};j.indexOf=q.indexOf?function(w,v){return q.indexOf.call(w,v);}:function(y,x){for(var w=0,v=y.length;w1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; -},"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("loader-base",function(d){if(!YUI.Env[d.version]){(function(){var I=d.version,E="/build/",F=I+E,D=d.Env.base,A="gallery-2011.08.03-21-18",C="2in3",B="4",z="2.9.0",G=D+"combo?",H={version:I,root:F,base:d.Env.base,comboBase:G,skin:{defaultSkin:"sam",base:"assets/skins/",path:"skin.css",after:["cssreset","cssfonts","cssgrids","cssbase","cssreset-context","cssfonts-context"]},groups:{},patterns:{}},y=H.groups,x=function(K,L){var J=C+"."+(K||B)+"/"+(L||z)+E;y.yui2.base=D+J;y.yui2.root=J;},w=function(J){var K=(J||A)+E;y.gallery.base=D+K;y.gallery.root=K;};y[I]={};y.gallery={ext:false,combine:true,comboBase:G,update:w,patterns:{"gallery-":{},"lang/gallery-":{},"gallerycss-":{type:"css"}}};y.yui2={combine:true,ext:false,comboBase:G,update:x,patterns:{"yui2-":{configFn:function(J){if(/-skin|reset|fonts|grids|base/.test(J.name)){J.type="css";J.path=J.path.replace(/\.js/,".css");J.path=J.path.replace(/\/yui2-skin/,"/assets/skins/sam/yui2-skin");}}}}};w();x();YUI.Env[I]=H;}());}var f={},c=[],m=(d.UA.ie)?2048:8192,a=YUI.Env,p=a._loaded,q="css",k="js",v="intl",s=d.version,u="",e=d.Object,r=e.each,j=d.Array,h=a._loaderQueue,t=a[s],b="skin-",i=d.Lang,n=a.mods,l,o,g=function(x,y,z,w){var A=x+"/"+y;if(!w){A+="-min";}A+="."+(z||q);return A;};d.Env.meta=t;d.Loader=function(A){var z=t.modules,x=this;l=t.md5;x.context=d;x.base=d.Env.meta.base+d.Env.meta.root;x.comboBase=d.Env.meta.comboBase;x.combine=A.base&&(A.base.indexOf(x.comboBase.substr(0,20))>-1);x.comboSep="&";x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("loader-base",function(d){if(!YUI.Env[d.version]){(function(){var I=d.version,E="/build/",F=I+E,D=d.Env.base,A="gallery-2011.08.04-15-16",C="2in3",B="4",z="2.9.0",G=D+"combo?",H={version:I,root:F,base:d.Env.base,comboBase:G,skin:{defaultSkin:"sam",base:"assets/skins/",path:"skin.css",after:["cssreset","cssfonts","cssgrids","cssbase","cssreset-context","cssfonts-context"]},groups:{},patterns:{}},y=H.groups,x=function(K,L){var J=C+"."+(K||B)+"/"+(L||z)+E;y.yui2.base=D+J;y.yui2.root=J;},w=function(J){var K=(J||A)+E;y.gallery.base=D+K;y.gallery.root=K;};y[I]={};y.gallery={ext:false,combine:true,comboBase:G,update:w,patterns:{"gallery-":{},"lang/gallery-":{},"gallerycss-":{type:"css"}}};y.yui2={combine:true,ext:false,comboBase:G,update:x,patterns:{"yui2-":{configFn:function(J){if(/-skin|reset|fonts|grids|base/.test(J.name)){J.type="css";J.path=J.path.replace(/\.js/,".css");J.path=J.path.replace(/\/yui2-skin/,"/assets/skins/sam/yui2-skin");}}}}};w();x();YUI.Env[I]=H;}());}var f={},c=[],m=(d.UA.ie)?2048:8192,a=YUI.Env,p=a._loaded,q="css",k="js",v="intl",s=d.version,u="",e=d.Object,r=e.each,j=d.Array,h=a._loaderQueue,t=a[s],b="skin-",i=d.Lang,n=a.mods,l,o,g=function(x,y,z,w){var A=x+"/"+y;if(!w){A+="-min";}A+="."+(z||q);return A;};d.Env.meta=t;d.Loader=function(A){var z=t.modules,x=this;l=t.md5;x.context=d;x.base=d.Env.meta.base+d.Env.meta.root;x.comboBase=d.Env.meta.comboBase;x.combine=A.base&&(A.base.indexOf(x.comboBase.substr(0,20))>-1);x.comboSep="&";x.maxURLLength=m;x.root=d.Env.meta.root;x.timeout=0;x.forceMap={};x.allowRollup=false;x.filters={};x.required={};x.patterns={};x.moduleInfo={};x.groups=d.merge(d.Env.meta.groups);x.skin=d.merge(d.Env.meta.skin);x.conditions={};x.config=A;x._internal=true;o=a._renderedMods;if(o){r(o,function y(C,B){x.moduleInfo[B]=C;});o=a._conditions;r(o,function w(C,B){x.conditions[B]=C;});}else{r(z,x.addModule,x);}if(!a._renderedMods){a._renderedMods=x.moduleInfo;a._conditions=x.conditions;}x._inspectPage();x._internal=false;x._config(A);x.testresults=null;if(d.config.tests){x.testresults=d.config.tests;}x.sorted=[];x.loaded=p[s];x.dirty=true;x.inserted={};x.skipped={};x.tested={};};d.Loader.prototype={FILTER_DEFS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},_inspectPage:function(){r(n,function(y,x){if(y.details){var w=this.moduleInfo[x],A=y.details.requires,z=w&&w.requires;if(w){if(!w._inspected&&A&&z.length!=A.length){delete w.expanded;}}else{w=this.addModule(y.details,x);}w._inspected=true;}},this);},_requires:function(C,B){var y,A,D,E,w=this.moduleInfo,x=w[C],z=w[B];if(!x||!z){return false;}A=x.expanded_map;D=x.after_map;if(D&&(B in D)){return true;}D=z.after_map;if(D&&(C in D)){return false;}E=w[B]&&w[B].supersedes;if(E){for(y=0;y-1){R=X;}});if(Q&&(Q[V]||(R&&Q[R]))){y=V;if(Q[R]){y=R;}for(M=0;M-1){z=A;break;}}}if(z){if(A.action){A.action.call(this,B,x);}else{w=this.addModule(d.merge(z),B);w.temp=true;}}}return w;},_rollup:function(){},_reduce:function(B){B=B||this.required;var y,x,A,w,z=this.loadType,C=this.ignore?j.hash(this.ignore):false;for(y in B){if(B.hasOwnProperty(y)){w=this.getModule(y);if(((this.loaded[y]||n[y])&&!this.forceMap[y]&&!this.ignoreRegistered)||(z&&w&&w.type!=z)){delete B[y];}if(C&&C[y]){delete B[y];}A=w&&w.supersedes;if(A){for(x=0;x0){h.running=true;h.next()();}},insert:function(z,x,y){var w=this,A=d.merge(this);delete A.require;delete A.dirty;h.add(function(){w._insert(A,z,x,y);});this._continue();},loadNext:function(A){if(!this._loading){return;}var H,P,O,M,z,E,B,L,D,G,N,w,C,K,y,F,Q,R,J=this,x=J.loadType,S=function(T){J.loadNext(T.data);},I=function(V){J._combineComplete[x]=true;var U,T=F.length;for(U=0;UJ.maxURLLength)){Q.push(J._filter(z));z=N;}z+=w;if(O<(P-1)){z+=J.comboSep;}F.push(M.name);}}if(F.length&&(z!=N)){Q.push(J._filter(z));}}}if(F.length){if(x===q){E=d.Get.css;L=J.cssAttributes;}else{E=d.Get.script;L=J.jsAttributes;}E(Q,{data:J._loading,onSuccess:I,onFailure:J._onFailure,onTimeout:J._onTimeout,insertBefore:J.insertBefore,charset:J.charset,attributes:L,timeout:J.timeout,autopurge:false,context:J});return;}else{J._combineComplete[x]=true;}}if(A){if(A!==J._loading){return;}J.inserted[A]=true;if(J.onProgress){J.onProgress.call(J.context,{name:A,data:J.data});}}H=J.sorted;P=H.length;for(O=0;O=g.rollup);if(e){break;}}}}if(e){b[k]=true;d=true;this.getRequires(g);}}}}if(!d){break;}}};},"3.4.0",{requires:["loader-base"]});YUI.add("loader-yui3",function(a){YUI.Env[a.version].modules=YUI.Env[a.version].modules||{"align-plugin":{"requires":["node-screen","node-pluginhost"]},"anim":{"use":["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"]},"anim-base":{"requires":["base-base","node-style"]},"anim-color":{"requires":["anim-base"]},"anim-curve":{"requires":["anim-xy"]},"anim-easing":{"requires":["anim-base"]},"anim-node-plugin":{"requires":["node-pluginhost","anim-base"]},"anim-scroll":{"requires":["anim-base"]},"anim-xy":{"requires":["anim-base","node-screen"]},"app":{"use":["controller","model","model-list","view"]},"array-extras":{},"array-invoke":{},"arraylist":{},"arraylist-add":{"requires":["arraylist"]},"arraylist-filter":{"requires":["arraylist"]},"arraysort":{"requires":["yui-base"]},"async-queue":{"requires":["event-custom"]},"attribute":{"use":["attribute-base","attribute-complex"]},"attribute-base":{"requires":["event-custom"]},"attribute-complex":{"requires":["attribute-base"]},"autocomplete":{"use":["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"]},"autocomplete-base":{"optional":["autocomplete-sources"],"requires":["array-extras","base-build","escape","event-valuechange","node-base"]},"autocomplete-filters":{"requires":["array-extras","text-wordbreak"]},"autocomplete-filters-accentfold":{"requires":["array-extras","text-accentfold","text-wordbreak"]},"autocomplete-highlighters":{"requires":["array-extras","highlight-base"]},"autocomplete-highlighters-accentfold":{"requires":["array-extras","highlight-accentfold"]},"autocomplete-list":{"after":["autocomplete-sources"],"lang":["en"],"requires":["autocomplete-base","event-resize","node-screen","selector-css3","shim-plugin","widget","widget-position","widget-position-align"],"skinnable":true},"autocomplete-list-keys":{"condition":{"name":"autocomplete-list-keys","test":function(b){return !(b.UA.ios||b.UA.android);},"trigger":"autocomplete-list"},"requires":["autocomplete-list","base-build"]},"autocomplete-plugin":{"requires":["autocomplete-list","node-pluginhost"]},"autocomplete-sources":{"optional":["io-base","json-parse","jsonp","yql"],"requires":["autocomplete-base"]},"base":{"use":["base-base","base-pluginhost","base-build"]},"base-base":{"after":["attribute-complex"],"requires":["attribute-base"]},"base-build":{"requires":["base-base"]},"base-pluginhost":{"requires":["base-base","pluginhost"]},"cache":{"use":["cache-base","cache-offline","cache-plugin"]},"cache-base":{"requires":["base"]},"cache-offline":{"requires":["cache-base","json"]},"cache-plugin":{"requires":["plugin","cache-base"]},"calendar":{"lang":["en","ru"],"requires":["calendar-base","calendarnavigator"],"skinnable":true},"calendar-base":{"lang":["en","ru"],"requires":["widget","substitute","datatype-date","datatype-date-math","cssgrids"],"skinnable":true},"calendarnavigator":{"requires":["plugin","classnamemanager"],"skinnable":true},"charts":{"requires":["dom","datatype-number","datatype-date","event-custom","event-mouseenter","widget","widget-position","widget-stack","graphics"]},"classnamemanager":{"requires":["yui-base"]},"clickable-rail":{"requires":["slider-base"]},"collection":{"use":["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"]},"console":{"lang":["en","es"],"requires":["yui-log","widget","substitute"],"skinnable":true},"console-filters":{"requires":["plugin","console"],"skinnable":true},"controller":{"optional":["querystring-parse"],"requires":["array-extras","base-build","history"]},"cookie":{"requires":["yui-base"]},"createlink-base":{"requires":["editor-base"]},"cssbase":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssbase-context":{"after":["cssreset","cssfonts","cssgrids","cssreset-context","cssfonts-context","cssgrids-context"],"type":"css"},"cssfonts":{"type":"css"},"cssfonts-context":{"type":"css"},"cssgrids":{"optional":["cssreset","cssfonts"],"type":"css"},"cssgrids-context-deprecated":{"optional":["cssreset-context"],"requires":["cssfonts-context"],"type":"css"},"cssgrids-deprecated":{"optional":["cssreset"],"requires":["cssfonts"],"type":"css"},"cssreset":{"type":"css"},"cssreset-context":{"type":"css"},"dataschema":{"use":["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"]},"dataschema-array":{"requires":["dataschema-base"]},"dataschema-base":{"requires":["base"]},"dataschema-json":{"requires":["dataschema-base","json"]},"dataschema-text":{"requires":["dataschema-base"]},"dataschema-xml":{"requires":["dataschema-base"]},"datasource":{"use":["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"]},"datasource-arrayschema":{"requires":["datasource-local","plugin","dataschema-array"]},"datasource-cache":{"requires":["datasource-local","plugin","cache-base"]},"datasource-function":{"requires":["datasource-local"]},"datasource-get":{"requires":["datasource-local","get"]},"datasource-io":{"requires":["datasource-local","io-base"]},"datasource-jsonschema":{"requires":["datasource-local","plugin","dataschema-json"]},"datasource-local":{"requires":["base"]},"datasource-polling":{"requires":["datasource-local"]},"datasource-textschema":{"requires":["datasource-local","plugin","dataschema-text"]},"datasource-xmlschema":{"requires":["datasource-local","plugin","dataschema-xml"]},"datatable":{"use":["datatable-base","datatable-datasource","datatable-sort","datatable-scroll"]},"datatable-base":{"requires":["recordset-base","widget","substitute","event-mouseenter"],"skinnable":true},"datatable-datasource":{"requires":["datatable-base","plugin","datasource-local"]},"datatable-scroll":{"requires":["datatable-base","plugin","stylesheet"]},"datatable-sort":{"lang":["en"],"requires":["datatable-base","plugin","recordset-sort"]},"datatype":{"use":["datatype-number","datatype-date","datatype-xml"]},"datatype-date":{"supersedes":["datatype-date-format"],"use":["datatype-date-parse","datatype-date-format"]},"datatype-date-format":{"lang":["ar","ar-JO","ca","ca-ES","da","da-DK","de","de-AT","de-DE","el","el-GR","en","en-AU","en-CA","en-GB","en-IE","en-IN","en-JO","en-MY","en-NZ","en-PH","en-SG","en-US","es","es-AR","es-BO","es-CL","es-CO","es-EC","es-ES","es-MX","es-PE","es-PY","es-US","es-UY","es-VE","fi","fi-FI","fr","fr-BE","fr-CA","fr-FR","hi","hi-IN","id","id-ID","it","it-IT","ja","ja-JP","ko","ko-KR","ms","ms-MY","nb","nb-NO","nl","nl-BE","nl-NL","pl","pl-PL","pt","pt-BR","ro","ro-RO","ru","ru-RU","sv","sv-SE","th","th-TH","tr","tr-TR","vi","vi-VN","zh-Hans","zh-Hans-CN","zh-Hant","zh-Hant-HK","zh-Hant-TW"]},"datatype-date-math":{"requires":["yui-base"]},"datatype-date-parse":{},"datatype-number":{"use":["datatype-number-parse","datatype-number-format"]},"datatype-number-format":{},"datatype-number-parse":{},"datatype-xml":{"use":["datatype-xml-parse","datatype-xml-format"]},"datatype-xml-format":{},"datatype-xml-parse":{},"dd":{"use":["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"]},"dd-constrain":{"requires":["dd-drag"]},"dd-ddm":{"requires":["dd-ddm-base","event-resize"]},"dd-ddm-base":{"requires":["node","base","yui-throttle","classnamemanager"]},"dd-ddm-drop":{"requires":["dd-ddm"]},"dd-delegate":{"requires":["dd-drag","dd-drop-plugin","event-mouseenter"]},"dd-drag":{"requires":["dd-ddm-base"]},"dd-drop":{"requires":["dd-drag","dd-ddm-drop"]},"dd-drop-plugin":{"requires":["dd-drop"]},"dd-gestures":{"condition":{"name":"dd-gestures","test":function(b){return(b.config.win&&("ontouchstart" in b.config.win&&!b.UA.chrome)); diff --git a/build/yui/yui.js b/build/yui/yui.js index 6c1cd9fe6aa..9e9ea6a5636 100644 --- a/build/yui/yui.js +++ b/build/yui/yui.js @@ -4723,7 +4723,7 @@ if (!YUI.Env[Y.version]) { BUILD = '/build/', ROOT = VERSION + BUILD, CDN_BASE = Y.Env.base, - GALLERY_VERSION = 'gallery-2011.08.03-21-18', + GALLERY_VERSION = 'gallery-2011.08.04-15-16', TNT = '2in3', TNT_VERSION = '4', YUI2_VERSION = '2.9.0', From 7726755c30d187835a722216476b98b88879db19 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 18:51:33 -0300 Subject: [PATCH 045/132] AUI-452 Fixing DataTable inconsistencies with scroll and sort plugins --- src/aui-datatable/js/aui-datatable-base.js | 33 ++++++++++--------- src/aui-property-list/js/aui-property-list.js | 1 + 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/aui-datatable/js/aui-datatable-base.js b/src/aui-datatable/js/aui-datatable-base.js index 232272bc525..0671b257cf6 100644 --- a/src/aui-datatable/js/aui-datatable-base.js +++ b/src/aui-datatable/js/aui-datatable-base.js @@ -12,7 +12,7 @@ var Lang = A.Lang, HEADERS = 'headers', ID = 'id', RECORDSET = 'recordset', - RENDER = 'render', + RECORDSET_CHANGE = 'recordsetChange', _HASH = '#', _SPACE = ' '; @@ -21,8 +21,10 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after(RENDER, instance._afterRender); - instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); + instance._bindRecordsetRecordChange(); + + instance.after(RECORDSET_CHANGE, instance._afterRecordsetChangeExt); + instance.after(instance._uiSetRecordsetExt, instance, '_uiSetRecordset'); }, getCellNode: function(record, column) { @@ -43,27 +45,22 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { return A.one(_HASH+record.get(ID)); }, - _afterRender: function() { + _afterRecordsetChangeExt: function(event) { var instance = this; - instance._bindPluginsEvents(); - instance._fixPluginsUI(); + instance._bindRecordsetRecordChange(); }, - _afterRecordsetChangeExt: function(event) { - var instance = this; + _afterRecordsetRecordChange: function(event) { + var instance = this; - instance._uiSetRecordset(instance.get('recordset')); - instance._fixPluginsUI(); + instance._uiSetRecordset(instance.get(RECORDSET)); }, - _bindPluginsEvents: function() { + _bindRecordsetRecordChange: function(event){ var instance = this; - var sort = instance.sort; - if (sort) { - sort.after('lastSortedByChange', A.bind(instance._fixPluginsUI, instance)); - } + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetRecordChange, instance)); }, _fixPluginsUI: function() { @@ -78,6 +75,12 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { // TODO: Fix this on DataTable DataTableScroll scroll._syncWidths(); } + }, + + _uiSetRecordsetExt: function(recordset){ + var instance = this; + + instance._fixPluginsUI(); } }, {}); diff --git a/src/aui-property-list/js/aui-property-list.js b/src/aui-property-list/js/aui-property-list.js index 139c9441d66..3daab8fdf9b 100755 --- a/src/aui-property-list/js/aui-property-list.js +++ b/src/aui-property-list/js/aui-property-list.js @@ -86,6 +86,7 @@ var PropertyList = A.Component.create({ initializer: function() { var instance = this; + instance.after(RECORDSET_CHANGE, instance._plugDependencies); instance.after(instance._syncScrollWidth, instance, '_uiSetWidth'); instance.after(instance._syncScrollHeight, instance, '_uiSetHeight'); From f3f191e01d60a9e3f307abafcd995da7bc12a620 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 18:51:45 -0300 Subject: [PATCH 046/132] Build files --- .../aui-datatable/aui-datatable-base-debug.js | 33 +++++---- build/aui-datatable/aui-datatable-base-min.js | 2 +- build/aui-datatable/aui-datatable-base.js | 33 +++++---- build/aui-datatable/aui-datatable-debug.js | 33 +++++---- build/aui-datatable/aui-datatable-min.js | 2 +- build/aui-datatable/aui-datatable.js | 33 +++++---- .../aui-property-list-debug.js | 1 + .../aui-property-list-min.js | 2 +- build/aui-property-list/aui-property-list.js | 1 + build/datatable-base/datatable-base.js | 69 ++++++++++--------- 10 files changed, 112 insertions(+), 97 deletions(-) diff --git a/build/aui-datatable/aui-datatable-base-debug.js b/build/aui-datatable/aui-datatable-base-debug.js index cd2016dc80f..19acb786c83 100644 --- a/build/aui-datatable/aui-datatable-base-debug.js +++ b/build/aui-datatable/aui-datatable-base-debug.js @@ -13,7 +13,7 @@ var Lang = A.Lang, HEADERS = 'headers', ID = 'id', RECORDSET = 'recordset', - RENDER = 'render', + RECORDSET_CHANGE = 'recordsetChange', _HASH = '#', _SPACE = ' '; @@ -22,8 +22,10 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after(RENDER, instance._afterRender); - instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); + instance._bindRecordsetRecordChange(); + + instance.after(RECORDSET_CHANGE, instance._afterRecordsetChangeExt); + instance.after(instance._uiSetRecordsetExt, instance, '_uiSetRecordset'); }, getCellNode: function(record, column) { @@ -44,27 +46,22 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { return A.one(_HASH+record.get(ID)); }, - _afterRender: function() { + _afterRecordsetChangeExt: function(event) { var instance = this; - instance._bindPluginsEvents(); - instance._fixPluginsUI(); + instance._bindRecordsetRecordChange(); }, - _afterRecordsetChangeExt: function(event) { - var instance = this; + _afterRecordsetRecordChange: function(event) { + var instance = this; - instance._uiSetRecordset(instance.get('recordset')); - instance._fixPluginsUI(); + instance._uiSetRecordset(instance.get(RECORDSET)); }, - _bindPluginsEvents: function() { + _bindRecordsetRecordChange: function(event){ var instance = this; - var sort = instance.sort; - if (sort) { - sort.after('lastSortedByChange', A.bind(instance._fixPluginsUI, instance)); - } + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetRecordChange, instance)); }, _fixPluginsUI: function() { @@ -79,6 +76,12 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { // TODO: Fix this on DataTable DataTableScroll scroll._syncWidths(); } + }, + + _uiSetRecordsetExt: function(recordset){ + var instance = this; + + instance._fixPluginsUI(); } }, {}); diff --git a/build/aui-datatable/aui-datatable-base-min.js b/build/aui-datatable/aui-datatable-base-min.js index 8c3933bbeb8..64e5ff154a3 100644 --- a/build/aui-datatable/aui-datatable-base-min.js +++ b/build/aui-datatable/aui-datatable-base-min.js @@ -1 +1 @@ -AUI.add("aui-datatable-base",function(f){var j=f.Lang,d=f.ArraySort.compare,o=j.isNumber,e=j.isString,h="change",m="childNodes",i="columnset",g="data",k="headers",l="id",c="recordset",b="render",a="#",n=" ";f.DataTable.Base=f.Base.create("datatable",f.DataTable.Base,[],{initializer:function(){var p=this;p.after(b,p._afterRender);p.get(c).after(h,f.bind(p._afterRecordsetChangeExt,p));},getCellNode:function(q,r){var p=this;return p.getRowNode(q).get(m).item(r.keyIndex);},getColNode:function(q){var p=this;var s=p.get(i);var r=s.getColumnIndex(s.getColumnByCell(q));return p._colgroupNode.get(m).item(r);},getRowNode:function(p){return f.one(a+p.get(l));},_afterRender:function(){var p=this;p._bindPluginsEvents();p._fixPluginsUI();},_afterRecordsetChangeExt:function(q){var p=this;p._uiSetRecordset(p.get("recordset"));p._fixPluginsUI();},_bindPluginsEvents:function(){var p=this;var q=p.sort;if(q){q.after("lastSortedByChange",f.bind(p._fixPluginsUI,p));}},_fixPluginsUI:function(){var q=this;var r=q.sort;var p=q.scroll;if(r&&p){p.syncUI();p._syncWidths();}}},{});f.Column=f.Base.create("column",f.Column,[],{},{ATTRS:{sortFn:{value:function(r,p,s,t){var q=d(r.getValue(s),p.getValue(s),t);if(q===0){q=d(r.get("id"),p.get("id"),t);}return q;}}}});f.Columnset=f.Base.create("columnset",f.Columnset,[],{getColumn:function(q){var p=this;if(e(q)){return this.idHash[q];}else{if(o(q)){return p.keys[q];}}return null;},getColumnByCell:function(q){var p=this;var r=q.getAttribute(k).split(n).pop()||q.get(l);return p.getColumn(r);},getColumnIndex:function(p){return p.keyIndex;},getLength:function(){var p=this;return p.keys.length;},_setDefinitions:function(p){return p;}},{});f.Recordset=f.Base.create("recordset",f.Recordset,[],{getRecordByRow:function(q){var p=this;return p.getRecord(q.get(l));},getRecordIndex:function(q){var p=this;return f.Array.indexOf(p._items,q);},updateRecordDataByKey:function(q,r,t){var p=this;var s=q.get(g);if(s){s[r]=t;q.set(g,s);}p.update(q,p.getRecordIndex(q));}},{});f.Plugin.DataTableScroll=f.Base.create("dataTableScroll",f.Plugin.DataTableScroll,[],{_syncWidths:function(){try{f.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(p){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]}); \ No newline at end of file +AUI.add("aui-datatable-base",function(e){var j=e.Lang,c=e.ArraySort.compare,o=j.isNumber,d=j.isString,h="change",m="childNodes",i="columnset",f="data",k="headers",l="id",b="recordset",g="recordsetChange",a="#",n=" ";e.DataTable.Base=e.Base.create("datatable",e.DataTable.Base,[],{initializer:function(){var p=this;p._bindRecordsetRecordChange();p.after(g,p._afterRecordsetChangeExt);p.after(p._uiSetRecordsetExt,p,"_uiSetRecordset");},getCellNode:function(q,r){var p=this;return p.getRowNode(q).get(m).item(r.keyIndex);},getColNode:function(q){var p=this;var s=p.get(i);var r=s.getColumnIndex(s.getColumnByCell(q));return p._colgroupNode.get(m).item(r);},getRowNode:function(p){return e.one(a+p.get(l));},_afterRecordsetChangeExt:function(q){var p=this;p._bindRecordsetRecordChange();},_afterRecordsetRecordChange:function(q){var p=this;p._uiSetRecordset(p.get(b));},_bindRecordsetRecordChange:function(q){var p=this;p.get(b).after(h,e.bind(p._afterRecordsetRecordChange,p));},_fixPluginsUI:function(){var q=this;var r=q.sort;var p=q.scroll;if(r&&p){p.syncUI();p._syncWidths();}},_uiSetRecordsetExt:function(q){var p=this;p._fixPluginsUI();}},{});e.Column=e.Base.create("column",e.Column,[],{},{ATTRS:{sortFn:{value:function(r,p,s,t){var q=c(r.getValue(s),p.getValue(s),t);if(q===0){q=c(r.get("id"),p.get("id"),t);}return q;}}}});e.Columnset=e.Base.create("columnset",e.Columnset,[],{getColumn:function(q){var p=this;if(d(q)){return this.idHash[q];}else{if(o(q)){return p.keys[q];}}return null;},getColumnByCell:function(q){var p=this;var r=q.getAttribute(k).split(n).pop()||q.get(l);return p.getColumn(r);},getColumnIndex:function(p){return p.keyIndex;},getLength:function(){var p=this;return p.keys.length;},_setDefinitions:function(p){return p;}},{});e.Recordset=e.Base.create("recordset",e.Recordset,[],{getRecordByRow:function(q){var p=this;return p.getRecord(q.get(l));},getRecordIndex:function(q){var p=this;return e.Array.indexOf(p._items,q);},updateRecordDataByKey:function(q,r,t){var p=this;var s=q.get(f);if(s){s[r]=t;q.set(f,s);}p.update(q,p.getRecordIndex(q));}},{});e.Plugin.DataTableScroll=e.Base.create("dataTableScroll",e.Plugin.DataTableScroll,[],{_syncWidths:function(){try{e.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(p){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]}); \ No newline at end of file diff --git a/build/aui-datatable/aui-datatable-base.js b/build/aui-datatable/aui-datatable-base.js index cd2016dc80f..19acb786c83 100644 --- a/build/aui-datatable/aui-datatable-base.js +++ b/build/aui-datatable/aui-datatable-base.js @@ -13,7 +13,7 @@ var Lang = A.Lang, HEADERS = 'headers', ID = 'id', RECORDSET = 'recordset', - RENDER = 'render', + RECORDSET_CHANGE = 'recordsetChange', _HASH = '#', _SPACE = ' '; @@ -22,8 +22,10 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after(RENDER, instance._afterRender); - instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); + instance._bindRecordsetRecordChange(); + + instance.after(RECORDSET_CHANGE, instance._afterRecordsetChangeExt); + instance.after(instance._uiSetRecordsetExt, instance, '_uiSetRecordset'); }, getCellNode: function(record, column) { @@ -44,27 +46,22 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { return A.one(_HASH+record.get(ID)); }, - _afterRender: function() { + _afterRecordsetChangeExt: function(event) { var instance = this; - instance._bindPluginsEvents(); - instance._fixPluginsUI(); + instance._bindRecordsetRecordChange(); }, - _afterRecordsetChangeExt: function(event) { - var instance = this; + _afterRecordsetRecordChange: function(event) { + var instance = this; - instance._uiSetRecordset(instance.get('recordset')); - instance._fixPluginsUI(); + instance._uiSetRecordset(instance.get(RECORDSET)); }, - _bindPluginsEvents: function() { + _bindRecordsetRecordChange: function(event){ var instance = this; - var sort = instance.sort; - if (sort) { - sort.after('lastSortedByChange', A.bind(instance._fixPluginsUI, instance)); - } + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetRecordChange, instance)); }, _fixPluginsUI: function() { @@ -79,6 +76,12 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { // TODO: Fix this on DataTable DataTableScroll scroll._syncWidths(); } + }, + + _uiSetRecordsetExt: function(recordset){ + var instance = this; + + instance._fixPluginsUI(); } }, {}); diff --git a/build/aui-datatable/aui-datatable-debug.js b/build/aui-datatable/aui-datatable-debug.js index 9711a45df12..f363b2c1611 100644 --- a/build/aui-datatable/aui-datatable-debug.js +++ b/build/aui-datatable/aui-datatable-debug.js @@ -13,7 +13,7 @@ var Lang = A.Lang, HEADERS = 'headers', ID = 'id', RECORDSET = 'recordset', - RENDER = 'render', + RECORDSET_CHANGE = 'recordsetChange', _HASH = '#', _SPACE = ' '; @@ -22,8 +22,10 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after(RENDER, instance._afterRender); - instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); + instance._bindRecordsetRecordChange(); + + instance.after(RECORDSET_CHANGE, instance._afterRecordsetChangeExt); + instance.after(instance._uiSetRecordsetExt, instance, '_uiSetRecordset'); }, getCellNode: function(record, column) { @@ -44,27 +46,22 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { return A.one(_HASH+record.get(ID)); }, - _afterRender: function() { + _afterRecordsetChangeExt: function(event) { var instance = this; - instance._bindPluginsEvents(); - instance._fixPluginsUI(); + instance._bindRecordsetRecordChange(); }, - _afterRecordsetChangeExt: function(event) { - var instance = this; + _afterRecordsetRecordChange: function(event) { + var instance = this; - instance._uiSetRecordset(instance.get('recordset')); - instance._fixPluginsUI(); + instance._uiSetRecordset(instance.get(RECORDSET)); }, - _bindPluginsEvents: function() { + _bindRecordsetRecordChange: function(event){ var instance = this; - var sort = instance.sort; - if (sort) { - sort.after('lastSortedByChange', A.bind(instance._fixPluginsUI, instance)); - } + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetRecordChange, instance)); }, _fixPluginsUI: function() { @@ -79,6 +76,12 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { // TODO: Fix this on DataTable DataTableScroll scroll._syncWidths(); } + }, + + _uiSetRecordsetExt: function(recordset){ + var instance = this; + + instance._fixPluginsUI(); } }, {}); diff --git a/build/aui-datatable/aui-datatable-min.js b/build/aui-datatable/aui-datatable-min.js index 9fbee38f1c4..a1dc9c1ea23 100644 --- a/build/aui-datatable/aui-datatable-min.js +++ b/build/aui-datatable/aui-datatable-min.js @@ -1,4 +1,4 @@ -AUI.add("aui-datatable-base",function(f){var j=f.Lang,d=f.ArraySort.compare,o=j.isNumber,e=j.isString,h="change",m="childNodes",i="columnset",g="data",k="headers",l="id",c="recordset",b="render",a="#",n=" ";f.DataTable.Base=f.Base.create("datatable",f.DataTable.Base,[],{initializer:function(){var p=this;p.after(b,p._afterRender);p.get(c).after(h,f.bind(p._afterRecordsetChangeExt,p));},getCellNode:function(q,r){var p=this;return p.getRowNode(q).get(m).item(r.keyIndex);},getColNode:function(q){var p=this;var s=p.get(i);var r=s.getColumnIndex(s.getColumnByCell(q));return p._colgroupNode.get(m).item(r);},getRowNode:function(p){return f.one(a+p.get(l));},_afterRender:function(){var p=this;p._bindPluginsEvents();p._fixPluginsUI();},_afterRecordsetChangeExt:function(q){var p=this;p._uiSetRecordset(p.get("recordset"));p._fixPluginsUI();},_bindPluginsEvents:function(){var p=this;var q=p.sort;if(q){q.after("lastSortedByChange",f.bind(p._fixPluginsUI,p));}},_fixPluginsUI:function(){var q=this;var r=q.sort;var p=q.scroll;if(r&&p){p.syncUI();p._syncWidths();}}},{});f.Column=f.Base.create("column",f.Column,[],{},{ATTRS:{sortFn:{value:function(r,p,s,t){var q=d(r.getValue(s),p.getValue(s),t);if(q===0){q=d(r.get("id"),p.get("id"),t);}return q;}}}});f.Columnset=f.Base.create("columnset",f.Columnset,[],{getColumn:function(q){var p=this;if(e(q)){return this.idHash[q];}else{if(o(q)){return p.keys[q];}}return null;},getColumnByCell:function(q){var p=this;var r=q.getAttribute(k).split(n).pop()||q.get(l);return p.getColumn(r);},getColumnIndex:function(p){return p.keyIndex;},getLength:function(){var p=this;return p.keys.length;},_setDefinitions:function(p){return p;}},{});f.Recordset=f.Base.create("recordset",f.Recordset,[],{getRecordByRow:function(q){var p=this;return p.getRecord(q.get(l));},getRecordIndex:function(q){var p=this;return f.Array.indexOf(p._items,q);},updateRecordDataByKey:function(q,r,t){var p=this;var s=q.get(g);if(s){s[r]=t;q.set(g,s);}p.update(q,p.getRecordIndex(q));}},{});f.Plugin.DataTableScroll=f.Base.create("dataTableScroll",f.Plugin.DataTableScroll,[],{_syncWidths:function(){try{f.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(p){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]});AUI.add("aui-datatable-events",function(j){var R=j.Lang,s=R.isArray,F=R.isObject,e=R.isValue,b=j.Array.each,E=j.Object.keys,L=j.Object.values,x=j.Selector.test,l=j.ClassNameManager.getClassName,t=j.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),h=j.cached(function(S,A){return S+t(A.toLowerCase());}),M="boundingBox",O="cell",D="cellSelector",H="click",n="column",r="dblclick",c="events",w="header",p="host",d="inHead",Q="keydown",P="keyup",G="liner",y="mousedown",f="mouseenter",k="mouseleave",i="mouseup",C="recordset",I="row",u="table",N="tags",a="tagName",J="tbody",v="thead",B="tr",m="datatable",z="columnset",o=",",q=".",K=l(m,G);var g=j.Base.create("dataTableEvents",j.Plugin.Base,[],{_bubbling:false,_handler:null,_tagsFilter:null,initializer:function(T){var A=this;var S=A.get(N);A._tagsFilter=E(S).join(o);A._initEvents();},destructor:function(){var A=this;var S=A._handler;if(S){S.detach();}},updateEventPayload:function(V,S){var A=this;var U=A.get(p);var W=U._theadNode;var X=V.getData(d);var T=V.getData(G);var Y=V.getData(I);if(!e(X)){X=W.contains(V);V.setData(d,X);}if(!e(T)){T=V.one(q+K);V.setData(G,T);}if(!e(Y)){Y=V.ancestor(B);V.setData(I,Y);}return j.mix(S,{cell:V,column:U.get(z).getColumnByCell(V),inHead:X,liner:T,originalEvent:S,row:Y,record:U.get(C).getRecordByRow(Y)},true);},_filterBubble:function(X){var A=this;var W=A.get(p);var S=W._tableNode.getDOM();var T=[];while(X){var V=(X===S);if(x(X,A._tagsFilter,(V?null:S))){T.push(X);}if(V){break;}X=X.parentNode;}if(T.length){var U=W.getColNode(j.one(T[0]));if(U){T.splice(2,0,U.getDOM());}}return T;},_handleEvents:function(A){var W,U;var Z=this;var aa=Z.get(p);var ab=Z.get(N);var T=A.currentTarget;var S=Z._filterBubble(T.getDOM());var Y=Z.updateEventPayload(T,A);Z._bubbling=true;for(W=0,U=S.length;(W/gi,E=/[\r\n]/g,b=B(aA,N),g=B(aA,N,ag,aX),bi=B(aA,N,an,F),aW=B(aA,N,W,aX),ba=B(aA,N,v,aX),aB=B(aA,N,ac,m),aL=B(aA,N,ac,a5),aq=B(aA,N,az),q=B(aA,N,au),aE=B(aA,N,aX,n),R=B(aA,N,aM,aX),V=B(aA,I),aZ=B(aA,az),L=B(aA,aX),x=B(aA,a3),H=B(Q,aa),j=B(aj),ad=B(aj,c,aI,av),aU="
                                "; +AUI.add("aui-datatable-base",function(e){var j=e.Lang,c=e.ArraySort.compare,o=j.isNumber,d=j.isString,h="change",m="childNodes",i="columnset",f="data",k="headers",l="id",b="recordset",g="recordsetChange",a="#",n=" ";e.DataTable.Base=e.Base.create("datatable",e.DataTable.Base,[],{initializer:function(){var p=this;p._bindRecordsetRecordChange();p.after(g,p._afterRecordsetChangeExt);p.after(p._uiSetRecordsetExt,p,"_uiSetRecordset");},getCellNode:function(q,r){var p=this;return p.getRowNode(q).get(m).item(r.keyIndex);},getColNode:function(q){var p=this;var s=p.get(i);var r=s.getColumnIndex(s.getColumnByCell(q));return p._colgroupNode.get(m).item(r);},getRowNode:function(p){return e.one(a+p.get(l));},_afterRecordsetChangeExt:function(q){var p=this;p._bindRecordsetRecordChange();},_afterRecordsetRecordChange:function(q){var p=this;p._uiSetRecordset(p.get(b));},_bindRecordsetRecordChange:function(q){var p=this;p.get(b).after(h,e.bind(p._afterRecordsetRecordChange,p));},_fixPluginsUI:function(){var q=this;var r=q.sort;var p=q.scroll;if(r&&p){p.syncUI();p._syncWidths();}},_uiSetRecordsetExt:function(q){var p=this;p._fixPluginsUI();}},{});e.Column=e.Base.create("column",e.Column,[],{},{ATTRS:{sortFn:{value:function(r,p,s,t){var q=c(r.getValue(s),p.getValue(s),t);if(q===0){q=c(r.get("id"),p.get("id"),t);}return q;}}}});e.Columnset=e.Base.create("columnset",e.Columnset,[],{getColumn:function(q){var p=this;if(d(q)){return this.idHash[q];}else{if(o(q)){return p.keys[q];}}return null;},getColumnByCell:function(q){var p=this;var r=q.getAttribute(k).split(n).pop()||q.get(l);return p.getColumn(r);},getColumnIndex:function(p){return p.keyIndex;},getLength:function(){var p=this;return p.keys.length;},_setDefinitions:function(p){return p;}},{});e.Recordset=e.Base.create("recordset",e.Recordset,[],{getRecordByRow:function(q){var p=this;return p.getRecord(q.get(l));},getRecordIndex:function(q){var p=this;return e.Array.indexOf(p._items,q);},updateRecordDataByKey:function(q,r,t){var p=this;var s=q.get(f);if(s){s[r]=t;q.set(f,s);}p.update(q,p.getRecordIndex(q));}},{});e.Plugin.DataTableScroll=e.Base.create("dataTableScroll",e.Plugin.DataTableScroll,[],{_syncWidths:function(){try{e.Plugin.DataTableScroll.superclass._syncWidths.apply(this,arguments);}catch(p){}}},{NS:"scroll",NAME:"dataTableScroll"});},"@VERSION@",{requires:["aui-base","datatable","plugin"]});AUI.add("aui-datatable-events",function(j){var R=j.Lang,s=R.isArray,F=R.isObject,e=R.isValue,b=j.Array.each,E=j.Object.keys,L=j.Object.values,x=j.Selector.test,l=j.ClassNameManager.getClassName,t=j.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),h=j.cached(function(S,A){return S+t(A.toLowerCase());}),M="boundingBox",O="cell",D="cellSelector",H="click",n="column",r="dblclick",c="events",w="header",p="host",d="inHead",Q="keydown",P="keyup",G="liner",y="mousedown",f="mouseenter",k="mouseleave",i="mouseup",C="recordset",I="row",u="table",N="tags",a="tagName",J="tbody",v="thead",B="tr",m="datatable",z="columnset",o=",",q=".",K=l(m,G);var g=j.Base.create("dataTableEvents",j.Plugin.Base,[],{_bubbling:false,_handler:null,_tagsFilter:null,initializer:function(T){var A=this;var S=A.get(N);A._tagsFilter=E(S).join(o);A._initEvents();},destructor:function(){var A=this;var S=A._handler;if(S){S.detach();}},updateEventPayload:function(V,S){var A=this;var U=A.get(p);var W=U._theadNode;var X=V.getData(d);var T=V.getData(G);var Y=V.getData(I);if(!e(X)){X=W.contains(V);V.setData(d,X);}if(!e(T)){T=V.one(q+K);V.setData(G,T);}if(!e(Y)){Y=V.ancestor(B);V.setData(I,Y);}return j.mix(S,{cell:V,column:U.get(z).getColumnByCell(V),inHead:X,liner:T,originalEvent:S,row:Y,record:U.get(C).getRecordByRow(Y)},true);},_filterBubble:function(X){var A=this;var W=A.get(p);var S=W._tableNode.getDOM();var T=[];while(X){var V=(X===S);if(x(X,A._tagsFilter,(V?null:S))){T.push(X);}if(V){break;}X=X.parentNode;}if(T.length){var U=W.getColNode(j.one(T[0]));if(U){T.splice(2,0,U.getDOM());}}return T;},_handleEvents:function(A){var W,U;var Z=this;var aa=Z.get(p);var ab=Z.get(N);var T=A.currentTarget;var S=Z._filterBubble(T.getDOM());var Y=Z.updateEventPayload(T,A);Z._bubbling=true;for(W=0,U=S.length;(W/gi,E=/[\r\n]/g,b=B(aA,N),g=B(aA,N,ag,aX),bi=B(aA,N,an,F),aW=B(aA,N,W,aX),ba=B(aA,N,v,aX),aB=B(aA,N,ac,m),aL=B(aA,N,ac,a5),aq=B(aA,N,az),q=B(aA,N,au),aE=B(aA,N,aX,n),R=B(aA,N,aM,aX),V=B(aA,I),aZ=B(aA,az),L=B(aA,aX),x=B(aA,a3),H=B(Q,aa),j=B(aj),ad=B(aj,c,aI,av),aU="
                                "; var a4=function(){};a4.NAME="dataTableCellEditorSupport";a4.ATTRS={editEvent:{setter:"_setEditEvent",validator:a0,value:aK}};aw.mix(a4.prototype,{initializer:function(){var A=this;A.after({render:A._afterRenderEditor});A.on(A.get(G),A._onCellEdit);A.after(A._afterUiSetRecordset,A,"_uiSetRecordset");},getCellEditor:function(bk,bm){var A=this;var bl=bm.get(f);var bn=bk.get(aG).editor;if(bl===false||bn===false){return null;}return bn||bl;},getRecordColumnValue:function(A,bk){return A.getValue(bk.get(aT));},syncEditableColumnsUI:function(){var A=this;var bl=A.get(C);var bk=A.get(k);aw.each(bl.idHash,function(bn){var bm=bn.get(f);if(a6(bm)){aw.all("[headers="+bn.get(aJ)+"]").addClass(H);}});aw.each(bk.get(ak),function(bm){var bn=bm.get(aG).editor;var bo=a6(bn);aw.all(h+bm.get("id")+">td").each(function(br,bp){var bq=bl.getColumn(bp);if(bn===false){br.removeClass(H);}else{if(bo||(bq.get(f)!==false)){br.addClass(H);}}});});},_afterUiSetRecordset:function(bk){var A=this;A.syncEditableColumnsUI();},_afterRenderEditor:function(bk){var A=this;if(!A.events){A.plug(aw.Plugin.DataTableEvents);}},_editCell:function(bo){var A=this;var bq=A.get(C);var bp=A.get(k);var bn=bo.column;var bk=bo.record;A.activeColumnIndex=bq.getColumnIndex(bn);A.activeRecordIndex=bp.getRecordIndex(bk);var bl=bo.alignNode||bo.cell;var bm=A.getCellEditor(bk,bn);if(a6(bm)){if(!bm.get(a9)){bm.on({visibleChange:aw.bind(A._onEditorVisibleChange,A),save:aw.bind(A._onEditorSave,A)});bm.render();}bm.set(a5,A.getRecordColumnValue(bk,bn));bm.show().move(bl.getXY());}},_onCellEdit:function(bk){var A=this;A._editCell(bk);},_onEditorVisibleChange:function(bp){var bk=this;var bn=bp.currentTarget;var bm=bk.selection;if(bm){var bl=bm.getActiveRecord();var bo=bm.getActiveColumn();var A=bk.getCellNode(bl,bo);var bq=bk.getRowNode(bl);if(bp.newVal){bn._syncFocus();}else{bm.select(A,bq);}}},_onEditorSave:function(bm){var A=this;var bl=bm.currentTarget;var bn=A.get(k);bl.set(a5,bm.newVal);var bk=A.selection;if(bk){bn.updateRecordDataByKey(bk.getActiveRecord(),bk.getActiveColumn().get(be),bm.newVal);}},_setEditEvent:function(A){return aS+aN(A);}});aw.DataTable.CellEditorSupport=a4;aw.DataTable.Base=aw.Base.create("dataTable",aw.DataTable.Base,[aw.DataTable.CellEditorSupport]);var r=aw.Component.create({NAME:aO,ATTRS:{editable:{value:false,validator:aV},elementName:{value:a5,validator:a0},footerContent:{value:U},hideOnSave:{value:true,validator:aV},inputFormatter:{value:function(A){if(a0(A)){A=A.replace(E,aU);}return A;}},outputFormatter:{value:function(bk){var A=this;if(a0(bk)){if(A.get(z)){bk=aP.unescapeEntities(bk);}bk=bk.replace(t,a8);}return bk;}},showToolbar:{value:true,validator:aV},strings:{value:{edit:"Edit",save:"Save",cancel:"Cancel"}},tabIndex:{value:1},toolbar:{setter:"_setToolbar",validator:J,value:null},unescapeValue:{value:true,validator:aV},validator:{setter:"_setValidator",validator:J,value:null},value:{value:U},visible:{value:false}},EXTENDS:aw.Overlay,UI_ATTRS:[aa,Z,a5],prototype:{CONTENT_TEMPLATE:"
                                ",ELEMENT_TEMPLATE:null,elements:null,validator:null,_hDocMouseDownEv:null,initializer:function(bk){var A=this;A._initEvents();},destructor:function(){var bk=this;var A=bk._hDocMouseDownEv;var bm=bk.toolbar;var bl=bk.validator;if(A){A.detach();}if(bm){bm.destroy();}if(bl){bl.destroy();}},bindUI:function(){var A=this;A.get(s).on(be,aw.bind(A._onEscKey,A),"down:27");},formatValue:function(bk,bl){var A=this;if(aQ(bk)){bl=bk.call(A,bl);}return bl;},getValue:function(){var A=this;return A.formatValue(A.get(d),A.getElementsValue());},_initEvents:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn},initEdit:{defaultFn:A._defInitEditFn,fireOnce:true},initValidator:{defaultFn:A._defInitValidatorFn,fireOnce:true},initToolbar:{defaultFn:A._defInitToolbarFn,fireOnce:true},save:{defaultFn:A._defSaveFn}});A.after({render:A._afterRender,visibleChange:aw.debounce(A._debounceVisibleChange,350,A)});A.on({"form-validator:submit":aw.bind(A._onSubmit,A)});},_afterRender:function(){var A=this;A._handleInitValidatorEvent();A._handleInitToolbarEvent();},_defCancelFn:function(bk){var A=this;A.hide();},_defInitValidatorFn:function(bk){var A=this;A.validator=new aw.FormValidator(A.get(X));},_defInitToolbarFn:function(bl){var A=this;var bk=A.get(aa);A.toolbar=new aw.Toolbar(A.get(P)).render(A.footerNode);if(bk){A._uiSetEditable(bk);}},_defSaveFn:function(bk){var A=this;if(A.get(ay)){A.hide();}},_debounceVisibleChange:function(bl){var bk=this;var A=bk._hDocMouseDownEv;if(bl.newVal){if(!A){bk._hDocMouseDownEv=aw.getDoc().on(Y,aw.bind(bk._onDocMouseDownExt,bk));}}else{if(A){A.detach();bk._hDocMouseDownEv=null;}}},_handleCancelEvent:function(){var A=this;A.fire(ao);},_handleEditEvent:function(){var A=this;A.fire(N);},_handleInitEditEvent:function(){var A=this;if(A.get(a9)){this.fire(o);}},_handleInitValidatorEvent:function(){var A=this;if(A.get(a9)){this.fire(ax);}},_handleInitToolbarEvent:function(){var A=this;if(A.get(a9)&&A.get(Z)){this.fire(bf);}},_handleSaveEvent:function(){var A=this;if(!A.validator.hasErrors()){A.fire(aM,{newVal:A.getValue(),prevVal:A.get(a5)});}},_onDocMouseDownExt:function(bl){var A=this;var bk=A.get(s);if(!bk.contains(bl.target)){A.set(af,false);}},_onEscKey:function(bk){var A=this;A.hide();},_onSubmit:function(bl){var A=this;var bk=bl.validator;A._handleSaveEvent();if(bk){bk.formEvent.halt();}},_setToolbar:function(bl){var bk=this;var A=bk.getStrings();return aw.merge({activeState:false,children:[{label:A[aM],icon:ar,type:a1},{handler:aw.bind(bk._handleCancelEvent,bk),label:A[ao]}]},bl);},_setValidator:function(bk){var A=this;return aw.merge({boundingBox:A.get(w),bubbleTargets:A},bk);},_uiSetShowToolbar:function(bl){var A=this;var bk=A.footerNode;if(bl){bk.show();}else{bk.hide();}A._handleInitToolbarEvent();},getElementsValue:function(){var A=this;var bk=A.elements;if(bk){return bk.get(a5);}return U;},renderUI:function(){var A=this;if(A.ELEMENT_TEMPLATE){A.elements=aw.Node.create(A.ELEMENT_TEMPLATE);A._syncElementsName(); A.setStdModContent(at.BODY,A.elements);}},_defInitEditFn:function(A){},_syncElementsFocus:function(){var A=this;A.elements.selectText();},_syncElementsName:function(){var A=this;A.elements.setAttribute(m,A.get(aF));},_syncFocus:function(){var A=this;aw.later(0,A,A._syncElementsFocus);},_uiSetEditable:function(bl){var A=this;var bk=A.toolbar;if(A.get(a9)&&bk){if(bl){bk.add({handler:aw.bind(A._handleEditEvent,A),icon:l,label:A.getString(N)},1);}else{bk.remove(1);}}},_uiSetValue:function(bl){var A=this;var bk=A.elements;if(bk){bk.val(A.formatValue(A.get(bb),bl));}}}});aw.BaseCellEditor=r;var bh=aw.Component.create({NAME:u,ATTRS:{inputFormatter:{value:null},options:{setter:"_setOptions",value:{},validator:J},outputFormatter:{value:null},selectedAttrName:{value:aY,validator:a0},strings:{value:{add:"Add",cancel:"Cancel",addOption:"Add option",edit:"Edit options",editOptions:"Edit option(s)",name:"Name",remove:"Remove",save:"Save",saveOptions:"Save options",stopEditing:"Stop editing",value:"Value"}}},EXTENDS:aw.BaseCellEditor,UI_ATTRS:[a2],prototype:{EDIT_TEMPLATE:'
                                ',EDIT_OPTION_ROW_TEMPLATE:'
                                '+''+' '+' '+'{remove} '+"
                                ",EDIT_ADD_LINK_TEMPLATE:'{addOption} ',EDIT_LABEL_TEMPLATE:'
                                {editOptions}
                                ',EDIT_SAVE_LINK_TEMPLATE:'{saveOptions} ',editContainer:null,editSortable:null,options:null,initializer:function(){var A=this;A.on(N,A._onEditEvent);A.on(aM,A._onSave);A.after(bf,A._afterInitToolbar);},addNewOption:function(bl,bn){var A=this;var bm=A.editContainer.all(i+aE).last();var bk=aw.Node.create(A._createEditOption(bl||U,bn||U));bm.placeAfter(bk);bk.one(ac).focus();},removeOption:function(A){A.remove();},saveOptions:function(){var A=this;var bn=A.editContainer;if(bn){var bm=bn.all(i+aB);var bk=bn.all(i+aL);var bl={};bm.each(function(bq,bp){var bo=bq.val();var br=bk.item(bp).val();if(bo&&br){bl[br]=bo;}});A.set(a2,bl);A._uiSetValue(A.get(a5));A.toggleEdit();}},toggleEdit:function(){var A=this;A.editContainer.toggle();},_createOptions:function(bl){var bp=this;var A=bp.elements;var bn=[];var bk=[];var bm=bp.OPTION_TEMPLATE;var bq=bp.OPTION_WRAPPER;aw.each(bl,function(bu,bt){var bs={id:aw.guid(),label:bu,name:bt,value:bt};if(bm){bn.push(aw.substitute(bm,bs));}if(bq){bk.push(aw.substitute(bq,bs));}});var br=aw.NodeList.create(bn.join(U));var bo=aw.NodeList.create(bk.join(U));if(bo.size()){bo.each(function(bt,bs){bt.prepend(br.item(bs));});A.setContent(bo);}else{A.setContent(br);}bp.options=br;},_createEditBuffer:function(){var bk=this;var A=bk.getStrings();var bl=[];bl.push(ae.sub(bk.EDIT_LABEL_TEMPLATE,{editOptions:A[al]}));aw.each(bk.get(a2),function(bm,bn){bl.push(bk._createEditOption(bm,bn));});bl.push(ae.sub(bk.EDIT_ADD_LINK_TEMPLATE,{addOption:A[a7]}));bl.push(ae.sub(bk.EDIT_SAVE_LINK_TEMPLATE,{saveOptions:A[ah]}));return bl.join(U);},_createEditOption:function(bl,bm){var bk=this;var A=bk.getStrings();return ae.sub(bk.EDIT_OPTION_ROW_TEMPLATE,{remove:A[bc],titleName:A[m],titleValue:A[a5],valueName:bl,valueValue:bm});},_defInitEditFn:function(bk){var A=this;var bl=aw.Node.create(A.EDIT_TEMPLATE);bl.delegate("click",aw.bind(A._onEditLinkClickEvent,A),i+q);bl.delegate("keydown",aw.bind(A._onEditKeyEvent,A),ac);A.editContainer=bl;A.setStdModContent(at.BODY,bl.hide(),at.AFTER);A.editSortable=new aw.Sortable({container:bl,handles:[i+bi],nodes:i+aE,opacity:".3"}).delegate.dd.plug(aw.Plugin.DDConstrained,{constrain:bl,stickY:true});A._syncEditOptionsUI();},_getSelectedOptions:function(){var A=this;var bk=[];A.options.each(function(bl){if(bl.get(A.get(aD))){bk.push(bl);}});return aw.all(bk);},_onEditEvent:function(bk){var A=this;A._handleInitEditEvent();A.toggleEdit();A._syncEditOptionsUI();},_onEditLinkClickEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bl.test(i+g)){A.addNewOption();}else{if(bl.test(i+R)){A.saveOptions();}else{if(bl.test(i+ba)){A.toggleEdit();}else{if(bl.test(i+aW)){A.removeOption(bl.ancestor(i+aE));}}}}bk.halt();},_onEditKeyEvent:function(bk){var A=this;var bl=bk.currentTarget;if(bk.isKey(ai)){var bm=bl.next(ac);if(bm){bm.selectText();}else{A.addNewOption();}bk.halt();}},_onSave:function(bk){var A=this;A.saveOptions();},_setOptions:function(bk){var A={};if(e(bk)){bg.each(bk,function(bl){A[bl]=bl;});}else{if(J(bk)){A=bk;}}return A;},_syncEditOptionsUI:function(){var A=this;A.editContainer.setContent(A._createEditBuffer());},_uiSetOptions:function(bk){var A=this;A._createOptions(bk);A._syncElementsName();},_uiSetValue:function(bl){var A=this;var bk=A.options;if(bk&&bk.size()){bk.set(A.get(aD),false);bg.each(bg(bl),function(bm){bk.filter('[value="'+bm+'"]').set(A.get(aD),true);});}return bl;}}});aw.BaseOptionsCellEditor=bh;var aC=aw.Component.create({NAME:y,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextCellEditor=aC;var aH=aw.Component.create({NAME:T,EXTENDS:aw.BaseCellEditor,prototype:{ELEMENT_TEMPLATE:''}});aw.TextAreaCellEditor=aH;var O=aw.Component.create({NAME:aR,ATTRS:{multiple:{value:false,validator:aV}},EXTENDS:aw.BaseOptionsCellEditor,UI_ATTRS:[ab],prototype:{ELEMENT_TEMPLATE:'',OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;if(A.get(ab)){return A._getSelectedOptions().get(a5);}return A.elements.get(a5);},_syncElementsFocus:function(){var A=this;A.elements.focus();},_uiSetMultiple:function(bl){var A=this;var bk=A.elements;if(bl){bk.setAttribute(ab,ab);}else{bk.removeAttribute(ab); }}}});aw.DropDownCellEditor=O;var ap=aw.Component.create({NAME:D,ATTRS:{selectedAttrName:{value:p}},EXTENDS:aw.BaseOptionsCellEditor,prototype:{ELEMENT_TEMPLATE:'
                                ',OPTION_TEMPLATE:'',OPTION_WRAPPER:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5);},_syncElementsFocus:function(){var A=this;var bk=A.options;if(bk&&bk.size()){bk.item(0).focus();}}}});aw.CheckboxCellEditor=ap;var K=aw.Component.create({NAME:am,EXTENDS:aw.CheckboxCellEditor,prototype:{OPTION_TEMPLATE:'',getElementsValue:function(){var A=this;return A._getSelectedOptions().get(a5)[0];},_syncElementsName:function(){var A=this;var bk=A.options;if(bk){bk.setAttribute(m,A.get(aF));}}}});aw.RadioCellEditor=K;var a=aw.Component.create({NAME:M,EXTENDS:aw.BaseCellEditor,ATTRS:{bodyContent:{value:U},calendar:{setter:"_setCalendar",validator:J,value:null}},prototype:{ELEMENT_TEMPLATE:'',initializer:function(){var A=this;A.on("calendar:select",aw.bind(A._onDateSelect,A));},getElementsValue:function(){var A=this;return A.calendar.getFormattedSelectedDates().join(bj);},_afterRender:function(){var A=this;aw.DateCellEditor.superclass._afterRender.apply(A,arguments);A.calendar=new aw.Calendar(A.get(S)).render(A.bodyNode);},_onDateSelect:function(bk){var A=this;A.elements.val(bk.date.formatted.join(bj));},_setCalendar:function(bk){var A=this;return aw.merge({bubbleTargets:A},bk);},_uiSetValue:function(bl){var A=this;var bk=A.calendar;if(bk){if(bl&&a0(bl)){bl=bl.split(bj);}A.calendar.set("dates",bl);}}}});aw.DateCellEditor=a;},"@VERSION@",{requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"],skinnable:true});AUI.add("aui-datatable-selection",function(B){var j=B.Lang,s=j.isBoolean,v=j.isString,G=B.getClassName,i=B.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),o="cell",m="columnset",g="columnsetChange",r="datatable",E="down",J="esc",u="focused",H="host",p="id",d="keydown",x="left",q="mousedown",D="mouseEvent",w="multiple",I="recordset",f="recordsetChange",l="return",t="right",n="row",c="select",k="selected",y="selectRow",e="tab",z="tabindex",F="tr",h="up",a=G(r,o,k),C=G(r,n,k);var b=B.Base.create("dataTableSelection",B.Plugin.Base,[],{activeColumnIndex:-1,activeRecordIndex:-1,handlerKeyDown:null,selectedCellHash:null,selectedColumnHash:null,selectedRowHash:null,initializer:function(){var A=this;A.selectedCellHash={};A.selectedColumnHash={};A.selectedRowHash={};A.publish({select:{defaultFn:A._defSelectFn}});A.afterHostEvent(A.get(D),A._afterMouseEvent);A.afterHostEvent(g,A._afterHostColumnsetChange);A.afterHostEvent(f,A._afterHostRecordsetChange);A.handlerKeyDown=B.getDoc().on(d,B.bind(A._afterKeyEvent,A));},destroy:function(){var A=this;var K=A.handlerKeyDown;if(K){K.detach();}},getActiveColumn:function(){var A=this;var K=A.get(H);return K.get(m).getColumn(A.activeColumnIndex);},getActiveRecord:function(){var A=this;var K=A.get(H);return K.get(I).getRecord(A.activeRecordIndex);},isCellSelected:function(K){var A=this;return A.selectedCellHash[K.get(p)];},isColumnSelected:function(A){},isRowSelected:function(K){var A=this;return A.selectedRowHash[K.get(p)];},select:function(K,Q){var A=this;var N=A.get(H);var P=N.get(m);var O=N.get(I);var M=P.getColumnByCell(K);var L=O.getRecordByRow(Q||K.ancestor(F));A.activeColumnIndex=P.getColumnIndex(M);A.activeRecordIndex=O.getRecordIndex(L);if(K){A.selectCell(K);}if(A.get(y)&&Q){A.selectRow(Q);}},selectCell:function(K){var A=this;if(!A.get(w)){A.unselectAllCells();}A.selectedCellHash[K.get(p)]=K;K.setAttribute(z,0).focus();K.addClass(a);},selectColumn:function(A){},selectRow:function(K){var A=this;if(!A.get(w)){A.unselectAllRows();}A.selectedRowHash[K.get(p)]=K;K.addClass(C);},toggleCell:function(K,L){var A=this;if(L||!A.isCellSelected(K)){A.selectCell(K);}else{A.unselectCell(K);}},toggleColumn:function(A,K){},toggleRow:function(L,K){var A=this;if(K||!A.isRowSelected(L)){A.selectRow(L);}else{A.unselectRow(L);}},unselectCell:function(K){var A=this;delete A.selectedCellHash[K.get(p)];K.removeAttribute(z);K.removeClass(a);},unselectColumn:function(A){},unselectRow:function(K){var A=this;delete A.selectedRowHash[K.get(p)];K.removeClass(C);},unselectAllCells:function(){var A=this;B.each(A.selectedCellHash,B.bind(A.unselectCell,A));},unselectAllColumns:function(){},unselectAllRows:function(){var A=this;B.each(A.selectedRowHash,B.bind(A.unselectRow,A));},_afterHostColumnsetChange:function(K){var A=this;A._cleanUp();},_afterHostRecordsetChange:function(K){var A=this;A._cleanUp();},_afterMouseEvent:function(K){var A=this;A._handleSelectEvent(K);},_afterKeyEvent:function(N){var A=this;var M=A.get(H);var L=A.getActiveColumn();var K=A.getActiveRecord();if(!M.get(u)||!L||!K){return;}if(M.events){M.events.updateEventPayload(M.getCellNode(K,L),N);}if(N.isNavKey()){if(N.isKey(J)){A._onEscKey(N);}else{if(N.isKey(l)){A._onReturnKey(N);}else{A._navigate(N);}}N.halt();}},_cleanUp:function(){var A=this;A.selectedCellHash={};A.selectedColumnHash={};A.selectedRowHash={};},_defSelectFn:function(K){var A=this;A.select(K.cell,K.row);},_navigate:function(K){var A=this;A._updateNavKeyInfo(K);A._handleSelectEvent(K);},_onEscKey:function(M){var A=this;var L=A.get(H);var K=L.getCellEditor(M.record,M.column);if(K){K.hide();}},_onReturnKey:function(L){var A=this;var K=A.get(H);K._editCell(L);},_handleSelectEvent:function(K){var A=this;A.fire(c,{cell:K.cell,column:K.column,inHead:K.inHead,liner:K.liner,originalEvent:K.originalEvent,row:K.row,record:K.record});},_updateNavKeyInfo:function(A){var T=this;var U=T.get(H);var K=A.originalEvent;var M=U.get(m);var Q=A.column.keyIndex;var S=U.get(I);var N=S.getRecordIndex(A.record);var L=K.ctrlKey||K.metaKey; diff --git a/build/aui-datatable/aui-datatable.js b/build/aui-datatable/aui-datatable.js index 9711a45df12..f363b2c1611 100644 --- a/build/aui-datatable/aui-datatable.js +++ b/build/aui-datatable/aui-datatable.js @@ -13,7 +13,7 @@ var Lang = A.Lang, HEADERS = 'headers', ID = 'id', RECORDSET = 'recordset', - RENDER = 'render', + RECORDSET_CHANGE = 'recordsetChange', _HASH = '#', _SPACE = ' '; @@ -22,8 +22,10 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { initializer: function() { var instance = this; - instance.after(RENDER, instance._afterRender); - instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetChangeExt, instance)); + instance._bindRecordsetRecordChange(); + + instance.after(RECORDSET_CHANGE, instance._afterRecordsetChangeExt); + instance.after(instance._uiSetRecordsetExt, instance, '_uiSetRecordset'); }, getCellNode: function(record, column) { @@ -44,27 +46,22 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { return A.one(_HASH+record.get(ID)); }, - _afterRender: function() { + _afterRecordsetChangeExt: function(event) { var instance = this; - instance._bindPluginsEvents(); - instance._fixPluginsUI(); + instance._bindRecordsetRecordChange(); }, - _afterRecordsetChangeExt: function(event) { - var instance = this; + _afterRecordsetRecordChange: function(event) { + var instance = this; - instance._uiSetRecordset(instance.get('recordset')); - instance._fixPluginsUI(); + instance._uiSetRecordset(instance.get(RECORDSET)); }, - _bindPluginsEvents: function() { + _bindRecordsetRecordChange: function(event){ var instance = this; - var sort = instance.sort; - if (sort) { - sort.after('lastSortedByChange', A.bind(instance._fixPluginsUI, instance)); - } + instance.get(RECORDSET).after(CHANGE, A.bind(instance._afterRecordsetRecordChange, instance)); }, _fixPluginsUI: function() { @@ -79,6 +76,12 @@ A.DataTable.Base = A.Base.create('datatable', A.DataTable.Base, [], { // TODO: Fix this on DataTable DataTableScroll scroll._syncWidths(); } + }, + + _uiSetRecordsetExt: function(recordset){ + var instance = this; + + instance._fixPluginsUI(); } }, {}); diff --git a/build/aui-property-list/aui-property-list-debug.js b/build/aui-property-list/aui-property-list-debug.js index 7f49bc1544a..30912a128dd 100644 --- a/build/aui-property-list/aui-property-list-debug.js +++ b/build/aui-property-list/aui-property-list-debug.js @@ -87,6 +87,7 @@ var PropertyList = A.Component.create({ initializer: function() { var instance = this; + instance.after(RECORDSET_CHANGE, instance._plugDependencies); instance.after(instance._syncScrollWidth, instance, '_uiSetWidth'); instance.after(instance._syncScrollHeight, instance, '_uiSetHeight'); diff --git a/build/aui-property-list/aui-property-list-min.js b/build/aui-property-list/aui-property-list-min.js index 7e26a81a57a..be427c954d5 100644 --- a/build/aui-property-list/aui-property-list-min.js +++ b/build/aui-property-list/aui-property-list-min.js @@ -1 +1 @@ -AUI.add("aui-property-list",function(q){var i=q.Lang,n=i.isObject,p="auto",l="columnset",d="dblclick",r="height",c="key",k="name",b="propertyName",u="recordset",f="recordsetChange",o="scroll",s="selection",g="sort",e="td",j="value",h="width",m="",t="property-list";var a=q.Component.create({NAME:t,ATTRS:{columnset:{valueFn:function(){var v=this;return[{editor:false,key:k,label:v.getString(b),sortable:true},{editor:v.getDefaultEditor(),key:j,label:v.getString(j),sortable:true,width:"auto"}];}},editEvent:{value:d},recordset:{value:[{name:m,value:m}]},scroll:{value:{width:p},validator:n},selection:{value:{selectRow:true},validator:n},sort:{validator:n},strings:{value:{propertyName:"Property Name",value:"Value"}}},EXTENDS:q.DataTable.Base,prototype:{initializer:function(){var v=this;v.after(v._syncScrollWidth,v,"_uiSetWidth");v.after(v._syncScrollHeight,v,"_uiSetHeight");v._plugDependencies();},_editCell:function(w){var v=this;var x=v.get(l);if(w.column.get(c)===k){w.alignNode=w.cell.next(e);w.column=x.keyHash[j];}return q.PropertyList.superclass._editCell.call(this,w);},getDefaultEditor:function(){return new q.TextCellEditor();},_onEditorSave:function(x){var v=this;var w=v.selection;if(w){w.activeColumnIndex=1;}return q.PropertyList.superclass._onEditorSave.call(this,x);},_plugDependencies:function(){var v=this;var w=v.get(u);if(!w.hasPlugin(q.Plugin.RecordsetSort)){w.plug(q.Plugin.RecordsetSort,{dt:v});w.sort.addTarget(v);}v.plug(q.Plugin.DataTableSelection,v.get(s)).plug(q.Plugin.DataTableSort,v.get(g)).plug(q.Plugin.DataTableScroll,v.get(o));},_syncScrollHeight:function(w){var v=this;v.scroll.set(r,w);},_syncScrollWidth:function(w){var v=this;v.scroll.set(h,w);}}});q.PropertyList=a;},"@VERSION@",{requires:["aui-datatable"],skinnable:true}); \ No newline at end of file +AUI.add("aui-property-list",function(q){var i=q.Lang,n=i.isObject,p="auto",l="columnset",d="dblclick",r="height",c="key",k="name",b="propertyName",u="recordset",f="recordsetChange",o="scroll",s="selection",g="sort",e="td",j="value",h="width",m="",t="property-list";var a=q.Component.create({NAME:t,ATTRS:{columnset:{valueFn:function(){var v=this;return[{editor:false,key:k,label:v.getString(b),sortable:true},{editor:v.getDefaultEditor(),key:j,label:v.getString(j),sortable:true,width:"auto"}];}},editEvent:{value:d},recordset:{value:[{name:m,value:m}]},scroll:{value:{width:p},validator:n},selection:{value:{selectRow:true},validator:n},sort:{validator:n},strings:{value:{propertyName:"Property Name",value:"Value"}}},EXTENDS:q.DataTable.Base,prototype:{initializer:function(){var v=this;v.after(f,v._plugDependencies);v.after(v._syncScrollWidth,v,"_uiSetWidth");v.after(v._syncScrollHeight,v,"_uiSetHeight");v._plugDependencies();},_editCell:function(w){var v=this;var x=v.get(l);if(w.column.get(c)===k){w.alignNode=w.cell.next(e);w.column=x.keyHash[j];}return q.PropertyList.superclass._editCell.call(this,w);},getDefaultEditor:function(){return new q.TextCellEditor();},_onEditorSave:function(x){var v=this;var w=v.selection;if(w){w.activeColumnIndex=1;}return q.PropertyList.superclass._onEditorSave.call(this,x);},_plugDependencies:function(){var v=this;var w=v.get(u);if(!w.hasPlugin(q.Plugin.RecordsetSort)){w.plug(q.Plugin.RecordsetSort,{dt:v});w.sort.addTarget(v);}v.plug(q.Plugin.DataTableSelection,v.get(s)).plug(q.Plugin.DataTableSort,v.get(g)).plug(q.Plugin.DataTableScroll,v.get(o));},_syncScrollHeight:function(w){var v=this;v.scroll.set(r,w);},_syncScrollWidth:function(w){var v=this;v.scroll.set(h,w);}}});q.PropertyList=a;},"@VERSION@",{requires:["aui-datatable"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-property-list/aui-property-list.js b/build/aui-property-list/aui-property-list.js index 7f49bc1544a..30912a128dd 100644 --- a/build/aui-property-list/aui-property-list.js +++ b/build/aui-property-list/aui-property-list.js @@ -87,6 +87,7 @@ var PropertyList = A.Component.create({ initializer: function() { var instance = this; + instance.after(RECORDSET_CHANGE, instance._plugDependencies); instance.after(instance._syncScrollWidth, instance, '_uiSetWidth'); instance.after(instance._syncScrollHeight, instance, '_uiSetHeight'); diff --git a/build/datatable-base/datatable-base.js b/build/datatable-base/datatable-base.js index d401208e809..55765791ce4 100644 --- a/build/datatable-base/datatable-base.js +++ b/build/datatable-base/datatable-base.js @@ -16,7 +16,7 @@ var YLang = Y.Lang, DATATABLE = "datatable", COLUMN = "column", - + FOCUS = "focus", KEYDOWN = "keydown", MOUSEENTER = "mouseenter", @@ -44,7 +44,7 @@ var YLang = Y.Lang, TEMPLATE_TD = '
                                {value}
                                ', TEMPLATE_VALUE = '{value}', TEMPLATE_MSG = ''; - + /** @@ -91,7 +91,7 @@ Y.mix(Column, { valueFn: "_defaultId", readOnly: true }, - + /** * @attribute key * @description User-supplied identifier. Defaults to id. @@ -121,7 +121,7 @@ Y.mix(Column, { label: { valueFn: "_defaultLabel" }, - + /** * @attribute children * @description Array of child column definitions (for nested headers). @@ -130,7 +130,7 @@ Y.mix(Column, { children: { value: null }, - + /** * @attribute abbr * @description TH abbr attribute. @@ -146,7 +146,7 @@ Y.mix(Column, { readOnly: true, getter: "_getClassnames" }, - + // Column formatter formatter: {}, @@ -250,7 +250,7 @@ Y.extend(Column, Y.Widget, { * @type Number */ keyIndex: null, - + /** * @property headers * @description Array of TH IDs associated with this column, for TD "headers" @@ -267,7 +267,7 @@ Y.extend(Column, Y.Widget, { * @default 1 */ colSpan: 1, - + /** * Number of rows the header spans. Value is set by Columnset code. * @@ -292,7 +292,7 @@ Y.extend(Column, Y.Widget, { * @property thNode * @type Y.Node */ - + thNode: null, /*TODO @@ -300,9 +300,9 @@ Y.extend(Column, Y.Widget, { * * @property thLinerNode * @type Y.Node - + thLinerNode: null,*/ - + ///////////////////////////////////////////////////////////////////////////// // // METHODS @@ -486,7 +486,7 @@ Y.extend(Columnset, Y.Base, { _setDefinitions: function(definitions) { return Y.clone(definitions); }, - + ///////////////////////////////////////////////////////////////////////////// // // PROPERTIES @@ -954,7 +954,7 @@ Y.mix(DTBase, { ///////////////////////////////////////////////////////////////////////////// HTML_PARSER: { /*caption: function (srcNode) { - + }*/ } }); @@ -980,7 +980,7 @@ Y.extend(DTBase, Y.Widget, { * @default '
                                {value}
                                ' */ tdTemplate: TEMPLATE_TD, - + /** * @property _theadNode * @description Pointer to THEAD node. @@ -988,7 +988,7 @@ Y.extend(DTBase, Y.Widget, { * @private */ _theadNode: null, - + /** * @property _tbodyNode * @description Pointer to TBODY node. @@ -996,7 +996,7 @@ Y.extend(DTBase, Y.Widget, { * @private */ _tbodyNode: null, - + /** * @property _msgNode * @description Pointer to message display node. @@ -1047,7 +1047,7 @@ Y.extend(DTBase, Y.Widget, { rs.addTarget(this); return rs; }, - + /** * Updates the UI if Recordset is changed. * @@ -1056,6 +1056,7 @@ Y.extend(DTBase, Y.Widget, { * @protected */ _afterRecordsetChange: function (e) { + console.log('_afterRecordsetChange core'); this._uiSetRecordset(e.newVal); }, @@ -1107,7 +1108,7 @@ Y.extend(DTBase, Y.Widget, { destructor: function() { this.get("recordset").removeTarget(this); }, - + //////////////////////////////////////////////////////////////////////////// // // RENDER @@ -1255,7 +1256,7 @@ Y.extend(DTBase, Y.Widget, { "recordset:recordsChange": this._afterRecordsChange }); }, - + delegate: function(type) { //TODO: is this necessary? if(type==="dblclick") { @@ -1265,7 +1266,7 @@ Y.extend(DTBase, Y.Widget, { this.get("contentBox").delegate.apply(this.get("contentBox"), arguments); } }, - + //////////////////////////////////////////////////////////////////////////// // @@ -1342,10 +1343,10 @@ Y.extend(DTBase, Y.Widget, { len = tree.length, parent = thead.get("parentNode"), nextSibling = thead.next(); - + // Move THEAD off DOM thead.remove(); - + thead.get("children").remove(true); // Iterate tree of columns to add THEAD rows @@ -1356,12 +1357,12 @@ Y.extend(DTBase, Y.Widget, { // Column helpers needs _theadNode to exist //this._createColumnHelpers(); - + // Re-attach THEAD to DOM parent.insert(thead, nextSibling); }, - + /** * Creates and attaches header row element. * @@ -1375,7 +1376,7 @@ Y.extend(DTBase, Y.Widget, { o.tr = this._createTheadTrNode(o, isFirst, isLast); this._attachTheadTrNode(o); }, - + /** * Creates header row element. @@ -1446,7 +1447,7 @@ Y.extend(DTBase, Y.Widget, { */ _createTheadThNode: function(o) { var column = o.column; - + // Populate template object o.id = column.get("id");//TODO: validate 1 column ID per document o.colspan = column.colSpan; @@ -1461,7 +1462,7 @@ Y.extend(DTBase, Y.Widget, { //this._clearMinWidth(column); } */ - + return Ycreate(fromTemplate(this.thTemplate, o)); }, @@ -1544,7 +1545,7 @@ Y.extend(DTBase, Y.Widget, { o.rowindex = i; this._addTbodyTrNode(o); //TODO: sometimes rowindex != recordindex } - + // TBODY to DOM parent.insert(this._tbodyNode, nextSibling); }, @@ -1577,7 +1578,7 @@ Y.extend(DTBase, Y.Widget, { i, len, columnInfo; o.tr = Ycreate(fromTemplate(o.rowTemplate, { id: o.record.get('id') })); - + for (i = 0, len = columns.length; i < len; ++i) { columnInfo = columns[i]; o.column = columnInfo.column; @@ -1587,7 +1588,7 @@ Y.extend(DTBase, Y.Widget, { this._addTbodyTdNode(o); } - + return o.tr; }, @@ -1604,13 +1605,13 @@ Y.extend(DTBase, Y.Widget, { index = o.rowindex, nextSibling = tbody.get("children").item(index) || null, isOdd = (index % 2); - + if(isOdd) { tr.replaceClass(CLASS_EVEN, CLASS_ODD); } else { tr.replaceClass(CLASS_ODD, CLASS_EVEN); } - + tbody.insertBefore(tr, nextSibling); }, @@ -1625,7 +1626,7 @@ Y.extend(DTBase, Y.Widget, { o.td = this._createTbodyTdNode(o); this._attachTbodyTdNode(o); }, - + /** * Creates data cell element. * @@ -1640,7 +1641,7 @@ Y.extend(DTBase, Y.Widget, { return Ycreate(fromTemplate(this.tdTemplate, o)); }, - + /** * Attaches data cell element. * From 5dfbb7895cf79c9fdef5749056b548952398c644 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 4 Aug 2011 19:16:03 -0300 Subject: [PATCH 047/132] AUI-452 Updating API to YUI3 master dev (cleaning old yui files) --- build/app/app-debug.js | 2561 --------- build/app/app-min.js | 10 - build/app/app.js | 2557 --------- build/attribute/attribute-base-debug.js | 1198 ---- build/attribute/attribute-base-min.js | 9 - build/attribute/attribute-base.js | 1183 ---- build/attribute/attribute-complex-debug.js | 130 - build/attribute/attribute-complex-min.js | 8 - build/attribute/attribute-complex.js | 130 - build/attribute/attribute-debug.js | 1325 ----- build/attribute/attribute-min.js | 9 - build/attribute/attribute.js | 1310 ----- .../assets/autocomplete-list-core.css | 34 - .../skins/sam/autocomplete-list-skin.css | 24 - .../assets/skins/sam/autocomplete.css | 8 - build/autocomplete/autocomplete-debug.js | 3009 ---------- build/autocomplete/autocomplete-min.js | 10 - build/autocomplete/autocomplete.js | 3002 ---------- build/autocomplete/lang/autocomplete.js | 8 - build/autocomplete/lang/autocomplete_en.js | 8 - build/base/base-base-debug.js | 617 --- build/base/base-base-min.js | 8 - build/base/base-base.js | 612 --- build/base/base-build-debug.js | 329 -- build/base/base-build-min.js | 8 - build/base/base-build.js | 329 -- build/base/base-debug.js | 992 ---- build/base/base-min.js | 9 - build/base/base-pluginhost-debug.js | 43 - build/base/base-pluginhost-min.js | 8 - build/base/base-pluginhost.js | 43 - build/base/base.js | 987 ---- build/cache/cache-base-debug.js | 396 -- build/cache/cache-base-min.js | 8 - build/cache/cache-base.js | 387 -- build/cache/cache-debug.js | 779 --- build/cache/cache-min.js | 8 - build/cache/cache-offline-debug.js | 342 -- build/cache/cache-offline-min.js | 8 - build/cache/cache-offline.js | 334 -- build/cache/cache-plugin-debug.js | 54 - build/cache/cache-plugin-min.js | 8 - build/cache/cache-plugin.js | 54 - build/cache/cache.js | 762 --- build/collection/array-extras-debug.js | 357 -- build/collection/array-extras-min.js | 8 - build/collection/array-extras.js | 356 -- build/collection/array-invoke-debug.js | 51 - build/collection/array-invoke-min.js | 8 - build/collection/array-invoke.js | 51 - build/collection/arraylist-add-debug.js | 88 - build/collection/arraylist-add-min.js | 8 - build/collection/arraylist-add.js | 88 - build/collection/arraylist-debug.js | 219 - build/collection/arraylist-filter-debug.js | 50 - build/collection/arraylist-filter-min.js | 8 - build/collection/arraylist-filter.js | 50 - build/collection/arraylist-min.js | 8 - build/collection/arraylist.js | 219 - build/collection/collection-debug.js | 741 --- build/collection/collection-min.js | 8 - build/collection/collection.js | 740 --- build/compat/compat-debug.js | 920 ---- build/compat/compat-min.js | 9 - build/compat/compat.js | 916 ---- build/console/console-filters-debug.js | 730 --- build/console/console-filters-min.js | 8 - build/console/console-filters.js | 730 --- build/dataschema/dataschema-array-debug.js | 109 - build/dataschema/dataschema-array-min.js | 8 - build/dataschema/dataschema-array.js | 106 - build/dataschema/dataschema-base-debug.js | 73 - build/dataschema/dataschema-base-min.js | 8 - build/dataschema/dataschema-base.js | 72 - build/dataschema/dataschema-debug.js | 878 --- build/dataschema/dataschema-json-debug.js | 309 -- build/dataschema/dataschema-json-min.js | 8 - build/dataschema/dataschema-json.js | 305 -- build/dataschema/dataschema-min.js | 9 - build/dataschema/dataschema-text-debug.js | 116 - build/dataschema/dataschema-text-min.js | 8 - build/dataschema/dataschema-text.js | 115 - build/dataschema/dataschema-xml-debug.js | 295 - build/dataschema/dataschema-xml-min.js | 8 - build/dataschema/dataschema-xml.js | 293 - build/dataschema/dataschema.js | 867 --- .../datasource-arrayschema-debug.js | 109 - .../datasource/datasource-arrayschema-min.js | 8 - build/datasource/datasource-arrayschema.js | 109 - build/datasource/datasource-cache-debug.js | 166 - build/datasource/datasource-cache-min.js | 8 - build/datasource/datasource-cache.js | 166 - build/datasource/datasource-debug.js | 1531 ------ build/datasource/datasource-function-debug.js | 116 - build/datasource/datasource-function-min.js | 8 - build/datasource/datasource-function.js | 114 - build/datasource/datasource-get-debug.js | 213 - build/datasource/datasource-get-min.js | 8 - build/datasource/datasource-get.js | 209 - build/datasource/datasource-io-debug.js | 202 - build/datasource/datasource-io-min.js | 8 - build/datasource/datasource-io.js | 199 - .../datasource/datasource-jsonschema-debug.js | 111 - build/datasource/datasource-jsonschema-min.js | 8 - build/datasource/datasource-jsonschema.js | 111 - build/datasource/datasource-local-debug.js | 357 -- build/datasource/datasource-local-min.js | 8 - build/datasource/datasource-local.js | 353 -- build/datasource/datasource-min.js | 9 - build/datasource/datasource-polling-debug.js | 98 - build/datasource/datasource-polling-min.js | 8 - build/datasource/datasource-polling.js | 98 - .../datasource/datasource-textschema-debug.js | 109 - build/datasource/datasource-textschema-min.js | 8 - build/datasource/datasource-textschema.js | 109 - .../datasource/datasource-xmlschema-debug.js | 109 - build/datasource/datasource-xmlschema-min.js | 8 - build/datasource/datasource-xmlschema.js | 109 - build/datasource/datasource.js | 1518 ----- build/datatable-base/datatable-base.js | 69 +- .../datatable/assets/datatable-base-core.css | 94 - build/datatable/assets/datatable-core.css | 94 - .../assets/skins/sam/datatable-base-skin.css | 244 - .../assets/skins/sam/datatable-base.css | 9 - .../datatable/assets/skins/sam/datatable.css | 9 - .../assets/skins/sam/dt-arrow-dn.png | Bin 116 -> 0 bytes .../assets/skins/sam/dt-arrow-up.png | Bin 116 -> 0 bytes build/datatable/assets/skins/sam/tmp.txt | 471 -- build/datatable/datatable-base-debug.js | 1643 ------ build/datatable/datatable-base-min.js | 9 - build/datatable/datatable-base.js | 1643 ------ build/datatable/datatable-datasource-debug.js | 188 - build/datatable/datatable-datasource-min.js | 8 - build/datatable/datatable-datasource.js | 188 - build/datatable/datatable-debug.js | 2831 ---------- build/datatable/datatable-min.js | 11 - build/datatable/datatable-scroll-debug.js | 697 --- build/datatable/datatable-scroll-min.js | 9 - build/datatable/datatable-scroll.js | 697 --- build/datatable/datatable-sort-debug.js | 320 -- build/datatable/datatable-sort-min.js | 8 - build/datatable/datatable-sort.js | 320 -- build/datatable/datatable.js | 2831 ---------- build/datatable/lang/datatable-base.js | 8 - build/datatable/lang/datatable-base_en.js | 8 - build/datatable/lang/datatable-sort.js | 8 - build/datatable/lang/datatable-sort_en.js | 8 - build/datatable/lang/datatable.js | 8 - build/datatable/lang/datatable_en.js | 8 - build/datatype-date/datatype-date-debug.js | 491 -- build/datatype-date/datatype-date-min.js | 8 - build/datatype-date/datatype-date.js | 486 -- build/datatype-date/lang/datatype-date.js | 8 - .../datatype-date/lang/datatype-date_ar-JO.js | 8 - build/datatype-date/lang/datatype-date_ar.js | 8 - .../datatype-date/lang/datatype-date_ca-ES.js | 8 - build/datatype-date/lang/datatype-date_ca.js | 8 - .../datatype-date/lang/datatype-date_da-DK.js | 8 - build/datatype-date/lang/datatype-date_da.js | 8 - .../datatype-date/lang/datatype-date_de-AT.js | 8 - .../datatype-date/lang/datatype-date_de-DE.js | 8 - build/datatype-date/lang/datatype-date_de.js | 8 - .../datatype-date/lang/datatype-date_el-GR.js | 8 - build/datatype-date/lang/datatype-date_el.js | 8 - .../datatype-date/lang/datatype-date_en-AU.js | 8 - .../datatype-date/lang/datatype-date_en-CA.js | 8 - .../datatype-date/lang/datatype-date_en-GB.js | 8 - .../datatype-date/lang/datatype-date_en-IE.js | 8 - .../datatype-date/lang/datatype-date_en-IN.js | 8 - .../datatype-date/lang/datatype-date_en-JO.js | 8 - .../datatype-date/lang/datatype-date_en-MY.js | 8 - .../datatype-date/lang/datatype-date_en-NZ.js | 8 - .../datatype-date/lang/datatype-date_en-PH.js | 8 - .../datatype-date/lang/datatype-date_en-SG.js | 8 - .../datatype-date/lang/datatype-date_en-US.js | 8 - build/datatype-date/lang/datatype-date_en.js | 8 - .../datatype-date/lang/datatype-date_es-AR.js | 8 - .../datatype-date/lang/datatype-date_es-BO.js | 8 - .../datatype-date/lang/datatype-date_es-CL.js | 8 - .../datatype-date/lang/datatype-date_es-CO.js | 8 - .../datatype-date/lang/datatype-date_es-EC.js | 8 - .../datatype-date/lang/datatype-date_es-ES.js | 8 - .../datatype-date/lang/datatype-date_es-MX.js | 8 - .../datatype-date/lang/datatype-date_es-PE.js | 8 - .../datatype-date/lang/datatype-date_es-PY.js | 8 - .../datatype-date/lang/datatype-date_es-US.js | 8 - .../datatype-date/lang/datatype-date_es-UY.js | 8 - .../datatype-date/lang/datatype-date_es-VE.js | 8 - build/datatype-date/lang/datatype-date_es.js | 8 - .../datatype-date/lang/datatype-date_fi-FI.js | 8 - build/datatype-date/lang/datatype-date_fi.js | 8 - .../datatype-date/lang/datatype-date_fr-BE.js | 8 - .../datatype-date/lang/datatype-date_fr-CA.js | 8 - .../datatype-date/lang/datatype-date_fr-FR.js | 8 - build/datatype-date/lang/datatype-date_fr.js | 8 - .../datatype-date/lang/datatype-date_hi-IN.js | 8 - build/datatype-date/lang/datatype-date_hi.js | 8 - .../datatype-date/lang/datatype-date_id-ID.js | 8 - build/datatype-date/lang/datatype-date_id.js | 8 - .../datatype-date/lang/datatype-date_it-IT.js | 8 - build/datatype-date/lang/datatype-date_it.js | 8 - .../datatype-date/lang/datatype-date_ja-JP.js | 8 - build/datatype-date/lang/datatype-date_ja.js | 8 - .../datatype-date/lang/datatype-date_ko-KR.js | 8 - build/datatype-date/lang/datatype-date_ko.js | 8 - .../datatype-date/lang/datatype-date_ms-MY.js | 8 - build/datatype-date/lang/datatype-date_ms.js | 8 - .../datatype-date/lang/datatype-date_nb-NO.js | 8 - build/datatype-date/lang/datatype-date_nb.js | 8 - .../datatype-date/lang/datatype-date_nl-BE.js | 8 - .../datatype-date/lang/datatype-date_nl-NL.js | 8 - build/datatype-date/lang/datatype-date_nl.js | 8 - .../datatype-date/lang/datatype-date_pl-PL.js | 8 - build/datatype-date/lang/datatype-date_pl.js | 8 - .../datatype-date/lang/datatype-date_pt-BR.js | 8 - build/datatype-date/lang/datatype-date_pt.js | 8 - .../datatype-date/lang/datatype-date_ro-RO.js | 8 - build/datatype-date/lang/datatype-date_ro.js | 8 - .../datatype-date/lang/datatype-date_ru-RU.js | 8 - build/datatype-date/lang/datatype-date_ru.js | 8 - .../datatype-date/lang/datatype-date_sv-SE.js | 8 - build/datatype-date/lang/datatype-date_sv.js | 8 - .../datatype-date/lang/datatype-date_th-TH.js | 8 - build/datatype-date/lang/datatype-date_th.js | 8 - .../datatype-date/lang/datatype-date_tr-TR.js | 8 - build/datatype-date/lang/datatype-date_tr.js | 8 - .../datatype-date/lang/datatype-date_vi-VN.js | 8 - build/datatype-date/lang/datatype-date_vi.js | 8 - .../lang/datatype-date_zh-Hans-CN.js | 8 - .../lang/datatype-date_zh-Hans.js | 8 - .../lang/datatype-date_zh-Hant-HK.js | 8 - .../lang/datatype-date_zh-Hant-TW.js | 8 - .../lang/datatype-date_zh-Hant.js | 8 - .../datatype-number/datatype-number-debug.js | 154 - build/datatype-number/datatype-number-min.js | 8 - build/datatype-number/datatype-number.js | 152 - build/datatype-xml/datatype-xml-debug.js | 120 - build/datatype-xml/datatype-xml-min.js | 8 - build/datatype-xml/datatype-xml.js | 117 - build/datatype/datatype-date-debug.js | 491 -- build/datatype/datatype-date-format-debug.js | 441 -- build/datatype/datatype-date-format-min.js | 8 - build/datatype/datatype-date-format.js | 437 -- build/datatype/datatype-date-min.js | 8 - build/datatype/datatype-date-parse-debug.js | 53 - build/datatype/datatype-date-parse-min.js | 8 - build/datatype/datatype-date-parse.js | 52 - build/datatype/datatype-date.js | 486 -- build/datatype/datatype-debug.js | 755 --- build/datatype/datatype-min.js | 9 - build/datatype/datatype-number-debug.js | 154 - .../datatype/datatype-number-format-debug.js | 112 - build/datatype/datatype-number-format-min.js | 8 - build/datatype/datatype-number-format.js | 111 - build/datatype/datatype-number-min.js | 8 - build/datatype/datatype-number-parse-debug.js | 45 - build/datatype/datatype-number-parse-min.js | 8 - build/datatype/datatype-number-parse.js | 44 - build/datatype/datatype-number.js | 152 - build/datatype/datatype-xml-debug.js | 120 - build/datatype/datatype-xml-format-debug.js | 60 - build/datatype/datatype-xml-format-min.js | 8 - build/datatype/datatype-xml-format.js | 59 - build/datatype/datatype-xml-min.js | 8 - build/datatype/datatype-xml-parse-debug.js | 63 - build/datatype/datatype-xml-parse-min.js | 8 - build/datatype/datatype-xml-parse.js | 61 - build/datatype/datatype-xml.js | 117 - build/datatype/datatype.js | 745 --- build/datatype/lang/datatype-date-format.js | 8 - .../lang/datatype-date-format_ar-JO.js | 8 - .../datatype/lang/datatype-date-format_ar.js | 8 - .../lang/datatype-date-format_ca-ES.js | 8 - .../datatype/lang/datatype-date-format_ca.js | 8 - .../lang/datatype-date-format_da-DK.js | 8 - .../datatype/lang/datatype-date-format_da.js | 8 - .../lang/datatype-date-format_de-AT.js | 8 - .../lang/datatype-date-format_de-DE.js | 8 - .../datatype/lang/datatype-date-format_de.js | 8 - .../lang/datatype-date-format_el-GR.js | 8 - .../datatype/lang/datatype-date-format_el.js | 8 - .../lang/datatype-date-format_en-AU.js | 8 - .../lang/datatype-date-format_en-CA.js | 8 - .../lang/datatype-date-format_en-GB.js | 8 - .../lang/datatype-date-format_en-IE.js | 8 - .../lang/datatype-date-format_en-IN.js | 8 - .../lang/datatype-date-format_en-JO.js | 8 - .../lang/datatype-date-format_en-MY.js | 8 - .../lang/datatype-date-format_en-NZ.js | 8 - .../lang/datatype-date-format_en-PH.js | 8 - .../lang/datatype-date-format_en-SG.js | 8 - .../lang/datatype-date-format_en-US.js | 8 - .../datatype/lang/datatype-date-format_en.js | 8 - .../lang/datatype-date-format_es-AR.js | 8 - .../lang/datatype-date-format_es-BO.js | 8 - .../lang/datatype-date-format_es-CL.js | 8 - .../lang/datatype-date-format_es-CO.js | 8 - .../lang/datatype-date-format_es-EC.js | 8 - .../lang/datatype-date-format_es-ES.js | 8 - .../lang/datatype-date-format_es-MX.js | 8 - .../lang/datatype-date-format_es-PE.js | 8 - .../lang/datatype-date-format_es-PY.js | 8 - .../lang/datatype-date-format_es-US.js | 8 - .../lang/datatype-date-format_es-UY.js | 8 - .../lang/datatype-date-format_es-VE.js | 8 - .../datatype/lang/datatype-date-format_es.js | 8 - .../lang/datatype-date-format_fi-FI.js | 8 - .../datatype/lang/datatype-date-format_fi.js | 8 - .../lang/datatype-date-format_fr-BE.js | 8 - .../lang/datatype-date-format_fr-CA.js | 8 - .../lang/datatype-date-format_fr-FR.js | 8 - .../datatype/lang/datatype-date-format_fr.js | 8 - .../lang/datatype-date-format_hi-IN.js | 8 - .../datatype/lang/datatype-date-format_hi.js | 8 - .../lang/datatype-date-format_id-ID.js | 8 - .../datatype/lang/datatype-date-format_id.js | 8 - .../lang/datatype-date-format_it-IT.js | 8 - .../datatype/lang/datatype-date-format_it.js | 8 - .../lang/datatype-date-format_ja-JP.js | 8 - .../datatype/lang/datatype-date-format_ja.js | 8 - .../lang/datatype-date-format_ko-KR.js | 8 - .../datatype/lang/datatype-date-format_ko.js | 8 - .../lang/datatype-date-format_ms-MY.js | 8 - .../datatype/lang/datatype-date-format_ms.js | 8 - .../lang/datatype-date-format_nb-NO.js | 8 - .../datatype/lang/datatype-date-format_nb.js | 8 - .../lang/datatype-date-format_nl-BE.js | 8 - .../lang/datatype-date-format_nl-NL.js | 8 - .../datatype/lang/datatype-date-format_nl.js | 8 - .../lang/datatype-date-format_pl-PL.js | 8 - .../datatype/lang/datatype-date-format_pl.js | 8 - .../lang/datatype-date-format_pt-BR.js | 8 - .../datatype/lang/datatype-date-format_pt.js | 8 - .../lang/datatype-date-format_ro-RO.js | 8 - .../datatype/lang/datatype-date-format_ro.js | 8 - .../lang/datatype-date-format_ru-RU.js | 8 - .../datatype/lang/datatype-date-format_ru.js | 8 - .../lang/datatype-date-format_sv-SE.js | 8 - .../datatype/lang/datatype-date-format_sv.js | 8 - .../lang/datatype-date-format_th-TH.js | 8 - .../datatype/lang/datatype-date-format_th.js | 8 - .../lang/datatype-date-format_tr-TR.js | 8 - .../datatype/lang/datatype-date-format_tr.js | 8 - .../lang/datatype-date-format_vi-VN.js | 8 - .../datatype/lang/datatype-date-format_vi.js | 8 - .../lang/datatype-date-format_zh-Hans-CN.js | 8 - .../lang/datatype-date-format_zh-Hans.js | 8 - .../lang/datatype-date-format_zh-Hant-HK.js | 8 - .../lang/datatype-date-format_zh-Hant-TW.js | 8 - .../lang/datatype-date-format_zh-Hant.js | 8 - build/datatype/lang/datatype-date.js | 8 - build/datatype/lang/datatype-date_ar-JO.js | 8 - build/datatype/lang/datatype-date_ar.js | 8 - build/datatype/lang/datatype-date_ca-ES.js | 8 - build/datatype/lang/datatype-date_ca.js | 8 - build/datatype/lang/datatype-date_da-DK.js | 8 - build/datatype/lang/datatype-date_da.js | 8 - build/datatype/lang/datatype-date_de-AT.js | 8 - build/datatype/lang/datatype-date_de-DE.js | 8 - build/datatype/lang/datatype-date_de.js | 8 - build/datatype/lang/datatype-date_el-GR.js | 8 - build/datatype/lang/datatype-date_el.js | 8 - build/datatype/lang/datatype-date_en-AU.js | 8 - build/datatype/lang/datatype-date_en-CA.js | 8 - build/datatype/lang/datatype-date_en-GB.js | 8 - build/datatype/lang/datatype-date_en-IE.js | 8 - build/datatype/lang/datatype-date_en-IN.js | 8 - build/datatype/lang/datatype-date_en-JO.js | 8 - build/datatype/lang/datatype-date_en-MY.js | 8 - build/datatype/lang/datatype-date_en-NZ.js | 8 - build/datatype/lang/datatype-date_en-PH.js | 8 - build/datatype/lang/datatype-date_en-SG.js | 8 - build/datatype/lang/datatype-date_en-US.js | 8 - build/datatype/lang/datatype-date_en.js | 8 - build/datatype/lang/datatype-date_es-AR.js | 8 - build/datatype/lang/datatype-date_es-BO.js | 8 - build/datatype/lang/datatype-date_es-CL.js | 8 - build/datatype/lang/datatype-date_es-CO.js | 8 - build/datatype/lang/datatype-date_es-EC.js | 8 - build/datatype/lang/datatype-date_es-ES.js | 8 - build/datatype/lang/datatype-date_es-MX.js | 8 - build/datatype/lang/datatype-date_es-PE.js | 8 - build/datatype/lang/datatype-date_es-PY.js | 8 - build/datatype/lang/datatype-date_es-US.js | 8 - build/datatype/lang/datatype-date_es-UY.js | 8 - build/datatype/lang/datatype-date_es-VE.js | 8 - build/datatype/lang/datatype-date_es.js | 8 - build/datatype/lang/datatype-date_fi-FI.js | 8 - build/datatype/lang/datatype-date_fi.js | 8 - build/datatype/lang/datatype-date_fr-BE.js | 8 - build/datatype/lang/datatype-date_fr-CA.js | 8 - build/datatype/lang/datatype-date_fr-FR.js | 8 - build/datatype/lang/datatype-date_fr.js | 8 - build/datatype/lang/datatype-date_hi-IN.js | 8 - build/datatype/lang/datatype-date_hi.js | 8 - build/datatype/lang/datatype-date_id-ID.js | 8 - build/datatype/lang/datatype-date_id.js | 8 - build/datatype/lang/datatype-date_it-IT.js | 8 - build/datatype/lang/datatype-date_it.js | 8 - build/datatype/lang/datatype-date_ja-JP.js | 8 - build/datatype/lang/datatype-date_ja.js | 8 - build/datatype/lang/datatype-date_ko-KR.js | 8 - build/datatype/lang/datatype-date_ko.js | 8 - build/datatype/lang/datatype-date_ms-MY.js | 8 - build/datatype/lang/datatype-date_ms.js | 8 - build/datatype/lang/datatype-date_nb-NO.js | 8 - build/datatype/lang/datatype-date_nb.js | 8 - build/datatype/lang/datatype-date_nl-BE.js | 8 - build/datatype/lang/datatype-date_nl-NL.js | 8 - build/datatype/lang/datatype-date_nl.js | 8 - build/datatype/lang/datatype-date_pl-PL.js | 8 - build/datatype/lang/datatype-date_pl.js | 8 - build/datatype/lang/datatype-date_pt-BR.js | 8 - build/datatype/lang/datatype-date_pt.js | 8 - build/datatype/lang/datatype-date_ro-RO.js | 8 - build/datatype/lang/datatype-date_ro.js | 8 - build/datatype/lang/datatype-date_ru-RU.js | 8 - build/datatype/lang/datatype-date_ru.js | 8 - build/datatype/lang/datatype-date_sv-SE.js | 8 - build/datatype/lang/datatype-date_sv.js | 8 - build/datatype/lang/datatype-date_th-TH.js | 8 - build/datatype/lang/datatype-date_th.js | 8 - build/datatype/lang/datatype-date_tr-TR.js | 8 - build/datatype/lang/datatype-date_tr.js | 8 - build/datatype/lang/datatype-date_vi-VN.js | 8 - build/datatype/lang/datatype-date_vi.js | 8 - .../datatype/lang/datatype-date_zh-Hans-CN.js | 8 - build/datatype/lang/datatype-date_zh-Hans.js | 8 - .../datatype/lang/datatype-date_zh-Hant-HK.js | 8 - .../datatype/lang/datatype-date_zh-Hant-TW.js | 8 - build/datatype/lang/datatype-date_zh-Hant.js | 8 - build/datatype/lang/datatype.js | 8 - build/datatype/lang/datatype_ar-JO.js | 8 - build/datatype/lang/datatype_ar.js | 8 - build/datatype/lang/datatype_ca-ES.js | 8 - build/datatype/lang/datatype_ca.js | 8 - build/datatype/lang/datatype_da-DK.js | 8 - build/datatype/lang/datatype_da.js | 8 - build/datatype/lang/datatype_de-AT.js | 8 - build/datatype/lang/datatype_de-DE.js | 8 - build/datatype/lang/datatype_de.js | 8 - build/datatype/lang/datatype_el-GR.js | 8 - build/datatype/lang/datatype_el.js | 8 - build/datatype/lang/datatype_en-AU.js | 8 - build/datatype/lang/datatype_en-CA.js | 8 - build/datatype/lang/datatype_en-GB.js | 8 - build/datatype/lang/datatype_en-IE.js | 8 - build/datatype/lang/datatype_en-IN.js | 8 - build/datatype/lang/datatype_en-JO.js | 8 - build/datatype/lang/datatype_en-MY.js | 8 - build/datatype/lang/datatype_en-NZ.js | 8 - build/datatype/lang/datatype_en-PH.js | 8 - build/datatype/lang/datatype_en-SG.js | 8 - build/datatype/lang/datatype_en-US.js | 8 - build/datatype/lang/datatype_en.js | 8 - build/datatype/lang/datatype_es-AR.js | 8 - build/datatype/lang/datatype_es-BO.js | 8 - build/datatype/lang/datatype_es-CL.js | 8 - build/datatype/lang/datatype_es-CO.js | 8 - build/datatype/lang/datatype_es-EC.js | 8 - build/datatype/lang/datatype_es-ES.js | 8 - build/datatype/lang/datatype_es-MX.js | 8 - build/datatype/lang/datatype_es-PE.js | 8 - build/datatype/lang/datatype_es-PY.js | 8 - build/datatype/lang/datatype_es-US.js | 8 - build/datatype/lang/datatype_es-UY.js | 8 - build/datatype/lang/datatype_es-VE.js | 8 - build/datatype/lang/datatype_es.js | 8 - build/datatype/lang/datatype_fi-FI.js | 8 - build/datatype/lang/datatype_fi.js | 8 - build/datatype/lang/datatype_fr-BE.js | 8 - build/datatype/lang/datatype_fr-CA.js | 8 - build/datatype/lang/datatype_fr-FR.js | 8 - build/datatype/lang/datatype_fr.js | 8 - build/datatype/lang/datatype_hi-IN.js | 8 - build/datatype/lang/datatype_hi.js | 8 - build/datatype/lang/datatype_id-ID.js | 8 - build/datatype/lang/datatype_id.js | 8 - build/datatype/lang/datatype_it-IT.js | 8 - build/datatype/lang/datatype_it.js | 8 - build/datatype/lang/datatype_ja-JP.js | 8 - build/datatype/lang/datatype_ja.js | 8 - build/datatype/lang/datatype_ko-KR.js | 8 - build/datatype/lang/datatype_ko.js | 8 - build/datatype/lang/datatype_ms-MY.js | 8 - build/datatype/lang/datatype_ms.js | 8 - build/datatype/lang/datatype_nb-NO.js | 8 - build/datatype/lang/datatype_nb.js | 8 - build/datatype/lang/datatype_nl-BE.js | 8 - build/datatype/lang/datatype_nl-NL.js | 8 - build/datatype/lang/datatype_nl.js | 8 - build/datatype/lang/datatype_pl-PL.js | 8 - build/datatype/lang/datatype_pl.js | 8 - build/datatype/lang/datatype_pt-BR.js | 8 - build/datatype/lang/datatype_pt.js | 8 - build/datatype/lang/datatype_ro-RO.js | 8 - build/datatype/lang/datatype_ro.js | 8 - build/datatype/lang/datatype_ru-RU.js | 8 - build/datatype/lang/datatype_ru.js | 8 - build/datatype/lang/datatype_sv-SE.js | 8 - build/datatype/lang/datatype_sv.js | 8 - build/datatype/lang/datatype_th-TH.js | 8 - build/datatype/lang/datatype_th.js | 8 - build/datatype/lang/datatype_tr-TR.js | 8 - build/datatype/lang/datatype_tr.js | 8 - build/datatype/lang/datatype_vi-VN.js | 8 - build/datatype/lang/datatype_vi.js | 8 - build/datatype/lang/datatype_zh-Hans-CN.js | 8 - build/datatype/lang/datatype_zh-Hans.js | 8 - build/datatype/lang/datatype_zh-Hant-HK.js | 8 - build/datatype/lang/datatype_zh-Hant-TW.js | 8 - build/datatype/lang/datatype_zh-Hant.js | 8 - build/dd/dd-constrain-debug.js | 550 -- build/dd/dd-constrain-min.js | 8 - build/dd/dd-constrain.js | 550 -- build/dd/dd-ddm-base-debug.js | 358 -- build/dd/dd-ddm-base-min.js | 8 - build/dd/dd-ddm-base.js | 358 -- build/dd/dd-ddm-debug.js | 128 - build/dd/dd-ddm-drop-debug.js | 418 -- build/dd/dd-ddm-drop-min.js | 8 - build/dd/dd-ddm-drop.js | 418 -- build/dd/dd-ddm-min.js | 8 - build/dd/dd-ddm.js | 128 - build/dd/dd-delegate-debug.js | 340 -- build/dd/dd-delegate-min.js | 8 - build/dd/dd-delegate.js | 340 -- build/dd/dd-drag-debug.js | 1241 ----- build/dd/dd-drag-min.js | 9 - build/dd/dd-drag.js | 1238 ----- build/dd/dd-drop-debug.js | 556 -- build/dd/dd-drop-min.js | 8 - build/dd/dd-drop-plugin-debug.js | 52 - build/dd/dd-drop-plugin-min.js | 8 - build/dd/dd-drop-plugin.js | 52 - build/dd/dd-drop.js | 555 -- build/dd/dd-gestures-debug.js | 47 - build/dd/dd-gestures-min.js | 8 - build/dd/dd-gestures.js | 45 - build/dd/dd-plugin-debug.js | 163 - build/dd/dd-plugin-min.js | 8 - build/dd/dd-plugin.js | 163 - build/dd/dd-proxy-debug.js | 255 - build/dd/dd-proxy-min.js | 8 - build/dd/dd-proxy.js | 255 - build/dd/dd-scroll-debug.js | 433 -- build/dd/dd-scroll-min.js | 8 - build/dd/dd-scroll.js | 433 -- build/editor/createlink-base-debug.js | 92 - build/editor/createlink-base-min.js | 8 - build/editor/createlink-base.js | 91 - build/editor/editor-base-debug.js | 900 --- build/editor/editor-base-min.js | 9 - build/editor/editor-base.js | 896 --- build/editor/editor-bidi-debug.js | 339 -- build/editor/editor-bidi-min.js | 8 - build/editor/editor-bidi.js | 339 -- build/editor/editor-br-debug.js | 139 - build/editor/editor-br-min.js | 8 - build/editor/editor-br.js | 139 - build/editor/editor-lists-debug.js | 132 - build/editor/editor-lists-min.js | 8 - build/editor/editor-lists.js | 127 - build/editor/editor-para-debug.js | 362 -- build/editor/editor-para-min.js | 8 - build/editor/editor-para.js | 360 -- build/editor/editor-tab-debug.js | 76 - build/editor/editor-tab-min.js | 8 - build/editor/editor-tab.js | 75 - build/editor/exec-command-debug.js | 668 --- build/editor/exec-command-min.js | 9 - build/editor/exec-command.js | 665 --- build/editor/frame-debug.js | 1017 ---- build/editor/frame-min.js | 9 - build/editor/frame.js | 989 ---- build/editor/selection-debug.js | 1023 ---- build/editor/selection-min.js | 9 - build/editor/selection.js | 1002 ---- build/event-custom/event-custom-base-debug.js | 2112 ------- build/event-custom/event-custom-base-min.js | 9 - build/event-custom/event-custom-base.js | 2098 ------- .../event-custom-complex-debug.js | 505 -- .../event-custom/event-custom-complex-min.js | 8 - build/event-custom/event-custom-complex.js | 504 -- build/event-custom/event-custom-debug.js | 2614 --------- build/event-custom/event-custom-min.js | 10 - build/event-custom/event-custom.js | 2599 --------- build/event-gestures/event-flick-debug.js | 251 - build/event-gestures/event-flick-min.js | 8 - build/event-gestures/event-flick.js | 251 - build/event-gestures/event-gestures-debug.js | 772 --- build/event-gestures/event-gestures-min.js | 8 - build/event-gestures/event-gestures.js | 762 --- build/event-gestures/event-move-debug.js | 524 -- build/event-gestures/event-move-min.js | 8 - build/event-gestures/event-move.js | 514 -- build/event/event-base-debug.js | 1312 ----- build/event/event-base-ie-debug.js | 327 -- build/event/event-base-ie-min.js | 10 - build/event/event-base-ie.js | 327 -- build/event/event-base-min.js | 9 - build/event/event-base.js | 1302 ----- build/event/event-debug.js | 3067 ----------- build/event/event-delegate-debug.js | 320 -- build/event/event-delegate-min.js | 8 - build/event/event-delegate.js | 319 -- build/event/event-focus-debug.js | 153 - build/event/event-focus-min.js | 8 - build/event/event-focus.js | 153 - build/event/event-hover-debug.js | 71 - build/event/event-hover-min.js | 8 - build/event/event-hover.js | 71 - build/event/event-key-debug.js | 169 - build/event/event-key-min.js | 8 - build/event/event-key.js | 169 - build/event/event-min.js | 11 - build/event/event-mouseenter-debug.js | 136 - build/event/event-mouseenter-min.js | 8 - build/event/event-mouseenter.js | 136 - build/event/event-mousewheel-debug.js | 57 - build/event/event-mousewheel-min.js | 8 - build/event/event-mousewheel.js | 57 - build/event/event-resize-debug.js | 71 - build/event/event-resize-min.js | 8 - build/event/event-resize.js | 71 - build/event/event-synthetic-debug.js | 828 --- build/event/event-synthetic-min.js | 8 - build/event/event-synthetic.js | 828 --- build/event/event-touch-debug.js | 104 - build/event/event-touch-min.js | 8 - build/event/event-touch.js | 98 - build/event/event.js | 3056 ----------- build/highlight/highlight-accentfold-debug.js | 160 - build/highlight/highlight-accentfold-min.js | 8 - build/highlight/highlight-accentfold.js | 160 - build/highlight/highlight-base-debug.js | 361 -- build/highlight/highlight-base-min.js | 8 - build/highlight/highlight-base.js | 361 -- build/highlight/highlight-debug.js | 518 -- build/highlight/highlight-min.js | 8 - build/highlight/highlight.js | 518 -- build/history/history-base-debug.js | 645 --- build/history/history-base-min.js | 8 - build/history/history-base.js | 645 --- build/history/history-debug.js | 1449 ----- build/history/history-hash-debug.js | 490 -- build/history/history-hash-ie-debug.js | 146 - build/history/history-hash-ie-min.js | 8 - build/history/history-hash-ie.js | 142 - build/history/history-hash-min.js | 8 - build/history/history-hash.js | 490 -- build/history/history-html5-debug.js | 185 - build/history/history-html5-min.js | 8 - build/history/history-html5.js | 185 - build/history/history-min.js | 9 - build/history/history.js | 1445 ----- build/json/json-debug.js | 589 -- build/json/json-min.js | 8 - build/json/json-parse-debug.js | 237 - build/json/json-parse-min.js | 8 - build/json/json-parse.js | 237 - build/json/json-stringify-debug.js | 355 -- build/json/json-stringify-min.js | 8 - build/json/json-stringify.js | 355 -- build/json/json.js | 589 -- build/jsonp/jsonp-url-debug.js | 133 - build/jsonp/jsonp-url-min.js | 8 - build/jsonp/jsonp-url.js | 133 - build/loader/loader-base-debug.js | 2254 -------- build/loader/loader-base-min.js | 10 - build/loader/loader-base.js | 2218 -------- build/loader/loader-rollup-debug.js | 111 - build/loader/loader-rollup-min.js | 8 - build/loader/loader-rollup.js | 108 - build/loader/loader-yui3-debug.js | 2024 ------- build/loader/loader-yui3-min.js | 10 - build/loader/loader-yui3.js | 2024 ------- build/plugin/pluginattr-debug.js | 113 - build/plugin/pluginattr-min.js | 8 - build/plugin/pluginattr.js | 113 - build/pluginhost/pluginhost-base-debug.js | 185 - build/pluginhost/pluginhost-base-min.js | 8 - build/pluginhost/pluginhost-base.js | 184 - build/pluginhost/pluginhost-config-debug.js | 128 - build/pluginhost/pluginhost-config-min.js | 8 - build/pluginhost/pluginhost-config.js | 128 - build/pluginhost/pluginhost-debug.js | 310 -- build/pluginhost/pluginhost-min.js | 8 - build/pluginhost/pluginhost.js | 309 -- build/recordset/recordset-base-debug.js | 710 --- build/recordset/recordset-base-min.js | 8 - build/recordset/recordset-base.js | 707 --- build/recordset/recordset-debug.js | 1260 ----- build/recordset/recordset-filter-debug.js | 120 - build/recordset/recordset-filter-min.js | 8 - build/recordset/recordset-filter.js | 120 - build/recordset/recordset-indexer-debug.js | 234 - build/recordset/recordset-indexer-min.js | 8 - build/recordset/recordset-indexer.js | 234 - build/recordset/recordset-min.js | 9 - build/recordset/recordset-sort-debug.js | 213 - build/recordset/recordset-sort-min.js | 8 - build/recordset/recordset-sort.js | 212 - build/recordset/recordset.js | 1256 ----- build/resize/assets/skins/sam/resize-base.css | 8 - build/resize/resize-base-debug.js | 1642 ------ build/resize/resize-base-min.js | 9 - build/resize/resize-base.js | 1641 ------ build/resize/resize-constrain-debug.js | 451 -- build/resize/resize-constrain-min.js | 8 - build/resize/resize-constrain.js | 451 -- build/resize/resize-plugin-debug.js | 203 - build/resize/resize-plugin-min.js | 8 - build/resize/resize-plugin.js | 203 - build/resize/resize-proxy-debug.js | 153 - build/resize/resize-proxy-min.js | 8 - build/resize/resize-proxy.js | 153 - .../assets/scrollview-base-core.css | 21 - .../assets/scrollview-scrollbars-core.css | 102 - .../assets/scrollview-scrollbars-core.css | 102 - .../skins/sam/scrollview-scrollbars-skin.css | 96 - .../assets/scrollview-base-core.css | 21 - .../assets/scrollview-scrollbars-core.css | 102 - .../assets/scrollview-base-core.css | 21 - .../assets/skins/sam/scrollview-base-skin.css | 10 - .../assets/scrollview-base-core.css | 21 - .../assets/scrollview-paginator-core.css | 18 - .../assets/scrollview-scrollbars-core.css | 102 - .../assets/skins/sam/scrollview-base-skin.css | 10 - .../assets/skins/sam/scrollview-base.css | 8 - .../skins/sam/scrollview-paginator-skin.css | 23 - .../assets/skins/sam/scrollview-paginator.css | 8 - .../skins/sam/scrollview-scrollbars-skin.css | 96 - .../skins/sam/scrollview-scrollbars.css | 8 - build/scrollview/scrollview-base-debug.js | 956 ---- build/scrollview/scrollview-base-ie-debug.js | 62 - build/scrollview/scrollview-base-ie-min.js | 8 - build/scrollview/scrollview-base-ie.js | 62 - build/scrollview/scrollview-base-min.js | 8 - build/scrollview/scrollview-base.js | 954 ---- .../scrollview/scrollview-paginator-debug.js | 306 -- build/scrollview/scrollview-paginator-min.js | 8 - build/scrollview/scrollview-paginator.js | 303 - .../scrollview/scrollview-scrollbars-debug.js | 570 -- build/scrollview/scrollview-scrollbars-min.js | 8 - build/scrollview/scrollview-scrollbars.js | 570 -- .../assets/skins/audio-light/rail-x.png | Bin 3668 -> 0 bytes .../assets/skins/audio-light/rail-y.png | Bin 3664 -> 0 bytes .../skins/audio-light/slider-base-skin.css | 98 - .../assets/skins/audio-light/slider-base.css | 8 - .../assets/skins/audio-light/slider-skin.css | 98 - .../assets/skins/audio-light/slider.css | 8 - .../assets/skins/audio-light/thumb-x.png | Bin 400 -> 0 bytes .../assets/skins/audio-light/thumb-y.png | Bin 503 -> 0 bytes build/slider/assets/skins/audio/rail-x.png | Bin 3662 -> 0 bytes build/slider/assets/skins/audio/rail-y.png | Bin 3660 -> 0 bytes .../assets/skins/audio/slider-base-skin.css | 98 - .../slider/assets/skins/audio/slider-base.css | 8 - .../slider/assets/skins/audio/slider-skin.css | 98 - build/slider/assets/skins/audio/slider.css | 8 - build/slider/assets/skins/audio/thumb-x.png | Bin 3742 -> 0 bytes build/slider/assets/skins/audio/thumb-y.png | Bin 414 -> 0 bytes .../assets/skins/capsule-dark/rail-x-dots.png | Bin 3651 -> 0 bytes .../skins/capsule-dark/rail-x-lines.png | Bin 3673 -> 0 bytes .../assets/skins/capsule-dark/rail-x.png | Bin 3710 -> 0 bytes .../assets/skins/capsule-dark/rail-y-dots.png | Bin 3642 -> 0 bytes .../skins/capsule-dark/rail-y-lines.png | Bin 3667 -> 0 bytes .../assets/skins/capsule-dark/rail-y.png | Bin 3673 -> 0 bytes .../skins/capsule-dark/slider-base-skin.css | 98 - .../assets/skins/capsule-dark/slider-base.css | 8 - .../assets/skins/capsule-dark/slider-skin.css | 98 - .../assets/skins/capsule-dark/slider.css | 8 - .../skins/capsule-dark/thumb-x-line.png | Bin 3845 -> 0 bytes .../assets/skins/capsule-dark/thumb-x.png | Bin 4166 -> 0 bytes .../skins/capsule-dark/thumb-y-line.png | Bin 518 -> 0 bytes .../assets/skins/capsule-dark/thumb-y.png | Bin 685 -> 0 bytes .../assets/skins/capsule/rail-x-dots.png | Bin 3655 -> 0 bytes .../assets/skins/capsule/rail-x-lines.png | Bin 3669 -> 0 bytes build/slider/assets/skins/capsule/rail-x.png | Bin 3701 -> 0 bytes .../assets/skins/capsule/rail-y-dots.png | Bin 3643 -> 0 bytes .../assets/skins/capsule/rail-y-lines.png | Bin 3643 -> 0 bytes build/slider/assets/skins/capsule/rail-y.png | Bin 3689 -> 0 bytes .../assets/skins/capsule/slider-base-skin.css | 100 - .../assets/skins/capsule/slider-base.css | 8 - .../assets/skins/capsule/slider-skin.css | 100 - build/slider/assets/skins/capsule/slider.css | 8 - .../assets/skins/capsule/thumb-x-line.png | Bin 828 -> 0 bytes build/slider/assets/skins/capsule/thumb-x.png | Bin 768 -> 0 bytes .../assets/skins/capsule/thumb-y-line.png | Bin 669 -> 0 bytes .../assets/skins/capsule/thumb-y-lines.png | Bin 3665 -> 0 bytes build/slider/assets/skins/capsule/thumb-y.png | Bin 541 -> 0 bytes .../slider/assets/skins/round-dark/rail-x.png | Bin 3637 -> 0 bytes .../slider/assets/skins/round-dark/rail-y.png | Bin 3635 -> 0 bytes .../skins/round-dark/slider-base-skin.css | 96 - .../assets/skins/round-dark/slider-base.css | 8 - .../assets/skins/round-dark/slider-skin.css | 96 - .../slider/assets/skins/round-dark/slider.css | 8 - .../assets/skins/round-dark/thumb-x-grip.png | Bin 4365 -> 0 bytes .../assets/skins/round-dark/thumb-x.png | Bin 4333 -> 0 bytes .../assets/skins/round-dark/thumb-y-grip.png | Bin 648 -> 0 bytes .../assets/skins/round-dark/thumb-y.png | Bin 835 -> 0 bytes build/slider/assets/skins/round/rail-x.png | Bin 3642 -> 0 bytes build/slider/assets/skins/round/rail-y.png | Bin 3637 -> 0 bytes .../assets/skins/round/slider-base-skin.css | 96 - .../slider/assets/skins/round/slider-base.css | 8 - .../slider/assets/skins/round/slider-skin.css | 96 - build/slider/assets/skins/round/slider.css | 8 - .../assets/skins/round/thumb-x-grip.png | Bin 692 -> 0 bytes build/slider/assets/skins/round/thumb-x.png | Bin 4143 -> 0 bytes .../assets/skins/round/thumb-y-grip.png | Bin 731 -> 0 bytes build/slider/assets/skins/round/thumb-y.png | Bin 890 -> 0 bytes .../assets/skins/sam-dark/rail-x-lines.png | Bin 3647 -> 0 bytes build/slider/assets/skins/sam-dark/rail-x.png | Bin 3635 -> 0 bytes .../assets/skins/sam-dark/rail-y-lines.png | Bin 3640 -> 0 bytes build/slider/assets/skins/sam-dark/rail-y.png | Bin 3628 -> 0 bytes .../skins/sam-dark/slider-base-skin.css | 94 - .../assets/skins/sam-dark/slider-base.css | 8 - .../assets/skins/sam-dark/slider-skin.css | 94 - build/slider/assets/skins/sam-dark/slider.css | 8 - .../slider/assets/skins/sam-dark/thumb-x.png | Bin 3853 -> 0 bytes .../slider/assets/skins/sam-dark/thumb-y.png | Bin 602 -> 0 bytes .../assets/skins/sam/rail-classic-x.png | Bin 92 -> 0 bytes .../assets/skins/sam/rail-classic-y.png | Bin 90 -> 0 bytes .../slider/assets/skins/sam/rail-x-lines.png | Bin 3656 -> 0 bytes build/slider/assets/skins/sam/rail-x.png | Bin 3639 -> 0 bytes .../slider/assets/skins/sam/rail-y-lines.png | Bin 3642 -> 0 bytes build/slider/assets/skins/sam/rail-y.png | Bin 3629 -> 0 bytes .../assets/skins/sam/slider-base-skin.css | 94 - build/slider/assets/skins/sam/slider-base.css | 8 - build/slider/assets/skins/sam/slider-skin.css | 94 - build/slider/assets/skins/sam/slider.css | 8 - .../assets/skins/sam/thumb-classic-x.png | Bin 374 -> 0 bytes .../assets/skins/sam/thumb-classic-y.png | Bin 341 -> 0 bytes build/slider/assets/skins/sam/thumb-x.png | Bin 3873 -> 0 bytes build/slider/assets/skins/sam/thumb-y.png | Bin 3860 -> 0 bytes build/slider/assets/slider-base-core.css | 38 - build/slider/assets/slider-core.css | 38 - build/slider/assets/thumb-x-oblong-dark.png | Bin 4042 -> 0 bytes build/slider/assets/thumb-x-oblong.png | Bin 961 -> 0 bytes build/slider/assets/thumb-x-oblong2-dark.png | Bin 4045 -> 0 bytes build/slider/assets/thumb-x-oblong2.png | Bin 706 -> 0 bytes build/slider/assets/thumb-y-oblong-dark.png | Bin 519 -> 0 bytes build/slider/assets/thumb-y-oblong.png | Bin 1023 -> 0 bytes build/slider/assets/thumb-y-oblong2-dark.png | Bin 706 -> 0 bytes build/slider/assets/thumb-y-oblong2.png | Bin 746 -> 0 bytes build/slider/clickable-rail-debug.js | 218 - build/slider/clickable-rail-min.js | 8 - build/slider/clickable-rail.js | 218 - build/slider/range-slider-debug.js | 34 - build/slider/range-slider-min.js | 8 - build/slider/range-slider.js | 34 - build/slider/slider-base-debug.js | 587 -- build/slider/slider-base-min.js | 8 - build/slider/slider-base.js | 585 -- build/slider/slider-debug.js | 1224 ----- build/slider/slider-min.js | 9 - build/slider/slider-value-range-debug.js | 402 -- build/slider/slider-value-range-min.js | 8 - build/slider/slider-value-range.js | 398 -- build/slider/slider.js | 1218 ----- build/sortable/sortable-scroll-debug.js | 74 - build/sortable/sortable-scroll-min.js | 8 - build/sortable/sortable-scroll.js | 74 - build/text/text-accentfold-debug.js | 169 - build/text/text-accentfold-min.js | 8 - build/text/text-accentfold.js | 169 - build/text/text-data-accentfold-debug.js | 53 - build/text/text-data-accentfold-min.js | 8 - build/text/text-data-accentfold.js | 53 - build/text/text-data-wordbreak-debug.js | 35 - build/text/text-data-wordbreak-min.js | 8 - build/text/text-data-wordbreak.js | 35 - build/text/text-debug.js | 610 --- build/text/text-min.js | 9 - build/text/text-wordbreak-debug.js | 370 -- build/text/text-wordbreak-min.js | 8 - build/text/text-wordbreak.js | 369 -- build/text/text.js | 609 --- .../assets/skins/sam/widget-base-skin.css | 7 - build/widget/assets/skins/sam/widget-base.css | 8 - .../assets/skins/sam/widget-stack-skin.css | 7 - .../widget/assets/skins/sam/widget-stack.css | 8 - build/widget/assets/skins/sam/widget.css | 8 - build/widget/assets/widget-base-core.css | 27 - build/widget/assets/widget-stack-core.css | 26 - build/widget/widget-base-debug.js | 1158 ---- build/widget/widget-base-ie-debug.js | 56 - build/widget/widget-base-ie-min.js | 8 - build/widget/widget-base-ie.js | 56 - build/widget/widget-base-min.js | 8 - build/widget/widget-base.js | 1154 ---- build/widget/widget-child-debug.js | 384 -- build/widget/widget-child-min.js | 8 - build/widget/widget-child.js | 384 -- build/widget/widget-debug.js | 1595 ------ build/widget/widget-htmlparser-debug.js | 170 - build/widget/widget-htmlparser-min.js | 8 - build/widget/widget-htmlparser.js | 170 - build/widget/widget-locale-debug.js | 180 - build/widget/widget-locale-min.js | 8 - build/widget/widget-locale.js | 176 - build/widget/widget-min.js | 9 - build/widget/widget-modality-debug.js | 229 - build/widget/widget-modality-min.js | 10 - build/widget/widget-modality.js | 229 - build/widget/widget-parent-debug.js | 852 --- build/widget/widget-parent-min.js | 8 - build/widget/widget-parent.js | 851 --- build/widget/widget-position-align-debug.js | 411 -- build/widget/widget-position-align-min.js | 8 - build/widget/widget-position-align.js | 409 -- .../widget/widget-position-constrain-debug.js | 352 -- build/widget/widget-position-constrain-min.js | 8 - build/widget/widget-position-constrain.js | 352 -- build/widget/widget-position-debug.js | 277 - build/widget/widget-position-min.js | 8 - build/widget/widget-position.js | 277 - build/widget/widget-skin-debug.js | 50 - build/widget/widget-skin-min.js | 8 - build/widget/widget-skin.js | 50 - build/widget/widget-stack-debug.js | 403 -- build/widget/widget-stack-min.js | 8 - build/widget/widget-stack.js | 403 -- build/widget/widget-stdmod-debug.js | 764 --- build/widget/widget-stdmod-min.js | 8 - build/widget/widget-stdmod.js | 764 --- build/widget/widget-uievents-debug.js | 234 - build/widget/widget-uievents-min.js | 8 - build/widget/widget-uievents.js | 233 - build/widget/widget.js | 1590 ------ build/yui/features-debug.js | 169 - build/yui/features-min.js | 8 - build/yui/features.js | 168 - build/yui/get-debug.js | 882 --- build/yui/get-min.js | 8 - build/yui/get.js | 867 --- build/yui/intl-base-debug.js | 95 - build/yui/intl-base-min.js | 8 - build/yui/intl-base.js | 95 - build/yui/rls-debug.js | 321 -- build/yui/rls-min.js | 8 - build/yui/rls.js | 313 -- build/yui/yui-base-debug.js | 3329 ----------- build/yui/yui-base-min.js | 22 - build/yui/yui-base.js | 3312 ----------- build/yui/yui-later-debug.js | 82 - build/yui/yui-later-min.js | 8 - build/yui/yui-later.js | 82 - build/yui/yui-log-debug.js | 115 - build/yui/yui-log-min.js | 8 - build/yui/yui-log.js | 115 - build/yui/yui-rls-debug.js | 4867 ----------------- build/yui/yui-rls-min.js | 27 - build/yui/yui-rls.js | 4827 ---------------- build/yui/yui-throttle-debug.js | 49 - build/yui/yui-throttle-min.js | 10 - build/yui/yui-throttle.js | 49 - 957 files changed, 34 insertions(+), 185826 deletions(-) delete mode 100644 build/app/app-debug.js delete mode 100644 build/app/app-min.js delete mode 100644 build/app/app.js delete mode 100644 build/attribute/attribute-base-debug.js delete mode 100644 build/attribute/attribute-base-min.js delete mode 100644 build/attribute/attribute-base.js delete mode 100644 build/attribute/attribute-complex-debug.js delete mode 100644 build/attribute/attribute-complex-min.js delete mode 100644 build/attribute/attribute-complex.js delete mode 100644 build/attribute/attribute-debug.js delete mode 100644 build/attribute/attribute-min.js delete mode 100644 build/attribute/attribute.js delete mode 100644 build/autocomplete/assets/autocomplete-list-core.css delete mode 100644 build/autocomplete/assets/skins/sam/autocomplete-list-skin.css delete mode 100644 build/autocomplete/assets/skins/sam/autocomplete.css delete mode 100644 build/autocomplete/autocomplete-debug.js delete mode 100644 build/autocomplete/autocomplete-min.js delete mode 100644 build/autocomplete/autocomplete.js delete mode 100644 build/autocomplete/lang/autocomplete.js delete mode 100644 build/autocomplete/lang/autocomplete_en.js delete mode 100644 build/base/base-base-debug.js delete mode 100644 build/base/base-base-min.js delete mode 100644 build/base/base-base.js delete mode 100644 build/base/base-build-debug.js delete mode 100644 build/base/base-build-min.js delete mode 100644 build/base/base-build.js delete mode 100644 build/base/base-debug.js delete mode 100644 build/base/base-min.js delete mode 100644 build/base/base-pluginhost-debug.js delete mode 100644 build/base/base-pluginhost-min.js delete mode 100644 build/base/base-pluginhost.js delete mode 100644 build/base/base.js delete mode 100644 build/cache/cache-base-debug.js delete mode 100644 build/cache/cache-base-min.js delete mode 100644 build/cache/cache-base.js delete mode 100644 build/cache/cache-debug.js delete mode 100644 build/cache/cache-min.js delete mode 100644 build/cache/cache-offline-debug.js delete mode 100644 build/cache/cache-offline-min.js delete mode 100644 build/cache/cache-offline.js delete mode 100644 build/cache/cache-plugin-debug.js delete mode 100644 build/cache/cache-plugin-min.js delete mode 100644 build/cache/cache-plugin.js delete mode 100644 build/cache/cache.js delete mode 100644 build/collection/array-extras-debug.js delete mode 100644 build/collection/array-extras-min.js delete mode 100644 build/collection/array-extras.js delete mode 100644 build/collection/array-invoke-debug.js delete mode 100644 build/collection/array-invoke-min.js delete mode 100644 build/collection/array-invoke.js delete mode 100644 build/collection/arraylist-add-debug.js delete mode 100644 build/collection/arraylist-add-min.js delete mode 100644 build/collection/arraylist-add.js delete mode 100644 build/collection/arraylist-debug.js delete mode 100644 build/collection/arraylist-filter-debug.js delete mode 100644 build/collection/arraylist-filter-min.js delete mode 100644 build/collection/arraylist-filter.js delete mode 100644 build/collection/arraylist-min.js delete mode 100644 build/collection/arraylist.js delete mode 100644 build/collection/collection-debug.js delete mode 100644 build/collection/collection-min.js delete mode 100644 build/collection/collection.js delete mode 100644 build/compat/compat-debug.js delete mode 100644 build/compat/compat-min.js delete mode 100644 build/compat/compat.js delete mode 100644 build/console/console-filters-debug.js delete mode 100644 build/console/console-filters-min.js delete mode 100644 build/console/console-filters.js delete mode 100644 build/dataschema/dataschema-array-debug.js delete mode 100644 build/dataschema/dataschema-array-min.js delete mode 100644 build/dataschema/dataschema-array.js delete mode 100644 build/dataschema/dataschema-base-debug.js delete mode 100644 build/dataschema/dataschema-base-min.js delete mode 100644 build/dataschema/dataschema-base.js delete mode 100644 build/dataschema/dataschema-debug.js delete mode 100644 build/dataschema/dataschema-json-debug.js delete mode 100644 build/dataschema/dataschema-json-min.js delete mode 100644 build/dataschema/dataschema-json.js delete mode 100644 build/dataschema/dataschema-min.js delete mode 100644 build/dataschema/dataschema-text-debug.js delete mode 100644 build/dataschema/dataschema-text-min.js delete mode 100644 build/dataschema/dataschema-text.js delete mode 100644 build/dataschema/dataschema-xml-debug.js delete mode 100644 build/dataschema/dataschema-xml-min.js delete mode 100644 build/dataschema/dataschema-xml.js delete mode 100644 build/dataschema/dataschema.js delete mode 100644 build/datasource/datasource-arrayschema-debug.js delete mode 100644 build/datasource/datasource-arrayschema-min.js delete mode 100644 build/datasource/datasource-arrayschema.js delete mode 100644 build/datasource/datasource-cache-debug.js delete mode 100644 build/datasource/datasource-cache-min.js delete mode 100644 build/datasource/datasource-cache.js delete mode 100644 build/datasource/datasource-debug.js delete mode 100644 build/datasource/datasource-function-debug.js delete mode 100644 build/datasource/datasource-function-min.js delete mode 100644 build/datasource/datasource-function.js delete mode 100644 build/datasource/datasource-get-debug.js delete mode 100644 build/datasource/datasource-get-min.js delete mode 100644 build/datasource/datasource-get.js delete mode 100644 build/datasource/datasource-io-debug.js delete mode 100644 build/datasource/datasource-io-min.js delete mode 100644 build/datasource/datasource-io.js delete mode 100644 build/datasource/datasource-jsonschema-debug.js delete mode 100644 build/datasource/datasource-jsonschema-min.js delete mode 100644 build/datasource/datasource-jsonschema.js delete mode 100644 build/datasource/datasource-local-debug.js delete mode 100644 build/datasource/datasource-local-min.js delete mode 100644 build/datasource/datasource-local.js delete mode 100644 build/datasource/datasource-min.js delete mode 100644 build/datasource/datasource-polling-debug.js delete mode 100644 build/datasource/datasource-polling-min.js delete mode 100644 build/datasource/datasource-polling.js delete mode 100644 build/datasource/datasource-textschema-debug.js delete mode 100644 build/datasource/datasource-textschema-min.js delete mode 100644 build/datasource/datasource-textschema.js delete mode 100644 build/datasource/datasource-xmlschema-debug.js delete mode 100644 build/datasource/datasource-xmlschema-min.js delete mode 100644 build/datasource/datasource-xmlschema.js delete mode 100644 build/datasource/datasource.js delete mode 100644 build/datatable/assets/datatable-base-core.css delete mode 100644 build/datatable/assets/datatable-core.css delete mode 100644 build/datatable/assets/skins/sam/datatable-base-skin.css delete mode 100644 build/datatable/assets/skins/sam/datatable-base.css delete mode 100644 build/datatable/assets/skins/sam/datatable.css delete mode 100644 build/datatable/assets/skins/sam/dt-arrow-dn.png delete mode 100644 build/datatable/assets/skins/sam/dt-arrow-up.png delete mode 100644 build/datatable/assets/skins/sam/tmp.txt delete mode 100644 build/datatable/datatable-base-debug.js delete mode 100644 build/datatable/datatable-base-min.js delete mode 100644 build/datatable/datatable-base.js delete mode 100644 build/datatable/datatable-datasource-debug.js delete mode 100644 build/datatable/datatable-datasource-min.js delete mode 100644 build/datatable/datatable-datasource.js delete mode 100644 build/datatable/datatable-debug.js delete mode 100644 build/datatable/datatable-min.js delete mode 100644 build/datatable/datatable-scroll-debug.js delete mode 100644 build/datatable/datatable-scroll-min.js delete mode 100644 build/datatable/datatable-scroll.js delete mode 100644 build/datatable/datatable-sort-debug.js delete mode 100644 build/datatable/datatable-sort-min.js delete mode 100644 build/datatable/datatable-sort.js delete mode 100644 build/datatable/datatable.js delete mode 100644 build/datatable/lang/datatable-base.js delete mode 100644 build/datatable/lang/datatable-base_en.js delete mode 100644 build/datatable/lang/datatable-sort.js delete mode 100644 build/datatable/lang/datatable-sort_en.js delete mode 100644 build/datatable/lang/datatable.js delete mode 100644 build/datatable/lang/datatable_en.js delete mode 100644 build/datatype-date/datatype-date-debug.js delete mode 100644 build/datatype-date/datatype-date-min.js delete mode 100644 build/datatype-date/datatype-date.js delete mode 100644 build/datatype-date/lang/datatype-date.js delete mode 100644 build/datatype-date/lang/datatype-date_ar-JO.js delete mode 100644 build/datatype-date/lang/datatype-date_ar.js delete mode 100644 build/datatype-date/lang/datatype-date_ca-ES.js delete mode 100644 build/datatype-date/lang/datatype-date_ca.js delete mode 100644 build/datatype-date/lang/datatype-date_da-DK.js delete mode 100644 build/datatype-date/lang/datatype-date_da.js delete mode 100644 build/datatype-date/lang/datatype-date_de-AT.js delete mode 100644 build/datatype-date/lang/datatype-date_de-DE.js delete mode 100644 build/datatype-date/lang/datatype-date_de.js delete mode 100644 build/datatype-date/lang/datatype-date_el-GR.js delete mode 100644 build/datatype-date/lang/datatype-date_el.js delete mode 100644 build/datatype-date/lang/datatype-date_en-AU.js delete mode 100644 build/datatype-date/lang/datatype-date_en-CA.js delete mode 100644 build/datatype-date/lang/datatype-date_en-GB.js delete mode 100644 build/datatype-date/lang/datatype-date_en-IE.js delete mode 100644 build/datatype-date/lang/datatype-date_en-IN.js delete mode 100644 build/datatype-date/lang/datatype-date_en-JO.js delete mode 100644 build/datatype-date/lang/datatype-date_en-MY.js delete mode 100644 build/datatype-date/lang/datatype-date_en-NZ.js delete mode 100644 build/datatype-date/lang/datatype-date_en-PH.js delete mode 100644 build/datatype-date/lang/datatype-date_en-SG.js delete mode 100644 build/datatype-date/lang/datatype-date_en-US.js delete mode 100644 build/datatype-date/lang/datatype-date_en.js delete mode 100644 build/datatype-date/lang/datatype-date_es-AR.js delete mode 100644 build/datatype-date/lang/datatype-date_es-BO.js delete mode 100644 build/datatype-date/lang/datatype-date_es-CL.js delete mode 100644 build/datatype-date/lang/datatype-date_es-CO.js delete mode 100644 build/datatype-date/lang/datatype-date_es-EC.js delete mode 100644 build/datatype-date/lang/datatype-date_es-ES.js delete mode 100644 build/datatype-date/lang/datatype-date_es-MX.js delete mode 100644 build/datatype-date/lang/datatype-date_es-PE.js delete mode 100644 build/datatype-date/lang/datatype-date_es-PY.js delete mode 100644 build/datatype-date/lang/datatype-date_es-US.js delete mode 100644 build/datatype-date/lang/datatype-date_es-UY.js delete mode 100644 build/datatype-date/lang/datatype-date_es-VE.js delete mode 100644 build/datatype-date/lang/datatype-date_es.js delete mode 100644 build/datatype-date/lang/datatype-date_fi-FI.js delete mode 100644 build/datatype-date/lang/datatype-date_fi.js delete mode 100644 build/datatype-date/lang/datatype-date_fr-BE.js delete mode 100644 build/datatype-date/lang/datatype-date_fr-CA.js delete mode 100644 build/datatype-date/lang/datatype-date_fr-FR.js delete mode 100644 build/datatype-date/lang/datatype-date_fr.js delete mode 100644 build/datatype-date/lang/datatype-date_hi-IN.js delete mode 100644 build/datatype-date/lang/datatype-date_hi.js delete mode 100644 build/datatype-date/lang/datatype-date_id-ID.js delete mode 100644 build/datatype-date/lang/datatype-date_id.js delete mode 100644 build/datatype-date/lang/datatype-date_it-IT.js delete mode 100644 build/datatype-date/lang/datatype-date_it.js delete mode 100644 build/datatype-date/lang/datatype-date_ja-JP.js delete mode 100644 build/datatype-date/lang/datatype-date_ja.js delete mode 100644 build/datatype-date/lang/datatype-date_ko-KR.js delete mode 100644 build/datatype-date/lang/datatype-date_ko.js delete mode 100644 build/datatype-date/lang/datatype-date_ms-MY.js delete mode 100644 build/datatype-date/lang/datatype-date_ms.js delete mode 100644 build/datatype-date/lang/datatype-date_nb-NO.js delete mode 100644 build/datatype-date/lang/datatype-date_nb.js delete mode 100644 build/datatype-date/lang/datatype-date_nl-BE.js delete mode 100644 build/datatype-date/lang/datatype-date_nl-NL.js delete mode 100644 build/datatype-date/lang/datatype-date_nl.js delete mode 100644 build/datatype-date/lang/datatype-date_pl-PL.js delete mode 100644 build/datatype-date/lang/datatype-date_pl.js delete mode 100644 build/datatype-date/lang/datatype-date_pt-BR.js delete mode 100644 build/datatype-date/lang/datatype-date_pt.js delete mode 100644 build/datatype-date/lang/datatype-date_ro-RO.js delete mode 100644 build/datatype-date/lang/datatype-date_ro.js delete mode 100644 build/datatype-date/lang/datatype-date_ru-RU.js delete mode 100644 build/datatype-date/lang/datatype-date_ru.js delete mode 100644 build/datatype-date/lang/datatype-date_sv-SE.js delete mode 100644 build/datatype-date/lang/datatype-date_sv.js delete mode 100644 build/datatype-date/lang/datatype-date_th-TH.js delete mode 100644 build/datatype-date/lang/datatype-date_th.js delete mode 100644 build/datatype-date/lang/datatype-date_tr-TR.js delete mode 100644 build/datatype-date/lang/datatype-date_tr.js delete mode 100644 build/datatype-date/lang/datatype-date_vi-VN.js delete mode 100644 build/datatype-date/lang/datatype-date_vi.js delete mode 100644 build/datatype-date/lang/datatype-date_zh-Hans-CN.js delete mode 100644 build/datatype-date/lang/datatype-date_zh-Hans.js delete mode 100644 build/datatype-date/lang/datatype-date_zh-Hant-HK.js delete mode 100644 build/datatype-date/lang/datatype-date_zh-Hant-TW.js delete mode 100644 build/datatype-date/lang/datatype-date_zh-Hant.js delete mode 100644 build/datatype-number/datatype-number-debug.js delete mode 100644 build/datatype-number/datatype-number-min.js delete mode 100644 build/datatype-number/datatype-number.js delete mode 100644 build/datatype-xml/datatype-xml-debug.js delete mode 100644 build/datatype-xml/datatype-xml-min.js delete mode 100644 build/datatype-xml/datatype-xml.js delete mode 100644 build/datatype/datatype-date-debug.js delete mode 100644 build/datatype/datatype-date-format-debug.js delete mode 100644 build/datatype/datatype-date-format-min.js delete mode 100644 build/datatype/datatype-date-format.js delete mode 100644 build/datatype/datatype-date-min.js delete mode 100644 build/datatype/datatype-date-parse-debug.js delete mode 100644 build/datatype/datatype-date-parse-min.js delete mode 100644 build/datatype/datatype-date-parse.js delete mode 100644 build/datatype/datatype-date.js delete mode 100644 build/datatype/datatype-debug.js delete mode 100644 build/datatype/datatype-min.js delete mode 100644 build/datatype/datatype-number-debug.js delete mode 100644 build/datatype/datatype-number-format-debug.js delete mode 100644 build/datatype/datatype-number-format-min.js delete mode 100644 build/datatype/datatype-number-format.js delete mode 100644 build/datatype/datatype-number-min.js delete mode 100644 build/datatype/datatype-number-parse-debug.js delete mode 100644 build/datatype/datatype-number-parse-min.js delete mode 100644 build/datatype/datatype-number-parse.js delete mode 100644 build/datatype/datatype-number.js delete mode 100644 build/datatype/datatype-xml-debug.js delete mode 100644 build/datatype/datatype-xml-format-debug.js delete mode 100644 build/datatype/datatype-xml-format-min.js delete mode 100644 build/datatype/datatype-xml-format.js delete mode 100644 build/datatype/datatype-xml-min.js delete mode 100644 build/datatype/datatype-xml-parse-debug.js delete mode 100644 build/datatype/datatype-xml-parse-min.js delete mode 100644 build/datatype/datatype-xml-parse.js delete mode 100644 build/datatype/datatype-xml.js delete mode 100644 build/datatype/datatype.js delete mode 100644 build/datatype/lang/datatype-date-format.js delete mode 100644 build/datatype/lang/datatype-date-format_ar-JO.js delete mode 100644 build/datatype/lang/datatype-date-format_ar.js delete mode 100644 build/datatype/lang/datatype-date-format_ca-ES.js delete mode 100644 build/datatype/lang/datatype-date-format_ca.js delete mode 100644 build/datatype/lang/datatype-date-format_da-DK.js delete mode 100644 build/datatype/lang/datatype-date-format_da.js delete mode 100644 build/datatype/lang/datatype-date-format_de-AT.js delete mode 100644 build/datatype/lang/datatype-date-format_de-DE.js delete mode 100644 build/datatype/lang/datatype-date-format_de.js delete mode 100644 build/datatype/lang/datatype-date-format_el-GR.js delete mode 100644 build/datatype/lang/datatype-date-format_el.js delete mode 100644 build/datatype/lang/datatype-date-format_en-AU.js delete mode 100644 build/datatype/lang/datatype-date-format_en-CA.js delete mode 100644 build/datatype/lang/datatype-date-format_en-GB.js delete mode 100644 build/datatype/lang/datatype-date-format_en-IE.js delete mode 100644 build/datatype/lang/datatype-date-format_en-IN.js delete mode 100644 build/datatype/lang/datatype-date-format_en-JO.js delete mode 100644 build/datatype/lang/datatype-date-format_en-MY.js delete mode 100644 build/datatype/lang/datatype-date-format_en-NZ.js delete mode 100644 build/datatype/lang/datatype-date-format_en-PH.js delete mode 100644 build/datatype/lang/datatype-date-format_en-SG.js delete mode 100644 build/datatype/lang/datatype-date-format_en-US.js delete mode 100644 build/datatype/lang/datatype-date-format_en.js delete mode 100644 build/datatype/lang/datatype-date-format_es-AR.js delete mode 100644 build/datatype/lang/datatype-date-format_es-BO.js delete mode 100644 build/datatype/lang/datatype-date-format_es-CL.js delete mode 100644 build/datatype/lang/datatype-date-format_es-CO.js delete mode 100644 build/datatype/lang/datatype-date-format_es-EC.js delete mode 100644 build/datatype/lang/datatype-date-format_es-ES.js delete mode 100644 build/datatype/lang/datatype-date-format_es-MX.js delete mode 100644 build/datatype/lang/datatype-date-format_es-PE.js delete mode 100644 build/datatype/lang/datatype-date-format_es-PY.js delete mode 100644 build/datatype/lang/datatype-date-format_es-US.js delete mode 100644 build/datatype/lang/datatype-date-format_es-UY.js delete mode 100644 build/datatype/lang/datatype-date-format_es-VE.js delete mode 100644 build/datatype/lang/datatype-date-format_es.js delete mode 100644 build/datatype/lang/datatype-date-format_fi-FI.js delete mode 100644 build/datatype/lang/datatype-date-format_fi.js delete mode 100644 build/datatype/lang/datatype-date-format_fr-BE.js delete mode 100644 build/datatype/lang/datatype-date-format_fr-CA.js delete mode 100644 build/datatype/lang/datatype-date-format_fr-FR.js delete mode 100644 build/datatype/lang/datatype-date-format_fr.js delete mode 100644 build/datatype/lang/datatype-date-format_hi-IN.js delete mode 100644 build/datatype/lang/datatype-date-format_hi.js delete mode 100644 build/datatype/lang/datatype-date-format_id-ID.js delete mode 100644 build/datatype/lang/datatype-date-format_id.js delete mode 100644 build/datatype/lang/datatype-date-format_it-IT.js delete mode 100644 build/datatype/lang/datatype-date-format_it.js delete mode 100644 build/datatype/lang/datatype-date-format_ja-JP.js delete mode 100644 build/datatype/lang/datatype-date-format_ja.js delete mode 100644 build/datatype/lang/datatype-date-format_ko-KR.js delete mode 100644 build/datatype/lang/datatype-date-format_ko.js delete mode 100644 build/datatype/lang/datatype-date-format_ms-MY.js delete mode 100644 build/datatype/lang/datatype-date-format_ms.js delete mode 100644 build/datatype/lang/datatype-date-format_nb-NO.js delete mode 100644 build/datatype/lang/datatype-date-format_nb.js delete mode 100644 build/datatype/lang/datatype-date-format_nl-BE.js delete mode 100644 build/datatype/lang/datatype-date-format_nl-NL.js delete mode 100644 build/datatype/lang/datatype-date-format_nl.js delete mode 100644 build/datatype/lang/datatype-date-format_pl-PL.js delete mode 100644 build/datatype/lang/datatype-date-format_pl.js delete mode 100644 build/datatype/lang/datatype-date-format_pt-BR.js delete mode 100644 build/datatype/lang/datatype-date-format_pt.js delete mode 100644 build/datatype/lang/datatype-date-format_ro-RO.js delete mode 100644 build/datatype/lang/datatype-date-format_ro.js delete mode 100644 build/datatype/lang/datatype-date-format_ru-RU.js delete mode 100644 build/datatype/lang/datatype-date-format_ru.js delete mode 100644 build/datatype/lang/datatype-date-format_sv-SE.js delete mode 100644 build/datatype/lang/datatype-date-format_sv.js delete mode 100644 build/datatype/lang/datatype-date-format_th-TH.js delete mode 100644 build/datatype/lang/datatype-date-format_th.js delete mode 100644 build/datatype/lang/datatype-date-format_tr-TR.js delete mode 100644 build/datatype/lang/datatype-date-format_tr.js delete mode 100644 build/datatype/lang/datatype-date-format_vi-VN.js delete mode 100644 build/datatype/lang/datatype-date-format_vi.js delete mode 100644 build/datatype/lang/datatype-date-format_zh-Hans-CN.js delete mode 100644 build/datatype/lang/datatype-date-format_zh-Hans.js delete mode 100644 build/datatype/lang/datatype-date-format_zh-Hant-HK.js delete mode 100644 build/datatype/lang/datatype-date-format_zh-Hant-TW.js delete mode 100644 build/datatype/lang/datatype-date-format_zh-Hant.js delete mode 100644 build/datatype/lang/datatype-date.js delete mode 100644 build/datatype/lang/datatype-date_ar-JO.js delete mode 100644 build/datatype/lang/datatype-date_ar.js delete mode 100644 build/datatype/lang/datatype-date_ca-ES.js delete mode 100644 build/datatype/lang/datatype-date_ca.js delete mode 100644 build/datatype/lang/datatype-date_da-DK.js delete mode 100644 build/datatype/lang/datatype-date_da.js delete mode 100644 build/datatype/lang/datatype-date_de-AT.js delete mode 100644 build/datatype/lang/datatype-date_de-DE.js delete mode 100644 build/datatype/lang/datatype-date_de.js delete mode 100644 build/datatype/lang/datatype-date_el-GR.js delete mode 100644 build/datatype/lang/datatype-date_el.js delete mode 100644 build/datatype/lang/datatype-date_en-AU.js delete mode 100644 build/datatype/lang/datatype-date_en-CA.js delete mode 100644 build/datatype/lang/datatype-date_en-GB.js delete mode 100644 build/datatype/lang/datatype-date_en-IE.js delete mode 100644 build/datatype/lang/datatype-date_en-IN.js delete mode 100644 build/datatype/lang/datatype-date_en-JO.js delete mode 100644 build/datatype/lang/datatype-date_en-MY.js delete mode 100644 build/datatype/lang/datatype-date_en-NZ.js delete mode 100644 build/datatype/lang/datatype-date_en-PH.js delete mode 100644 build/datatype/lang/datatype-date_en-SG.js delete mode 100644 build/datatype/lang/datatype-date_en-US.js delete mode 100644 build/datatype/lang/datatype-date_en.js delete mode 100644 build/datatype/lang/datatype-date_es-AR.js delete mode 100644 build/datatype/lang/datatype-date_es-BO.js delete mode 100644 build/datatype/lang/datatype-date_es-CL.js delete mode 100644 build/datatype/lang/datatype-date_es-CO.js delete mode 100644 build/datatype/lang/datatype-date_es-EC.js delete mode 100644 build/datatype/lang/datatype-date_es-ES.js delete mode 100644 build/datatype/lang/datatype-date_es-MX.js delete mode 100644 build/datatype/lang/datatype-date_es-PE.js delete mode 100644 build/datatype/lang/datatype-date_es-PY.js delete mode 100644 build/datatype/lang/datatype-date_es-US.js delete mode 100644 build/datatype/lang/datatype-date_es-UY.js delete mode 100644 build/datatype/lang/datatype-date_es-VE.js delete mode 100644 build/datatype/lang/datatype-date_es.js delete mode 100644 build/datatype/lang/datatype-date_fi-FI.js delete mode 100644 build/datatype/lang/datatype-date_fi.js delete mode 100644 build/datatype/lang/datatype-date_fr-BE.js delete mode 100644 build/datatype/lang/datatype-date_fr-CA.js delete mode 100644 build/datatype/lang/datatype-date_fr-FR.js delete mode 100644 build/datatype/lang/datatype-date_fr.js delete mode 100644 build/datatype/lang/datatype-date_hi-IN.js delete mode 100644 build/datatype/lang/datatype-date_hi.js delete mode 100644 build/datatype/lang/datatype-date_id-ID.js delete mode 100644 build/datatype/lang/datatype-date_id.js delete mode 100644 build/datatype/lang/datatype-date_it-IT.js delete mode 100644 build/datatype/lang/datatype-date_it.js delete mode 100644 build/datatype/lang/datatype-date_ja-JP.js delete mode 100644 build/datatype/lang/datatype-date_ja.js delete mode 100644 build/datatype/lang/datatype-date_ko-KR.js delete mode 100644 build/datatype/lang/datatype-date_ko.js delete mode 100644 build/datatype/lang/datatype-date_ms-MY.js delete mode 100644 build/datatype/lang/datatype-date_ms.js delete mode 100644 build/datatype/lang/datatype-date_nb-NO.js delete mode 100644 build/datatype/lang/datatype-date_nb.js delete mode 100644 build/datatype/lang/datatype-date_nl-BE.js delete mode 100644 build/datatype/lang/datatype-date_nl-NL.js delete mode 100644 build/datatype/lang/datatype-date_nl.js delete mode 100644 build/datatype/lang/datatype-date_pl-PL.js delete mode 100644 build/datatype/lang/datatype-date_pl.js delete mode 100644 build/datatype/lang/datatype-date_pt-BR.js delete mode 100644 build/datatype/lang/datatype-date_pt.js delete mode 100644 build/datatype/lang/datatype-date_ro-RO.js delete mode 100644 build/datatype/lang/datatype-date_ro.js delete mode 100644 build/datatype/lang/datatype-date_ru-RU.js delete mode 100644 build/datatype/lang/datatype-date_ru.js delete mode 100644 build/datatype/lang/datatype-date_sv-SE.js delete mode 100644 build/datatype/lang/datatype-date_sv.js delete mode 100644 build/datatype/lang/datatype-date_th-TH.js delete mode 100644 build/datatype/lang/datatype-date_th.js delete mode 100644 build/datatype/lang/datatype-date_tr-TR.js delete mode 100644 build/datatype/lang/datatype-date_tr.js delete mode 100644 build/datatype/lang/datatype-date_vi-VN.js delete mode 100644 build/datatype/lang/datatype-date_vi.js delete mode 100644 build/datatype/lang/datatype-date_zh-Hans-CN.js delete mode 100644 build/datatype/lang/datatype-date_zh-Hans.js delete mode 100644 build/datatype/lang/datatype-date_zh-Hant-HK.js delete mode 100644 build/datatype/lang/datatype-date_zh-Hant-TW.js delete mode 100644 build/datatype/lang/datatype-date_zh-Hant.js delete mode 100644 build/datatype/lang/datatype.js delete mode 100644 build/datatype/lang/datatype_ar-JO.js delete mode 100644 build/datatype/lang/datatype_ar.js delete mode 100644 build/datatype/lang/datatype_ca-ES.js delete mode 100644 build/datatype/lang/datatype_ca.js delete mode 100644 build/datatype/lang/datatype_da-DK.js delete mode 100644 build/datatype/lang/datatype_da.js delete mode 100644 build/datatype/lang/datatype_de-AT.js delete mode 100644 build/datatype/lang/datatype_de-DE.js delete mode 100644 build/datatype/lang/datatype_de.js delete mode 100644 build/datatype/lang/datatype_el-GR.js delete mode 100644 build/datatype/lang/datatype_el.js delete mode 100644 build/datatype/lang/datatype_en-AU.js delete mode 100644 build/datatype/lang/datatype_en-CA.js delete mode 100644 build/datatype/lang/datatype_en-GB.js delete mode 100644 build/datatype/lang/datatype_en-IE.js delete mode 100644 build/datatype/lang/datatype_en-IN.js delete mode 100644 build/datatype/lang/datatype_en-JO.js delete mode 100644 build/datatype/lang/datatype_en-MY.js delete mode 100644 build/datatype/lang/datatype_en-NZ.js delete mode 100644 build/datatype/lang/datatype_en-PH.js delete mode 100644 build/datatype/lang/datatype_en-SG.js delete mode 100644 build/datatype/lang/datatype_en-US.js delete mode 100644 build/datatype/lang/datatype_en.js delete mode 100644 build/datatype/lang/datatype_es-AR.js delete mode 100644 build/datatype/lang/datatype_es-BO.js delete mode 100644 build/datatype/lang/datatype_es-CL.js delete mode 100644 build/datatype/lang/datatype_es-CO.js delete mode 100644 build/datatype/lang/datatype_es-EC.js delete mode 100644 build/datatype/lang/datatype_es-ES.js delete mode 100644 build/datatype/lang/datatype_es-MX.js delete mode 100644 build/datatype/lang/datatype_es-PE.js delete mode 100644 build/datatype/lang/datatype_es-PY.js delete mode 100644 build/datatype/lang/datatype_es-US.js delete mode 100644 build/datatype/lang/datatype_es-UY.js delete mode 100644 build/datatype/lang/datatype_es-VE.js delete mode 100644 build/datatype/lang/datatype_es.js delete mode 100644 build/datatype/lang/datatype_fi-FI.js delete mode 100644 build/datatype/lang/datatype_fi.js delete mode 100644 build/datatype/lang/datatype_fr-BE.js delete mode 100644 build/datatype/lang/datatype_fr-CA.js delete mode 100644 build/datatype/lang/datatype_fr-FR.js delete mode 100644 build/datatype/lang/datatype_fr.js delete mode 100644 build/datatype/lang/datatype_hi-IN.js delete mode 100644 build/datatype/lang/datatype_hi.js delete mode 100644 build/datatype/lang/datatype_id-ID.js delete mode 100644 build/datatype/lang/datatype_id.js delete mode 100644 build/datatype/lang/datatype_it-IT.js delete mode 100644 build/datatype/lang/datatype_it.js delete mode 100644 build/datatype/lang/datatype_ja-JP.js delete mode 100644 build/datatype/lang/datatype_ja.js delete mode 100644 build/datatype/lang/datatype_ko-KR.js delete mode 100644 build/datatype/lang/datatype_ko.js delete mode 100644 build/datatype/lang/datatype_ms-MY.js delete mode 100644 build/datatype/lang/datatype_ms.js delete mode 100644 build/datatype/lang/datatype_nb-NO.js delete mode 100644 build/datatype/lang/datatype_nb.js delete mode 100644 build/datatype/lang/datatype_nl-BE.js delete mode 100644 build/datatype/lang/datatype_nl-NL.js delete mode 100644 build/datatype/lang/datatype_nl.js delete mode 100644 build/datatype/lang/datatype_pl-PL.js delete mode 100644 build/datatype/lang/datatype_pl.js delete mode 100644 build/datatype/lang/datatype_pt-BR.js delete mode 100644 build/datatype/lang/datatype_pt.js delete mode 100644 build/datatype/lang/datatype_ro-RO.js delete mode 100644 build/datatype/lang/datatype_ro.js delete mode 100644 build/datatype/lang/datatype_ru-RU.js delete mode 100644 build/datatype/lang/datatype_ru.js delete mode 100644 build/datatype/lang/datatype_sv-SE.js delete mode 100644 build/datatype/lang/datatype_sv.js delete mode 100644 build/datatype/lang/datatype_th-TH.js delete mode 100644 build/datatype/lang/datatype_th.js delete mode 100644 build/datatype/lang/datatype_tr-TR.js delete mode 100644 build/datatype/lang/datatype_tr.js delete mode 100644 build/datatype/lang/datatype_vi-VN.js delete mode 100644 build/datatype/lang/datatype_vi.js delete mode 100644 build/datatype/lang/datatype_zh-Hans-CN.js delete mode 100644 build/datatype/lang/datatype_zh-Hans.js delete mode 100644 build/datatype/lang/datatype_zh-Hant-HK.js delete mode 100644 build/datatype/lang/datatype_zh-Hant-TW.js delete mode 100644 build/datatype/lang/datatype_zh-Hant.js delete mode 100644 build/dd/dd-constrain-debug.js delete mode 100644 build/dd/dd-constrain-min.js delete mode 100644 build/dd/dd-constrain.js delete mode 100644 build/dd/dd-ddm-base-debug.js delete mode 100644 build/dd/dd-ddm-base-min.js delete mode 100644 build/dd/dd-ddm-base.js delete mode 100644 build/dd/dd-ddm-debug.js delete mode 100644 build/dd/dd-ddm-drop-debug.js delete mode 100644 build/dd/dd-ddm-drop-min.js delete mode 100644 build/dd/dd-ddm-drop.js delete mode 100644 build/dd/dd-ddm-min.js delete mode 100644 build/dd/dd-ddm.js delete mode 100644 build/dd/dd-delegate-debug.js delete mode 100644 build/dd/dd-delegate-min.js delete mode 100644 build/dd/dd-delegate.js delete mode 100644 build/dd/dd-drag-debug.js delete mode 100644 build/dd/dd-drag-min.js delete mode 100644 build/dd/dd-drag.js delete mode 100644 build/dd/dd-drop-debug.js delete mode 100644 build/dd/dd-drop-min.js delete mode 100644 build/dd/dd-drop-plugin-debug.js delete mode 100644 build/dd/dd-drop-plugin-min.js delete mode 100644 build/dd/dd-drop-plugin.js delete mode 100644 build/dd/dd-drop.js delete mode 100644 build/dd/dd-gestures-debug.js delete mode 100644 build/dd/dd-gestures-min.js delete mode 100644 build/dd/dd-gestures.js delete mode 100644 build/dd/dd-plugin-debug.js delete mode 100644 build/dd/dd-plugin-min.js delete mode 100644 build/dd/dd-plugin.js delete mode 100644 build/dd/dd-proxy-debug.js delete mode 100644 build/dd/dd-proxy-min.js delete mode 100644 build/dd/dd-proxy.js delete mode 100644 build/dd/dd-scroll-debug.js delete mode 100644 build/dd/dd-scroll-min.js delete mode 100644 build/dd/dd-scroll.js delete mode 100644 build/editor/createlink-base-debug.js delete mode 100644 build/editor/createlink-base-min.js delete mode 100644 build/editor/createlink-base.js delete mode 100644 build/editor/editor-base-debug.js delete mode 100644 build/editor/editor-base-min.js delete mode 100644 build/editor/editor-base.js delete mode 100644 build/editor/editor-bidi-debug.js delete mode 100644 build/editor/editor-bidi-min.js delete mode 100644 build/editor/editor-bidi.js delete mode 100644 build/editor/editor-br-debug.js delete mode 100644 build/editor/editor-br-min.js delete mode 100644 build/editor/editor-br.js delete mode 100644 build/editor/editor-lists-debug.js delete mode 100644 build/editor/editor-lists-min.js delete mode 100644 build/editor/editor-lists.js delete mode 100644 build/editor/editor-para-debug.js delete mode 100644 build/editor/editor-para-min.js delete mode 100644 build/editor/editor-para.js delete mode 100644 build/editor/editor-tab-debug.js delete mode 100644 build/editor/editor-tab-min.js delete mode 100644 build/editor/editor-tab.js delete mode 100644 build/editor/exec-command-debug.js delete mode 100644 build/editor/exec-command-min.js delete mode 100644 build/editor/exec-command.js delete mode 100644 build/editor/frame-debug.js delete mode 100644 build/editor/frame-min.js delete mode 100644 build/editor/frame.js delete mode 100644 build/editor/selection-debug.js delete mode 100644 build/editor/selection-min.js delete mode 100644 build/editor/selection.js delete mode 100644 build/event-custom/event-custom-base-debug.js delete mode 100644 build/event-custom/event-custom-base-min.js delete mode 100644 build/event-custom/event-custom-base.js delete mode 100644 build/event-custom/event-custom-complex-debug.js delete mode 100644 build/event-custom/event-custom-complex-min.js delete mode 100644 build/event-custom/event-custom-complex.js delete mode 100644 build/event-custom/event-custom-debug.js delete mode 100644 build/event-custom/event-custom-min.js delete mode 100644 build/event-custom/event-custom.js delete mode 100644 build/event-gestures/event-flick-debug.js delete mode 100644 build/event-gestures/event-flick-min.js delete mode 100644 build/event-gestures/event-flick.js delete mode 100644 build/event-gestures/event-gestures-debug.js delete mode 100644 build/event-gestures/event-gestures-min.js delete mode 100644 build/event-gestures/event-gestures.js delete mode 100644 build/event-gestures/event-move-debug.js delete mode 100644 build/event-gestures/event-move-min.js delete mode 100644 build/event-gestures/event-move.js delete mode 100644 build/event/event-base-debug.js delete mode 100644 build/event/event-base-ie-debug.js delete mode 100644 build/event/event-base-ie-min.js delete mode 100644 build/event/event-base-ie.js delete mode 100644 build/event/event-base-min.js delete mode 100644 build/event/event-base.js delete mode 100644 build/event/event-debug.js delete mode 100644 build/event/event-delegate-debug.js delete mode 100644 build/event/event-delegate-min.js delete mode 100644 build/event/event-delegate.js delete mode 100644 build/event/event-focus-debug.js delete mode 100644 build/event/event-focus-min.js delete mode 100644 build/event/event-focus.js delete mode 100644 build/event/event-hover-debug.js delete mode 100644 build/event/event-hover-min.js delete mode 100644 build/event/event-hover.js delete mode 100644 build/event/event-key-debug.js delete mode 100644 build/event/event-key-min.js delete mode 100644 build/event/event-key.js delete mode 100644 build/event/event-min.js delete mode 100644 build/event/event-mouseenter-debug.js delete mode 100644 build/event/event-mouseenter-min.js delete mode 100644 build/event/event-mouseenter.js delete mode 100644 build/event/event-mousewheel-debug.js delete mode 100644 build/event/event-mousewheel-min.js delete mode 100644 build/event/event-mousewheel.js delete mode 100644 build/event/event-resize-debug.js delete mode 100644 build/event/event-resize-min.js delete mode 100644 build/event/event-resize.js delete mode 100644 build/event/event-synthetic-debug.js delete mode 100644 build/event/event-synthetic-min.js delete mode 100644 build/event/event-synthetic.js delete mode 100644 build/event/event-touch-debug.js delete mode 100644 build/event/event-touch-min.js delete mode 100644 build/event/event-touch.js delete mode 100644 build/event/event.js delete mode 100644 build/highlight/highlight-accentfold-debug.js delete mode 100644 build/highlight/highlight-accentfold-min.js delete mode 100644 build/highlight/highlight-accentfold.js delete mode 100644 build/highlight/highlight-base-debug.js delete mode 100644 build/highlight/highlight-base-min.js delete mode 100644 build/highlight/highlight-base.js delete mode 100644 build/highlight/highlight-debug.js delete mode 100644 build/highlight/highlight-min.js delete mode 100644 build/highlight/highlight.js delete mode 100644 build/history/history-base-debug.js delete mode 100644 build/history/history-base-min.js delete mode 100644 build/history/history-base.js delete mode 100644 build/history/history-debug.js delete mode 100644 build/history/history-hash-debug.js delete mode 100644 build/history/history-hash-ie-debug.js delete mode 100644 build/history/history-hash-ie-min.js delete mode 100644 build/history/history-hash-ie.js delete mode 100644 build/history/history-hash-min.js delete mode 100644 build/history/history-hash.js delete mode 100644 build/history/history-html5-debug.js delete mode 100644 build/history/history-html5-min.js delete mode 100644 build/history/history-html5.js delete mode 100644 build/history/history-min.js delete mode 100644 build/history/history.js delete mode 100644 build/json/json-debug.js delete mode 100644 build/json/json-min.js delete mode 100644 build/json/json-parse-debug.js delete mode 100644 build/json/json-parse-min.js delete mode 100644 build/json/json-parse.js delete mode 100644 build/json/json-stringify-debug.js delete mode 100644 build/json/json-stringify-min.js delete mode 100644 build/json/json-stringify.js delete mode 100644 build/json/json.js delete mode 100644 build/jsonp/jsonp-url-debug.js delete mode 100644 build/jsonp/jsonp-url-min.js delete mode 100644 build/jsonp/jsonp-url.js delete mode 100644 build/loader/loader-base-debug.js delete mode 100644 build/loader/loader-base-min.js delete mode 100644 build/loader/loader-base.js delete mode 100644 build/loader/loader-rollup-debug.js delete mode 100644 build/loader/loader-rollup-min.js delete mode 100644 build/loader/loader-rollup.js delete mode 100644 build/loader/loader-yui3-debug.js delete mode 100644 build/loader/loader-yui3-min.js delete mode 100644 build/loader/loader-yui3.js delete mode 100644 build/plugin/pluginattr-debug.js delete mode 100644 build/plugin/pluginattr-min.js delete mode 100644 build/plugin/pluginattr.js delete mode 100644 build/pluginhost/pluginhost-base-debug.js delete mode 100644 build/pluginhost/pluginhost-base-min.js delete mode 100644 build/pluginhost/pluginhost-base.js delete mode 100644 build/pluginhost/pluginhost-config-debug.js delete mode 100644 build/pluginhost/pluginhost-config-min.js delete mode 100644 build/pluginhost/pluginhost-config.js delete mode 100644 build/pluginhost/pluginhost-debug.js delete mode 100644 build/pluginhost/pluginhost-min.js delete mode 100644 build/pluginhost/pluginhost.js delete mode 100644 build/recordset/recordset-base-debug.js delete mode 100644 build/recordset/recordset-base-min.js delete mode 100644 build/recordset/recordset-base.js delete mode 100644 build/recordset/recordset-debug.js delete mode 100644 build/recordset/recordset-filter-debug.js delete mode 100644 build/recordset/recordset-filter-min.js delete mode 100644 build/recordset/recordset-filter.js delete mode 100644 build/recordset/recordset-indexer-debug.js delete mode 100644 build/recordset/recordset-indexer-min.js delete mode 100644 build/recordset/recordset-indexer.js delete mode 100644 build/recordset/recordset-min.js delete mode 100644 build/recordset/recordset-sort-debug.js delete mode 100644 build/recordset/recordset-sort-min.js delete mode 100644 build/recordset/recordset-sort.js delete mode 100644 build/recordset/recordset.js delete mode 100644 build/resize/assets/skins/sam/resize-base.css delete mode 100644 build/resize/resize-base-debug.js delete mode 100644 build/resize/resize-base-min.js delete mode 100644 build/resize/resize-base.js delete mode 100644 build/resize/resize-constrain-debug.js delete mode 100644 build/resize/resize-constrain-min.js delete mode 100644 build/resize/resize-constrain.js delete mode 100644 build/resize/resize-plugin-debug.js delete mode 100644 build/resize/resize-plugin-min.js delete mode 100644 build/resize/resize-plugin.js delete mode 100644 build/resize/resize-proxy-debug.js delete mode 100644 build/resize/resize-proxy-min.js delete mode 100644 build/resize/resize-proxy.js delete mode 100644 build/scrollview-base-ie/assets/scrollview-base-core.css delete mode 100644 build/scrollview-base-ie/assets/scrollview-scrollbars-core.css delete mode 100644 build/scrollview-base/assets/scrollview-scrollbars-core.css delete mode 100644 build/scrollview-base/assets/skins/sam/scrollview-scrollbars-skin.css delete mode 100644 build/scrollview-paginator/assets/scrollview-base-core.css delete mode 100644 build/scrollview-paginator/assets/scrollview-scrollbars-core.css delete mode 100644 build/scrollview-scrollbars/assets/scrollview-base-core.css delete mode 100644 build/scrollview-scrollbars/assets/skins/sam/scrollview-base-skin.css delete mode 100644 build/scrollview/assets/scrollview-base-core.css delete mode 100644 build/scrollview/assets/scrollview-paginator-core.css delete mode 100644 build/scrollview/assets/scrollview-scrollbars-core.css delete mode 100644 build/scrollview/assets/skins/sam/scrollview-base-skin.css delete mode 100644 build/scrollview/assets/skins/sam/scrollview-base.css delete mode 100644 build/scrollview/assets/skins/sam/scrollview-paginator-skin.css delete mode 100644 build/scrollview/assets/skins/sam/scrollview-paginator.css delete mode 100644 build/scrollview/assets/skins/sam/scrollview-scrollbars-skin.css delete mode 100644 build/scrollview/assets/skins/sam/scrollview-scrollbars.css delete mode 100644 build/scrollview/scrollview-base-debug.js delete mode 100644 build/scrollview/scrollview-base-ie-debug.js delete mode 100644 build/scrollview/scrollview-base-ie-min.js delete mode 100644 build/scrollview/scrollview-base-ie.js delete mode 100644 build/scrollview/scrollview-base-min.js delete mode 100644 build/scrollview/scrollview-base.js delete mode 100644 build/scrollview/scrollview-paginator-debug.js delete mode 100644 build/scrollview/scrollview-paginator-min.js delete mode 100644 build/scrollview/scrollview-paginator.js delete mode 100644 build/scrollview/scrollview-scrollbars-debug.js delete mode 100644 build/scrollview/scrollview-scrollbars-min.js delete mode 100644 build/scrollview/scrollview-scrollbars.js delete mode 100644 build/slider/assets/skins/audio-light/rail-x.png delete mode 100644 build/slider/assets/skins/audio-light/rail-y.png delete mode 100644 build/slider/assets/skins/audio-light/slider-base-skin.css delete mode 100644 build/slider/assets/skins/audio-light/slider-base.css delete mode 100644 build/slider/assets/skins/audio-light/slider-skin.css delete mode 100644 build/slider/assets/skins/audio-light/slider.css delete mode 100644 build/slider/assets/skins/audio-light/thumb-x.png delete mode 100644 build/slider/assets/skins/audio-light/thumb-y.png delete mode 100644 build/slider/assets/skins/audio/rail-x.png delete mode 100644 build/slider/assets/skins/audio/rail-y.png delete mode 100644 build/slider/assets/skins/audio/slider-base-skin.css delete mode 100644 build/slider/assets/skins/audio/slider-base.css delete mode 100644 build/slider/assets/skins/audio/slider-skin.css delete mode 100644 build/slider/assets/skins/audio/slider.css delete mode 100644 build/slider/assets/skins/audio/thumb-x.png delete mode 100644 build/slider/assets/skins/audio/thumb-y.png delete mode 100644 build/slider/assets/skins/capsule-dark/rail-x-dots.png delete mode 100644 build/slider/assets/skins/capsule-dark/rail-x-lines.png delete mode 100644 build/slider/assets/skins/capsule-dark/rail-x.png delete mode 100644 build/slider/assets/skins/capsule-dark/rail-y-dots.png delete mode 100644 build/slider/assets/skins/capsule-dark/rail-y-lines.png delete mode 100644 build/slider/assets/skins/capsule-dark/rail-y.png delete mode 100644 build/slider/assets/skins/capsule-dark/slider-base-skin.css delete mode 100644 build/slider/assets/skins/capsule-dark/slider-base.css delete mode 100644 build/slider/assets/skins/capsule-dark/slider-skin.css delete mode 100644 build/slider/assets/skins/capsule-dark/slider.css delete mode 100644 build/slider/assets/skins/capsule-dark/thumb-x-line.png delete mode 100644 build/slider/assets/skins/capsule-dark/thumb-x.png delete mode 100644 build/slider/assets/skins/capsule-dark/thumb-y-line.png delete mode 100644 build/slider/assets/skins/capsule-dark/thumb-y.png delete mode 100644 build/slider/assets/skins/capsule/rail-x-dots.png delete mode 100644 build/slider/assets/skins/capsule/rail-x-lines.png delete mode 100644 build/slider/assets/skins/capsule/rail-x.png delete mode 100644 build/slider/assets/skins/capsule/rail-y-dots.png delete mode 100644 build/slider/assets/skins/capsule/rail-y-lines.png delete mode 100644 build/slider/assets/skins/capsule/rail-y.png delete mode 100644 build/slider/assets/skins/capsule/slider-base-skin.css delete mode 100644 build/slider/assets/skins/capsule/slider-base.css delete mode 100644 build/slider/assets/skins/capsule/slider-skin.css delete mode 100644 build/slider/assets/skins/capsule/slider.css delete mode 100644 build/slider/assets/skins/capsule/thumb-x-line.png delete mode 100644 build/slider/assets/skins/capsule/thumb-x.png delete mode 100644 build/slider/assets/skins/capsule/thumb-y-line.png delete mode 100644 build/slider/assets/skins/capsule/thumb-y-lines.png delete mode 100644 build/slider/assets/skins/capsule/thumb-y.png delete mode 100644 build/slider/assets/skins/round-dark/rail-x.png delete mode 100644 build/slider/assets/skins/round-dark/rail-y.png delete mode 100644 build/slider/assets/skins/round-dark/slider-base-skin.css delete mode 100644 build/slider/assets/skins/round-dark/slider-base.css delete mode 100644 build/slider/assets/skins/round-dark/slider-skin.css delete mode 100644 build/slider/assets/skins/round-dark/slider.css delete mode 100644 build/slider/assets/skins/round-dark/thumb-x-grip.png delete mode 100644 build/slider/assets/skins/round-dark/thumb-x.png delete mode 100644 build/slider/assets/skins/round-dark/thumb-y-grip.png delete mode 100644 build/slider/assets/skins/round-dark/thumb-y.png delete mode 100644 build/slider/assets/skins/round/rail-x.png delete mode 100644 build/slider/assets/skins/round/rail-y.png delete mode 100644 build/slider/assets/skins/round/slider-base-skin.css delete mode 100644 build/slider/assets/skins/round/slider-base.css delete mode 100644 build/slider/assets/skins/round/slider-skin.css delete mode 100644 build/slider/assets/skins/round/slider.css delete mode 100644 build/slider/assets/skins/round/thumb-x-grip.png delete mode 100644 build/slider/assets/skins/round/thumb-x.png delete mode 100644 build/slider/assets/skins/round/thumb-y-grip.png delete mode 100644 build/slider/assets/skins/round/thumb-y.png delete mode 100644 build/slider/assets/skins/sam-dark/rail-x-lines.png delete mode 100644 build/slider/assets/skins/sam-dark/rail-x.png delete mode 100644 build/slider/assets/skins/sam-dark/rail-y-lines.png delete mode 100644 build/slider/assets/skins/sam-dark/rail-y.png delete mode 100644 build/slider/assets/skins/sam-dark/slider-base-skin.css delete mode 100644 build/slider/assets/skins/sam-dark/slider-base.css delete mode 100644 build/slider/assets/skins/sam-dark/slider-skin.css delete mode 100644 build/slider/assets/skins/sam-dark/slider.css delete mode 100644 build/slider/assets/skins/sam-dark/thumb-x.png delete mode 100644 build/slider/assets/skins/sam-dark/thumb-y.png delete mode 100644 build/slider/assets/skins/sam/rail-classic-x.png delete mode 100644 build/slider/assets/skins/sam/rail-classic-y.png delete mode 100644 build/slider/assets/skins/sam/rail-x-lines.png delete mode 100644 build/slider/assets/skins/sam/rail-x.png delete mode 100644 build/slider/assets/skins/sam/rail-y-lines.png delete mode 100644 build/slider/assets/skins/sam/rail-y.png delete mode 100644 build/slider/assets/skins/sam/slider-base-skin.css delete mode 100644 build/slider/assets/skins/sam/slider-base.css delete mode 100644 build/slider/assets/skins/sam/slider-skin.css delete mode 100644 build/slider/assets/skins/sam/slider.css delete mode 100644 build/slider/assets/skins/sam/thumb-classic-x.png delete mode 100644 build/slider/assets/skins/sam/thumb-classic-y.png delete mode 100644 build/slider/assets/skins/sam/thumb-x.png delete mode 100644 build/slider/assets/skins/sam/thumb-y.png delete mode 100644 build/slider/assets/slider-base-core.css delete mode 100644 build/slider/assets/slider-core.css delete mode 100644 build/slider/assets/thumb-x-oblong-dark.png delete mode 100644 build/slider/assets/thumb-x-oblong.png delete mode 100644 build/slider/assets/thumb-x-oblong2-dark.png delete mode 100644 build/slider/assets/thumb-x-oblong2.png delete mode 100644 build/slider/assets/thumb-y-oblong-dark.png delete mode 100644 build/slider/assets/thumb-y-oblong.png delete mode 100644 build/slider/assets/thumb-y-oblong2-dark.png delete mode 100644 build/slider/assets/thumb-y-oblong2.png delete mode 100644 build/slider/clickable-rail-debug.js delete mode 100644 build/slider/clickable-rail-min.js delete mode 100644 build/slider/clickable-rail.js delete mode 100644 build/slider/range-slider-debug.js delete mode 100644 build/slider/range-slider-min.js delete mode 100644 build/slider/range-slider.js delete mode 100644 build/slider/slider-base-debug.js delete mode 100644 build/slider/slider-base-min.js delete mode 100644 build/slider/slider-base.js delete mode 100644 build/slider/slider-debug.js delete mode 100644 build/slider/slider-min.js delete mode 100644 build/slider/slider-value-range-debug.js delete mode 100644 build/slider/slider-value-range-min.js delete mode 100644 build/slider/slider-value-range.js delete mode 100644 build/slider/slider.js delete mode 100644 build/sortable/sortable-scroll-debug.js delete mode 100644 build/sortable/sortable-scroll-min.js delete mode 100644 build/sortable/sortable-scroll.js delete mode 100644 build/text/text-accentfold-debug.js delete mode 100644 build/text/text-accentfold-min.js delete mode 100644 build/text/text-accentfold.js delete mode 100644 build/text/text-data-accentfold-debug.js delete mode 100644 build/text/text-data-accentfold-min.js delete mode 100644 build/text/text-data-accentfold.js delete mode 100644 build/text/text-data-wordbreak-debug.js delete mode 100644 build/text/text-data-wordbreak-min.js delete mode 100644 build/text/text-data-wordbreak.js delete mode 100644 build/text/text-debug.js delete mode 100644 build/text/text-min.js delete mode 100644 build/text/text-wordbreak-debug.js delete mode 100644 build/text/text-wordbreak-min.js delete mode 100644 build/text/text-wordbreak.js delete mode 100644 build/text/text.js delete mode 100644 build/widget/assets/skins/sam/widget-base-skin.css delete mode 100644 build/widget/assets/skins/sam/widget-base.css delete mode 100644 build/widget/assets/skins/sam/widget-stack-skin.css delete mode 100644 build/widget/assets/skins/sam/widget-stack.css delete mode 100644 build/widget/assets/skins/sam/widget.css delete mode 100644 build/widget/assets/widget-base-core.css delete mode 100644 build/widget/assets/widget-stack-core.css delete mode 100644 build/widget/widget-base-debug.js delete mode 100644 build/widget/widget-base-ie-debug.js delete mode 100644 build/widget/widget-base-ie-min.js delete mode 100644 build/widget/widget-base-ie.js delete mode 100644 build/widget/widget-base-min.js delete mode 100644 build/widget/widget-base.js delete mode 100644 build/widget/widget-child-debug.js delete mode 100644 build/widget/widget-child-min.js delete mode 100644 build/widget/widget-child.js delete mode 100644 build/widget/widget-debug.js delete mode 100644 build/widget/widget-htmlparser-debug.js delete mode 100644 build/widget/widget-htmlparser-min.js delete mode 100644 build/widget/widget-htmlparser.js delete mode 100644 build/widget/widget-locale-debug.js delete mode 100644 build/widget/widget-locale-min.js delete mode 100644 build/widget/widget-locale.js delete mode 100644 build/widget/widget-min.js delete mode 100644 build/widget/widget-modality-debug.js delete mode 100644 build/widget/widget-modality-min.js delete mode 100644 build/widget/widget-modality.js delete mode 100644 build/widget/widget-parent-debug.js delete mode 100644 build/widget/widget-parent-min.js delete mode 100644 build/widget/widget-parent.js delete mode 100644 build/widget/widget-position-align-debug.js delete mode 100644 build/widget/widget-position-align-min.js delete mode 100644 build/widget/widget-position-align.js delete mode 100644 build/widget/widget-position-constrain-debug.js delete mode 100644 build/widget/widget-position-constrain-min.js delete mode 100644 build/widget/widget-position-constrain.js delete mode 100644 build/widget/widget-position-debug.js delete mode 100644 build/widget/widget-position-min.js delete mode 100644 build/widget/widget-position.js delete mode 100644 build/widget/widget-skin-debug.js delete mode 100644 build/widget/widget-skin-min.js delete mode 100644 build/widget/widget-skin.js delete mode 100644 build/widget/widget-stack-debug.js delete mode 100644 build/widget/widget-stack-min.js delete mode 100644 build/widget/widget-stack.js delete mode 100644 build/widget/widget-stdmod-debug.js delete mode 100644 build/widget/widget-stdmod-min.js delete mode 100644 build/widget/widget-stdmod.js delete mode 100644 build/widget/widget-uievents-debug.js delete mode 100644 build/widget/widget-uievents-min.js delete mode 100644 build/widget/widget-uievents.js delete mode 100644 build/widget/widget.js delete mode 100644 build/yui/features-debug.js delete mode 100644 build/yui/features-min.js delete mode 100644 build/yui/features.js delete mode 100644 build/yui/get-debug.js delete mode 100644 build/yui/get-min.js delete mode 100644 build/yui/get.js delete mode 100644 build/yui/intl-base-debug.js delete mode 100644 build/yui/intl-base-min.js delete mode 100644 build/yui/intl-base.js delete mode 100644 build/yui/rls-debug.js delete mode 100644 build/yui/rls-min.js delete mode 100644 build/yui/rls.js delete mode 100644 build/yui/yui-base-debug.js delete mode 100644 build/yui/yui-base-min.js delete mode 100644 build/yui/yui-base.js delete mode 100644 build/yui/yui-later-debug.js delete mode 100644 build/yui/yui-later-min.js delete mode 100644 build/yui/yui-later.js delete mode 100644 build/yui/yui-log-debug.js delete mode 100644 build/yui/yui-log-min.js delete mode 100644 build/yui/yui-log.js delete mode 100644 build/yui/yui-rls-debug.js delete mode 100644 build/yui/yui-rls-min.js delete mode 100644 build/yui/yui-rls.js delete mode 100644 build/yui/yui-throttle-debug.js delete mode 100644 build/yui/yui-throttle-min.js delete mode 100644 build/yui/yui-throttle.js diff --git a/build/app/app-debug.js b/build/app/app-debug.js deleted file mode 100644 index 6b059e99e8f..00000000000 --- a/build/app/app-debug.js +++ /dev/null @@ -1,2561 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('controller', function(Y) { - -/** -The app framework provides simple MVC-like building blocks (models, model lists, -views, and controllers) for writing single-page JavaScript applications. - -@main app -@module app -**/ - -/** -Provides URL-based routing using HTML5 `pushState()` or the location hash. - -This makes it easy to wire up route handlers for different application states -while providing full back/forward navigation support and bookmarkable, shareable -URLs. - -@submodule controller -@class Controller -@constructor -@uses Base -**/ - -var HistoryHash = Y.HistoryHash, - Lang = Y.Lang, - QS = Y.QueryString, - YArray = Y.Array, - - // Android versions lower than 3.0 are buggy and don't update - // window.location after a pushState() call, so we fall back to hash-based - // history for them. - // - // See http://code.google.com/p/android/issues/detail?id=17471 - html5 = Y.HistoryBase.html5 && (!Y.UA.android || Y.UA.android >= 3), - win = Y.config.win, - location = win.location, - - /** - Fired when the controller is ready to begin dispatching to route handlers. - - You shouldn't need to wait for this event unless you plan to implement some - kind of custom dispatching logic. It's used internally in order to avoid - dispatching to an initial route if a browser history change occurs first. - - @event ready - @param {Boolean} dispatched `true` if routes have already been dispatched - (most likely due to a history change). - @fireOnce - **/ - EVT_READY = 'ready'; - -function Controller() { - Controller.superclass.constructor.apply(this, arguments); -} - -Y.Controller = Y.extend(Controller, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - Whether or not this browser is capable of using HTML5 history. - - This property is for informational purposes only. It's not configurable, and - changing it will have no effect. - - @property html5 - @type Boolean - **/ - html5: html5, - - /** - Root path from which all routes should be evaluated. - - For example, if your controller is running on a page at - `http://example.com/myapp/` and you add a route with the path `/`, your - route will never execute, because the path will always be preceded by - `/myapp`. Setting `root` to `/myapp` would cause all routes to be evaluated - relative to that root URL, so the `/` route would then execute when the - user browses to `http://example.com/myapp/`. - - This property may be overridden in a subclass, set after instantiation, or - passed as a config attribute when instantiating a `Y.Controller`-based - class. - - @property root - @type String - @default `''` - **/ - root: '', - - /** - Array of route objects specifying routes to be created at instantiation - time. - - Each item in the array must be an object with the following properties: - - * `path`: String or regex representing the path to match. See the docs for - the `route()` method for more details. - * `callback`: Function or a string representing the name of a function on - this controller instance that should be called when the route is - triggered. See the docs for the `route()` method for more details. - - This property may be overridden in a subclass or passed as a config - attribute when instantiating a `Y.Controller`-based class, but setting it - after instantiation will have no effect (use the `route()` method instead). - - If routes are passed at instantiation time, they will override any routes - set on the prototype. - - @property routes - @type Object[] - @default `[]` - **/ - routes: [], - - // -- Protected Properties ------------------------------------------------- - - /** - Whether or not `_dispatch()` has been called since this controller was - instantiated. - - @property _dispatched - @type Boolean - @default undefined - @protected - **/ - - /** - Whether or not the `ready` event has fired yet. - - @property _ready - @type Boolean - @default undefined - @protected - **/ - - /** - Regex used to match parameter placeholders in route paths. - - Subpattern captures: - - 1. Parameter prefix character. Either a `:` for subpath parameters that - should only match a single level of a path, or `*` for splat parameters - that should match any number of path levels. - 2. Parameter name. - - @property _regexPathParam - @type RegExp - @protected - **/ - _regexPathParam: /([:*])([\w-]+)/g, - - /** - Regex that matches and captures the query portion of a URL, minus the - preceding `?` character, and discarding the hash portion of the URL if any. - - @property _regexUrlQuery - @type RegExp - @protected - **/ - _regexUrlQuery: /\?([^#]*).*$/, - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - var self = this; - - // Set config properties. - config || (config = {}); - - config.routes && (self.routes = config.routes); - Lang.isValue(config.root) && (self.root = config.root); - - // Create routes. - self._routes = []; - - YArray.each(self.routes, function (route) { - self.route(route.path, route.callback); - }); - - // Set up a history instance or hashchange listener. - if (html5) { - self._history = new Y.HistoryHTML5({force: true}); - self._history.after('change', self._afterHistoryChange, self); - } else { - Y.on('hashchange', self._afterHistoryChange, win, self); - } - - // Fire a 'ready' event once we're ready to route. We wait first for all - // subclass initializers to finish, and then an additional 20ms to allow - // the browser to fire an initial `popstate` event if it wants to. - self.publish(EVT_READY, { - defaultFn : self._defReadyFn, - fireOnce : true, - preventable: false - }); - - self.once('initializedChange', function () { - setTimeout(function () { - self.fire(EVT_READY, {dispatched: !!self._dispatched}); - }, 20); - }); - }, - - destructor: function () { - if (html5) { - this._history.detachAll(); - } else { - Y.detach('hashchange', this._afterHistoryChange, win); - } - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Dispatches to the first route handler that matches the current URL, if any. - - If `dispatch()` is called before the `ready` event has fired, it will - automatically wait for the `ready` event before dispatching. Otherwise it - will dispatch immediately. - - @method dispatch - @chainable - **/ - dispatch: function () { - this.once(EVT_READY, function () { - var hash = this._getHashPath(); - - this._ready = true; - - if (html5 && hash && hash.charAt(0) === '/') { - // This is an HTML5 browser and we have a hash-based path in the - // URL, so we need to upgrade the URL to a non-hash URL. This - // will trigger a `history:change` event, which will in turn - // trigger a dispatch. - this._history.replace(null, {url: this._joinURL(hash)}); - } else { - this._dispatch(this._getPath()); - } - }); - - return this; - }, - - /** - Returns an array of route objects that match the specified URL path. - - This method is called internally to determine which routes match the current - path whenever the URL changes. You may override it if you want to customize - the route matching logic, although this usually shouldn't be necessary. - - Each returned route object has the following properties: - - * `callback`: A function or a string representing the name of a function - this controller that should be executed when the route is triggered. - * `keys`: An array of strings representing the named parameters defined in - the route's path specification, if any. - * `path`: The route's path specification, which may be either a string or - a regex. - * `regex`: A regular expression version of the route's path specification. - This regex is used to determine whether the route matches a given path. - - @example - controller.route('/foo', function () {}); - controller.match('/foo'); - // => [{callback: ..., keys: [], path: '/foo', regex: ...}] - - @method match - @param {String} path URL path to match. - @return {Object[]} Array of route objects that match the specified path. - **/ - match: function (path) { - return YArray.filter(this._routes, function (route) { - return path.search(route.regex) > -1; - }); - }, - - /** - Replaces the current browser history entry with a new one, and dispatches to - the first matching route handler, if any. - - Behind the scenes, this method uses HTML5 `pushState()` in browsers that - support it (or the location hash in older browsers and IE) to change the - URL. - - The specified URL must share the same origin (i.e., protocol, host, and - port) as the current page, or an error will occur. - - @example - // Starting URL: http://example.com/ - - controller.replace('/path/'); - // New URL: http://example.com/path/ - - controller.replace('/path?foo=bar'); - // New URL: http://example.com/path?foo=bar - - controller.replace('/'); - // New URL: http://example.com/ - - @method replace - @param {String} [url] URL to set. Should be a relative URL. If this - controller's `root` property is set, this URL must be relative to the - root URL. If no URL is specified, the page's current URL will be used. - @chainable - @see save() - **/ - replace: function (url) { - return this._save(url, true); - }, - - /** - Adds a route handler for the specified URL _path_. - - The _path_ parameter may be either a string or a regular expression. If it's - a string, it may contain named parameters: `:param` will match any single - part of a URL path (not including `/` characters), and `*param` will match - any number of parts of a URL path (including `/` characters). These named - parameters will be made available as keys on the `req.params` object that's - passed to route handlers. - - If the _path_ parameter is a regex, all pattern matches will be made - available as numbered keys on `req.params`, starting with `0` for the full - match, then `1` for the first subpattern match, and so on. - - Here's a set of sample routes along with URL paths that they match: - - * Route: `/photos/:tag/:page` - * URL: `/photos/kittens/1`, params: `{tag: 'kittens', page: '1'}` - * URL: `/photos/puppies/2`, params: `{tag: 'puppies', page: '2'}` - - * Route: `/file/*path` - * URL: `/file/foo/bar/baz.txt`, params: `{path: 'foo/bar/baz.txt'}` - * URL: `/file/foo`, params: `{path: 'foo'}` - - If multiple route handlers match a given URL, they will be executed in the - order they were added. The first route that was added will be the first to - be executed. - - @example - controller.route('/photos/:tag/:page', function (req, next) { - Y.log('Current tag: ' + req.params.tag); - Y.log('Current page number: ' + req.params.page); - }); - - @method route - @param {String|RegExp} path Path to match. May be a string or a regular - expression. - @param {Function|String} callback Callback function to call whenever this - route is triggered. If specified as a string, the named function will be - called on this controller instance. - @param {Object} callback.req Request object containing information about - the request. It contains the following properties. - @param {Array|Object} callback.req.params Captured parameters matched by - the route path specification. If a string path was used and contained - named parameters, then this will be a key/value hash mapping parameter - names to their matched values. If a regex path was used, this will be - an array of subpattern matches starting at index 0 for the full match, - then 1 for the first subpattern match, and so on. - @param {String} callback.req.path The current URL path. - @param {Object} callback.req.query Query hash representing the URL query - string, if any. Parameter names are keys, and are mapped to parameter - values. - @param {Function} callback.next Callback to pass control to the next - matching route. If you don't call this function, then no further route - handlers will be executed, even if there are more that match. If you do - call this function, then the next matching route handler (if any) will - be called, and will receive the same `req` object that was passed to - this route (so you can use the request object to pass data along to - subsequent routes). - @chainable - **/ - route: function (path, callback) { - var keys = []; - - this._routes.push({ - callback: callback, - keys : keys, - path : path, - regex : this._getRegex(path, keys) - }); - - return this; - }, - - /** - Saves a new browser history entry and dispatches to the first matching route - handler, if any. - - Behind the scenes, this method uses HTML5 `pushState()` in browsers that - support it (or the location hash in older browsers and IE) to change the - URL and create a history entry. - - The specified URL must share the same origin (i.e., protocol, host, and - port) as the current page, or an error will occur. - - @example - // Starting URL: http://example.com/ - - controller.save('/path/'); - // New URL: http://example.com/path/ - - controller.save('/path?foo=bar'); - // New URL: http://example.com/path?foo=bar - - controller.save('/'); - // New URL: http://example.com/ - - @method save - @param {String} [url] URL to set. Should be a relative URL. If this - controller's `root` property is set, this URL must be relative to the - root URL. If no URL is specified, the page's current URL will be used. - @chainable - @see replace() - **/ - save: function (url) { - return this._save(url); - }, - - // -- Protected Methods ---------------------------------------------------- - - /** - Wrapper around `decodeURIComponent` that also converts `+` chars into - spaces. - - @method _decode - @param {String} string String to decode. - @return {String} Decoded string. - @protected - **/ - _decode: function (string) { - return decodeURIComponent(string.replace(/\+/g, ' ')); - }, - - /** - Dispatches to the first route handler that matches the specified _path_. - - If called before the `ready` event has fired, the dispatch will be aborted. - This ensures normalized behavior between Chrome (which fires a `popstate` - event on every pageview) and other browsers (which do not). - - @method _dispatch - @param {String} path URL path. - @chainable - @protected - **/ - _dispatch: function (path) { - var self = this, - routes = self.match(path), - req; - - self._dispatched = true; - - if (!routes || !routes.length) { - return this; - } - - req = self._getRequest(path); - - function next(err) { - var callback, matches, route; - - if (err) { - Y.error(err); - } else if ((route = routes.shift())) { - matches = route.regex.exec(path); - callback = typeof route.callback === 'string' ? - self[route.callback] : route.callback; - - // Use named keys for parameter names if the route path contains - // named keys. Otherwise, use numerical match indices. - if (matches.length === route.keys.length + 1) { - req.params = YArray.hash(route.keys, matches.slice(1)); - } else { - req.params = matches.concat(); - } - - callback.call(self, req, next); - } - } - - next(); - return this; - }, - - /** - Gets the current path from the location hash, or an empty string if the - hash is empty. - - @method _getHashPath - @return {String} Current hash path, or an empty string if the hash is empty. - @protected - **/ - _getHashPath: function () { - return HistoryHash.getHash().replace(this._regexUrlQuery, ''); - }, - - /** - Gets the current route path. - - @method _getPath - @return {String} Current route path. - @protected - **/ - _getPath: html5 ? function () { - return this._removeRoot(location.pathname); - } : function () { - return this._getHashPath() || this._removeRoot(location.pathname); - }, - - /** - Gets the current route query string. - - @method _getQuery - @return {String} Current route query string. - @protected - **/ - _getQuery: html5 ? function () { - return location.search.substring(1); - } : function () { - var hash = HistoryHash.getHash(), - matches = hash.match(this._regexUrlQuery); - - return hash && matches ? matches[1] : location.search.substring(1); - }, - - /** - Creates a regular expression from the given route specification. If _path_ - is already a regex, it will be returned unmodified. - - @method _getRegex - @param {String|RegExp} path Route path specification. - @param {Array} keys Array reference to which route parameter names will be - added. - @return {RegExp} Route regex. - @protected - **/ - _getRegex: function (path, keys) { - if (path instanceof RegExp) { - return path; - } - - path = path.replace(this._regexPathParam, function (match, operator, key) { - keys.push(key); - return operator === '*' ? '(.*?)' : '([^/]*)'; - }); - - return new RegExp('^' + path + '$'); - }, - - /** - Gets a request object that can be passed to a route handler. - - @method _getRequest - @param {String} path Current path being dispatched. - @return {Object} Request object. - @protected - **/ - _getRequest: function (path) { - return { - path : path, - query: this._parseQuery(this._getQuery()) - }; - }, - - /** - Joins the `root` URL to the specified _url_, normalizing leading/trailing - `/` characters. - - @example - controller.root = '/foo' - controller._joinURL('bar'); // => '/foo/bar' - controller._joinURL('/bar'); // => '/foo/bar' - - controller.root = '/foo/' - controller._joinURL('bar'); // => '/foo/bar' - controller._joinURL('/bar'); // => '/foo/bar' - - @method _joinURL - @param {String} url URL to append to the `root` URL. - @return {String} Joined URL. - @protected - **/ - _joinURL: function (url) { - var root = this.root; - - if (url.charAt(0) === '/') { - url = url.substring(1); - } - - return root && root.charAt(root.length - 1) === '/' ? - root + url : - root + '/' + url; - }, - - /** - Parses a URL query string into a key/value hash. If `Y.QueryString.parse` is - available, this method will be an alias to that. - - @method _parseQuery - @param {String} query Query string to parse. - @return {Object} Hash of key/value pairs for query parameters. - @protected - **/ - _parseQuery: QS && QS.parse ? QS.parse : function (query) { - var decode = this._decode, - params = query.split('&'), - i = 0, - len = params.length, - result = {}, - param; - - for (; i < len; ++i) { - param = params[i].split('='); - - if (param[0]) { - result[decode(param[0])] = decode(param[1] || ''); - } - } - - return result; - }, - - /** - Removes the `root` URL from the from of _path_ (if it's there) and returns - the result. The returned path will always have a leading `/`. - - @method _removeRoot - @param {String} path URL path. - @return {String} Rootless path. - @protected - **/ - _removeRoot: function (path) { - var root = this.root; - - if (root && path.indexOf(root) === 0) { - path = path.substring(root.length); - } - - return path.charAt(0) === '/' ? path : '/' + path; - }, - - /** - Saves a history entry using either `pushState()` or the location hash. - - @method _save - @param {String} [url] URL for the history entry. - @param {Boolean} [replace=false] If `true`, the current history entry will - be replaced instead of a new one being added. - @chainable - @protected - **/ - _save: html5 ? function (url, replace) { - // Force _ready to true to ensure that the history change is handled - // even if _save is called before the `ready` event fires. - this._ready = true; - - this._history[replace ? 'replace' : 'add'](null, { - url: typeof url === 'string' ? this._joinURL(url) : url - }); - return this; - } : function (url, replace) { - this._ready = true; - - if (typeof url === 'string' && url.charAt(0) !== '/') { - url = '/' + url; - } - - HistoryHash[replace ? 'replaceHash' : 'setHash'](url); - return this; - }, - - // -- Protected Event Handlers --------------------------------------------- - - /** - Handles `history:change` and `hashchange` events. - - @method _afterHistoryChange - @param {EventFacade} e - @protected - **/ - _afterHistoryChange: function (e) { - var self = this; - - if (self._ready) { - // We need to yield control to the UI thread to allow the browser to - // update window.location before we dispatch. - setTimeout(function () { - self._dispatch(self._getPath()); - }, 1); - } - }, - - // -- Default Event Handlers ----------------------------------------------- - - /** - Default handler for the `ready` event. - - @method _defReadyFn - @param {EventFacade} e - @protected - **/ - _defReadyFn: function (e) { - this._ready = true; - } -}, { - NAME: 'controller' -}); - - -}, '3.4.0' ,{requires:['array-extras', 'base-build', 'history'], optional:['querystring-parse']}); -YUI.add('model', function(Y) { - -/** -Attribute-based data model with APIs for getting, setting, validating, and -syncing attribute values, as well as events for being notified of model changes. - -In most cases, you'll want to create your own subclass of `Y.Model` and -customize it to meet your needs. In particular, the `sync()` and `validate()` -methods are meant to be overridden by custom implementations. You may also want -to override the `parse()` method to parse non-generic server responses. - -@submodule model -@class Model -@constructor -@uses Base -**/ - -var GlobalEnv = YUI.namespace('Env.Model'), - Lang = Y.Lang, - YArray = Y.Array, - YObject = Y.Object, - - /** - Fired when one or more attributes on this model are changed. - - @event change - @param {Object} changed Hash of change information for each attribute that - changed. Each item in the hash has the following properties: - @param {mixed} changed.newVal New value of the attribute. - @param {mixed} changed.prevVal Previous value of the attribute. - @param {String|null} changed.src Source of the change event, if any. - **/ - EVT_CHANGE = 'change', - - /** - Fired when an error occurs, such as when the model doesn't validate or when - a server response can't be parsed. - - @event error - @param {mixed} error Error message, object, or exception generated by the - error. Calling `toString()` on this should result in a meaningful error - message. - @param {String} src Source of the error. May be one of the following (or any - custom error source defined by a Model subclass): - - * `parse`: An error parsing a JSON response. - * `validate`: The model failed to validate. - **/ - EVT_ERROR = 'error'; - -function Model() { - Model.superclass.constructor.apply(this, arguments); -} - -Y.Model = Y.extend(Model, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - Hash of attributes that have changed since the last time this model was - saved. - - @property changed - @type Object - @default {} - **/ - - /** - Name of the attribute to use as the unique id (or primary key) for this - model. - - The default is `id`, but if your persistence layer uses a different name for - the primary key (such as `_id` or `uid`), you can specify that here. - - The built-in `id` attribute will always be an alias for whatever attribute - name you specify here, so getting and setting `id` will always behave the - same as getting and setting your custom id attribute. - - @property idAttribute - @type String - @default `'id'` - **/ - idAttribute: 'id', - - /** - Hash of attributes that were changed in the last `change` event. Each item - in this hash is an object with the following properties: - - * `newVal`: The new value of the attribute after it changed. - * `prevVal`: The old value of the attribute before it changed. - * `src`: The source of the change, or `null` if no source was specified. - - @property lastChange - @type Object - @default {} - **/ - - /** - Array of `ModelList` instances that contain this model. - - When a model is in one or more lists, the model's events will bubble up to - those lists. You can subscribe to a model event on a list to be notified - when any model in the list fires that event. - - This property is updated automatically when this model is added to or - removed from a `ModelList` instance. You shouldn't alter it manually. When - working with models in a list, you should always add and remove models using - the list's `add()` and `remove()` methods. - - @example Subscribing to model events on a list: - - // Assuming `list` is an existing Y.ModelList instance. - list.on('*:change', function (e) { - // This function will be called whenever any model in the list - // fires a `change` event. - // - // `e.target` will refer to the model instance that fired the - // event. - }); - - @property lists - @type ModelList[] - @default `[]` - **/ - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - this.changed = {}; - this.lastChange = {}; - this.lists = []; - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Destroys this model instance and removes it from its containing lists, if - any. - - If `options['delete']` is `true`, then this method also delegates to the - `sync()` method to delete the model from the persistence layer, which is an - asynchronous action. Provide a _callback_ function to be notified of success - or failure. - - @method destroy - @param {Object} [options] Sync options. It's up to the custom sync - implementation to determine what options it supports or requires, if - any. - @param {Boolean} [options.delete=false] If `true`, the model will be - deleted via the sync layer in addition to the instance being destroyed. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - `null`. - @chainable - **/ - destroy: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - function finish(err) { - if (!err) { - YArray.each(self.lists, function (list) { - list.remove(self, options); - }); - - Model.superclass.destroy.call(self); - } - - callback && callback.apply(null, arguments); - } - - if (options && options['delete']) { - this.sync('delete', options, finish); - } else { - finish(); - } - - return this; - }, - - /** - Returns a clientId string that's unique among all models on the current page - (even models in other YUI instances). Uniqueness across pageviews is - unlikely. - - @method generateClientId - @return {String} Unique clientId. - **/ - generateClientId: function () { - GlobalEnv.lastId || (GlobalEnv.lastId = 0); - return this.constructor.NAME + '_' + (GlobalEnv.lastId += 1); - }, - - /** - Returns the value of the specified attribute. - - If the attribute's value is an object, _name_ may use dot notation to - specify the path to a specific property within the object, and the value of - that property will be returned. - - @example - // Set the 'foo' attribute to an object. - myModel.set('foo', { - bar: { - baz: 'quux' - } - }); - - // Get the value of 'foo'. - myModel.get('foo'); - // => {bar: {baz: 'quux'}} - - // Get the value of 'foo.bar.baz'. - myModel.get('foo.bar.baz'); - // => 'quux' - - @method get - @param {String} name Attribute name or object property path. - @return {mixed} Attribute value, or `undefined` if the attribute doesn't - exist. - **/ - - // get() is defined by Y.Attribute. - - /** - Returns an HTML-escaped version of the value of the specified string - attribute. The value is escaped using `Y.Escape.html()`. - - @method getAsHTML - @param {String} name Attribute name or object property path. - @return {String} HTML-escaped attribute value. - **/ - getAsHTML: function (name) { - var value = this.get(name); - return Y.Escape.html(Lang.isValue(value) ? String(value) : ''); - }, - - /** - Returns a URL-encoded version of the value of the specified string - attribute. The value is encoded using the native `encodeURIComponent()` - function. - - @method getAsURL - @param {String} name Attribute name or object property path. - @return {String} URL-encoded attribute value. - **/ - getAsURL: function (name) { - var value = this.get(name); - return encodeURIComponent(Lang.isValue(value) ? String(value) : ''); - }, - - /** - Returns `true` if any attribute of this model has been changed since the - model was last saved. - - New models (models for which `isNew()` returns `true`) are implicitly - considered to be "modified" until the first time they're saved. - - @method isModified - @return {Boolean} `true` if this model has changed since it was last saved, - `false` otherwise. - **/ - isModified: function () { - return this.isNew() || !YObject.isEmpty(this.changed); - }, - - /** - Returns `true` if this model is "new", meaning it hasn't been saved since it - was created. - - Newness is determined by checking whether the model's `id` attribute has - been set. An empty id is assumed to indicate a new model, whereas a - non-empty id indicates a model that was either loaded or has been saved - since it was created. - - @method isNew - @return {Boolean} `true` if this model is new, `false` otherwise. - **/ - isNew: function () { - return !Lang.isValue(this.get('id')); - }, - - /** - Loads this model from the server. - - This method delegates to the `sync()` method to perform the actual load - operation, which is an asynchronous action. Specify a _callback_ function to - be notified of success or failure. - - If the load operation succeeds and one or more of the loaded attributes - differ from this model's current attributes, a `change` event will be fired. - - @method load - @param {Object} [options] Options to be passed to `sync()` and to `set()` - when setting the loaded attributes. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - `null`. - @param {mixed} callback.response The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an attribute hash. - @chainable - **/ - load: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - this.sync('read', options, function (err, response) { - if (!err) { - self.setAttrs(self.parse(response), options); - self.changed = {}; - } - - callback && callback.apply(null, arguments); - }); - - return this; - }, - - /** - Called to parse the _response_ when the model is loaded from the server. - This method receives a server _response_ and is expected to return an - attribute hash. - - The default implementation assumes that _response_ is either an attribute - hash or a JSON string that can be parsed into an attribute hash. If - _response_ is a JSON string and either `Y.JSON` or the native `JSON` object - are available, it will be parsed automatically. If a parse error occurs, an - `error` event will be fired and the model will not be updated. - - You may override this method to implement custom parsing logic if necessary. - - @method parse - @param {mixed} response Server response. - @return {Object} Attribute hash. - **/ - parse: function (response) { - if (typeof response === 'string') { - try { - return Y.JSON.parse(response); - } catch (ex) { - this.fire(EVT_ERROR, { - error : ex, - response: response, - src : 'parse' - }); - - return null; - } - } - - return response; - }, - - /** - Saves this model to the server. - - This method delegates to the `sync()` method to perform the actual save - operation, which is an asynchronous action. Specify a _callback_ function to - be notified of success or failure. - - If the save operation succeeds and one or more of the attributes returned in - the server's response differ from this model's current attributes, a - `change` event will be fired. - - @method save - @param {Object} [options] Options to be passed to `sync()` and to `set()` - when setting synced attributes. It's up to the custom sync implementation - to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - `null`. - @param {mixed} callback.response The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an attribute hash. - @chainable - **/ - save: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - this.sync(this.isNew() ? 'create' : 'update', options, function (err, response) { - if (!err) { - if (response) { - self.setAttrs(self.parse(response), options); - } - - self.changed = {}; - } - - callback && callback.apply(null, arguments); - }); - - return this; - }, - - /** - Sets the value of a single attribute. If model validation fails, the - attribute will not be set and an `error` event will be fired. - - Use `setAttrs()` to set multiple attributes at once. - - @example - model.set('foo', 'bar'); - - @method set - @param {String} name Attribute name or object property path. - @param {any} value Value to set. - @param {Object} [options] Data to be mixed into the event facade of the - `change` event(s) for these attributes. - @param {Boolean} [options.silent=false] If `true`, no `change` event will - be fired. - @chainable - **/ - set: function (name, value, options) { - var attributes = {}; - attributes[name] = value; - - return this.setAttrs(attributes, options); - }, - - /** - Sets the values of multiple attributes at once. If model validation fails, - the attributes will not be set and an `error` event will be fired. - - @example - model.setAttrs({ - foo: 'bar', - baz: 'quux' - }); - - @method setAttrs - @param {Object} attributes Hash of attribute names and values to set. - @param {Object} [options] Data to be mixed into the event facade of the - `change` event(s) for these attributes. - @param {Boolean} [options.silent=false] If `true`, no `change` event will - be fired. - @chainable - **/ - setAttrs: function (attributes, options) { - var idAttribute = this.idAttribute, - changed, e, key, lastChange, transaction; - - if (!this._validate(attributes)) { - return this; - } - - options || (options = {}); - transaction = options._transaction = {}; - - // When a custom id attribute is in use, always keep the default `id` - // attribute in sync. - if (idAttribute !== 'id') { - // So we don't modify someone else's object. - attributes = Y.merge(attributes); - - if (YObject.owns(attributes, idAttribute)) { - attributes.id = attributes[idAttribute]; - } else if (YObject.owns(attributes, 'id')) { - attributes[idAttribute] = attributes.id; - } - } - - for (key in attributes) { - if (YObject.owns(attributes, key)) { - this._setAttr(key, attributes[key], options); - } - } - - if (!YObject.isEmpty(transaction)) { - changed = this.changed; - lastChange = this.lastChange = {}; - - for (key in transaction) { - if (YObject.owns(transaction, key)) { - e = transaction[key]; - - changed[key] = e.newVal; - - lastChange[key] = { - newVal : e.newVal, - prevVal: e.prevVal, - src : e.src || null - }; - } - } - - if (!options.silent) { - // Lazy publish for the change event. - if (!this._changeEvent) { - this._changeEvent = this.publish(EVT_CHANGE, { - preventable: false - }); - } - - this.fire(EVT_CHANGE, {changed: lastChange}); - } - } - - return this; - }, - - /** - Override this method to provide a custom persistence implementation for this - model. The default just calls the callback without actually doing anything. - - This method is called internally by `load()`, `save()`, and `destroy()`. - - @method sync - @param {String} action Sync action to perform. May be one of the following: - - * `create`: Store a newly-created model for the first time. - * `delete`: Delete an existing model. - * 'read' : Load an existing model. - * `update`: Update an existing model. - - @param {Object} [options] Sync options. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} [callback.response] The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an attribute hash. - **/ - sync: function (/* action, options, callback */) { - var callback = YArray(arguments, 0, true).pop(); - - if (typeof callback === 'function') { - callback(); - } - }, - - /** - Returns a copy of this model's attributes that can be passed to - `Y.JSON.stringify()` or used for other nefarious purposes. - - The `clientId` attribute is not included in the returned object. - - If you've specified a custom attribute name in the `idAttribute` property, - the default `id` attribute will not be included in the returned object. - - @method toJSON - @return {Object} Copy of this model's attributes. - **/ - toJSON: function () { - var attrs = this.getAttrs(); - - delete attrs.clientId; - delete attrs.destroyed; - delete attrs.initialized; - - if (this.idAttribute !== 'id') { - delete attrs.id; - } - - return attrs; - }, - - /** - Reverts the last change to the model. - - If an _attrNames_ array is provided, then only the named attributes will be - reverted (and only if they were modified in the previous change). If no - _attrNames_ array is provided, then all changed attributes will be reverted - to their previous values. - - Note that only one level of undo is available: from the current state to the - previous state. If `undo()` is called when no previous state is available, - it will simply do nothing. - - @method undo - @param {Array} [attrNames] Array of specific attribute names to rever. If - not specified, all attributes modified in the last change will be - reverted. - @param {Object} [options] Data to be mixed into the event facade of the - change event(s) for these attributes. - @param {Boolean} [options.silent=false] If `true`, no `change` event will - be fired. - @chainable - **/ - undo: function (attrNames, options) { - var lastChange = this.lastChange, - idAttribute = this.idAttribute, - toUndo = {}, - needUndo; - - attrNames || (attrNames = YObject.keys(lastChange)); - - YArray.each(attrNames, function (name) { - if (YObject.owns(lastChange, name)) { - // Don't generate a double change for custom id attributes. - name = name === idAttribute ? 'id' : name; - - needUndo = true; - toUndo[name] = lastChange[name].prevVal; - } - }); - - return needUndo ? this.setAttrs(toUndo, options) : this; - }, - - /** - Override this method to provide custom validation logic for this model. - While attribute-specific validators can be used to validate individual - attributes, this method gives you a hook to validate a hash of attributes - when multiple attributes are changed at once. This method is called - automatically before `set`, `setAttrs`, and `save` take action. - - A call to `validate` that doesn't return anything will be treated as a - success. If the `validate` method returns a value, it will be treated as a - failure, and the returned value (which may be a string or an object - containing information about the failure) will be passed along to the - `error` event. - - @method validate - @param {Object} attributes Attribute hash containing changed attributes. - @return {mixed} Any return value other than `undefined` or `null` will be - treated as a validation failure. - **/ - validate: function (/* attributes */) {}, - - // -- Protected Methods ---------------------------------------------------- - - /** - Duckpunches the `addAttr` method provided by `Y.Attribute` to keep the - `id` attribute’s value and a custom id attribute’s (if provided) value - in sync when adding the attributes to the model instance object. - - Marked as protected to hide it from Model's public API docs, even though - this is a public method in Attribute. - - @method addAttr - @param {String} name The name of the attribute. - @param {Object} config An object with attribute configuration property/value - pairs, specifying the configuration for the attribute. - @param {boolean} lazy (optional) Whether or not to add this attribute lazily - (on the first call to get/set). - @return {Object} A reference to the host object. - @chainable - @protected - **/ - addAttr: function (name, config, lazy) { - var idAttribute = this.idAttribute, - idAttrCfg, id; - - if (idAttribute && name === idAttribute) { - idAttrCfg = this._isLazyAttr('id') || this._getAttrCfg('id'); - id = config.value === config.defaultValue ? null : config.value; - - if (!Lang.isValue(id)) { - // Hunt for the id value. - id = idAttrCfg.value === idAttrCfg.defaultValue ? null : idAttrCfg.value; - - if (!Lang.isValue(id)) { - // No id value provided on construction, check defaults. - id = Lang.isValue(config.defaultValue) ? - config.defaultValue : - idAttrCfg.defaultValue; - } - } - - config.value = id; - - // Make sure `id` is in sync. - if (idAttrCfg.value !== id) { - idAttrCfg.value = id; - - if (this._isLazyAttr('id')) { - this._state.add('id', 'lazy', idAttrCfg); - } else { - this._state.add('id', 'value', id); - } - } - } - - return Model.superclass.addAttr.apply(this, arguments); - }, - - /** - Calls the public, overridable `validate()` method and fires an `error` event - if validation fails. - - @method _validate - @param {Object} attributes Attribute hash. - @return {Boolean} `true` if validation succeeded, `false` otherwise. - @protected - **/ - _validate: function (attributes) { - var error = this.validate(attributes); - - if (Lang.isValue(error)) { - // Validation failed. Fire an error. - this.fire(EVT_ERROR, { - attributes: attributes, - error : error, - src : 'validate' - }); - - return false; - } - - return true; - }, - - // -- Protected Event Handlers --------------------------------------------- - - /** - Duckpunches the `_defAttrChangeFn()` provided by `Y.Attribute` so we can - have a single global notification when a change event occurs. - - @method _defAttrChangeFn - @param {EventFacade} e - @protected - **/ - _defAttrChangeFn: function (e) { - var attrName = e.attrName; - - if (!this._setAttrVal(attrName, e.subAttrName, e.prevVal, e.newVal)) { - Y.log('State not updated and stopImmediatePropagation called for attribute: ' + attrName + ' , value:' + e.newVal, 'warn', 'attribute'); - // Prevent "after" listeners from being invoked since nothing changed. - e.stopImmediatePropagation(); - } else { - e.newVal = this.get(attrName); - - if (e._transaction) { - e._transaction[attrName] = e; - } - } - } -}, { - NAME: 'model', - - ATTRS: { - /** - A client-only identifier for this model. - - Like the `id` attribute, `clientId` may be used to retrieve model - instances from lists. Unlike the `id` attribute, `clientId` is - automatically generated, and is only intended to be used on the client - during the current pageview. - - @attribute clientId - @type String - @readOnly - **/ - clientId: { - valueFn : 'generateClientId', - readOnly: true - }, - - /** - A unique identifier for this model. Among other things, this id may be - used to retrieve model instances from lists, so it should be unique. - - If the id is empty, this model instance is assumed to represent a new - item that hasn't yet been saved. - - If you would prefer to use a custom attribute as this model's id instead - of using the `id` attribute (for example, maybe you'd rather use `_id` - or `uid` as the primary id), you may set the `idAttribute` property to - the name of your custom id attribute. The `id` attribute will then - act as an alias for your custom attribute. - - @attribute id - @type String|Number|null - @default `null` - **/ - id: {value: null} - } -}); - - -}, '3.4.0' ,{requires:['base-build', 'escape', 'json-parse']}); -YUI.add('model-list', function(Y) { - -/** -Provides an API for managing an ordered list of Model instances. - -In addition to providing convenient `add`, `create`, `refresh`, and `remove` -methods for managing the models in the list, ModelLists are also bubble targets -for events on the model instances they contain. This means, for example, that -you can add several models to a list, and then subscribe to the `*:change` event -on the list to be notified whenever any model in the list changes. - -ModelLists also maintain sort order efficiently as models are added and removed, -based on a custom `comparator` function you may define (if no comparator is -defined, models are sorted in insertion order). - -@submodule model-list -@class ModelList -@constructor -@uses ArrayList -@uses Base -**/ - -var Lang = Y.Lang, - YArray = Y.Array, - - /** - Fired when a model is added to the list. - - Listen to the `on` phase of this event to be notified before a model is - added to the list. Calling `e.preventDefault()` during the `on` phase will - prevent the model from being added. - - Listen to the `after` phase of this event to be notified after a model has - been added to the list. - - @event add - @param {Model} model The model being added. - @param {int} index The index at which the model will be added. - @preventable _defAddFn - **/ - EVT_ADD = 'add', - - /** - Fired when the list is completely refreshed via the `refresh()` method or - sorted via the `sort()` method. - - Listen to the `on` phase of this event to be notified before the list is - refreshed. Calling `e.preventDefault()` during the `on` phase will prevent - the list from being refreshed. - - Listen to the `after` phase of this event to be notified after the list has - been refreshed. - - @event refresh - @param {Model[]} models Array of the list's new models after the refresh. - @param {String} src Source of the event. May be either `'refresh'` or - `'sort'`. - @preventable _defRefreshFn - **/ - EVT_REFRESH = 'refresh', - - /** - Fired when a model is removed from the list. - - Listen to the `on` phase of this event to be notified before a model is - removed from the list. Calling `e.preventDefault()` during the `on` phase - will prevent the model from being removed. - - Listen to the `after` phase of this event to be notified after a model has - been removed from the list. - - @event remove - @param {Model} model The model being removed. - @param {int} index The index of the model being removed. - @preventable _defRemoveFn - **/ - EVT_REMOVE = 'remove'; - -function ModelList() { - ModelList.superclass.constructor.apply(this, arguments); -} - -Y.ModelList = Y.extend(ModelList, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - The `Model` class or subclass of the models in this list. - - This property is `null` by default, and is intended to be overridden in a - subclass or specified as a config property at instantiation time. It will be - used to create model instances automatically based on attribute hashes - passed to the `add()`, `create()`, and `remove()` methods. - - @property model - @type Model - @default `null` - **/ - model: null, - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - config || (config = {}); - - var model = this.model = config.model || this.model; - - this.publish(EVT_ADD, {defaultFn: this._defAddFn}); - this.publish(EVT_REFRESH, {defaultFn: this._defRefreshFn}); - this.publish(EVT_REMOVE, {defaultFn: this._defRemoveFn}); - - if (model) { - this.after('*:idChange', this._afterIdChange); - } else { - Y.log('No model class specified.', 'warn', 'model-list'); - } - - this._clear(); - }, - - destructor: function () { - YArray.each(this._items, this._detachList, this); - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Adds the specified model or array of models to this list. - - @example - // Add a single model instance. - list.add(new Model({foo: 'bar'})); - - // Add a single model, creating a new instance automatically. - list.add({foo: 'bar'}); - - // Add multiple models, creating new instances automatically. - list.add([ - {foo: 'bar'}, - {baz: 'quux'} - ]); - - @method add - @param {Model|Model[]|Object|Object[]} models Models to add. May be existing - model instances or hashes of model attributes, in which case new model - instances will be created from the hashes. - @param {Object} [options] Data to be mixed into the event facade of the - `add` event(s) for the added models. - @param {Boolean} [options.silent=false] If `true`, no `add` event(s) will - be fired. - @return {Model|Model[]} Added model or array of added models. - **/ - add: function (models, options) { - if (Lang.isArray(models)) { - return YArray.map(models, function (model) { - return this._add(model, options); - }, this); - } else { - return this._add(models, options); - } - }, - - /** - Define this method to provide a function that takes a model as a parameter - and returns a value by which that model should be sorted relative to other - models in this list. - - By default, no comparator is defined, meaning that models will not be sorted - (they'll be stored in the order they're added). - - @example - var list = new Y.ModelList({model: Y.Model}); - - list.comparator = function (model) { - return model.get('id'); // Sort models by id. - }; - - @method comparator - @param {Model} model Model being sorted. - @return {Number|String} Value by which the model should be sorted relative - to other models in this list. - **/ - - // comparator is not defined by default - - /** - Creates or updates the specified model on the server, then adds it to this - list if the server indicates success. - - @method create - @param {Model|Object} model Model to create. May be an existing model - instance or a hash of model attributes, in which case a new model instance - will be created from the hash. - @param {Object} [options] Options to be passed to the model's `sync()` and - `set()` methods and mixed into the `add` event when the model is added - to the list. - @param {Boolean} [options.silent=false] If `true`, no `add` event(s) will - be fired. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} callback.response The server's response. - @return {Model} Created model. - **/ - create: function (model, options, callback) { - var self = this; - - // Allow callback as second arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - if (!(model instanceof Y.Model)) { - model = new this.model(model); - } - - return model.save(options, function (err) { - if (!err) { - self.add(model, options); - } - - callback && callback.apply(null, arguments); - }); - }, - - /** - Returns the model with the specified _clientId_, or `null` if not found. - - @method getByClientId - @param {String} clientId Client id. - @return {Model} Model, or `null` if not found. - **/ - getByClientId: function (clientId) { - return this._clientIdMap[clientId] || null; - }, - - /** - Returns the model with the specified _id_, or `null` if not found. - - Note that models aren't expected to have an id until they're saved, so if - you're working with unsaved models, it may be safer to call - `getByClientId()`. - - @method getById - @param {String} id Model id. - @return {Model} Model, or `null` if not found. - **/ - getById: function (id) { - return this._idMap[id] || null; - }, - - /** - Calls the named method on every model in the list. Any arguments provided - after _name_ will be passed on to the invoked method. - - @method invoke - @param {String} name Name of the method to call on each model. - @param {any} *args Zero or more arguments to pass to the invoked method. - @return {Array} Array of return values, indexed according to the index of - the model on which the method was called. - **/ - invoke: function (name /*, *args */) { - var args = [this._items, name].concat(YArray(arguments, 1, true)); - return YArray.invoke.apply(YArray, args); - }, - - /** - Returns the model at the specified _index_. - - @method item - @param {int} index Index of the model to fetch. - @return {Model} The model at the specified index, or `undefined` if there - isn't a model there. - **/ - - // item() is inherited from ArrayList. - - /** - Loads this list of models from the server. - - This method delegates to the `sync()` method to perform the actual load - operation, which is an asynchronous action. Specify a _callback_ function to - be notified of success or failure. - - If the load operation succeeds, a `refresh` event will be fired. - - @method load - @param {Object} [options] Options to be passed to `sync()` and to - `refresh()` when adding the loaded models. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} callback.response The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an array of model attribute hashes. - @chainable - **/ - load: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - this.sync('read', options, function (err, response) { - if (!err) { - self.refresh(self.parse(response), options); - } - - callback && callback.apply(null, arguments); - }); - - return this; - }, - - /** - Executes the specified function on each model in this list and returns an - array of the function's collected return values. - - @method map - @param {Function} fn Function to execute on each model. - @param {Model} fn.model Current model being iterated. - @param {int} fn.index Index of the current model in the list. - @param {Model[]} fn.models Array of models being iterated. - @param {Object} [thisObj] `this` object to use when calling _fn_. - @return {Array} Array of return values from _fn_. - **/ - map: function (fn, thisObj) { - return YArray.map(this._items, fn, thisObj); - }, - - /** - Called to parse the _response_ when the list is loaded from the server. - This method receives a server _response_ and is expected to return an array - of model attribute hashes. - - The default implementation assumes that _response_ is either an array of - attribute hashes or a JSON string that can be parsed into an array of - attribute hashes. If _response_ is a JSON string and either `Y.JSON` or the - native `JSON` object are available, it will be parsed automatically. If a - parse error occurs, an `error` event will be fired and the model will not be - updated. - - You may override this method to implement custom parsing logic if necessary. - - @method parse - @param {mixed} response Server response. - @return {Object[]} Array of model attribute hashes. - **/ - parse: function (response) { - if (typeof response === 'string') { - try { - return Y.JSON.parse(response) || []; - } catch (ex) { - Y.error('Failed to parse JSON response.'); - return null; - } - } - - return response || []; - }, - - /** - Completely replaces all models in the list with those specified, and fires a - single `refresh` event. - - Use `refresh` when you want to add or remove a large number of items at once - without firing `add` or `remove` events for each one. - - @method refresh - @param {Model[]|Object[]} models Models to add. May be existing model - instances or hashes of model attributes, in which case new model instances - will be created from the hashes. - @param {Object} [options] Data to be mixed into the event facade of the - `refresh` event. - @param {Boolean} [options.silent=false] If `true`, no `refresh` event will - be fired. - @chainable - **/ - refresh: function (models, options) { - options || (options = {}); - - var facade = Y.merge(options, { - src : 'refresh', - models: YArray.map(models, function (model) { - return model instanceof Y.Model ? model : - new this.model(model); - }, this) - }); - - options.silent ? this._defRefreshFn(facade) : - this.fire(EVT_REFRESH, facade); - - return this; - }, - - /** - Removes the specified model or array of models from this list. - - @method remove - @param {Model|Model[]} models Models to remove. - @param {Object} [options] Data to be mixed into the event facade of the - `remove` event(s) for the removed models. - @param {Boolean} [options.silent=false] If `true`, no `remove` event(s) - will be fired. - @return {Model|Model[]} Removed model or array of removed models. - **/ - remove: function (models, options) { - if (Lang.isArray(models)) { - return YArray.map(models, function (model) { - return this._remove(model, options); - }, this); - } else { - return this._remove(models, options); - } - }, - - /** - Forcibly re-sorts the list. - - Usually it shouldn't be necessary to call this method since the list - maintains its sort order when items are added and removed, but if you change - the `comparator` function after items are already in the list, you'll need - to re-sort. - - @method sort - @param {Object} [options] Data to be mixed into the event facade of the - `refresh` event. - @param {Boolean} [options.silent=false] If `true`, no `refresh` event will - be fired. - @chainable - **/ - sort: function (options) { - var comparator = this.comparator, - models = this._items.concat(), - facade; - - if (!comparator) { - return this; - } - - options || (options = {}); - - models.sort(function (a, b) { - var aValue = comparator(a), - bValue = comparator(b); - - return aValue < bValue ? -1 : (aValue > bValue ? 1 : 0); - }); - - facade = Y.merge(options, { - models: models, - src : 'sort' - }); - - options.silent ? this._defRefreshFn(facade) : - this.fire(EVT_REFRESH, facade); - - return this; - }, - - /** - Override this method to provide a custom persistence implementation for this - list. The default method just calls the callback without actually doing - anything. - - This method is called internally by `load()`. - - @method sync - @param {String} action Sync action to perform. May be one of the following: - - * `create`: Store a list of newly-created models for the first time. - * `delete`: Delete a list of existing models. - * 'read' : Load a list of existing models. - * `update`: Update a list of existing models. - - Currently, model lists only make use of the `read` action, but other - actions may be used in future versions. - - @param {Object} [options] Sync options. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} [callback.response] The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an array of model attribute hashes. - **/ - sync: function (/* action, options, callback */) { - var callback = YArray(arguments, 0, true).pop(); - - if (typeof callback === 'function') { - callback(); - } - }, - - /** - Returns an array containing the models in this list. - - @method toArray - @return {Array} Array containing the models in this list. - **/ - toArray: function () { - return this._items.concat(); - }, - - /** - Returns an array containing attribute hashes for each model in this list, - suitable for being passed to `Y.JSON.stringify()`. - - Under the hood, this method calls `toJSON()` on each model in the list and - pushes the results into an array. - - @method toJSON - @return {Object[]} Array of model attribute hashes. - @see Model.toJSON() - **/ - toJSON: function () { - return this.map(function (model) { - return model.toJSON(); - }); - }, - - // -- Protected Methods ---------------------------------------------------- - - /** - Adds the specified _model_ if it isn't already in this list. - - @method _add - @param {Model|Object} model Model or object to add. - @param {Object} [options] Data to be mixed into the event facade of the - `add` event for the added model. - @param {Boolean} [options.silent=false] If `true`, no `add` event will be - fired. - @return {Model} The added model. - @protected - **/ - _add: function (model, options) { - var facade; - - options || (options = {}); - - if (!(model instanceof Y.Model)) { - model = new this.model(model); - } - - if (this._clientIdMap[model.get('clientId')]) { - Y.error('Model already in list.'); - return; - } - - facade = Y.merge(options, { - index: this._findIndex(model), - model: model - }); - - options.silent ? this._defAddFn(facade) : this.fire(EVT_ADD, facade); - - return model; - }, - - /** - Adds this list as a bubble target for the specified model's events. - - @method _attachList - @param {Model} model Model to attach to this list. - @protected - **/ - _attachList: function (model) { - // Attach this list and make it a bubble target for the model. - model.lists.push(this); - model.addTarget(this); - }, - - /** - Clears all internal state and the internal list of models, returning this - list to an empty state. Automatically detaches all models in the list. - - @method _clear - @protected - **/ - _clear: function () { - YArray.each(this._items, this._detachList, this); - - this._clientIdMap = {}; - this._idMap = {}; - this._items = []; - }, - - /** - Removes this list as a bubble target for the specified model's events. - - @method _detachList - @param {Model} model Model to detach. - @protected - **/ - _detachList: function (model) { - var index = YArray.indexOf(model.lists, this); - - if (index > -1) { - model.lists.splice(index, 1); - model.removeTarget(this); - } - }, - - /** - Returns the index at which the given _model_ should be inserted to maintain - the sort order of the list. - - @method _findIndex - @param {Model} model The model being inserted. - @return {int} Index at which the model should be inserted. - @protected - **/ - _findIndex: function (model) { - var comparator = this.comparator, - items = this._items, - max = items.length - 1, - min = 0, - item, middle, needle; - - if (!comparator || !items.length) { return items.length; } - - needle = comparator(model); - - // Perform an iterative binary search to determine the correct position - // based on the return value of the `comparator` function. - while (min < max) { - middle = (min + max) / 2; - item = items[middle]; - - if (item && comparator(item) < needle) { - min = middle + 1; - } else { - max = middle; - } - } - - return min; - }, - - /** - Removes the specified _model_ if it's in this list. - - @method _remove - @param {Model} model Model to remove. - @param {Object} [options] Data to be mixed into the event facade of the - `remove` event for the removed model. - @param {Boolean} [options.silent=false] If `true`, no `remove` event will - be fired. - @return {Model} Removed model. - @protected - **/ - _remove: function (model, options) { - var index = this.indexOf(model), - facade; - - options || (options = {}); - - if (index === -1) { - Y.error('Model not in list.'); - return; - } - - facade = Y.merge(options, { - index: index, - model: model - }); - - options.silent ? this._defRemoveFn(facade) : - this.fire(EVT_REMOVE, facade); - - return model; - }, - - // -- Event Handlers ------------------------------------------------------- - - /** - Updates the model maps when a model's `id` attribute changes. - - @method _afterIdChange - @param {EventFacade} e - @protected - **/ - _afterIdChange: function (e) { - e.prevVal && delete this._idMap[e.prevVal]; - e.newVal && (this._idMap[e.newVal] = e.target); - }, - - // -- Default Event Handlers ----------------------------------------------- - - /** - Default event handler for `add` events. - - @method _defAddFn - @param {EventFacade} e - @protected - **/ - _defAddFn: function (e) { - var model = e.model, - id = model.get('id'); - - this._clientIdMap[model.get('clientId')] = model; - - if (id) { - this._idMap[id] = model; - } - - this._attachList(model); - this._items.splice(e.index, 0, model); - }, - - /** - Default event handler for `refresh` events. - - @method _defRefreshFn - @param {EventFacade} e - @protected - **/ - _defRefreshFn: function (e) { - // When fired from the `sort` method, we don't need to clear the list or - // add any models, since the existing models are sorted in place. - if (e.src === 'sort') { - this._items = e.models.concat(); - return; - } - - this._clear(); - - if (e.models.length) { - this.add(e.models, {silent: true}); - } - }, - - /** - Default event handler for `remove` events. - - @method _defRemoveFn - @param {EventFacade} e - @protected - **/ - _defRemoveFn: function (e) { - var model = e.model, - id = model.get('id'); - - this._detachList(model); - delete this._clientIdMap[model.get('clientId')]; - - if (id) { - delete this._idMap[id]; - } - - this._items.splice(e.index, 1); - } -}, { - NAME: 'modelList' -}); - -Y.augment(ModelList, Y.ArrayList); - -/** -Returns an array containing the values of the specified attribute from each -model in this list. - -@method get -@param {String} name Attribute name or object property path. -@return {Array} Array of attribute values. -@see Model.get() -**/ - -/** -Returns an array containing the HTML-escaped versions of the values of the -specified string attributes from each model in this list. The values are escaped -using `Y.Escape.html()`. - -@method getAsHTML -@param {String} name Attribute name or object property path. -@return {String[]} Array of HTML-escaped attribute values. -@see Model.getAsHTML() -**/ - -/** -Returns an array containing the URL-encoded versions of the values of the -specified string attributes from each model in this list. The values are encoded -using the native `encodeURIComponent()` function. - -@method getAsURL -@param {String} name Attribute name or object property path. -@return {String[]} Array of URL-encoded attribute values. -@see Model.getAsURL() -**/ - -Y.ArrayList.addMethod(ModelList.prototype, [ - 'get', 'getAsHTML', 'getAsURL' -]); - - -}, '3.4.0' ,{requires:['array-extras', 'array-invoke', 'arraylist', 'base-build', 'json-parse', 'model']}); -YUI.add('view', function(Y) { - -/** -Represents a logical piece of an application's user interface, and provides a -lightweight, overridable API for rendering content and handling delegated DOM -events on a container element. - -The View class imposes little structure and provides only minimal functionality -of its own: it's basically just an overridable API interface that helps you -implement custom views. - -@submodule view -@class View -@constructor -@uses Base -**/ - -function View() { - View.superclass.constructor.apply(this, arguments); -} - -Y.View = Y.extend(View, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - Container node into which this view's content will be rendered. - - The container node serves as the host for all DOM events attached by the - view. Delegation is used to handle events on children of the container, - allowing the container's contents to be re-rendered at any time without - losing event subscriptions. - - The default container is a simple `
                                `, but you can override this in a - subclass, or by passing in a custom `container` config value at - instantiation time. - - When `container` is overridden by a subclass or passed as a config option at - instantiation time, it may be provided as an HTML string, a DOM element, or - a `Y.Node` instance. During initialization, this view's `create()` method - will be called to convert the container into a `Y.Node` instance if it isn't - one already. - - The container is not added to the page automatically. This allows you to - have full control over how and when your view is actually rendered to the - page. - - @property container - @type HTMLElement|Node|String - @default `"
                                "` - **/ - container: '
                                ', - - /** - Hash of CSS selectors mapped to events to delegate to elements matching - those selectors. - - CSS selectors are relative to the `container` element. Events are attached - to the container, and delegation is used so that subscribers are only - notified of events that occur on elements inside the container that match - the specified selectors. This allows the container's contents to be - re-rendered as needed without losing event subscriptions. - - Event handlers can be specified either as functions or as strings that map - to function names on this view instance or its prototype. - - The `this` object in event handlers will refer to this view instance. If - you'd prefer `this` to be something else, use `Y.bind()` to bind a custom - `this` object. - - @example - - var view = new Y.View({ - events: { - // Call `this.toggle()` whenever the element with the id - // "toggle-button" is clicked. - '#toggle-button': {click: 'toggle'}, - - // Call `this.hoverOn()` when the mouse moves over any element - // with the "hoverable" class, and `this.hoverOff()` when the - // mouse moves out of any element with the "hoverable" class. - '.hoverable': { - mouseover: 'hoverOn', - mouseout : 'hoverOff' - } - } - }); - - @property events - @type Object - @default `{}` - **/ - events: {}, - - /** - `Y.Model` instance associated with this view instance. - - This is entirely optional. There's no requirement that views be associated - with models, but if you do intend to associate your view with a model, then - specifying that model instance at instantiation time will cause a reference - to be stored here for convenience. - - @property model - @type Model - **/ - - /** - Template for this view. - - This is a convenience property that has no default behavior of its own. It's - only provided as a convention to allow you to store whatever you consider to - be a template, whether that's an HTML string, a `Y.Node` instance, a - Mustache template, or anything else your little heart desires. - - How this template gets used is entirely up to you and your custom `render()` - method. - - @property template - @type any - @default `''` - **/ - template: '', - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - config || (config = {}); - - this.container = this.create(config.container || this.container); - - // Use config properties if present; otherwise default to prototype - // properties. - config.model && (this.model = config.model); - config.template && (this.template = config.template); - - // Merge events from the config into events in `this.events`, then - // attach the events to the container node. - this.events = config.events ? - Y.merge(this.events, config.events) : this.events; - - this.attachEvents(this.events); - }, - - destructor: function () { - // Remove the container from the DOM and purge all event listeners. - this.container && this.container.remove(true); - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Attaches delegated event handlers to this view's `container` element. This - method is called internally to subscribe to events configured in the - `events` property or config attribute when the view is initialized. - - You may override this method to customize the event attaching logic. - - @method attachEvents - @param {Object} events Hash of events to attach. See the docs for the - `events` property for details on the format. - **/ - attachEvents: function (events) { - var container = this.container, - owns = Y.Object.owns, - handler, handlers, name, selector; - - for (selector in events) { - if (!owns(events, selector)) { continue; } - - handlers = events[selector]; - - for (name in handlers) { - if (!owns(handlers, name)) { continue; } - - handler = handlers[name]; - - if (typeof handler === 'string') { - handler = this[handler]; - } - - container.delegate(name, handler, selector, this); - } - } - }, - - /** - Creates and returns this view's `container` node from the specified HTML - string, DOM element, or existing `Y.Node` instance. This method is called - internally when the view is initialized. - - By default, the created node is _not_ added to the DOM automatically. - - You may override this method to customize how the container node is created - (such as by rendering it from a template). Your method should return a - `Y.Node` instance. - - @method create - @param {HTMLElement|Node|String} container HTML string, DOM element, or - `Y.Node` instance to use as the container node. - @return {Node} Node instance of the created container node. - **/ - create: function (container) { - return typeof container === 'string' ? - Y.Node.create(container) : Y.one(container); - }, - - /** - Removes this view's `container` element from the DOM (if it's in the DOM), - but doesn't destroy it or any event listeners attached to it. - - @method remove - @chainable - **/ - remove: function () { - this.container && this.container.remove(); - return this; - }, - - /** - Renders the view. - - This method is a noop by default. Override it in your subclass to provide a - custom implementation that renders this view's content and appends it to the - `container` element. Ideally your `render` method should also return `this` - as the end to allow chaining, but that's up to you. - - Since there's no default renderer, you're free to render your view however - you see fit, whether that means manipulating the DOM directly, dumping - strings into `innerHTML`, or using a template language of some kind. - - For basic templating needs, `Y.Node.create()` and `Y.Lang.sub()` may - suffice, but there are no restrictions on what tools or techniques you can - use to render your view. All you need to do is append something to the - `container` element at some point, and optionally append the `container` - to the DOM if it's not there already. - - @method render - @chainable - **/ - render: function () { - return this; - } -}, { - NAME: 'view' -}); - - -}, '3.4.0' ,{requires:['base-build', 'node-event-delegate']}); - - -YUI.add('app', function(Y){}, '3.4.0' ,{use:['controller', 'model', 'model-list', 'view']}); - diff --git a/build/app/app-min.js b/build/app/app-min.js deleted file mode 100644 index e96954b929a..00000000000 --- a/build/app/app-min.js +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("controller",function(a){var h=a.HistoryHash,e=a.Lang,b=a.QueryString,i=a.Array,f=a.HistoryBase.html5&&(!a.UA.android||a.UA.android>=3),g=a.config.win,j=g.location,d="ready";function c(){c.superclass.constructor.apply(this,arguments);}a.Controller=a.extend(c,a.Base,{html5:f,root:"",routes:[],_regexPathParam:/([:*])([\w-]+)/g,_regexUrlQuery:/\?([^#]*).*$/,initializer:function(l){var k=this;l||(l={});l.routes&&(k.routes=l.routes);e.isValue(l.root)&&(k.root=l.root);k._routes=[];i.each(k.routes,function(m){k.route(m.path,m.callback);});if(f){k._history=new a.HistoryHTML5({force:true});k._history.after("change",k._afterHistoryChange,k);}else{a.on("hashchange",k._afterHistoryChange,g,k);}k.publish(d,{defaultFn:k._defReadyFn,fireOnce:true,preventable:false});k.once("initializedChange",function(){setTimeout(function(){k.fire(d,{dispatched:!!k._dispatched});},20);});},destructor:function(){if(f){this._history.detachAll();}else{a.detach("hashchange",this._afterHistoryChange,g);}},dispatch:function(){this.once(d,function(){var k=this._getHashPath();this._ready=true;if(f&&k&&k.charAt(0)==="/"){this._history.replace(null,{url:this._joinURL(k)});}else{this._dispatch(this._getPath());}});return this;},match:function(k){return i.filter(this._routes,function(l){return k.search(l.regex)>-1;});},replace:function(k){return this._save(k,true);},route:function(l,m){var k=[];this._routes.push({callback:m,keys:k,path:l,regex:this._getRegex(l,k)});return this;},save:function(k){return this._save(k);},_decode:function(k){return decodeURIComponent(k.replace(/\+/g," "));},_dispatch:function(o){var l=this,k=l.match(o),n;l._dispatched=true;if(!k||!k.length){return this;}n=l._getRequest(o);function m(q){var s,r,p;if(q){a.error(q);}else{if((p=k.shift())){r=p.regex.exec(o);s=typeof p.callback==="string"?l[p.callback]:p.callback;if(r.length===p.keys.length+1){n.params=i.hash(p.keys,r.slice(1));}else{n.params=r.concat();}s.call(l,n,m);}}}m();return this;},_getHashPath:function(){return h.getHash().replace(this._regexUrlQuery,"");},_getPath:f?function(){return this._removeRoot(j.pathname);}:function(){return this._getHashPath()||this._removeRoot(j.pathname);},_getQuery:f?function(){return j.search.substring(1);}:function(){var l=h.getHash(),k=l.match(this._regexUrlQuery);return l&&k?k[1]:j.search.substring(1);},_getRegex:function(l,k){if(l instanceof RegExp){return l;}l=l.replace(this._regexPathParam,function(n,m,o){k.push(o);return m==="*"?"(.*?)":"([^/]*)";});return new RegExp("^"+l+"$");},_getRequest:function(k){return{path:k,query:this._parseQuery(this._getQuery())};},_joinURL:function(l){var k=this.root;if(l.charAt(0)==="/"){l=l.substring(1);}return k&&k.charAt(k.length-1)==="/"?k+l:k+"/"+l;},_parseQuery:b&&b.parse?b.parse:function(n){var o=this._decode,q=n.split("&"),m=0,l=q.length,k={},p;for(;mn?1:0);});j=g.merge(i,{models:k,src:"sort"});i.silent?this._defRefreshFn(j):this.fire(f,j);return this;},sync:function(){var h=d(arguments,0,true).pop();if(typeof h==="function"){h();}},toArray:function(){return this._items.concat();},toJSON:function(){return this.map(function(h){return h.toJSON();});},_add:function(i,h){var j;h||(h={});if(!(i instanceof g.Model)){i=new this.model(i);}if(this._clientIdMap[i.get("clientId")]){g.error("Model already in list.");return;}j=g.merge(h,{index:this._findIndex(i),model:i});h.silent?this._defAddFn(j):this.fire(c,j);return i;},_attachList:function(h){h.lists.push(this);h.addTarget(this);},_clear:function(){d.each(this._items,this._detachList,this);this._clientIdMap={};this._idMap={};this._items=[];},_detachList:function(i){var h=d.indexOf(i.lists,this);if(h>-1){i.lists.splice(h,1);i.removeTarget(this);}},_findIndex:function(l){var i=this.comparator,j=this._items,h=j.length-1,m=0,n,k,o;if(!i||!j.length){return j.length;}o=i(l);while(m",events:{},template:"",initializer:function(c){c||(c={});this.container=this.create(c.container||this.container);c.model&&(this.model=c.model);c.template&&(this.template=c.template);this.events=c.events?b.merge(this.events,c.events):this.events;this.attachEvents(this.events);},destructor:function(){this.container&&this.container.remove(true);},attachEvents:function(g){var d=this.container,i=b.Object.owns,h,e,f,c;for(c in g){if(!i(g,c)){continue;}e=g[c];for(f in e){if(!i(e,f)){continue;}h=e[f];if(typeof h==="string"){h=this[h];}d.delegate(f,h,c,this);}}},create:function(c){return typeof c==="string"?b.Node.create(c):b.one(c);},remove:function(){this.container&&this.container.remove();return this;},render:function(){return this;}},{NAME:"view"}); -},"3.4.0",{requires:["base-build","node-event-delegate"]});YUI.add("app",function(a){},"3.4.0",{use:["controller","model","model-list","view"]}); \ No newline at end of file diff --git a/build/app/app.js b/build/app/app.js deleted file mode 100644 index ba976c3ca28..00000000000 --- a/build/app/app.js +++ /dev/null @@ -1,2557 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('controller', function(Y) { - -/** -The app framework provides simple MVC-like building blocks (models, model lists, -views, and controllers) for writing single-page JavaScript applications. - -@main app -@module app -**/ - -/** -Provides URL-based routing using HTML5 `pushState()` or the location hash. - -This makes it easy to wire up route handlers for different application states -while providing full back/forward navigation support and bookmarkable, shareable -URLs. - -@submodule controller -@class Controller -@constructor -@uses Base -**/ - -var HistoryHash = Y.HistoryHash, - Lang = Y.Lang, - QS = Y.QueryString, - YArray = Y.Array, - - // Android versions lower than 3.0 are buggy and don't update - // window.location after a pushState() call, so we fall back to hash-based - // history for them. - // - // See http://code.google.com/p/android/issues/detail?id=17471 - html5 = Y.HistoryBase.html5 && (!Y.UA.android || Y.UA.android >= 3), - win = Y.config.win, - location = win.location, - - /** - Fired when the controller is ready to begin dispatching to route handlers. - - You shouldn't need to wait for this event unless you plan to implement some - kind of custom dispatching logic. It's used internally in order to avoid - dispatching to an initial route if a browser history change occurs first. - - @event ready - @param {Boolean} dispatched `true` if routes have already been dispatched - (most likely due to a history change). - @fireOnce - **/ - EVT_READY = 'ready'; - -function Controller() { - Controller.superclass.constructor.apply(this, arguments); -} - -Y.Controller = Y.extend(Controller, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - Whether or not this browser is capable of using HTML5 history. - - This property is for informational purposes only. It's not configurable, and - changing it will have no effect. - - @property html5 - @type Boolean - **/ - html5: html5, - - /** - Root path from which all routes should be evaluated. - - For example, if your controller is running on a page at - `http://example.com/myapp/` and you add a route with the path `/`, your - route will never execute, because the path will always be preceded by - `/myapp`. Setting `root` to `/myapp` would cause all routes to be evaluated - relative to that root URL, so the `/` route would then execute when the - user browses to `http://example.com/myapp/`. - - This property may be overridden in a subclass, set after instantiation, or - passed as a config attribute when instantiating a `Y.Controller`-based - class. - - @property root - @type String - @default `''` - **/ - root: '', - - /** - Array of route objects specifying routes to be created at instantiation - time. - - Each item in the array must be an object with the following properties: - - * `path`: String or regex representing the path to match. See the docs for - the `route()` method for more details. - * `callback`: Function or a string representing the name of a function on - this controller instance that should be called when the route is - triggered. See the docs for the `route()` method for more details. - - This property may be overridden in a subclass or passed as a config - attribute when instantiating a `Y.Controller`-based class, but setting it - after instantiation will have no effect (use the `route()` method instead). - - If routes are passed at instantiation time, they will override any routes - set on the prototype. - - @property routes - @type Object[] - @default `[]` - **/ - routes: [], - - // -- Protected Properties ------------------------------------------------- - - /** - Whether or not `_dispatch()` has been called since this controller was - instantiated. - - @property _dispatched - @type Boolean - @default undefined - @protected - **/ - - /** - Whether or not the `ready` event has fired yet. - - @property _ready - @type Boolean - @default undefined - @protected - **/ - - /** - Regex used to match parameter placeholders in route paths. - - Subpattern captures: - - 1. Parameter prefix character. Either a `:` for subpath parameters that - should only match a single level of a path, or `*` for splat parameters - that should match any number of path levels. - 2. Parameter name. - - @property _regexPathParam - @type RegExp - @protected - **/ - _regexPathParam: /([:*])([\w-]+)/g, - - /** - Regex that matches and captures the query portion of a URL, minus the - preceding `?` character, and discarding the hash portion of the URL if any. - - @property _regexUrlQuery - @type RegExp - @protected - **/ - _regexUrlQuery: /\?([^#]*).*$/, - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - var self = this; - - // Set config properties. - config || (config = {}); - - config.routes && (self.routes = config.routes); - Lang.isValue(config.root) && (self.root = config.root); - - // Create routes. - self._routes = []; - - YArray.each(self.routes, function (route) { - self.route(route.path, route.callback); - }); - - // Set up a history instance or hashchange listener. - if (html5) { - self._history = new Y.HistoryHTML5({force: true}); - self._history.after('change', self._afterHistoryChange, self); - } else { - Y.on('hashchange', self._afterHistoryChange, win, self); - } - - // Fire a 'ready' event once we're ready to route. We wait first for all - // subclass initializers to finish, and then an additional 20ms to allow - // the browser to fire an initial `popstate` event if it wants to. - self.publish(EVT_READY, { - defaultFn : self._defReadyFn, - fireOnce : true, - preventable: false - }); - - self.once('initializedChange', function () { - setTimeout(function () { - self.fire(EVT_READY, {dispatched: !!self._dispatched}); - }, 20); - }); - }, - - destructor: function () { - if (html5) { - this._history.detachAll(); - } else { - Y.detach('hashchange', this._afterHistoryChange, win); - } - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Dispatches to the first route handler that matches the current URL, if any. - - If `dispatch()` is called before the `ready` event has fired, it will - automatically wait for the `ready` event before dispatching. Otherwise it - will dispatch immediately. - - @method dispatch - @chainable - **/ - dispatch: function () { - this.once(EVT_READY, function () { - var hash = this._getHashPath(); - - this._ready = true; - - if (html5 && hash && hash.charAt(0) === '/') { - // This is an HTML5 browser and we have a hash-based path in the - // URL, so we need to upgrade the URL to a non-hash URL. This - // will trigger a `history:change` event, which will in turn - // trigger a dispatch. - this._history.replace(null, {url: this._joinURL(hash)}); - } else { - this._dispatch(this._getPath()); - } - }); - - return this; - }, - - /** - Returns an array of route objects that match the specified URL path. - - This method is called internally to determine which routes match the current - path whenever the URL changes. You may override it if you want to customize - the route matching logic, although this usually shouldn't be necessary. - - Each returned route object has the following properties: - - * `callback`: A function or a string representing the name of a function - this controller that should be executed when the route is triggered. - * `keys`: An array of strings representing the named parameters defined in - the route's path specification, if any. - * `path`: The route's path specification, which may be either a string or - a regex. - * `regex`: A regular expression version of the route's path specification. - This regex is used to determine whether the route matches a given path. - - @example - controller.route('/foo', function () {}); - controller.match('/foo'); - // => [{callback: ..., keys: [], path: '/foo', regex: ...}] - - @method match - @param {String} path URL path to match. - @return {Object[]} Array of route objects that match the specified path. - **/ - match: function (path) { - return YArray.filter(this._routes, function (route) { - return path.search(route.regex) > -1; - }); - }, - - /** - Replaces the current browser history entry with a new one, and dispatches to - the first matching route handler, if any. - - Behind the scenes, this method uses HTML5 `pushState()` in browsers that - support it (or the location hash in older browsers and IE) to change the - URL. - - The specified URL must share the same origin (i.e., protocol, host, and - port) as the current page, or an error will occur. - - @example - // Starting URL: http://example.com/ - - controller.replace('/path/'); - // New URL: http://example.com/path/ - - controller.replace('/path?foo=bar'); - // New URL: http://example.com/path?foo=bar - - controller.replace('/'); - // New URL: http://example.com/ - - @method replace - @param {String} [url] URL to set. Should be a relative URL. If this - controller's `root` property is set, this URL must be relative to the - root URL. If no URL is specified, the page's current URL will be used. - @chainable - @see save() - **/ - replace: function (url) { - return this._save(url, true); - }, - - /** - Adds a route handler for the specified URL _path_. - - The _path_ parameter may be either a string or a regular expression. If it's - a string, it may contain named parameters: `:param` will match any single - part of a URL path (not including `/` characters), and `*param` will match - any number of parts of a URL path (including `/` characters). These named - parameters will be made available as keys on the `req.params` object that's - passed to route handlers. - - If the _path_ parameter is a regex, all pattern matches will be made - available as numbered keys on `req.params`, starting with `0` for the full - match, then `1` for the first subpattern match, and so on. - - Here's a set of sample routes along with URL paths that they match: - - * Route: `/photos/:tag/:page` - * URL: `/photos/kittens/1`, params: `{tag: 'kittens', page: '1'}` - * URL: `/photos/puppies/2`, params: `{tag: 'puppies', page: '2'}` - - * Route: `/file/*path` - * URL: `/file/foo/bar/baz.txt`, params: `{path: 'foo/bar/baz.txt'}` - * URL: `/file/foo`, params: `{path: 'foo'}` - - If multiple route handlers match a given URL, they will be executed in the - order they were added. The first route that was added will be the first to - be executed. - - @example - controller.route('/photos/:tag/:page', function (req, next) { - }); - - @method route - @param {String|RegExp} path Path to match. May be a string or a regular - expression. - @param {Function|String} callback Callback function to call whenever this - route is triggered. If specified as a string, the named function will be - called on this controller instance. - @param {Object} callback.req Request object containing information about - the request. It contains the following properties. - @param {Array|Object} callback.req.params Captured parameters matched by - the route path specification. If a string path was used and contained - named parameters, then this will be a key/value hash mapping parameter - names to their matched values. If a regex path was used, this will be - an array of subpattern matches starting at index 0 for the full match, - then 1 for the first subpattern match, and so on. - @param {String} callback.req.path The current URL path. - @param {Object} callback.req.query Query hash representing the URL query - string, if any. Parameter names are keys, and are mapped to parameter - values. - @param {Function} callback.next Callback to pass control to the next - matching route. If you don't call this function, then no further route - handlers will be executed, even if there are more that match. If you do - call this function, then the next matching route handler (if any) will - be called, and will receive the same `req` object that was passed to - this route (so you can use the request object to pass data along to - subsequent routes). - @chainable - **/ - route: function (path, callback) { - var keys = []; - - this._routes.push({ - callback: callback, - keys : keys, - path : path, - regex : this._getRegex(path, keys) - }); - - return this; - }, - - /** - Saves a new browser history entry and dispatches to the first matching route - handler, if any. - - Behind the scenes, this method uses HTML5 `pushState()` in browsers that - support it (or the location hash in older browsers and IE) to change the - URL and create a history entry. - - The specified URL must share the same origin (i.e., protocol, host, and - port) as the current page, or an error will occur. - - @example - // Starting URL: http://example.com/ - - controller.save('/path/'); - // New URL: http://example.com/path/ - - controller.save('/path?foo=bar'); - // New URL: http://example.com/path?foo=bar - - controller.save('/'); - // New URL: http://example.com/ - - @method save - @param {String} [url] URL to set. Should be a relative URL. If this - controller's `root` property is set, this URL must be relative to the - root URL. If no URL is specified, the page's current URL will be used. - @chainable - @see replace() - **/ - save: function (url) { - return this._save(url); - }, - - // -- Protected Methods ---------------------------------------------------- - - /** - Wrapper around `decodeURIComponent` that also converts `+` chars into - spaces. - - @method _decode - @param {String} string String to decode. - @return {String} Decoded string. - @protected - **/ - _decode: function (string) { - return decodeURIComponent(string.replace(/\+/g, ' ')); - }, - - /** - Dispatches to the first route handler that matches the specified _path_. - - If called before the `ready` event has fired, the dispatch will be aborted. - This ensures normalized behavior between Chrome (which fires a `popstate` - event on every pageview) and other browsers (which do not). - - @method _dispatch - @param {String} path URL path. - @chainable - @protected - **/ - _dispatch: function (path) { - var self = this, - routes = self.match(path), - req; - - self._dispatched = true; - - if (!routes || !routes.length) { - return this; - } - - req = self._getRequest(path); - - function next(err) { - var callback, matches, route; - - if (err) { - Y.error(err); - } else if ((route = routes.shift())) { - matches = route.regex.exec(path); - callback = typeof route.callback === 'string' ? - self[route.callback] : route.callback; - - // Use named keys for parameter names if the route path contains - // named keys. Otherwise, use numerical match indices. - if (matches.length === route.keys.length + 1) { - req.params = YArray.hash(route.keys, matches.slice(1)); - } else { - req.params = matches.concat(); - } - - callback.call(self, req, next); - } - } - - next(); - return this; - }, - - /** - Gets the current path from the location hash, or an empty string if the - hash is empty. - - @method _getHashPath - @return {String} Current hash path, or an empty string if the hash is empty. - @protected - **/ - _getHashPath: function () { - return HistoryHash.getHash().replace(this._regexUrlQuery, ''); - }, - - /** - Gets the current route path. - - @method _getPath - @return {String} Current route path. - @protected - **/ - _getPath: html5 ? function () { - return this._removeRoot(location.pathname); - } : function () { - return this._getHashPath() || this._removeRoot(location.pathname); - }, - - /** - Gets the current route query string. - - @method _getQuery - @return {String} Current route query string. - @protected - **/ - _getQuery: html5 ? function () { - return location.search.substring(1); - } : function () { - var hash = HistoryHash.getHash(), - matches = hash.match(this._regexUrlQuery); - - return hash && matches ? matches[1] : location.search.substring(1); - }, - - /** - Creates a regular expression from the given route specification. If _path_ - is already a regex, it will be returned unmodified. - - @method _getRegex - @param {String|RegExp} path Route path specification. - @param {Array} keys Array reference to which route parameter names will be - added. - @return {RegExp} Route regex. - @protected - **/ - _getRegex: function (path, keys) { - if (path instanceof RegExp) { - return path; - } - - path = path.replace(this._regexPathParam, function (match, operator, key) { - keys.push(key); - return operator === '*' ? '(.*?)' : '([^/]*)'; - }); - - return new RegExp('^' + path + '$'); - }, - - /** - Gets a request object that can be passed to a route handler. - - @method _getRequest - @param {String} path Current path being dispatched. - @return {Object} Request object. - @protected - **/ - _getRequest: function (path) { - return { - path : path, - query: this._parseQuery(this._getQuery()) - }; - }, - - /** - Joins the `root` URL to the specified _url_, normalizing leading/trailing - `/` characters. - - @example - controller.root = '/foo' - controller._joinURL('bar'); // => '/foo/bar' - controller._joinURL('/bar'); // => '/foo/bar' - - controller.root = '/foo/' - controller._joinURL('bar'); // => '/foo/bar' - controller._joinURL('/bar'); // => '/foo/bar' - - @method _joinURL - @param {String} url URL to append to the `root` URL. - @return {String} Joined URL. - @protected - **/ - _joinURL: function (url) { - var root = this.root; - - if (url.charAt(0) === '/') { - url = url.substring(1); - } - - return root && root.charAt(root.length - 1) === '/' ? - root + url : - root + '/' + url; - }, - - /** - Parses a URL query string into a key/value hash. If `Y.QueryString.parse` is - available, this method will be an alias to that. - - @method _parseQuery - @param {String} query Query string to parse. - @return {Object} Hash of key/value pairs for query parameters. - @protected - **/ - _parseQuery: QS && QS.parse ? QS.parse : function (query) { - var decode = this._decode, - params = query.split('&'), - i = 0, - len = params.length, - result = {}, - param; - - for (; i < len; ++i) { - param = params[i].split('='); - - if (param[0]) { - result[decode(param[0])] = decode(param[1] || ''); - } - } - - return result; - }, - - /** - Removes the `root` URL from the from of _path_ (if it's there) and returns - the result. The returned path will always have a leading `/`. - - @method _removeRoot - @param {String} path URL path. - @return {String} Rootless path. - @protected - **/ - _removeRoot: function (path) { - var root = this.root; - - if (root && path.indexOf(root) === 0) { - path = path.substring(root.length); - } - - return path.charAt(0) === '/' ? path : '/' + path; - }, - - /** - Saves a history entry using either `pushState()` or the location hash. - - @method _save - @param {String} [url] URL for the history entry. - @param {Boolean} [replace=false] If `true`, the current history entry will - be replaced instead of a new one being added. - @chainable - @protected - **/ - _save: html5 ? function (url, replace) { - // Force _ready to true to ensure that the history change is handled - // even if _save is called before the `ready` event fires. - this._ready = true; - - this._history[replace ? 'replace' : 'add'](null, { - url: typeof url === 'string' ? this._joinURL(url) : url - }); - return this; - } : function (url, replace) { - this._ready = true; - - if (typeof url === 'string' && url.charAt(0) !== '/') { - url = '/' + url; - } - - HistoryHash[replace ? 'replaceHash' : 'setHash'](url); - return this; - }, - - // -- Protected Event Handlers --------------------------------------------- - - /** - Handles `history:change` and `hashchange` events. - - @method _afterHistoryChange - @param {EventFacade} e - @protected - **/ - _afterHistoryChange: function (e) { - var self = this; - - if (self._ready) { - // We need to yield control to the UI thread to allow the browser to - // update window.location before we dispatch. - setTimeout(function () { - self._dispatch(self._getPath()); - }, 1); - } - }, - - // -- Default Event Handlers ----------------------------------------------- - - /** - Default handler for the `ready` event. - - @method _defReadyFn - @param {EventFacade} e - @protected - **/ - _defReadyFn: function (e) { - this._ready = true; - } -}, { - NAME: 'controller' -}); - - -}, '3.4.0' ,{requires:['array-extras', 'base-build', 'history'], optional:['querystring-parse']}); -YUI.add('model', function(Y) { - -/** -Attribute-based data model with APIs for getting, setting, validating, and -syncing attribute values, as well as events for being notified of model changes. - -In most cases, you'll want to create your own subclass of `Y.Model` and -customize it to meet your needs. In particular, the `sync()` and `validate()` -methods are meant to be overridden by custom implementations. You may also want -to override the `parse()` method to parse non-generic server responses. - -@submodule model -@class Model -@constructor -@uses Base -**/ - -var GlobalEnv = YUI.namespace('Env.Model'), - Lang = Y.Lang, - YArray = Y.Array, - YObject = Y.Object, - - /** - Fired when one or more attributes on this model are changed. - - @event change - @param {Object} changed Hash of change information for each attribute that - changed. Each item in the hash has the following properties: - @param {mixed} changed.newVal New value of the attribute. - @param {mixed} changed.prevVal Previous value of the attribute. - @param {String|null} changed.src Source of the change event, if any. - **/ - EVT_CHANGE = 'change', - - /** - Fired when an error occurs, such as when the model doesn't validate or when - a server response can't be parsed. - - @event error - @param {mixed} error Error message, object, or exception generated by the - error. Calling `toString()` on this should result in a meaningful error - message. - @param {String} src Source of the error. May be one of the following (or any - custom error source defined by a Model subclass): - - * `parse`: An error parsing a JSON response. - * `validate`: The model failed to validate. - **/ - EVT_ERROR = 'error'; - -function Model() { - Model.superclass.constructor.apply(this, arguments); -} - -Y.Model = Y.extend(Model, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - Hash of attributes that have changed since the last time this model was - saved. - - @property changed - @type Object - @default {} - **/ - - /** - Name of the attribute to use as the unique id (or primary key) for this - model. - - The default is `id`, but if your persistence layer uses a different name for - the primary key (such as `_id` or `uid`), you can specify that here. - - The built-in `id` attribute will always be an alias for whatever attribute - name you specify here, so getting and setting `id` will always behave the - same as getting and setting your custom id attribute. - - @property idAttribute - @type String - @default `'id'` - **/ - idAttribute: 'id', - - /** - Hash of attributes that were changed in the last `change` event. Each item - in this hash is an object with the following properties: - - * `newVal`: The new value of the attribute after it changed. - * `prevVal`: The old value of the attribute before it changed. - * `src`: The source of the change, or `null` if no source was specified. - - @property lastChange - @type Object - @default {} - **/ - - /** - Array of `ModelList` instances that contain this model. - - When a model is in one or more lists, the model's events will bubble up to - those lists. You can subscribe to a model event on a list to be notified - when any model in the list fires that event. - - This property is updated automatically when this model is added to or - removed from a `ModelList` instance. You shouldn't alter it manually. When - working with models in a list, you should always add and remove models using - the list's `add()` and `remove()` methods. - - @example Subscribing to model events on a list: - - // Assuming `list` is an existing Y.ModelList instance. - list.on('*:change', function (e) { - // This function will be called whenever any model in the list - // fires a `change` event. - // - // `e.target` will refer to the model instance that fired the - // event. - }); - - @property lists - @type ModelList[] - @default `[]` - **/ - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - this.changed = {}; - this.lastChange = {}; - this.lists = []; - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Destroys this model instance and removes it from its containing lists, if - any. - - If `options['delete']` is `true`, then this method also delegates to the - `sync()` method to delete the model from the persistence layer, which is an - asynchronous action. Provide a _callback_ function to be notified of success - or failure. - - @method destroy - @param {Object} [options] Sync options. It's up to the custom sync - implementation to determine what options it supports or requires, if - any. - @param {Boolean} [options.delete=false] If `true`, the model will be - deleted via the sync layer in addition to the instance being destroyed. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - `null`. - @chainable - **/ - destroy: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - function finish(err) { - if (!err) { - YArray.each(self.lists, function (list) { - list.remove(self, options); - }); - - Model.superclass.destroy.call(self); - } - - callback && callback.apply(null, arguments); - } - - if (options && options['delete']) { - this.sync('delete', options, finish); - } else { - finish(); - } - - return this; - }, - - /** - Returns a clientId string that's unique among all models on the current page - (even models in other YUI instances). Uniqueness across pageviews is - unlikely. - - @method generateClientId - @return {String} Unique clientId. - **/ - generateClientId: function () { - GlobalEnv.lastId || (GlobalEnv.lastId = 0); - return this.constructor.NAME + '_' + (GlobalEnv.lastId += 1); - }, - - /** - Returns the value of the specified attribute. - - If the attribute's value is an object, _name_ may use dot notation to - specify the path to a specific property within the object, and the value of - that property will be returned. - - @example - // Set the 'foo' attribute to an object. - myModel.set('foo', { - bar: { - baz: 'quux' - } - }); - - // Get the value of 'foo'. - myModel.get('foo'); - // => {bar: {baz: 'quux'}} - - // Get the value of 'foo.bar.baz'. - myModel.get('foo.bar.baz'); - // => 'quux' - - @method get - @param {String} name Attribute name or object property path. - @return {mixed} Attribute value, or `undefined` if the attribute doesn't - exist. - **/ - - // get() is defined by Y.Attribute. - - /** - Returns an HTML-escaped version of the value of the specified string - attribute. The value is escaped using `Y.Escape.html()`. - - @method getAsHTML - @param {String} name Attribute name or object property path. - @return {String} HTML-escaped attribute value. - **/ - getAsHTML: function (name) { - var value = this.get(name); - return Y.Escape.html(Lang.isValue(value) ? String(value) : ''); - }, - - /** - Returns a URL-encoded version of the value of the specified string - attribute. The value is encoded using the native `encodeURIComponent()` - function. - - @method getAsURL - @param {String} name Attribute name or object property path. - @return {String} URL-encoded attribute value. - **/ - getAsURL: function (name) { - var value = this.get(name); - return encodeURIComponent(Lang.isValue(value) ? String(value) : ''); - }, - - /** - Returns `true` if any attribute of this model has been changed since the - model was last saved. - - New models (models for which `isNew()` returns `true`) are implicitly - considered to be "modified" until the first time they're saved. - - @method isModified - @return {Boolean} `true` if this model has changed since it was last saved, - `false` otherwise. - **/ - isModified: function () { - return this.isNew() || !YObject.isEmpty(this.changed); - }, - - /** - Returns `true` if this model is "new", meaning it hasn't been saved since it - was created. - - Newness is determined by checking whether the model's `id` attribute has - been set. An empty id is assumed to indicate a new model, whereas a - non-empty id indicates a model that was either loaded or has been saved - since it was created. - - @method isNew - @return {Boolean} `true` if this model is new, `false` otherwise. - **/ - isNew: function () { - return !Lang.isValue(this.get('id')); - }, - - /** - Loads this model from the server. - - This method delegates to the `sync()` method to perform the actual load - operation, which is an asynchronous action. Specify a _callback_ function to - be notified of success or failure. - - If the load operation succeeds and one or more of the loaded attributes - differ from this model's current attributes, a `change` event will be fired. - - @method load - @param {Object} [options] Options to be passed to `sync()` and to `set()` - when setting the loaded attributes. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - `null`. - @param {mixed} callback.response The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an attribute hash. - @chainable - **/ - load: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - this.sync('read', options, function (err, response) { - if (!err) { - self.setAttrs(self.parse(response), options); - self.changed = {}; - } - - callback && callback.apply(null, arguments); - }); - - return this; - }, - - /** - Called to parse the _response_ when the model is loaded from the server. - This method receives a server _response_ and is expected to return an - attribute hash. - - The default implementation assumes that _response_ is either an attribute - hash or a JSON string that can be parsed into an attribute hash. If - _response_ is a JSON string and either `Y.JSON` or the native `JSON` object - are available, it will be parsed automatically. If a parse error occurs, an - `error` event will be fired and the model will not be updated. - - You may override this method to implement custom parsing logic if necessary. - - @method parse - @param {mixed} response Server response. - @return {Object} Attribute hash. - **/ - parse: function (response) { - if (typeof response === 'string') { - try { - return Y.JSON.parse(response); - } catch (ex) { - this.fire(EVT_ERROR, { - error : ex, - response: response, - src : 'parse' - }); - - return null; - } - } - - return response; - }, - - /** - Saves this model to the server. - - This method delegates to the `sync()` method to perform the actual save - operation, which is an asynchronous action. Specify a _callback_ function to - be notified of success or failure. - - If the save operation succeeds and one or more of the attributes returned in - the server's response differ from this model's current attributes, a - `change` event will be fired. - - @method save - @param {Object} [options] Options to be passed to `sync()` and to `set()` - when setting synced attributes. It's up to the custom sync implementation - to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - `null`. - @param {mixed} callback.response The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an attribute hash. - @chainable - **/ - save: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - this.sync(this.isNew() ? 'create' : 'update', options, function (err, response) { - if (!err) { - if (response) { - self.setAttrs(self.parse(response), options); - } - - self.changed = {}; - } - - callback && callback.apply(null, arguments); - }); - - return this; - }, - - /** - Sets the value of a single attribute. If model validation fails, the - attribute will not be set and an `error` event will be fired. - - Use `setAttrs()` to set multiple attributes at once. - - @example - model.set('foo', 'bar'); - - @method set - @param {String} name Attribute name or object property path. - @param {any} value Value to set. - @param {Object} [options] Data to be mixed into the event facade of the - `change` event(s) for these attributes. - @param {Boolean} [options.silent=false] If `true`, no `change` event will - be fired. - @chainable - **/ - set: function (name, value, options) { - var attributes = {}; - attributes[name] = value; - - return this.setAttrs(attributes, options); - }, - - /** - Sets the values of multiple attributes at once. If model validation fails, - the attributes will not be set and an `error` event will be fired. - - @example - model.setAttrs({ - foo: 'bar', - baz: 'quux' - }); - - @method setAttrs - @param {Object} attributes Hash of attribute names and values to set. - @param {Object} [options] Data to be mixed into the event facade of the - `change` event(s) for these attributes. - @param {Boolean} [options.silent=false] If `true`, no `change` event will - be fired. - @chainable - **/ - setAttrs: function (attributes, options) { - var idAttribute = this.idAttribute, - changed, e, key, lastChange, transaction; - - if (!this._validate(attributes)) { - return this; - } - - options || (options = {}); - transaction = options._transaction = {}; - - // When a custom id attribute is in use, always keep the default `id` - // attribute in sync. - if (idAttribute !== 'id') { - // So we don't modify someone else's object. - attributes = Y.merge(attributes); - - if (YObject.owns(attributes, idAttribute)) { - attributes.id = attributes[idAttribute]; - } else if (YObject.owns(attributes, 'id')) { - attributes[idAttribute] = attributes.id; - } - } - - for (key in attributes) { - if (YObject.owns(attributes, key)) { - this._setAttr(key, attributes[key], options); - } - } - - if (!YObject.isEmpty(transaction)) { - changed = this.changed; - lastChange = this.lastChange = {}; - - for (key in transaction) { - if (YObject.owns(transaction, key)) { - e = transaction[key]; - - changed[key] = e.newVal; - - lastChange[key] = { - newVal : e.newVal, - prevVal: e.prevVal, - src : e.src || null - }; - } - } - - if (!options.silent) { - // Lazy publish for the change event. - if (!this._changeEvent) { - this._changeEvent = this.publish(EVT_CHANGE, { - preventable: false - }); - } - - this.fire(EVT_CHANGE, {changed: lastChange}); - } - } - - return this; - }, - - /** - Override this method to provide a custom persistence implementation for this - model. The default just calls the callback without actually doing anything. - - This method is called internally by `load()`, `save()`, and `destroy()`. - - @method sync - @param {String} action Sync action to perform. May be one of the following: - - * `create`: Store a newly-created model for the first time. - * `delete`: Delete an existing model. - * 'read' : Load an existing model. - * `update`: Update an existing model. - - @param {Object} [options] Sync options. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error|null} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} [callback.response] The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an attribute hash. - **/ - sync: function (/* action, options, callback */) { - var callback = YArray(arguments, 0, true).pop(); - - if (typeof callback === 'function') { - callback(); - } - }, - - /** - Returns a copy of this model's attributes that can be passed to - `Y.JSON.stringify()` or used for other nefarious purposes. - - The `clientId` attribute is not included in the returned object. - - If you've specified a custom attribute name in the `idAttribute` property, - the default `id` attribute will not be included in the returned object. - - @method toJSON - @return {Object} Copy of this model's attributes. - **/ - toJSON: function () { - var attrs = this.getAttrs(); - - delete attrs.clientId; - delete attrs.destroyed; - delete attrs.initialized; - - if (this.idAttribute !== 'id') { - delete attrs.id; - } - - return attrs; - }, - - /** - Reverts the last change to the model. - - If an _attrNames_ array is provided, then only the named attributes will be - reverted (and only if they were modified in the previous change). If no - _attrNames_ array is provided, then all changed attributes will be reverted - to their previous values. - - Note that only one level of undo is available: from the current state to the - previous state. If `undo()` is called when no previous state is available, - it will simply do nothing. - - @method undo - @param {Array} [attrNames] Array of specific attribute names to rever. If - not specified, all attributes modified in the last change will be - reverted. - @param {Object} [options] Data to be mixed into the event facade of the - change event(s) for these attributes. - @param {Boolean} [options.silent=false] If `true`, no `change` event will - be fired. - @chainable - **/ - undo: function (attrNames, options) { - var lastChange = this.lastChange, - idAttribute = this.idAttribute, - toUndo = {}, - needUndo; - - attrNames || (attrNames = YObject.keys(lastChange)); - - YArray.each(attrNames, function (name) { - if (YObject.owns(lastChange, name)) { - // Don't generate a double change for custom id attributes. - name = name === idAttribute ? 'id' : name; - - needUndo = true; - toUndo[name] = lastChange[name].prevVal; - } - }); - - return needUndo ? this.setAttrs(toUndo, options) : this; - }, - - /** - Override this method to provide custom validation logic for this model. - While attribute-specific validators can be used to validate individual - attributes, this method gives you a hook to validate a hash of attributes - when multiple attributes are changed at once. This method is called - automatically before `set`, `setAttrs`, and `save` take action. - - A call to `validate` that doesn't return anything will be treated as a - success. If the `validate` method returns a value, it will be treated as a - failure, and the returned value (which may be a string or an object - containing information about the failure) will be passed along to the - `error` event. - - @method validate - @param {Object} attributes Attribute hash containing changed attributes. - @return {mixed} Any return value other than `undefined` or `null` will be - treated as a validation failure. - **/ - validate: function (/* attributes */) {}, - - // -- Protected Methods ---------------------------------------------------- - - /** - Duckpunches the `addAttr` method provided by `Y.Attribute` to keep the - `id` attribute’s value and a custom id attribute’s (if provided) value - in sync when adding the attributes to the model instance object. - - Marked as protected to hide it from Model's public API docs, even though - this is a public method in Attribute. - - @method addAttr - @param {String} name The name of the attribute. - @param {Object} config An object with attribute configuration property/value - pairs, specifying the configuration for the attribute. - @param {boolean} lazy (optional) Whether or not to add this attribute lazily - (on the first call to get/set). - @return {Object} A reference to the host object. - @chainable - @protected - **/ - addAttr: function (name, config, lazy) { - var idAttribute = this.idAttribute, - idAttrCfg, id; - - if (idAttribute && name === idAttribute) { - idAttrCfg = this._isLazyAttr('id') || this._getAttrCfg('id'); - id = config.value === config.defaultValue ? null : config.value; - - if (!Lang.isValue(id)) { - // Hunt for the id value. - id = idAttrCfg.value === idAttrCfg.defaultValue ? null : idAttrCfg.value; - - if (!Lang.isValue(id)) { - // No id value provided on construction, check defaults. - id = Lang.isValue(config.defaultValue) ? - config.defaultValue : - idAttrCfg.defaultValue; - } - } - - config.value = id; - - // Make sure `id` is in sync. - if (idAttrCfg.value !== id) { - idAttrCfg.value = id; - - if (this._isLazyAttr('id')) { - this._state.add('id', 'lazy', idAttrCfg); - } else { - this._state.add('id', 'value', id); - } - } - } - - return Model.superclass.addAttr.apply(this, arguments); - }, - - /** - Calls the public, overridable `validate()` method and fires an `error` event - if validation fails. - - @method _validate - @param {Object} attributes Attribute hash. - @return {Boolean} `true` if validation succeeded, `false` otherwise. - @protected - **/ - _validate: function (attributes) { - var error = this.validate(attributes); - - if (Lang.isValue(error)) { - // Validation failed. Fire an error. - this.fire(EVT_ERROR, { - attributes: attributes, - error : error, - src : 'validate' - }); - - return false; - } - - return true; - }, - - // -- Protected Event Handlers --------------------------------------------- - - /** - Duckpunches the `_defAttrChangeFn()` provided by `Y.Attribute` so we can - have a single global notification when a change event occurs. - - @method _defAttrChangeFn - @param {EventFacade} e - @protected - **/ - _defAttrChangeFn: function (e) { - var attrName = e.attrName; - - if (!this._setAttrVal(attrName, e.subAttrName, e.prevVal, e.newVal)) { - // Prevent "after" listeners from being invoked since nothing changed. - e.stopImmediatePropagation(); - } else { - e.newVal = this.get(attrName); - - if (e._transaction) { - e._transaction[attrName] = e; - } - } - } -}, { - NAME: 'model', - - ATTRS: { - /** - A client-only identifier for this model. - - Like the `id` attribute, `clientId` may be used to retrieve model - instances from lists. Unlike the `id` attribute, `clientId` is - automatically generated, and is only intended to be used on the client - during the current pageview. - - @attribute clientId - @type String - @readOnly - **/ - clientId: { - valueFn : 'generateClientId', - readOnly: true - }, - - /** - A unique identifier for this model. Among other things, this id may be - used to retrieve model instances from lists, so it should be unique. - - If the id is empty, this model instance is assumed to represent a new - item that hasn't yet been saved. - - If you would prefer to use a custom attribute as this model's id instead - of using the `id` attribute (for example, maybe you'd rather use `_id` - or `uid` as the primary id), you may set the `idAttribute` property to - the name of your custom id attribute. The `id` attribute will then - act as an alias for your custom attribute. - - @attribute id - @type String|Number|null - @default `null` - **/ - id: {value: null} - } -}); - - -}, '3.4.0' ,{requires:['base-build', 'escape', 'json-parse']}); -YUI.add('model-list', function(Y) { - -/** -Provides an API for managing an ordered list of Model instances. - -In addition to providing convenient `add`, `create`, `refresh`, and `remove` -methods for managing the models in the list, ModelLists are also bubble targets -for events on the model instances they contain. This means, for example, that -you can add several models to a list, and then subscribe to the `*:change` event -on the list to be notified whenever any model in the list changes. - -ModelLists also maintain sort order efficiently as models are added and removed, -based on a custom `comparator` function you may define (if no comparator is -defined, models are sorted in insertion order). - -@submodule model-list -@class ModelList -@constructor -@uses ArrayList -@uses Base -**/ - -var Lang = Y.Lang, - YArray = Y.Array, - - /** - Fired when a model is added to the list. - - Listen to the `on` phase of this event to be notified before a model is - added to the list. Calling `e.preventDefault()` during the `on` phase will - prevent the model from being added. - - Listen to the `after` phase of this event to be notified after a model has - been added to the list. - - @event add - @param {Model} model The model being added. - @param {int} index The index at which the model will be added. - @preventable _defAddFn - **/ - EVT_ADD = 'add', - - /** - Fired when the list is completely refreshed via the `refresh()` method or - sorted via the `sort()` method. - - Listen to the `on` phase of this event to be notified before the list is - refreshed. Calling `e.preventDefault()` during the `on` phase will prevent - the list from being refreshed. - - Listen to the `after` phase of this event to be notified after the list has - been refreshed. - - @event refresh - @param {Model[]} models Array of the list's new models after the refresh. - @param {String} src Source of the event. May be either `'refresh'` or - `'sort'`. - @preventable _defRefreshFn - **/ - EVT_REFRESH = 'refresh', - - /** - Fired when a model is removed from the list. - - Listen to the `on` phase of this event to be notified before a model is - removed from the list. Calling `e.preventDefault()` during the `on` phase - will prevent the model from being removed. - - Listen to the `after` phase of this event to be notified after a model has - been removed from the list. - - @event remove - @param {Model} model The model being removed. - @param {int} index The index of the model being removed. - @preventable _defRemoveFn - **/ - EVT_REMOVE = 'remove'; - -function ModelList() { - ModelList.superclass.constructor.apply(this, arguments); -} - -Y.ModelList = Y.extend(ModelList, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - The `Model` class or subclass of the models in this list. - - This property is `null` by default, and is intended to be overridden in a - subclass or specified as a config property at instantiation time. It will be - used to create model instances automatically based on attribute hashes - passed to the `add()`, `create()`, and `remove()` methods. - - @property model - @type Model - @default `null` - **/ - model: null, - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - config || (config = {}); - - var model = this.model = config.model || this.model; - - this.publish(EVT_ADD, {defaultFn: this._defAddFn}); - this.publish(EVT_REFRESH, {defaultFn: this._defRefreshFn}); - this.publish(EVT_REMOVE, {defaultFn: this._defRemoveFn}); - - if (model) { - this.after('*:idChange', this._afterIdChange); - } else { - } - - this._clear(); - }, - - destructor: function () { - YArray.each(this._items, this._detachList, this); - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Adds the specified model or array of models to this list. - - @example - // Add a single model instance. - list.add(new Model({foo: 'bar'})); - - // Add a single model, creating a new instance automatically. - list.add({foo: 'bar'}); - - // Add multiple models, creating new instances automatically. - list.add([ - {foo: 'bar'}, - {baz: 'quux'} - ]); - - @method add - @param {Model|Model[]|Object|Object[]} models Models to add. May be existing - model instances or hashes of model attributes, in which case new model - instances will be created from the hashes. - @param {Object} [options] Data to be mixed into the event facade of the - `add` event(s) for the added models. - @param {Boolean} [options.silent=false] If `true`, no `add` event(s) will - be fired. - @return {Model|Model[]} Added model or array of added models. - **/ - add: function (models, options) { - if (Lang.isArray(models)) { - return YArray.map(models, function (model) { - return this._add(model, options); - }, this); - } else { - return this._add(models, options); - } - }, - - /** - Define this method to provide a function that takes a model as a parameter - and returns a value by which that model should be sorted relative to other - models in this list. - - By default, no comparator is defined, meaning that models will not be sorted - (they'll be stored in the order they're added). - - @example - var list = new Y.ModelList({model: Y.Model}); - - list.comparator = function (model) { - return model.get('id'); // Sort models by id. - }; - - @method comparator - @param {Model} model Model being sorted. - @return {Number|String} Value by which the model should be sorted relative - to other models in this list. - **/ - - // comparator is not defined by default - - /** - Creates or updates the specified model on the server, then adds it to this - list if the server indicates success. - - @method create - @param {Model|Object} model Model to create. May be an existing model - instance or a hash of model attributes, in which case a new model instance - will be created from the hash. - @param {Object} [options] Options to be passed to the model's `sync()` and - `set()` methods and mixed into the `add` event when the model is added - to the list. - @param {Boolean} [options.silent=false] If `true`, no `add` event(s) will - be fired. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} callback.response The server's response. - @return {Model} Created model. - **/ - create: function (model, options, callback) { - var self = this; - - // Allow callback as second arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - if (!(model instanceof Y.Model)) { - model = new this.model(model); - } - - return model.save(options, function (err) { - if (!err) { - self.add(model, options); - } - - callback && callback.apply(null, arguments); - }); - }, - - /** - Returns the model with the specified _clientId_, or `null` if not found. - - @method getByClientId - @param {String} clientId Client id. - @return {Model} Model, or `null` if not found. - **/ - getByClientId: function (clientId) { - return this._clientIdMap[clientId] || null; - }, - - /** - Returns the model with the specified _id_, or `null` if not found. - - Note that models aren't expected to have an id until they're saved, so if - you're working with unsaved models, it may be safer to call - `getByClientId()`. - - @method getById - @param {String} id Model id. - @return {Model} Model, or `null` if not found. - **/ - getById: function (id) { - return this._idMap[id] || null; - }, - - /** - Calls the named method on every model in the list. Any arguments provided - after _name_ will be passed on to the invoked method. - - @method invoke - @param {String} name Name of the method to call on each model. - @param {any} *args Zero or more arguments to pass to the invoked method. - @return {Array} Array of return values, indexed according to the index of - the model on which the method was called. - **/ - invoke: function (name /*, *args */) { - var args = [this._items, name].concat(YArray(arguments, 1, true)); - return YArray.invoke.apply(YArray, args); - }, - - /** - Returns the model at the specified _index_. - - @method item - @param {int} index Index of the model to fetch. - @return {Model} The model at the specified index, or `undefined` if there - isn't a model there. - **/ - - // item() is inherited from ArrayList. - - /** - Loads this list of models from the server. - - This method delegates to the `sync()` method to perform the actual load - operation, which is an asynchronous action. Specify a _callback_ function to - be notified of success or failure. - - If the load operation succeeds, a `refresh` event will be fired. - - @method load - @param {Object} [options] Options to be passed to `sync()` and to - `refresh()` when adding the loaded models. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} callback.response The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an array of model attribute hashes. - @chainable - **/ - load: function (options, callback) { - var self = this; - - // Allow callback as only arg. - if (typeof options === 'function') { - callback = options; - options = {}; - } - - this.sync('read', options, function (err, response) { - if (!err) { - self.refresh(self.parse(response), options); - } - - callback && callback.apply(null, arguments); - }); - - return this; - }, - - /** - Executes the specified function on each model in this list and returns an - array of the function's collected return values. - - @method map - @param {Function} fn Function to execute on each model. - @param {Model} fn.model Current model being iterated. - @param {int} fn.index Index of the current model in the list. - @param {Model[]} fn.models Array of models being iterated. - @param {Object} [thisObj] `this` object to use when calling _fn_. - @return {Array} Array of return values from _fn_. - **/ - map: function (fn, thisObj) { - return YArray.map(this._items, fn, thisObj); - }, - - /** - Called to parse the _response_ when the list is loaded from the server. - This method receives a server _response_ and is expected to return an array - of model attribute hashes. - - The default implementation assumes that _response_ is either an array of - attribute hashes or a JSON string that can be parsed into an array of - attribute hashes. If _response_ is a JSON string and either `Y.JSON` or the - native `JSON` object are available, it will be parsed automatically. If a - parse error occurs, an `error` event will be fired and the model will not be - updated. - - You may override this method to implement custom parsing logic if necessary. - - @method parse - @param {mixed} response Server response. - @return {Object[]} Array of model attribute hashes. - **/ - parse: function (response) { - if (typeof response === 'string') { - try { - return Y.JSON.parse(response) || []; - } catch (ex) { - Y.error('Failed to parse JSON response.'); - return null; - } - } - - return response || []; - }, - - /** - Completely replaces all models in the list with those specified, and fires a - single `refresh` event. - - Use `refresh` when you want to add or remove a large number of items at once - without firing `add` or `remove` events for each one. - - @method refresh - @param {Model[]|Object[]} models Models to add. May be existing model - instances or hashes of model attributes, in which case new model instances - will be created from the hashes. - @param {Object} [options] Data to be mixed into the event facade of the - `refresh` event. - @param {Boolean} [options.silent=false] If `true`, no `refresh` event will - be fired. - @chainable - **/ - refresh: function (models, options) { - options || (options = {}); - - var facade = Y.merge(options, { - src : 'refresh', - models: YArray.map(models, function (model) { - return model instanceof Y.Model ? model : - new this.model(model); - }, this) - }); - - options.silent ? this._defRefreshFn(facade) : - this.fire(EVT_REFRESH, facade); - - return this; - }, - - /** - Removes the specified model or array of models from this list. - - @method remove - @param {Model|Model[]} models Models to remove. - @param {Object} [options] Data to be mixed into the event facade of the - `remove` event(s) for the removed models. - @param {Boolean} [options.silent=false] If `true`, no `remove` event(s) - will be fired. - @return {Model|Model[]} Removed model or array of removed models. - **/ - remove: function (models, options) { - if (Lang.isArray(models)) { - return YArray.map(models, function (model) { - return this._remove(model, options); - }, this); - } else { - return this._remove(models, options); - } - }, - - /** - Forcibly re-sorts the list. - - Usually it shouldn't be necessary to call this method since the list - maintains its sort order when items are added and removed, but if you change - the `comparator` function after items are already in the list, you'll need - to re-sort. - - @method sort - @param {Object} [options] Data to be mixed into the event facade of the - `refresh` event. - @param {Boolean} [options.silent=false] If `true`, no `refresh` event will - be fired. - @chainable - **/ - sort: function (options) { - var comparator = this.comparator, - models = this._items.concat(), - facade; - - if (!comparator) { - return this; - } - - options || (options = {}); - - models.sort(function (a, b) { - var aValue = comparator(a), - bValue = comparator(b); - - return aValue < bValue ? -1 : (aValue > bValue ? 1 : 0); - }); - - facade = Y.merge(options, { - models: models, - src : 'sort' - }); - - options.silent ? this._defRefreshFn(facade) : - this.fire(EVT_REFRESH, facade); - - return this; - }, - - /** - Override this method to provide a custom persistence implementation for this - list. The default method just calls the callback without actually doing - anything. - - This method is called internally by `load()`. - - @method sync - @param {String} action Sync action to perform. May be one of the following: - - * `create`: Store a list of newly-created models for the first time. - * `delete`: Delete a list of existing models. - * 'read' : Load a list of existing models. - * `update`: Update a list of existing models. - - Currently, model lists only make use of the `read` action, but other - actions may be used in future versions. - - @param {Object} [options] Sync options. It's up to the custom sync - implementation to determine what options it supports or requires, if any. - @param {callback} [callback] Called when the sync operation finishes. - @param {Error} callback.err If an error occurred, this parameter will - contain the error. If the sync operation succeeded, _err_ will be - falsy. - @param {mixed} [callback.response] The server's response. This value will - be passed to the `parse()` method, which is expected to parse it and - return an array of model attribute hashes. - **/ - sync: function (/* action, options, callback */) { - var callback = YArray(arguments, 0, true).pop(); - - if (typeof callback === 'function') { - callback(); - } - }, - - /** - Returns an array containing the models in this list. - - @method toArray - @return {Array} Array containing the models in this list. - **/ - toArray: function () { - return this._items.concat(); - }, - - /** - Returns an array containing attribute hashes for each model in this list, - suitable for being passed to `Y.JSON.stringify()`. - - Under the hood, this method calls `toJSON()` on each model in the list and - pushes the results into an array. - - @method toJSON - @return {Object[]} Array of model attribute hashes. - @see Model.toJSON() - **/ - toJSON: function () { - return this.map(function (model) { - return model.toJSON(); - }); - }, - - // -- Protected Methods ---------------------------------------------------- - - /** - Adds the specified _model_ if it isn't already in this list. - - @method _add - @param {Model|Object} model Model or object to add. - @param {Object} [options] Data to be mixed into the event facade of the - `add` event for the added model. - @param {Boolean} [options.silent=false] If `true`, no `add` event will be - fired. - @return {Model} The added model. - @protected - **/ - _add: function (model, options) { - var facade; - - options || (options = {}); - - if (!(model instanceof Y.Model)) { - model = new this.model(model); - } - - if (this._clientIdMap[model.get('clientId')]) { - Y.error('Model already in list.'); - return; - } - - facade = Y.merge(options, { - index: this._findIndex(model), - model: model - }); - - options.silent ? this._defAddFn(facade) : this.fire(EVT_ADD, facade); - - return model; - }, - - /** - Adds this list as a bubble target for the specified model's events. - - @method _attachList - @param {Model} model Model to attach to this list. - @protected - **/ - _attachList: function (model) { - // Attach this list and make it a bubble target for the model. - model.lists.push(this); - model.addTarget(this); - }, - - /** - Clears all internal state and the internal list of models, returning this - list to an empty state. Automatically detaches all models in the list. - - @method _clear - @protected - **/ - _clear: function () { - YArray.each(this._items, this._detachList, this); - - this._clientIdMap = {}; - this._idMap = {}; - this._items = []; - }, - - /** - Removes this list as a bubble target for the specified model's events. - - @method _detachList - @param {Model} model Model to detach. - @protected - **/ - _detachList: function (model) { - var index = YArray.indexOf(model.lists, this); - - if (index > -1) { - model.lists.splice(index, 1); - model.removeTarget(this); - } - }, - - /** - Returns the index at which the given _model_ should be inserted to maintain - the sort order of the list. - - @method _findIndex - @param {Model} model The model being inserted. - @return {int} Index at which the model should be inserted. - @protected - **/ - _findIndex: function (model) { - var comparator = this.comparator, - items = this._items, - max = items.length - 1, - min = 0, - item, middle, needle; - - if (!comparator || !items.length) { return items.length; } - - needle = comparator(model); - - // Perform an iterative binary search to determine the correct position - // based on the return value of the `comparator` function. - while (min < max) { - middle = (min + max) / 2; - item = items[middle]; - - if (item && comparator(item) < needle) { - min = middle + 1; - } else { - max = middle; - } - } - - return min; - }, - - /** - Removes the specified _model_ if it's in this list. - - @method _remove - @param {Model} model Model to remove. - @param {Object} [options] Data to be mixed into the event facade of the - `remove` event for the removed model. - @param {Boolean} [options.silent=false] If `true`, no `remove` event will - be fired. - @return {Model} Removed model. - @protected - **/ - _remove: function (model, options) { - var index = this.indexOf(model), - facade; - - options || (options = {}); - - if (index === -1) { - Y.error('Model not in list.'); - return; - } - - facade = Y.merge(options, { - index: index, - model: model - }); - - options.silent ? this._defRemoveFn(facade) : - this.fire(EVT_REMOVE, facade); - - return model; - }, - - // -- Event Handlers ------------------------------------------------------- - - /** - Updates the model maps when a model's `id` attribute changes. - - @method _afterIdChange - @param {EventFacade} e - @protected - **/ - _afterIdChange: function (e) { - e.prevVal && delete this._idMap[e.prevVal]; - e.newVal && (this._idMap[e.newVal] = e.target); - }, - - // -- Default Event Handlers ----------------------------------------------- - - /** - Default event handler for `add` events. - - @method _defAddFn - @param {EventFacade} e - @protected - **/ - _defAddFn: function (e) { - var model = e.model, - id = model.get('id'); - - this._clientIdMap[model.get('clientId')] = model; - - if (id) { - this._idMap[id] = model; - } - - this._attachList(model); - this._items.splice(e.index, 0, model); - }, - - /** - Default event handler for `refresh` events. - - @method _defRefreshFn - @param {EventFacade} e - @protected - **/ - _defRefreshFn: function (e) { - // When fired from the `sort` method, we don't need to clear the list or - // add any models, since the existing models are sorted in place. - if (e.src === 'sort') { - this._items = e.models.concat(); - return; - } - - this._clear(); - - if (e.models.length) { - this.add(e.models, {silent: true}); - } - }, - - /** - Default event handler for `remove` events. - - @method _defRemoveFn - @param {EventFacade} e - @protected - **/ - _defRemoveFn: function (e) { - var model = e.model, - id = model.get('id'); - - this._detachList(model); - delete this._clientIdMap[model.get('clientId')]; - - if (id) { - delete this._idMap[id]; - } - - this._items.splice(e.index, 1); - } -}, { - NAME: 'modelList' -}); - -Y.augment(ModelList, Y.ArrayList); - -/** -Returns an array containing the values of the specified attribute from each -model in this list. - -@method get -@param {String} name Attribute name or object property path. -@return {Array} Array of attribute values. -@see Model.get() -**/ - -/** -Returns an array containing the HTML-escaped versions of the values of the -specified string attributes from each model in this list. The values are escaped -using `Y.Escape.html()`. - -@method getAsHTML -@param {String} name Attribute name or object property path. -@return {String[]} Array of HTML-escaped attribute values. -@see Model.getAsHTML() -**/ - -/** -Returns an array containing the URL-encoded versions of the values of the -specified string attributes from each model in this list. The values are encoded -using the native `encodeURIComponent()` function. - -@method getAsURL -@param {String} name Attribute name or object property path. -@return {String[]} Array of URL-encoded attribute values. -@see Model.getAsURL() -**/ - -Y.ArrayList.addMethod(ModelList.prototype, [ - 'get', 'getAsHTML', 'getAsURL' -]); - - -}, '3.4.0' ,{requires:['array-extras', 'array-invoke', 'arraylist', 'base-build', 'json-parse', 'model']}); -YUI.add('view', function(Y) { - -/** -Represents a logical piece of an application's user interface, and provides a -lightweight, overridable API for rendering content and handling delegated DOM -events on a container element. - -The View class imposes little structure and provides only minimal functionality -of its own: it's basically just an overridable API interface that helps you -implement custom views. - -@submodule view -@class View -@constructor -@uses Base -**/ - -function View() { - View.superclass.constructor.apply(this, arguments); -} - -Y.View = Y.extend(View, Y.Base, { - // -- Public Properties ---------------------------------------------------- - - /** - Container node into which this view's content will be rendered. - - The container node serves as the host for all DOM events attached by the - view. Delegation is used to handle events on children of the container, - allowing the container's contents to be re-rendered at any time without - losing event subscriptions. - - The default container is a simple `
                                `, but you can override this in a - subclass, or by passing in a custom `container` config value at - instantiation time. - - When `container` is overridden by a subclass or passed as a config option at - instantiation time, it may be provided as an HTML string, a DOM element, or - a `Y.Node` instance. During initialization, this view's `create()` method - will be called to convert the container into a `Y.Node` instance if it isn't - one already. - - The container is not added to the page automatically. This allows you to - have full control over how and when your view is actually rendered to the - page. - - @property container - @type HTMLElement|Node|String - @default `"
                                "` - **/ - container: '
                                ', - - /** - Hash of CSS selectors mapped to events to delegate to elements matching - those selectors. - - CSS selectors are relative to the `container` element. Events are attached - to the container, and delegation is used so that subscribers are only - notified of events that occur on elements inside the container that match - the specified selectors. This allows the container's contents to be - re-rendered as needed without losing event subscriptions. - - Event handlers can be specified either as functions or as strings that map - to function names on this view instance or its prototype. - - The `this` object in event handlers will refer to this view instance. If - you'd prefer `this` to be something else, use `Y.bind()` to bind a custom - `this` object. - - @example - - var view = new Y.View({ - events: { - // Call `this.toggle()` whenever the element with the id - // "toggle-button" is clicked. - '#toggle-button': {click: 'toggle'}, - - // Call `this.hoverOn()` when the mouse moves over any element - // with the "hoverable" class, and `this.hoverOff()` when the - // mouse moves out of any element with the "hoverable" class. - '.hoverable': { - mouseover: 'hoverOn', - mouseout : 'hoverOff' - } - } - }); - - @property events - @type Object - @default `{}` - **/ - events: {}, - - /** - `Y.Model` instance associated with this view instance. - - This is entirely optional. There's no requirement that views be associated - with models, but if you do intend to associate your view with a model, then - specifying that model instance at instantiation time will cause a reference - to be stored here for convenience. - - @property model - @type Model - **/ - - /** - Template for this view. - - This is a convenience property that has no default behavior of its own. It's - only provided as a convention to allow you to store whatever you consider to - be a template, whether that's an HTML string, a `Y.Node` instance, a - Mustache template, or anything else your little heart desires. - - How this template gets used is entirely up to you and your custom `render()` - method. - - @property template - @type any - @default `''` - **/ - template: '', - - // -- Lifecycle Methods ---------------------------------------------------- - initializer: function (config) { - config || (config = {}); - - this.container = this.create(config.container || this.container); - - // Use config properties if present; otherwise default to prototype - // properties. - config.model && (this.model = config.model); - config.template && (this.template = config.template); - - // Merge events from the config into events in `this.events`, then - // attach the events to the container node. - this.events = config.events ? - Y.merge(this.events, config.events) : this.events; - - this.attachEvents(this.events); - }, - - destructor: function () { - // Remove the container from the DOM and purge all event listeners. - this.container && this.container.remove(true); - }, - - // -- Public Methods ------------------------------------------------------- - - /** - Attaches delegated event handlers to this view's `container` element. This - method is called internally to subscribe to events configured in the - `events` property or config attribute when the view is initialized. - - You may override this method to customize the event attaching logic. - - @method attachEvents - @param {Object} events Hash of events to attach. See the docs for the - `events` property for details on the format. - **/ - attachEvents: function (events) { - var container = this.container, - owns = Y.Object.owns, - handler, handlers, name, selector; - - for (selector in events) { - if (!owns(events, selector)) { continue; } - - handlers = events[selector]; - - for (name in handlers) { - if (!owns(handlers, name)) { continue; } - - handler = handlers[name]; - - if (typeof handler === 'string') { - handler = this[handler]; - } - - container.delegate(name, handler, selector, this); - } - } - }, - - /** - Creates and returns this view's `container` node from the specified HTML - string, DOM element, or existing `Y.Node` instance. This method is called - internally when the view is initialized. - - By default, the created node is _not_ added to the DOM automatically. - - You may override this method to customize how the container node is created - (such as by rendering it from a template). Your method should return a - `Y.Node` instance. - - @method create - @param {HTMLElement|Node|String} container HTML string, DOM element, or - `Y.Node` instance to use as the container node. - @return {Node} Node instance of the created container node. - **/ - create: function (container) { - return typeof container === 'string' ? - Y.Node.create(container) : Y.one(container); - }, - - /** - Removes this view's `container` element from the DOM (if it's in the DOM), - but doesn't destroy it or any event listeners attached to it. - - @method remove - @chainable - **/ - remove: function () { - this.container && this.container.remove(); - return this; - }, - - /** - Renders the view. - - This method is a noop by default. Override it in your subclass to provide a - custom implementation that renders this view's content and appends it to the - `container` element. Ideally your `render` method should also return `this` - as the end to allow chaining, but that's up to you. - - Since there's no default renderer, you're free to render your view however - you see fit, whether that means manipulating the DOM directly, dumping - strings into `innerHTML`, or using a template language of some kind. - - For basic templating needs, `Y.Node.create()` and `Y.Lang.sub()` may - suffice, but there are no restrictions on what tools or techniques you can - use to render your view. All you need to do is append something to the - `container` element at some point, and optionally append the `container` - to the DOM if it's not there already. - - @method render - @chainable - **/ - render: function () { - return this; - } -}, { - NAME: 'view' -}); - - -}, '3.4.0' ,{requires:['base-build', 'node-event-delegate']}); - - -YUI.add('app', function(Y){}, '3.4.0' ,{use:['controller', 'model', 'model-list', 'view']}); - diff --git a/build/attribute/attribute-base-debug.js b/build/attribute/attribute-base-debug.js deleted file mode 100644 index b59e838c07d..00000000000 --- a/build/attribute/attribute-base-debug.js +++ /dev/null @@ -1,1198 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('attribute-base', function(Y) { - - /** - * The State class maintains state for a collection of named items, with - * a varying number of properties defined. - * - * It avoids the need to create a separate class for the item, and separate instances - * of these classes for each item, by storing the state in a 2 level hash table, - * improving performance when the number of items is likely to be large. - * - * @constructor - * @class State - */ - Y.State = function() { - /** - * Hash of attributes - * @property data - */ - this.data = {}; - }; - - Y.State.prototype = { - - /** - * Adds a property to an item. - * - * @method add - * @param name {String} The name of the item. - * @param key {String} The name of the property. - * @param val {Any} The value of the property. - */ - add : function(name, key, val) { - var d = this.data; - d[key] = d[key] || {}; - d[key][name] = val; - }, - - /** - * Adds multiple properties to an item. - * - * @method addAll - * @param name {String} The name of the item. - * @param o {Object} A hash of property/value pairs. - */ - addAll: function(name, o) { - var key; - for (key in o) { - if (o.hasOwnProperty(key)) { - this.add(name, key, o[key]); - } - } - }, - - /** - * Removes a property from an item. - * - * @method remove - * @param name {String} The name of the item. - * @param key {String} The property to remove. - */ - remove: function(name, key) { - var d = this.data; - if (d[key] && (name in d[key])) { - delete d[key][name]; - } - }, - - /** - * Removes multiple properties from an item, or remove the item completely. - * - * @method removeAll - * @param name {String} The name of the item. - * @param o {Object|Array} Collection of properties to delete. If not provided, the entire item is removed. - */ - removeAll: function(name, o) { - var d = this.data; - - Y.each(o || d, function(v, k) { - if(Y.Lang.isString(k)) { - this.remove(name, k); - } else { - this.remove(name, v); - } - }, this); - }, - - /** - * For a given item, returns the value of the property requested, or undefined if not found. - * - * @method get - * @param name {String} The name of the item - * @param key {String} Optional. The property value to retrieve. - * @return {Any} The value of the supplied property. - */ - get: function(name, key) { - var d = this.data; - return (d[key] && name in d[key]) ? d[key][name] : undefined; - }, - - /** - * For the given item, returns a disposable object with all of the - * item's property/value pairs. - * - * @method getAll - * @param name {String} The name of the item - * @return {Object} An object with property/value pairs for the item. - */ - getAll : function(name) { - var d = this.data, o; - - Y.each(d, function(v, k) { - if (name in d[k]) { - o = o || {}; - o[k] = v[name]; - } - }, this); - - return o; - } - }; - /** - * The attribute module provides an augmentable Attribute implementation, which - * adds configurable attributes and attribute change events to the class being - * augmented. It also provides a State class, which is used internally by Attribute, - * but can also be used independently to provide a name/property/value data structure to - * store state. - * - * @module attribute - */ - - /** - * The attribute-base submodule provides core attribute handling support, with everything - * aside from complex attribute handling in the provider's constructor. - * - * @module attribute - * @submodule attribute-base - */ - var O = Y.Object, - Lang = Y.Lang, - EventTarget = Y.EventTarget, - - DOT = ".", - CHANGE = "Change", - - // Externally configurable props - GETTER = "getter", - SETTER = "setter", - READ_ONLY = "readOnly", - WRITE_ONCE = "writeOnce", - INIT_ONLY = "initOnly", - VALIDATOR = "validator", - VALUE = "value", - VALUE_FN = "valueFn", - BROADCAST = "broadcast", - LAZY_ADD = "lazyAdd", - BYPASS_PROXY = "_bypassProxy", - - // Used for internal state management - ADDED = "added", - INITIALIZING = "initializing", - INIT_VALUE = "initValue", - PUBLISHED = "published", - DEF_VALUE = "defaultValue", - LAZY = "lazy", - IS_LAZY_ADD = "isLazyAdd", - - INVALID_VALUE, - - MODIFIABLE = {}; - - // Properties which can be changed after the attribute has been added. - MODIFIABLE[READ_ONLY] = 1; - MODIFIABLE[WRITE_ONCE] = 1; - MODIFIABLE[GETTER] = 1; - MODIFIABLE[BROADCAST] = 1; - - /** - *

                                - * Attribute provides configurable attribute support along with attribute change events. It is designed to be - * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state, - * along with attribute change events. - *

                                - *

                                For example, attributes added to the host can be configured:

                                - *
                                  - *
                                • As read only.
                                • - *
                                • As write once.
                                • - *
                                • With a setter function, which can be used to manipulate - * values passed to Attribute's set method, before they are stored.
                                • - *
                                • With a getter function, which can be used to manipulate stored values, - * before they are returned by Attribute's get method.
                                • - *
                                • With a validator function, to validate values before they are stored.
                                • - *
                                - * - *

                                See the addAttr method, for the complete set of configuration - * options available for attributes

                                . - * - *

                                NOTE: Most implementations will be better off extending the Base class, - * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration - * of attributes for derived classes, accounting for values passed into the constructor.

                                - * - * @class Attribute - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - * @uses EventTarget - */ - function Attribute(attrs, values, lazy) { - - var host = this; // help compression - - // Perf tweak - avoid creating event literals if not required. - host._ATTR_E_FACADE = {}; - - EventTarget.call(host, {emitFacade:true}); - - // _conf maintained for backwards compat - host._conf = host._state = new Y.State(); - - host._stateProxy = host._stateProxy || null; - host._requireAddAttr = host._requireAddAttr || false; - - this._initAttrs(attrs, values, lazy); - } - - /** - *

                                The value to return from an attribute setter in order to prevent the set from going through.

                                - * - *

                                You can return this value from your setter if you wish to combine validator and setter - * functionality into a single setter function, which either returns the massaged value to be stored or - * Attribute.INVALID_VALUE to prevent invalid values from being stored.

                                - * - * @property Attribute.INVALID_VALUE - * @type Object - * @static - * @final - */ - Attribute.INVALID_VALUE = {}; - INVALID_VALUE = Attribute.INVALID_VALUE; - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce etc.). - * - * This property is used internally as a whitelist for faster - * Y.mix operations. - * - * @property Attribute._ATTR_CFG - * @type Array - * @static - * @protected - */ - Attribute._ATTR_CFG = [SETTER, GETTER, VALIDATOR, VALUE, VALUE_FN, WRITE_ONCE, READ_ONLY, LAZY_ADD, BROADCAST, BYPASS_PROXY]; - - Attribute.prototype = { - /** - *

                                - * Adds an attribute with the provided configuration to the host object. - *

                                - *

                                - * The config argument object supports the following properties: - *

                                - * - *
                                - *
                                value <Any>
                                - *
                                The initial value to set on the attribute
                                - * - *
                                valueFn <Function | String>
                                - *
                                - *

                                A function, which will return the initial value to set on the attribute. This is useful - * for cases where the attribute configuration is defined statically, but needs to - * reference the host instance ("this") to obtain an initial value. If both the value and valueFn properties are defined, - * the value returned by the valueFn has precedence over the value property, unless it returns undefined, in which - * case the value property is used.

                                - * - *

                                valueFn can also be set to a string, representing the name of the instance method to be used to retrieve the value.

                                - *
                                - * - *
                                readOnly <boolean>
                                - *
                                Whether or not the attribute is read only. Attributes having readOnly set to true - * cannot be modified by invoking the set method.
                                - * - *
                                writeOnce <boolean> or <string>
                                - *
                                - * Whether or not the attribute is "write once". Attributes having writeOnce set to true, - * can only have their values set once, be it through the default configuration, - * constructor configuration arguments, or by invoking set. - *

                                The writeOnce attribute can also be set to the string "initOnly", in which case the attribute can only be set during initialization - * (when used with Base, this means it can only be set during construction)

                                - *
                                - * - *
                                setter <Function | String>
                                - *
                                - *

                                The setter function used to massage or normalize the value passed to the set method for the attribute. - * The value returned by the setter will be the final stored value. Returning - * Attribute.INVALID_VALUE, from the setter will prevent - * the value from being stored. - *

                                - * - *

                                setter can also be set to a string, representing the name of the instance method to be used as the setter function.

                                - *
                                - * - *
                                getter <Function | String>
                                - *
                                - *

                                - * The getter function used to massage or normalize the value returned by the get method for the attribute. - * The value returned by the getter function is the value which will be returned to the user when they - * invoke get. - *

                                - * - *

                                getter can also be set to a string, representing the name of the instance method to be used as the getter function.

                                - *
                                - * - *
                                validator <Function | String>
                                - *
                                - *

                                - * The validator function invoked prior to setting the stored value. Returning - * false from the validator function will prevent the value from being stored. - *

                                - * - *

                                validator can also be set to a string, representing the name of the instance method to be used as the validator function.

                                - *
                                - * - *
                                broadcast <int>
                                - *
                                If and how attribute change events for this attribute should be broadcast. See CustomEvent's broadcast property for - * valid values. By default attribute change events are not broadcast.
                                - * - *
                                lazyAdd <boolean>
                                - *
                                Whether or not to delay initialization of the attribute until the first call to get/set it. - * This flag can be used to over-ride lazy initialization on a per attribute basis, when adding multiple attributes through - * the addAttrs method.
                                - * - *
                                - * - *

                                The setter, getter and validator are invoked with the value and name passed in as the first and second arguments, and with - * the context ("this") set to the host object.

                                - * - *

                                Configuration properties outside of the list mentioned above are considered private properties used internally by attribute, and are not intended for public use.

                                - * - * @method addAttr - * - * @param {String} name The name of the attribute. - * @param {Object} config An object with attribute configuration property/value pairs, specifying the configuration for the attribute. - * - *

                                - * NOTE: The configuration object is modified when adding an attribute, so if you need - * to protect the original values, you will need to merge the object. - *

                                - * - * @param {boolean} lazy (optional) Whether or not to add this attribute lazily (on the first call to get/set). - * - * @return {Object} A reference to the host object. - * - * @chainable - */ - addAttr: function(name, config, lazy) { - - Y.log('Adding attribute: ' + name, 'info', 'attribute'); - - var host = this, // help compression - state = host._state, - value, - hasValue; - - lazy = (LAZY_ADD in config) ? config[LAZY_ADD] : lazy; - - if (lazy && !host.attrAdded(name)) { - state.add(name, LAZY, config || {}); - state.add(name, ADDED, true); - } else { - - if (host.attrAdded(name) && !state.get(name, IS_LAZY_ADD)) { Y.log('Attribute: ' + name + ' already exists. Cannot add it again without removing it first', 'warn', 'attribute'); } - - if (!host.attrAdded(name) || state.get(name, IS_LAZY_ADD)) { - - config = config || {}; - - hasValue = (VALUE in config); - - if (config.readOnly && !hasValue) { Y.log('readOnly attribute: ' + name + ', added without an initial value. Value will be set on initial call to set', 'warn', 'attribute');} - - if(hasValue) { - // We'll go through set, don't want to set value in config directly - value = config.value; - delete config.value; - } - - config.added = true; - config.initializing = true; - - state.addAll(name, config); - - if (hasValue) { - // Go through set, so that raw values get normalized/validated - host.set(name, value); - } - - state.remove(name, INITIALIZING); - } - } - - return host; - }, - - /** - * Checks if the given attribute has been added to the host - * - * @method attrAdded - * @param {String} name The name of the attribute to check. - * @return {boolean} true if an attribute with the given name has been added, false if it hasn't. This method will return true for lazily added attributes. - */ - attrAdded: function(name) { - return !!this._state.get(name, ADDED); - }, - - /** - * Updates the configuration of an attribute which has already been added. - *

                                - * The properties which can be modified through this interface are limited - * to the following subset of attributes, which can be safely modified - * after a value has already been set on the attribute: readOnly, writeOnce, - * broadcast and getter. - *

                                - * @method modifyAttr - * @param {String} name The name of the attribute whose configuration is to be updated. - * @param {Object} config An object with configuration property/value pairs, specifying the configuration properties to modify. - */ - modifyAttr: function(name, config) { - var host = this, // help compression - prop, state; - - if (host.attrAdded(name)) { - - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - state = host._state; - for (prop in config) { - if (MODIFIABLE[prop] && config.hasOwnProperty(prop)) { - state.add(name, prop, config[prop]); - - // If we reconfigured broadcast, need to republish - if (prop === BROADCAST) { - state.remove(name, PUBLISHED); - } - } - } - } - - if (!host.attrAdded(name)) {Y.log('Attribute modifyAttr:' + name + ' has not been added. Use addAttr to add the attribute', 'warn', 'attribute');} - }, - - /** - * Removes an attribute from the host object - * - * @method removeAttr - * @param {String} name The name of the attribute to be removed. - */ - removeAttr: function(name) { - this._state.removeAll(name); - }, - - /** - * Returns the current value of the attribute. If the attribute - * has been configured with a 'getter' function, this method will delegate - * to the 'getter' to obtain the value of the attribute. - * - * @method get - * - * @param {String} name The name of the attribute. If the value of the attribute is an Object, - * dot notation can be used to obtain the value of a property of the object (e.g. get("x.y.z")) - * - * @return {Any} The value of the attribute - */ - get : function(name) { - return this._getAttr(name); - }, - - /** - * Checks whether or not the attribute is one which has been - * added lazily and still requires initialization. - * - * @method _isLazyAttr - * @private - * @param {String} name The name of the attribute - * @return {boolean} true if it's a lazily added attribute, false otherwise. - */ - _isLazyAttr: function(name) { - return this._state.get(name, LAZY); - }, - - /** - * Finishes initializing an attribute which has been lazily added. - * - * @method _addLazyAttr - * @private - * @param {Object} name The name of the attribute - */ - _addLazyAttr: function(name) { - var state = this._state, - lazyCfg = state.get(name, LAZY); - - state.add(name, IS_LAZY_ADD, true); - state.remove(name, LAZY); - this.addAttr(name, lazyCfg); - }, - - /** - * Sets the value of an attribute. - * - * @method set - * @chainable - * - * @param {String} name The name of the attribute. If the - * current value of the attribute is an Object, dot notation can be used - * to set the value of a property within the object (e.g. set("x.y.z", 5)). - * - * @param {Any} value The value to set the attribute to. - * - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. This - * can be used as a flexible way to identify the source of a call to set, allowing - * the developer to distinguish between set called internally by the host, vs. - * set called externally by the application developer. - * - * @return {Object} A reference to the host object. - */ - set : function(name, val, opts) { - return this._setAttr(name, val, opts); - }, - - /** - * Resets the attribute (or all attributes) to its initial value, as long as - * the attribute is not readOnly, or writeOnce. - * - * @method reset - * @param {String} name Optional. The name of the attribute to reset. If omitted, all attributes are reset. - * @return {Object} A reference to the host object. - * @chainable - */ - reset : function(name) { - var host = this, // help compression - added; - - if (name) { - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - host.set(name, host._state.get(name, INIT_VALUE)); - } else { - added = host._state.data.added; - Y.each(added, function(v, n) { - host.reset(n); - }, host); - } - return host; - }, - - /** - * Allows setting of readOnly/writeOnce attributes. See set for argument details. - * - * @method _set - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} val The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @return {Object} A reference to the host object. - */ - _set : function(name, val, opts) { - return this._setAttr(name, val, opts, true); - }, - - /** - * Provides the common implementation for the public get method, - * allowing Attribute hosts to over-ride either method. - * - * See get for argument details. - * - * @method _getAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @return {Any} The value of the attribute. - */ - _getAttr : function(name) { - var host = this, // help compression - fullName = name, - state = host._state, - path, - getter, - val, - cfg; - - if (name.indexOf(DOT) !== -1) { - path = name.split(DOT); - name = path.shift(); - } - - // On Demand - Should be rare - handles out of order valueFn references - if (host._tCfgs && host._tCfgs[name]) { - cfg = {}; - cfg[name] = host._tCfgs[name]; - delete host._tCfgs[name]; - host._addAttrs(cfg, host._tVals); - } - - // Lazy Init - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - val = host._getStateVal(name); - getter = state.get(name, GETTER); - - if (getter && !getter.call) { - getter = this[getter]; - } - - val = (getter) ? getter.call(host, val, fullName) : val; - val = (path) ? O.getValue(val, path) : val; - - return val; - }, - - /** - * Provides the common implementation for the public set and protected _set methods. - * - * See set for argument details. - * - * @method _setAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} value The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @param {boolean} force If true, allows the caller to set values for - * readOnly or writeOnce attributes which have already been set. - * - * @return {Object} A reference to the host object. - */ - _setAttr : function(name, val, opts, force) { - var allowSet = true, - state = this._state, - stateProxy = this._stateProxy, - data = state.data, - initialSet, - strPath, - path, - currVal, - writeOnce, - initializing; - - if (name.indexOf(DOT) !== -1) { - strPath = name; - path = name.split(DOT); - name = path.shift(); - } - - if (this._isLazyAttr(name)) { - this._addLazyAttr(name); - } - - initialSet = (!data.value || !(name in data.value)); - - if (stateProxy && name in stateProxy && !this._state.get(name, BYPASS_PROXY)) { - // TODO: Value is always set for proxy. Can we do any better? Maybe take a snapshot as the initial value for the first call to set? - initialSet = false; - } - - if (this._requireAddAttr && !this.attrAdded(name)) { - Y.log('Set attribute:' + name + ', aborted; Attribute is not configured', 'warn', 'attribute'); - } else { - - writeOnce = state.get(name, WRITE_ONCE); - initializing = state.get(name, INITIALIZING); - - if (!initialSet && !force) { - - if (writeOnce) { - Y.log('Set attribute:' + name + ', aborted; Attribute is writeOnce', 'warn', 'attribute'); - allowSet = false; - } - - if (state.get(name, READ_ONLY)) { - Y.log('Set attribute:' + name + ', aborted; Attribute is readOnly', 'warn', 'attribute'); - allowSet = false; - } - } - - if (!initializing && !force && writeOnce === INIT_ONLY) { - Y.log('Set attribute:' + name + ', aborted; Attribute is writeOnce: "initOnly"', 'warn', 'attribute'); - allowSet = false; - } - - if (allowSet) { - // Don't need currVal if initialSet (might fail in custom getter if it always expects a non-undefined/non-null value) - if (!initialSet) { - currVal = this.get(name); - } - - if (path) { - val = O.setValue(Y.clone(currVal), path, val); - - if (val === undefined) { - Y.log('Set attribute path:' + strPath + ', aborted; Path is invalid', 'warn', 'attribute'); - allowSet = false; - } - } - - if (allowSet) { - if (initializing) { - this._setAttrVal(name, strPath, currVal, val); - } else { - this._fireAttrChange(name, strPath, currVal, val, opts); - } - } - } - } - - return this; - }, - - /** - * Utility method to help setup the event payload and fire the attribute change event. - * - * @method _fireAttrChange - * @private - * @param {String} attrName The name of the attribute - * @param {String} subAttrName The full path of the property being changed, - * if this is a sub-attribute value being change. Otherwise null. - * @param {Any} currVal The current value of the attribute - * @param {Any} newVal The new value of the attribute - * @param {Object} opts Any additional event data to mix into the attribute change event's event facade. - */ - _fireAttrChange : function(attrName, subAttrName, currVal, newVal, opts) { - var host = this, - eventName = attrName + CHANGE, - state = host._state, - facade; - - if (!state.get(attrName, PUBLISHED)) { - host.publish(eventName, { - queuable:false, - defaultTargetOnly: true, - defaultFn:host._defAttrChangeFn, - silent:true, - broadcast : state.get(attrName, BROADCAST) - }); - state.add(attrName, PUBLISHED, true); - } - - facade = (opts) ? Y.merge(opts) : host._ATTR_E_FACADE; - - // Not using the single object signature for fire({type:..., newVal:...}), since - // we don't want to override type. Changed to the fire(type, {newVal:...}) signature. - - // facade.type = eventName; - facade.attrName = attrName; - facade.subAttrName = subAttrName; - facade.prevVal = currVal; - facade.newVal = newVal; - - // host.fire(facade); - host.fire(eventName, facade); - }, - - /** - * Default function for attribute change events. - * - * @private - * @method _defAttrChangeFn - * @param {EventFacade} e The event object for attribute change events. - */ - _defAttrChangeFn : function(e) { - if (!this._setAttrVal(e.attrName, e.subAttrName, e.prevVal, e.newVal)) { - Y.log('State not updated and stopImmediatePropagation called for attribute: ' + e.attrName + ' , value:' + e.newVal, 'warn', 'attribute'); - // Prevent "after" listeners from being invoked since nothing changed. - e.stopImmediatePropagation(); - } else { - e.newVal = this.get(e.attrName); - } - }, - - /** - * Gets the stored value for the attribute, from either the - * internal state object, or the state proxy if it exits - * - * @method _getStateVal - * @private - * @param {String} name The name of the attribute - * @return {Any} The stored value of the attribute - */ - _getStateVal : function(name) { - var stateProxy = this._stateProxy; - return stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY) ? stateProxy[name] : this._state.get(name, VALUE); - }, - - /** - * Sets the stored value for the attribute, in either the - * internal state object, or the state proxy if it exits - * - * @method _setStateVal - * @private - * @param {String} name The name of the attribute - * @param {Any} value The value of the attribute - */ - _setStateVal : function(name, value) { - var stateProxy = this._stateProxy; - if (stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY)) { - stateProxy[name] = value; - } else { - this._state.add(name, VALUE, value); - } - }, - - /** - * Updates the stored value of the attribute in the privately held State object, - * if validation and setter passes. - * - * @method _setAttrVal - * @private - * @param {String} attrName The attribute name. - * @param {String} subAttrName The sub-attribute name, if setting a sub-attribute property ("x.y.z"). - * @param {Any} prevVal The currently stored value of the attribute. - * @param {Any} newVal The value which is going to be stored. - * - * @return {booolean} true if the new attribute value was stored, false if not. - */ - _setAttrVal : function(attrName, subAttrName, prevVal, newVal) { - - var host = this, - allowSet = true, - state = host._state, - - validator = state.get(attrName, VALIDATOR), - setter = state.get(attrName, SETTER), - initializing = state.get(attrName, INITIALIZING), - prevValRaw = this._getStateVal(attrName), - - name = subAttrName || attrName, - retVal, - valid; - - if (validator) { - if (!validator.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - validator = this[validator]; - } - if (validator) { - valid = validator.call(host, newVal, name); - - if (!valid && initializing) { - newVal = state.get(attrName, DEF_VALUE); - valid = true; // Assume it's valid, for perf. - } - } - } - - if (!validator || valid) { - if (setter) { - if (!setter.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - setter = this[setter]; - } - if (setter) { - retVal = setter.call(host, newVal, name); - - if (retVal === INVALID_VALUE) { - Y.log('Attribute: ' + attrName + ', setter returned Attribute.INVALID_VALUE for value:' + newVal, 'warn', 'attribute'); - allowSet = false; - } else if (retVal !== undefined){ - Y.log('Attribute: ' + attrName + ', raw value: ' + newVal + ' modified by setter to:' + retVal, 'info', 'attribute'); - newVal = retVal; - } - } - } - - if (allowSet) { - if(!subAttrName && (newVal === prevValRaw) && !Lang.isObject(newVal)) { - Y.log('Attribute: ' + attrName + ', value unchanged:' + newVal, 'warn', 'attribute'); - allowSet = false; - } else { - // Store value - if (state.get(attrName, INIT_VALUE) === undefined) { - state.add(attrName, INIT_VALUE, newVal); - } - host._setStateVal(attrName, newVal); - } - } - - } else { - Y.log('Attribute:' + attrName + ', Validation failed for value:' + newVal, 'warn', 'attribute'); - allowSet = false; - } - - return allowSet; - }, - - /** - * Sets multiple attribute values. - * - * @method setAttrs - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - setAttrs : function(attrs, opts) { - return this._setAttrs(attrs, opts); - }, - - /** - * Implementation behind the public setAttrs method, to set multiple attribute values. - * - * @method _setAttrs - * @protected - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - _setAttrs : function(attrs, opts) { - for (var attr in attrs) { - if ( attrs.hasOwnProperty(attr) ) { - this.set(attr, attrs[attr]); - } - } - return this; - }, - - /** - * Gets multiple attribute values. - * - * @method getAttrs - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - getAttrs : function(attrs) { - return this._getAttrs(attrs); - }, - - /** - * Implementation behind the public getAttrs method, to get multiple attribute values. - * - * @method _getAttrs - * @protected - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - _getAttrs : function(attrs) { - var host = this, - o = {}, - i, l, attr, val, - modifiedOnly = (attrs === true); - - attrs = (attrs && !modifiedOnly) ? attrs : O.keys(host._state.data.added); - - for (i = 0, l = attrs.length; i < l; i++) { - // Go through get, to honor cloning/normalization - attr = attrs[i]; - val = host.get(attr); - - if (!modifiedOnly || host._getStateVal(attr) != host._state.get(attr, INIT_VALUE)) { - o[attr] = host.get(attr); - } - } - - return o; - }, - - /** - * Configures a group of attributes, and sets initial values. - * - *

                                - * NOTE: This method does not isolate the configuration object by merging/cloning. - * The caller is responsible for merging/cloning the configuration object if required. - *

                                - * - * @method addAttrs - * @chainable - * - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - * - * @return {Object} A reference to the host object. - */ - addAttrs : function(cfgs, values, lazy) { - var host = this; // help compression - if (cfgs) { - host._tCfgs = cfgs; - host._tVals = host._normAttrVals(values); - host._addAttrs(cfgs, host._tVals, lazy); - host._tCfgs = host._tVals = null; - } - - return host; - }, - - /** - * Implementation behind the public addAttrs method. - * - * This method is invoked directly by get if it encounters a scenario - * in which an attribute's valueFn attempts to obtain the - * value an attribute in the same group of attributes, which has not yet - * been added (on demand initialization). - * - * @method _addAttrs - * @private - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - */ - _addAttrs : function(cfgs, values, lazy) { - var host = this, // help compression - attr, - attrCfg, - value; - - for (attr in cfgs) { - if (cfgs.hasOwnProperty(attr)) { - - // Not Merging. Caller is responsible for isolating configs - attrCfg = cfgs[attr]; - attrCfg.defaultValue = attrCfg.value; - - // Handle simple, complex and user values, accounting for read-only - value = host._getAttrInitVal(attr, attrCfg, host._tVals); - - if (value !== undefined) { - attrCfg.value = value; - } - - if (host._tCfgs[attr]) { - delete host._tCfgs[attr]; - } - - host.addAttr(attr, attrCfg, lazy); - } - } - }, - - /** - * Utility method to protect an attribute configuration - * hash, by merging the entire object and the individual - * attr config objects. - * - * @method _protectAttrs - * @protected - * @param {Object} attrs A hash of attribute to configuration object pairs. - * @return {Object} A protected version of the attrs argument. - */ - _protectAttrs : function(attrs) { - if (attrs) { - attrs = Y.merge(attrs); - for (var attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - attrs[attr] = Y.merge(attrs[attr]); - } - } - } - return attrs; - }, - - /** - * Utility method to normalize attribute values. The base implementation - * simply merges the hash to protect the original. - * - * @method _normAttrVals - * @param {Object} valueHash An object with attribute name/value pairs - * - * @return {Object} - * - * @private - */ - _normAttrVals : function(valueHash) { - return (valueHash) ? Y.merge(valueHash) : null; - }, - - /** - * Returns the initial value of the given attribute from - * either the default configuration provided, or the - * over-ridden value if it exists in the set of initValues - * provided and the attribute is not read-only. - * - * @param {String} attr The name of the attribute - * @param {Object} cfg The attribute configuration object - * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals - * - * @return {Any} The initial value of the attribute. - * - * @method _getAttrInitVal - * @private - */ - _getAttrInitVal : function(attr, cfg, initValues) { - var val, valFn; - // init value is provided by the user if it exists, else, provided by the config - if (!cfg[READ_ONLY] && initValues && initValues.hasOwnProperty(attr)) { - val = initValues[attr]; - } else { - val = cfg[VALUE]; - valFn = cfg[VALUE_FN]; - - if (valFn) { - if (!valFn.call) { - valFn = this[valFn]; - } - if (valFn) { - val = valFn.call(this); - } - } - } - - Y.log('initValue for ' + attr + ':' + val, 'info', 'attribute'); - - return val; - }, - - /** - * Returns an object with the configuration properties (and value) - * for the given attrubute. If attrName is not provided, returns the - * configuration properties for all attributes. - * - * @method _getAttrCfg - * @protected - * @param {String} name Optional. The attribute name. If not provided, the method will return the configuration for all attributes. - * @return {Object} The configuration properties for the given attribute, or all attributes. - */ - _getAttrCfg : function(name) { - var o, - data = this._state.data; - - if (data) { - o = {}; - - Y.each(data, function(cfg, cfgProp) { - if (name) { - if(name in cfg) { - o[cfgProp] = cfg[name]; - } - } else { - Y.each(cfg, function(attrCfg, attr) { - o[attr] = o[attr] || {}; - o[attr][cfgProp] = attrCfg; - }); - } - }); - } - - return o; - }, - - /** - * Utility method to set up initial attributes defined during construction, either through the constructor.ATTRS property, or explicitly passed in. - * - * @method _initAttrs - * @protected - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - */ - _initAttrs : function(attrs, values, lazy) { - // ATTRS support for Node, which is not Base based - attrs = attrs || this.constructor.ATTRS; - - var Base = Y.Base; - if ( attrs && !(Base && Y.instanceOf(this, Base))) { - this.addAttrs(this._protectAttrs(attrs), values, lazy); - } - } - }; - - // Basic prototype augment - no lazy constructor invocation. - Y.mix(Attribute, EventTarget, false, null, 1); - - Y.Attribute = Attribute; - - -}, '3.4.0' ,{requires:['event-custom']}); diff --git a/build/attribute/attribute-base-min.js b/build/attribute/attribute-base-min.js deleted file mode 100644 index d0d4400cbbb..00000000000 --- a/build/attribute/attribute-base-min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("attribute-base",function(c){c.State=function(){this.data={};};c.State.prototype={add:function(B,C,E){var D=this.data;D[C]=D[C]||{};D[C][B]=E;},addAll:function(B,D){var C;for(C in D){if(D.hasOwnProperty(C)){this.add(B,C,D[C]);}}},remove:function(B,C){var D=this.data;if(D[C]&&(B in D[C])){delete D[C][B];}},removeAll:function(B,D){var C=this.data;c.each(D||C,function(F,E){if(c.Lang.isString(E)){this.remove(B,E);}else{this.remove(B,F);}},this);},get:function(B,C){var D=this.data;return(D[C]&&B in D[C])?D[C][B]:undefined;},getAll:function(B){var D=this.data,C;c.each(D,function(F,E){if(B in D[E]){C=C||{};C[E]=F[B];}},this);return C;}};var k=c.Object,f=c.Lang,l=c.EventTarget,w=".",t="Change",n="getter",m="setter",o="readOnly",x="writeOnce",u="initOnly",A="validator",h="value",p="valueFn",e="broadcast",r="lazyAdd",j="_bypassProxy",z="added",b="initializing",i="initValue",v="published",s="defaultValue",a="lazy",q="isLazyAdd",g,y={};y[o]=1;y[x]=1;y[n]=1;y[e]=1;function d(C,B,D){var E=this;E._ATTR_E_FACADE={};l.call(E,{emitFacade:true});E._conf=E._state=new c.State();E._stateProxy=E._stateProxy||null;E._requireAddAttr=E._requireAddAttr||false;this._initAttrs(C,B,D);}d.INVALID_VALUE={};g=d.INVALID_VALUE;d._ATTR_CFG=[m,n,A,h,p,x,o,r,e,j];d.prototype={addAttr:function(C,B,E){var F=this,H=F._state,G,D;E=(r in B)?B[r]:E;if(E&&!F.attrAdded(C)){H.add(C,a,B||{});H.add(C,z,true);}else{if(!F.attrAdded(C)||H.get(C,q)){B=B||{};D=(h in B);if(D){G=B.value;delete B.value;}B.added=true;B.initializing=true;H.addAll(C,B);if(D){F.set(C,G);}H.remove(C,b);}}return F;},attrAdded:function(B){return !!this._state.get(B,z);},modifyAttr:function(C,B){var D=this,F,E;if(D.attrAdded(C)){if(D._isLazyAttr(C)){D._addLazyAttr(C);}E=D._state;for(F in B){if(y[F]&&B.hasOwnProperty(F)){E.add(C,F,B[F]);if(F===e){E.remove(C,v);}}}}},removeAttr:function(B){this._state.removeAll(B);},get:function(B){return this._getAttr(B);},_isLazyAttr:function(B){return this._state.get(B,a);},_addLazyAttr:function(C){var D=this._state,B=D.get(C,a);D.add(C,q,true);D.remove(C,a);this.addAttr(C,B);},set:function(B,D,C){return this._setAttr(B,D,C);},reset:function(B){var D=this,C;if(B){if(D._isLazyAttr(B)){D._addLazyAttr(B);}D.set(B,D._state.get(B,i));}else{C=D._state.data.added;c.each(C,function(E,F){D.reset(F);},D);}return D;},_set:function(B,D,C){return this._setAttr(B,D,C,true);},_getAttr:function(D){var E=this,I=D,F=E._state,G,B,H,C;if(D.indexOf(w)!==-1){G=D.split(w);D=G.shift();}if(E._tCfgs&&E._tCfgs[D]){C={};C[D]=E._tCfgs[D];delete E._tCfgs[D];E._addAttrs(C,E._tVals);}if(E._isLazyAttr(D)){E._addLazyAttr(D);}H=E._getStateVal(D);B=F.get(D,n);if(B&&!B.call){B=this[B];}H=(B)?B.call(E,H,I):H;H=(G)?k.getValue(H,G):H;return H;},_setAttr:function(D,G,B,E){var K=true,C=this._state,H=this._stateProxy,M=C.data,J,N,O,F,I,L;if(D.indexOf(w)!==-1){N=D;O=D.split(w);D=O.shift();}if(this._isLazyAttr(D)){this._addLazyAttr(D);}J=(!M.value||!(D in M.value));if(H&&D in H&&!this._state.get(D,j)){J=false;}if(this._requireAddAttr&&!this.attrAdded(D)){}else{I=C.get(D,x);L=C.get(D,b);if(!J&&!E){if(I){K=false;}if(C.get(D,o)){K=false;}}if(!L&&!E&&I===u){K=false;}if(K){if(!J){F=this.get(D);}if(O){G=k.setValue(c.clone(F),O,G);if(G===undefined){K=false;}}if(K){if(L){this._setAttrVal(D,N,F,G);}else{this._fireAttrChange(D,N,F,G,B);}}}}return this;},_fireAttrChange:function(H,G,E,D,B){var J=this,F=H+t,C=J._state,I;if(!C.get(H,v)){J.publish(F,{queuable:false,defaultTargetOnly:true,defaultFn:J._defAttrChangeFn,silent:true,broadcast:C.get(H,e)});C.add(H,v,true);}I=(B)?c.merge(B):J._ATTR_E_FACADE;I.attrName=H;I.subAttrName=G;I.prevVal=E;I.newVal=D;J.fire(F,I);},_defAttrChangeFn:function(B){if(!this._setAttrVal(B.attrName,B.subAttrName,B.prevVal,B.newVal)){B.stopImmediatePropagation();}else{B.newVal=this.get(B.attrName);}},_getStateVal:function(B){var C=this._stateProxy;return C&&(B in C)&&!this._state.get(B,j)?C[B]:this._state.get(B,h);},_setStateVal:function(B,D){var C=this._stateProxy;if(C&&(B in C)&&!this._state.get(B,j)){C[B]=D;}else{this._state.add(B,h,D);}},_setAttrVal:function(M,L,I,G){var O=this,J=true,D=O._state,E=D.get(M,A),H=D.get(M,m),K=D.get(M,b),N=this._getStateVal(M),C=L||M,F,B;if(E){if(!E.call){E=this[E];}if(E){B=E.call(O,G,C);if(!B&&K){G=D.get(M,s);B=true;}}}if(!E||B){if(H){if(!H.call){H=this[H];}if(H){F=H.call(O,G,C);if(F===g){J=false;}else{if(F!==undefined){G=F;}}}}if(J){if(!L&&(G===N)&&!f.isObject(G)){J=false;}else{if(D.get(M,i)===undefined){D.add(M,i,G);}O._setStateVal(M,G);}}}else{J=false;}return J;},setAttrs:function(B,C){return this._setAttrs(B,C);},_setAttrs:function(C,D){for(var B in C){if(C.hasOwnProperty(B)){this.set(B,C[B]);}}return this;},getAttrs:function(B){return this._getAttrs(B);},_getAttrs:function(E){var G=this,I={},F,C,B,H,D=(E===true);E=(E&&!D)?E:k.keys(G._state.data.added);for(F=0,C=E.length;F - * Attribute provides configurable attribute support along with attribute change events. It is designed to be - * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state, - * along with attribute change events. - *

                                - *

                                For example, attributes added to the host can be configured:

                                - *
                                  - *
                                • As read only.
                                • - *
                                • As write once.
                                • - *
                                • With a setter function, which can be used to manipulate - * values passed to Attribute's set method, before they are stored.
                                • - *
                                • With a getter function, which can be used to manipulate stored values, - * before they are returned by Attribute's get method.
                                • - *
                                • With a validator function, to validate values before they are stored.
                                • - *
                                - * - *

                                See the addAttr method, for the complete set of configuration - * options available for attributes

                                . - * - *

                                NOTE: Most implementations will be better off extending the Base class, - * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration - * of attributes for derived classes, accounting for values passed into the constructor.

                                - * - * @class Attribute - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - * @uses EventTarget - */ - function Attribute(attrs, values, lazy) { - - var host = this; // help compression - - // Perf tweak - avoid creating event literals if not required. - host._ATTR_E_FACADE = {}; - - EventTarget.call(host, {emitFacade:true}); - - // _conf maintained for backwards compat - host._conf = host._state = new Y.State(); - - host._stateProxy = host._stateProxy || null; - host._requireAddAttr = host._requireAddAttr || false; - - this._initAttrs(attrs, values, lazy); - } - - /** - *

                                The value to return from an attribute setter in order to prevent the set from going through.

                                - * - *

                                You can return this value from your setter if you wish to combine validator and setter - * functionality into a single setter function, which either returns the massaged value to be stored or - * Attribute.INVALID_VALUE to prevent invalid values from being stored.

                                - * - * @property Attribute.INVALID_VALUE - * @type Object - * @static - * @final - */ - Attribute.INVALID_VALUE = {}; - INVALID_VALUE = Attribute.INVALID_VALUE; - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce etc.). - * - * This property is used internally as a whitelist for faster - * Y.mix operations. - * - * @property Attribute._ATTR_CFG - * @type Array - * @static - * @protected - */ - Attribute._ATTR_CFG = [SETTER, GETTER, VALIDATOR, VALUE, VALUE_FN, WRITE_ONCE, READ_ONLY, LAZY_ADD, BROADCAST, BYPASS_PROXY]; - - Attribute.prototype = { - /** - *

                                - * Adds an attribute with the provided configuration to the host object. - *

                                - *

                                - * The config argument object supports the following properties: - *

                                - * - *
                                - *
                                value <Any>
                                - *
                                The initial value to set on the attribute
                                - * - *
                                valueFn <Function | String>
                                - *
                                - *

                                A function, which will return the initial value to set on the attribute. This is useful - * for cases where the attribute configuration is defined statically, but needs to - * reference the host instance ("this") to obtain an initial value. If both the value and valueFn properties are defined, - * the value returned by the valueFn has precedence over the value property, unless it returns undefined, in which - * case the value property is used.

                                - * - *

                                valueFn can also be set to a string, representing the name of the instance method to be used to retrieve the value.

                                - *
                                - * - *
                                readOnly <boolean>
                                - *
                                Whether or not the attribute is read only. Attributes having readOnly set to true - * cannot be modified by invoking the set method.
                                - * - *
                                writeOnce <boolean> or <string>
                                - *
                                - * Whether or not the attribute is "write once". Attributes having writeOnce set to true, - * can only have their values set once, be it through the default configuration, - * constructor configuration arguments, or by invoking set. - *

                                The writeOnce attribute can also be set to the string "initOnly", in which case the attribute can only be set during initialization - * (when used with Base, this means it can only be set during construction)

                                - *
                                - * - *
                                setter <Function | String>
                                - *
                                - *

                                The setter function used to massage or normalize the value passed to the set method for the attribute. - * The value returned by the setter will be the final stored value. Returning - * Attribute.INVALID_VALUE, from the setter will prevent - * the value from being stored. - *

                                - * - *

                                setter can also be set to a string, representing the name of the instance method to be used as the setter function.

                                - *
                                - * - *
                                getter <Function | String>
                                - *
                                - *

                                - * The getter function used to massage or normalize the value returned by the get method for the attribute. - * The value returned by the getter function is the value which will be returned to the user when they - * invoke get. - *

                                - * - *

                                getter can also be set to a string, representing the name of the instance method to be used as the getter function.

                                - *
                                - * - *
                                validator <Function | String>
                                - *
                                - *

                                - * The validator function invoked prior to setting the stored value. Returning - * false from the validator function will prevent the value from being stored. - *

                                - * - *

                                validator can also be set to a string, representing the name of the instance method to be used as the validator function.

                                - *
                                - * - *
                                broadcast <int>
                                - *
                                If and how attribute change events for this attribute should be broadcast. See CustomEvent's broadcast property for - * valid values. By default attribute change events are not broadcast.
                                - * - *
                                lazyAdd <boolean>
                                - *
                                Whether or not to delay initialization of the attribute until the first call to get/set it. - * This flag can be used to over-ride lazy initialization on a per attribute basis, when adding multiple attributes through - * the addAttrs method.
                                - * - *
                                - * - *

                                The setter, getter and validator are invoked with the value and name passed in as the first and second arguments, and with - * the context ("this") set to the host object.

                                - * - *

                                Configuration properties outside of the list mentioned above are considered private properties used internally by attribute, and are not intended for public use.

                                - * - * @method addAttr - * - * @param {String} name The name of the attribute. - * @param {Object} config An object with attribute configuration property/value pairs, specifying the configuration for the attribute. - * - *

                                - * NOTE: The configuration object is modified when adding an attribute, so if you need - * to protect the original values, you will need to merge the object. - *

                                - * - * @param {boolean} lazy (optional) Whether or not to add this attribute lazily (on the first call to get/set). - * - * @return {Object} A reference to the host object. - * - * @chainable - */ - addAttr: function(name, config, lazy) { - - - var host = this, // help compression - state = host._state, - value, - hasValue; - - lazy = (LAZY_ADD in config) ? config[LAZY_ADD] : lazy; - - if (lazy && !host.attrAdded(name)) { - state.add(name, LAZY, config || {}); - state.add(name, ADDED, true); - } else { - - - if (!host.attrAdded(name) || state.get(name, IS_LAZY_ADD)) { - - config = config || {}; - - hasValue = (VALUE in config); - - - if(hasValue) { - // We'll go through set, don't want to set value in config directly - value = config.value; - delete config.value; - } - - config.added = true; - config.initializing = true; - - state.addAll(name, config); - - if (hasValue) { - // Go through set, so that raw values get normalized/validated - host.set(name, value); - } - - state.remove(name, INITIALIZING); - } - } - - return host; - }, - - /** - * Checks if the given attribute has been added to the host - * - * @method attrAdded - * @param {String} name The name of the attribute to check. - * @return {boolean} true if an attribute with the given name has been added, false if it hasn't. This method will return true for lazily added attributes. - */ - attrAdded: function(name) { - return !!this._state.get(name, ADDED); - }, - - /** - * Updates the configuration of an attribute which has already been added. - *

                                - * The properties which can be modified through this interface are limited - * to the following subset of attributes, which can be safely modified - * after a value has already been set on the attribute: readOnly, writeOnce, - * broadcast and getter. - *

                                - * @method modifyAttr - * @param {String} name The name of the attribute whose configuration is to be updated. - * @param {Object} config An object with configuration property/value pairs, specifying the configuration properties to modify. - */ - modifyAttr: function(name, config) { - var host = this, // help compression - prop, state; - - if (host.attrAdded(name)) { - - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - state = host._state; - for (prop in config) { - if (MODIFIABLE[prop] && config.hasOwnProperty(prop)) { - state.add(name, prop, config[prop]); - - // If we reconfigured broadcast, need to republish - if (prop === BROADCAST) { - state.remove(name, PUBLISHED); - } - } - } - } - - }, - - /** - * Removes an attribute from the host object - * - * @method removeAttr - * @param {String} name The name of the attribute to be removed. - */ - removeAttr: function(name) { - this._state.removeAll(name); - }, - - /** - * Returns the current value of the attribute. If the attribute - * has been configured with a 'getter' function, this method will delegate - * to the 'getter' to obtain the value of the attribute. - * - * @method get - * - * @param {String} name The name of the attribute. If the value of the attribute is an Object, - * dot notation can be used to obtain the value of a property of the object (e.g. get("x.y.z")) - * - * @return {Any} The value of the attribute - */ - get : function(name) { - return this._getAttr(name); - }, - - /** - * Checks whether or not the attribute is one which has been - * added lazily and still requires initialization. - * - * @method _isLazyAttr - * @private - * @param {String} name The name of the attribute - * @return {boolean} true if it's a lazily added attribute, false otherwise. - */ - _isLazyAttr: function(name) { - return this._state.get(name, LAZY); - }, - - /** - * Finishes initializing an attribute which has been lazily added. - * - * @method _addLazyAttr - * @private - * @param {Object} name The name of the attribute - */ - _addLazyAttr: function(name) { - var state = this._state, - lazyCfg = state.get(name, LAZY); - - state.add(name, IS_LAZY_ADD, true); - state.remove(name, LAZY); - this.addAttr(name, lazyCfg); - }, - - /** - * Sets the value of an attribute. - * - * @method set - * @chainable - * - * @param {String} name The name of the attribute. If the - * current value of the attribute is an Object, dot notation can be used - * to set the value of a property within the object (e.g. set("x.y.z", 5)). - * - * @param {Any} value The value to set the attribute to. - * - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. This - * can be used as a flexible way to identify the source of a call to set, allowing - * the developer to distinguish between set called internally by the host, vs. - * set called externally by the application developer. - * - * @return {Object} A reference to the host object. - */ - set : function(name, val, opts) { - return this._setAttr(name, val, opts); - }, - - /** - * Resets the attribute (or all attributes) to its initial value, as long as - * the attribute is not readOnly, or writeOnce. - * - * @method reset - * @param {String} name Optional. The name of the attribute to reset. If omitted, all attributes are reset. - * @return {Object} A reference to the host object. - * @chainable - */ - reset : function(name) { - var host = this, // help compression - added; - - if (name) { - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - host.set(name, host._state.get(name, INIT_VALUE)); - } else { - added = host._state.data.added; - Y.each(added, function(v, n) { - host.reset(n); - }, host); - } - return host; - }, - - /** - * Allows setting of readOnly/writeOnce attributes. See set for argument details. - * - * @method _set - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} val The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @return {Object} A reference to the host object. - */ - _set : function(name, val, opts) { - return this._setAttr(name, val, opts, true); - }, - - /** - * Provides the common implementation for the public get method, - * allowing Attribute hosts to over-ride either method. - * - * See get for argument details. - * - * @method _getAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @return {Any} The value of the attribute. - */ - _getAttr : function(name) { - var host = this, // help compression - fullName = name, - state = host._state, - path, - getter, - val, - cfg; - - if (name.indexOf(DOT) !== -1) { - path = name.split(DOT); - name = path.shift(); - } - - // On Demand - Should be rare - handles out of order valueFn references - if (host._tCfgs && host._tCfgs[name]) { - cfg = {}; - cfg[name] = host._tCfgs[name]; - delete host._tCfgs[name]; - host._addAttrs(cfg, host._tVals); - } - - // Lazy Init - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - val = host._getStateVal(name); - getter = state.get(name, GETTER); - - if (getter && !getter.call) { - getter = this[getter]; - } - - val = (getter) ? getter.call(host, val, fullName) : val; - val = (path) ? O.getValue(val, path) : val; - - return val; - }, - - /** - * Provides the common implementation for the public set and protected _set methods. - * - * See set for argument details. - * - * @method _setAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} value The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @param {boolean} force If true, allows the caller to set values for - * readOnly or writeOnce attributes which have already been set. - * - * @return {Object} A reference to the host object. - */ - _setAttr : function(name, val, opts, force) { - var allowSet = true, - state = this._state, - stateProxy = this._stateProxy, - data = state.data, - initialSet, - strPath, - path, - currVal, - writeOnce, - initializing; - - if (name.indexOf(DOT) !== -1) { - strPath = name; - path = name.split(DOT); - name = path.shift(); - } - - if (this._isLazyAttr(name)) { - this._addLazyAttr(name); - } - - initialSet = (!data.value || !(name in data.value)); - - if (stateProxy && name in stateProxy && !this._state.get(name, BYPASS_PROXY)) { - // TODO: Value is always set for proxy. Can we do any better? Maybe take a snapshot as the initial value for the first call to set? - initialSet = false; - } - - if (this._requireAddAttr && !this.attrAdded(name)) { - } else { - - writeOnce = state.get(name, WRITE_ONCE); - initializing = state.get(name, INITIALIZING); - - if (!initialSet && !force) { - - if (writeOnce) { - allowSet = false; - } - - if (state.get(name, READ_ONLY)) { - allowSet = false; - } - } - - if (!initializing && !force && writeOnce === INIT_ONLY) { - allowSet = false; - } - - if (allowSet) { - // Don't need currVal if initialSet (might fail in custom getter if it always expects a non-undefined/non-null value) - if (!initialSet) { - currVal = this.get(name); - } - - if (path) { - val = O.setValue(Y.clone(currVal), path, val); - - if (val === undefined) { - allowSet = false; - } - } - - if (allowSet) { - if (initializing) { - this._setAttrVal(name, strPath, currVal, val); - } else { - this._fireAttrChange(name, strPath, currVal, val, opts); - } - } - } - } - - return this; - }, - - /** - * Utility method to help setup the event payload and fire the attribute change event. - * - * @method _fireAttrChange - * @private - * @param {String} attrName The name of the attribute - * @param {String} subAttrName The full path of the property being changed, - * if this is a sub-attribute value being change. Otherwise null. - * @param {Any} currVal The current value of the attribute - * @param {Any} newVal The new value of the attribute - * @param {Object} opts Any additional event data to mix into the attribute change event's event facade. - */ - _fireAttrChange : function(attrName, subAttrName, currVal, newVal, opts) { - var host = this, - eventName = attrName + CHANGE, - state = host._state, - facade; - - if (!state.get(attrName, PUBLISHED)) { - host.publish(eventName, { - queuable:false, - defaultTargetOnly: true, - defaultFn:host._defAttrChangeFn, - silent:true, - broadcast : state.get(attrName, BROADCAST) - }); - state.add(attrName, PUBLISHED, true); - } - - facade = (opts) ? Y.merge(opts) : host._ATTR_E_FACADE; - - // Not using the single object signature for fire({type:..., newVal:...}), since - // we don't want to override type. Changed to the fire(type, {newVal:...}) signature. - - // facade.type = eventName; - facade.attrName = attrName; - facade.subAttrName = subAttrName; - facade.prevVal = currVal; - facade.newVal = newVal; - - // host.fire(facade); - host.fire(eventName, facade); - }, - - /** - * Default function for attribute change events. - * - * @private - * @method _defAttrChangeFn - * @param {EventFacade} e The event object for attribute change events. - */ - _defAttrChangeFn : function(e) { - if (!this._setAttrVal(e.attrName, e.subAttrName, e.prevVal, e.newVal)) { - // Prevent "after" listeners from being invoked since nothing changed. - e.stopImmediatePropagation(); - } else { - e.newVal = this.get(e.attrName); - } - }, - - /** - * Gets the stored value for the attribute, from either the - * internal state object, or the state proxy if it exits - * - * @method _getStateVal - * @private - * @param {String} name The name of the attribute - * @return {Any} The stored value of the attribute - */ - _getStateVal : function(name) { - var stateProxy = this._stateProxy; - return stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY) ? stateProxy[name] : this._state.get(name, VALUE); - }, - - /** - * Sets the stored value for the attribute, in either the - * internal state object, or the state proxy if it exits - * - * @method _setStateVal - * @private - * @param {String} name The name of the attribute - * @param {Any} value The value of the attribute - */ - _setStateVal : function(name, value) { - var stateProxy = this._stateProxy; - if (stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY)) { - stateProxy[name] = value; - } else { - this._state.add(name, VALUE, value); - } - }, - - /** - * Updates the stored value of the attribute in the privately held State object, - * if validation and setter passes. - * - * @method _setAttrVal - * @private - * @param {String} attrName The attribute name. - * @param {String} subAttrName The sub-attribute name, if setting a sub-attribute property ("x.y.z"). - * @param {Any} prevVal The currently stored value of the attribute. - * @param {Any} newVal The value which is going to be stored. - * - * @return {booolean} true if the new attribute value was stored, false if not. - */ - _setAttrVal : function(attrName, subAttrName, prevVal, newVal) { - - var host = this, - allowSet = true, - state = host._state, - - validator = state.get(attrName, VALIDATOR), - setter = state.get(attrName, SETTER), - initializing = state.get(attrName, INITIALIZING), - prevValRaw = this._getStateVal(attrName), - - name = subAttrName || attrName, - retVal, - valid; - - if (validator) { - if (!validator.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - validator = this[validator]; - } - if (validator) { - valid = validator.call(host, newVal, name); - - if (!valid && initializing) { - newVal = state.get(attrName, DEF_VALUE); - valid = true; // Assume it's valid, for perf. - } - } - } - - if (!validator || valid) { - if (setter) { - if (!setter.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - setter = this[setter]; - } - if (setter) { - retVal = setter.call(host, newVal, name); - - if (retVal === INVALID_VALUE) { - allowSet = false; - } else if (retVal !== undefined){ - newVal = retVal; - } - } - } - - if (allowSet) { - if(!subAttrName && (newVal === prevValRaw) && !Lang.isObject(newVal)) { - allowSet = false; - } else { - // Store value - if (state.get(attrName, INIT_VALUE) === undefined) { - state.add(attrName, INIT_VALUE, newVal); - } - host._setStateVal(attrName, newVal); - } - } - - } else { - allowSet = false; - } - - return allowSet; - }, - - /** - * Sets multiple attribute values. - * - * @method setAttrs - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - setAttrs : function(attrs, opts) { - return this._setAttrs(attrs, opts); - }, - - /** - * Implementation behind the public setAttrs method, to set multiple attribute values. - * - * @method _setAttrs - * @protected - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - _setAttrs : function(attrs, opts) { - for (var attr in attrs) { - if ( attrs.hasOwnProperty(attr) ) { - this.set(attr, attrs[attr]); - } - } - return this; - }, - - /** - * Gets multiple attribute values. - * - * @method getAttrs - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - getAttrs : function(attrs) { - return this._getAttrs(attrs); - }, - - /** - * Implementation behind the public getAttrs method, to get multiple attribute values. - * - * @method _getAttrs - * @protected - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - _getAttrs : function(attrs) { - var host = this, - o = {}, - i, l, attr, val, - modifiedOnly = (attrs === true); - - attrs = (attrs && !modifiedOnly) ? attrs : O.keys(host._state.data.added); - - for (i = 0, l = attrs.length; i < l; i++) { - // Go through get, to honor cloning/normalization - attr = attrs[i]; - val = host.get(attr); - - if (!modifiedOnly || host._getStateVal(attr) != host._state.get(attr, INIT_VALUE)) { - o[attr] = host.get(attr); - } - } - - return o; - }, - - /** - * Configures a group of attributes, and sets initial values. - * - *

                                - * NOTE: This method does not isolate the configuration object by merging/cloning. - * The caller is responsible for merging/cloning the configuration object if required. - *

                                - * - * @method addAttrs - * @chainable - * - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - * - * @return {Object} A reference to the host object. - */ - addAttrs : function(cfgs, values, lazy) { - var host = this; // help compression - if (cfgs) { - host._tCfgs = cfgs; - host._tVals = host._normAttrVals(values); - host._addAttrs(cfgs, host._tVals, lazy); - host._tCfgs = host._tVals = null; - } - - return host; - }, - - /** - * Implementation behind the public addAttrs method. - * - * This method is invoked directly by get if it encounters a scenario - * in which an attribute's valueFn attempts to obtain the - * value an attribute in the same group of attributes, which has not yet - * been added (on demand initialization). - * - * @method _addAttrs - * @private - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - */ - _addAttrs : function(cfgs, values, lazy) { - var host = this, // help compression - attr, - attrCfg, - value; - - for (attr in cfgs) { - if (cfgs.hasOwnProperty(attr)) { - - // Not Merging. Caller is responsible for isolating configs - attrCfg = cfgs[attr]; - attrCfg.defaultValue = attrCfg.value; - - // Handle simple, complex and user values, accounting for read-only - value = host._getAttrInitVal(attr, attrCfg, host._tVals); - - if (value !== undefined) { - attrCfg.value = value; - } - - if (host._tCfgs[attr]) { - delete host._tCfgs[attr]; - } - - host.addAttr(attr, attrCfg, lazy); - } - } - }, - - /** - * Utility method to protect an attribute configuration - * hash, by merging the entire object and the individual - * attr config objects. - * - * @method _protectAttrs - * @protected - * @param {Object} attrs A hash of attribute to configuration object pairs. - * @return {Object} A protected version of the attrs argument. - */ - _protectAttrs : function(attrs) { - if (attrs) { - attrs = Y.merge(attrs); - for (var attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - attrs[attr] = Y.merge(attrs[attr]); - } - } - } - return attrs; - }, - - /** - * Utility method to normalize attribute values. The base implementation - * simply merges the hash to protect the original. - * - * @method _normAttrVals - * @param {Object} valueHash An object with attribute name/value pairs - * - * @return {Object} - * - * @private - */ - _normAttrVals : function(valueHash) { - return (valueHash) ? Y.merge(valueHash) : null; - }, - - /** - * Returns the initial value of the given attribute from - * either the default configuration provided, or the - * over-ridden value if it exists in the set of initValues - * provided and the attribute is not read-only. - * - * @param {String} attr The name of the attribute - * @param {Object} cfg The attribute configuration object - * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals - * - * @return {Any} The initial value of the attribute. - * - * @method _getAttrInitVal - * @private - */ - _getAttrInitVal : function(attr, cfg, initValues) { - var val, valFn; - // init value is provided by the user if it exists, else, provided by the config - if (!cfg[READ_ONLY] && initValues && initValues.hasOwnProperty(attr)) { - val = initValues[attr]; - } else { - val = cfg[VALUE]; - valFn = cfg[VALUE_FN]; - - if (valFn) { - if (!valFn.call) { - valFn = this[valFn]; - } - if (valFn) { - val = valFn.call(this); - } - } - } - - - return val; - }, - - /** - * Returns an object with the configuration properties (and value) - * for the given attrubute. If attrName is not provided, returns the - * configuration properties for all attributes. - * - * @method _getAttrCfg - * @protected - * @param {String} name Optional. The attribute name. If not provided, the method will return the configuration for all attributes. - * @return {Object} The configuration properties for the given attribute, or all attributes. - */ - _getAttrCfg : function(name) { - var o, - data = this._state.data; - - if (data) { - o = {}; - - Y.each(data, function(cfg, cfgProp) { - if (name) { - if(name in cfg) { - o[cfgProp] = cfg[name]; - } - } else { - Y.each(cfg, function(attrCfg, attr) { - o[attr] = o[attr] || {}; - o[attr][cfgProp] = attrCfg; - }); - } - }); - } - - return o; - }, - - /** - * Utility method to set up initial attributes defined during construction, either through the constructor.ATTRS property, or explicitly passed in. - * - * @method _initAttrs - * @protected - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - */ - _initAttrs : function(attrs, values, lazy) { - // ATTRS support for Node, which is not Base based - attrs = attrs || this.constructor.ATTRS; - - var Base = Y.Base; - if ( attrs && !(Base && Y.instanceOf(this, Base))) { - this.addAttrs(this._protectAttrs(attrs), values, lazy); - } - } - }; - - // Basic prototype augment - no lazy constructor invocation. - Y.mix(Attribute, EventTarget, false, null, 1); - - Y.Attribute = Attribute; - - -}, '3.4.0' ,{requires:['event-custom']}); diff --git a/build/attribute/attribute-complex-debug.js b/build/attribute/attribute-complex-debug.js deleted file mode 100644 index 6332fe666b6..00000000000 --- a/build/attribute/attribute-complex-debug.js +++ /dev/null @@ -1,130 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('attribute-complex', function(Y) { - - /** - * Adds support for attribute providers to handle complex attributes in the constructor - * - * @module attribute - * @submodule attribute-complex - * @for Attribute - */ - - var O = Y.Object, - DOT = "."; - - Y.Attribute.Complex = function() {}; - Y.Attribute.Complex.prototype = { - - /** - * Utility method to split out simple attribute name/value pairs ("x") - * from complex attribute name/value pairs ("x.y.z"), so that complex - * attributes can be keyed by the top level attribute name. - * - * @method _normAttrVals - * @param {Object} valueHash An object with attribute name/value pairs - * - * @return {Object} An object literal with 2 properties - "simple" and "complex", - * containing simple and complex attribute values respectively keyed - * by the top level attribute name, or null, if valueHash is falsey. - * - * @private - */ - _normAttrVals : function(valueHash) { - var vals = {}, - subvals = {}, - path, - attr, - v, k; - - if (valueHash) { - for (k in valueHash) { - if (valueHash.hasOwnProperty(k)) { - if (k.indexOf(DOT) !== -1) { - path = k.split(DOT); - attr = path.shift(); - v = subvals[attr] = subvals[attr] || []; - v[v.length] = { - path : path, - value: valueHash[k] - }; - } else { - vals[k] = valueHash[k]; - } - } - } - return { simple:vals, complex:subvals }; - } else { - return null; - } - }, - - /** - * Returns the initial value of the given attribute from - * either the default configuration provided, or the - * over-ridden value if it exists in the set of initValues - * provided and the attribute is not read-only. - * - * @param {String} attr The name of the attribute - * @param {Object} cfg The attribute configuration object - * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals - * - * @return {Any} The initial value of the attribute. - * - * @method _getAttrInitVal - * @private - */ - _getAttrInitVal : function(attr, cfg, initValues) { - - var val = cfg.value, - valFn = cfg.valueFn, - simple, - complex, - i, - l, - path, - subval, - subvals; - - if (valFn) { - if (!valFn.call) { - valFn = this[valFn]; - } - if (valFn) { - val = valFn.call(this); - } - } - - if (!cfg.readOnly && initValues) { - - // Simple Attributes - simple = initValues.simple; - if (simple && simple.hasOwnProperty(attr)) { - val = simple[attr]; - } - - // Complex Attributes (complex values applied, after simple, incase both are set) - complex = initValues.complex; - if (complex && complex.hasOwnProperty(attr)) { - subvals = complex[attr]; - for (i = 0, l = subvals.length; i < l; ++i) { - path = subvals[i].path; - subval = subvals[i].value; - O.setValue(val, path, subval); - } - } - } - - return val; - } - }; - - Y.mix(Y.Attribute, Y.Attribute.Complex, true, null, 1); - - -}, '3.4.0' ,{requires:['attribute-base']}); diff --git a/build/attribute/attribute-complex-min.js b/build/attribute/attribute-complex-min.js deleted file mode 100644 index 17fa7c47eff..00000000000 --- a/build/attribute/attribute-complex-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("attribute-complex",function(b){var a=b.Object,c=".";b.Attribute.Complex=function(){};b.Attribute.Complex.prototype={_normAttrVals:function(g){var i={},h={},j,d,f,e;if(g){for(e in g){if(g.hasOwnProperty(e)){if(e.indexOf(c)!==-1){j=e.split(c);d=j.shift();f=h[d]=h[d]||[];f[f.length]={path:j,value:g[e]};}else{i[e]=g[e];}}}return{simple:i,complex:h};}else{return null;}},_getAttrInitVal:function(m,j,p){var e=j.value,o=j.valueFn,d,f,h,g,q,n,k;if(o){if(!o.call){o=this[o];}if(o){e=o.call(this);}}if(!j.readOnly&&p){d=p.simple;if(d&&d.hasOwnProperty(m)){e=d[m];}f=p.complex;if(f&&f.hasOwnProperty(m)){k=f[m];for(h=0,g=k.length;h - * Attribute provides configurable attribute support along with attribute change events. It is designed to be - * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state, - * along with attribute change events. - *

                                - *

                                For example, attributes added to the host can be configured:

                                - *
                                  - *
                                • As read only.
                                • - *
                                • As write once.
                                • - *
                                • With a setter function, which can be used to manipulate - * values passed to Attribute's set method, before they are stored.
                                • - *
                                • With a getter function, which can be used to manipulate stored values, - * before they are returned by Attribute's get method.
                                • - *
                                • With a validator function, to validate values before they are stored.
                                • - *
                                - * - *

                                See the addAttr method, for the complete set of configuration - * options available for attributes

                                . - * - *

                                NOTE: Most implementations will be better off extending the Base class, - * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration - * of attributes for derived classes, accounting for values passed into the constructor.

                                - * - * @class Attribute - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - * @uses EventTarget - */ - function Attribute(attrs, values, lazy) { - - var host = this; // help compression - - // Perf tweak - avoid creating event literals if not required. - host._ATTR_E_FACADE = {}; - - EventTarget.call(host, {emitFacade:true}); - - // _conf maintained for backwards compat - host._conf = host._state = new Y.State(); - - host._stateProxy = host._stateProxy || null; - host._requireAddAttr = host._requireAddAttr || false; - - this._initAttrs(attrs, values, lazy); - } - - /** - *

                                The value to return from an attribute setter in order to prevent the set from going through.

                                - * - *

                                You can return this value from your setter if you wish to combine validator and setter - * functionality into a single setter function, which either returns the massaged value to be stored or - * Attribute.INVALID_VALUE to prevent invalid values from being stored.

                                - * - * @property Attribute.INVALID_VALUE - * @type Object - * @static - * @final - */ - Attribute.INVALID_VALUE = {}; - INVALID_VALUE = Attribute.INVALID_VALUE; - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce etc.). - * - * This property is used internally as a whitelist for faster - * Y.mix operations. - * - * @property Attribute._ATTR_CFG - * @type Array - * @static - * @protected - */ - Attribute._ATTR_CFG = [SETTER, GETTER, VALIDATOR, VALUE, VALUE_FN, WRITE_ONCE, READ_ONLY, LAZY_ADD, BROADCAST, BYPASS_PROXY]; - - Attribute.prototype = { - /** - *

                                - * Adds an attribute with the provided configuration to the host object. - *

                                - *

                                - * The config argument object supports the following properties: - *

                                - * - *
                                - *
                                value <Any>
                                - *
                                The initial value to set on the attribute
                                - * - *
                                valueFn <Function | String>
                                - *
                                - *

                                A function, which will return the initial value to set on the attribute. This is useful - * for cases where the attribute configuration is defined statically, but needs to - * reference the host instance ("this") to obtain an initial value. If both the value and valueFn properties are defined, - * the value returned by the valueFn has precedence over the value property, unless it returns undefined, in which - * case the value property is used.

                                - * - *

                                valueFn can also be set to a string, representing the name of the instance method to be used to retrieve the value.

                                - *
                                - * - *
                                readOnly <boolean>
                                - *
                                Whether or not the attribute is read only. Attributes having readOnly set to true - * cannot be modified by invoking the set method.
                                - * - *
                                writeOnce <boolean> or <string>
                                - *
                                - * Whether or not the attribute is "write once". Attributes having writeOnce set to true, - * can only have their values set once, be it through the default configuration, - * constructor configuration arguments, or by invoking set. - *

                                The writeOnce attribute can also be set to the string "initOnly", in which case the attribute can only be set during initialization - * (when used with Base, this means it can only be set during construction)

                                - *
                                - * - *
                                setter <Function | String>
                                - *
                                - *

                                The setter function used to massage or normalize the value passed to the set method for the attribute. - * The value returned by the setter will be the final stored value. Returning - * Attribute.INVALID_VALUE, from the setter will prevent - * the value from being stored. - *

                                - * - *

                                setter can also be set to a string, representing the name of the instance method to be used as the setter function.

                                - *
                                - * - *
                                getter <Function | String>
                                - *
                                - *

                                - * The getter function used to massage or normalize the value returned by the get method for the attribute. - * The value returned by the getter function is the value which will be returned to the user when they - * invoke get. - *

                                - * - *

                                getter can also be set to a string, representing the name of the instance method to be used as the getter function.

                                - *
                                - * - *
                                validator <Function | String>
                                - *
                                - *

                                - * The validator function invoked prior to setting the stored value. Returning - * false from the validator function will prevent the value from being stored. - *

                                - * - *

                                validator can also be set to a string, representing the name of the instance method to be used as the validator function.

                                - *
                                - * - *
                                broadcast <int>
                                - *
                                If and how attribute change events for this attribute should be broadcast. See CustomEvent's broadcast property for - * valid values. By default attribute change events are not broadcast.
                                - * - *
                                lazyAdd <boolean>
                                - *
                                Whether or not to delay initialization of the attribute until the first call to get/set it. - * This flag can be used to over-ride lazy initialization on a per attribute basis, when adding multiple attributes through - * the addAttrs method.
                                - * - *
                                - * - *

                                The setter, getter and validator are invoked with the value and name passed in as the first and second arguments, and with - * the context ("this") set to the host object.

                                - * - *

                                Configuration properties outside of the list mentioned above are considered private properties used internally by attribute, and are not intended for public use.

                                - * - * @method addAttr - * - * @param {String} name The name of the attribute. - * @param {Object} config An object with attribute configuration property/value pairs, specifying the configuration for the attribute. - * - *

                                - * NOTE: The configuration object is modified when adding an attribute, so if you need - * to protect the original values, you will need to merge the object. - *

                                - * - * @param {boolean} lazy (optional) Whether or not to add this attribute lazily (on the first call to get/set). - * - * @return {Object} A reference to the host object. - * - * @chainable - */ - addAttr: function(name, config, lazy) { - - Y.log('Adding attribute: ' + name, 'info', 'attribute'); - - var host = this, // help compression - state = host._state, - value, - hasValue; - - lazy = (LAZY_ADD in config) ? config[LAZY_ADD] : lazy; - - if (lazy && !host.attrAdded(name)) { - state.add(name, LAZY, config || {}); - state.add(name, ADDED, true); - } else { - - if (host.attrAdded(name) && !state.get(name, IS_LAZY_ADD)) { Y.log('Attribute: ' + name + ' already exists. Cannot add it again without removing it first', 'warn', 'attribute'); } - - if (!host.attrAdded(name) || state.get(name, IS_LAZY_ADD)) { - - config = config || {}; - - hasValue = (VALUE in config); - - if (config.readOnly && !hasValue) { Y.log('readOnly attribute: ' + name + ', added without an initial value. Value will be set on initial call to set', 'warn', 'attribute');} - - if(hasValue) { - // We'll go through set, don't want to set value in config directly - value = config.value; - delete config.value; - } - - config.added = true; - config.initializing = true; - - state.addAll(name, config); - - if (hasValue) { - // Go through set, so that raw values get normalized/validated - host.set(name, value); - } - - state.remove(name, INITIALIZING); - } - } - - return host; - }, - - /** - * Checks if the given attribute has been added to the host - * - * @method attrAdded - * @param {String} name The name of the attribute to check. - * @return {boolean} true if an attribute with the given name has been added, false if it hasn't. This method will return true for lazily added attributes. - */ - attrAdded: function(name) { - return !!this._state.get(name, ADDED); - }, - - /** - * Updates the configuration of an attribute which has already been added. - *

                                - * The properties which can be modified through this interface are limited - * to the following subset of attributes, which can be safely modified - * after a value has already been set on the attribute: readOnly, writeOnce, - * broadcast and getter. - *

                                - * @method modifyAttr - * @param {String} name The name of the attribute whose configuration is to be updated. - * @param {Object} config An object with configuration property/value pairs, specifying the configuration properties to modify. - */ - modifyAttr: function(name, config) { - var host = this, // help compression - prop, state; - - if (host.attrAdded(name)) { - - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - state = host._state; - for (prop in config) { - if (MODIFIABLE[prop] && config.hasOwnProperty(prop)) { - state.add(name, prop, config[prop]); - - // If we reconfigured broadcast, need to republish - if (prop === BROADCAST) { - state.remove(name, PUBLISHED); - } - } - } - } - - if (!host.attrAdded(name)) {Y.log('Attribute modifyAttr:' + name + ' has not been added. Use addAttr to add the attribute', 'warn', 'attribute');} - }, - - /** - * Removes an attribute from the host object - * - * @method removeAttr - * @param {String} name The name of the attribute to be removed. - */ - removeAttr: function(name) { - this._state.removeAll(name); - }, - - /** - * Returns the current value of the attribute. If the attribute - * has been configured with a 'getter' function, this method will delegate - * to the 'getter' to obtain the value of the attribute. - * - * @method get - * - * @param {String} name The name of the attribute. If the value of the attribute is an Object, - * dot notation can be used to obtain the value of a property of the object (e.g. get("x.y.z")) - * - * @return {Any} The value of the attribute - */ - get : function(name) { - return this._getAttr(name); - }, - - /** - * Checks whether or not the attribute is one which has been - * added lazily and still requires initialization. - * - * @method _isLazyAttr - * @private - * @param {String} name The name of the attribute - * @return {boolean} true if it's a lazily added attribute, false otherwise. - */ - _isLazyAttr: function(name) { - return this._state.get(name, LAZY); - }, - - /** - * Finishes initializing an attribute which has been lazily added. - * - * @method _addLazyAttr - * @private - * @param {Object} name The name of the attribute - */ - _addLazyAttr: function(name) { - var state = this._state, - lazyCfg = state.get(name, LAZY); - - state.add(name, IS_LAZY_ADD, true); - state.remove(name, LAZY); - this.addAttr(name, lazyCfg); - }, - - /** - * Sets the value of an attribute. - * - * @method set - * @chainable - * - * @param {String} name The name of the attribute. If the - * current value of the attribute is an Object, dot notation can be used - * to set the value of a property within the object (e.g. set("x.y.z", 5)). - * - * @param {Any} value The value to set the attribute to. - * - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. This - * can be used as a flexible way to identify the source of a call to set, allowing - * the developer to distinguish between set called internally by the host, vs. - * set called externally by the application developer. - * - * @return {Object} A reference to the host object. - */ - set : function(name, val, opts) { - return this._setAttr(name, val, opts); - }, - - /** - * Resets the attribute (or all attributes) to its initial value, as long as - * the attribute is not readOnly, or writeOnce. - * - * @method reset - * @param {String} name Optional. The name of the attribute to reset. If omitted, all attributes are reset. - * @return {Object} A reference to the host object. - * @chainable - */ - reset : function(name) { - var host = this, // help compression - added; - - if (name) { - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - host.set(name, host._state.get(name, INIT_VALUE)); - } else { - added = host._state.data.added; - Y.each(added, function(v, n) { - host.reset(n); - }, host); - } - return host; - }, - - /** - * Allows setting of readOnly/writeOnce attributes. See set for argument details. - * - * @method _set - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} val The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @return {Object} A reference to the host object. - */ - _set : function(name, val, opts) { - return this._setAttr(name, val, opts, true); - }, - - /** - * Provides the common implementation for the public get method, - * allowing Attribute hosts to over-ride either method. - * - * See get for argument details. - * - * @method _getAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @return {Any} The value of the attribute. - */ - _getAttr : function(name) { - var host = this, // help compression - fullName = name, - state = host._state, - path, - getter, - val, - cfg; - - if (name.indexOf(DOT) !== -1) { - path = name.split(DOT); - name = path.shift(); - } - - // On Demand - Should be rare - handles out of order valueFn references - if (host._tCfgs && host._tCfgs[name]) { - cfg = {}; - cfg[name] = host._tCfgs[name]; - delete host._tCfgs[name]; - host._addAttrs(cfg, host._tVals); - } - - // Lazy Init - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - val = host._getStateVal(name); - getter = state.get(name, GETTER); - - if (getter && !getter.call) { - getter = this[getter]; - } - - val = (getter) ? getter.call(host, val, fullName) : val; - val = (path) ? O.getValue(val, path) : val; - - return val; - }, - - /** - * Provides the common implementation for the public set and protected _set methods. - * - * See set for argument details. - * - * @method _setAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} value The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @param {boolean} force If true, allows the caller to set values for - * readOnly or writeOnce attributes which have already been set. - * - * @return {Object} A reference to the host object. - */ - _setAttr : function(name, val, opts, force) { - var allowSet = true, - state = this._state, - stateProxy = this._stateProxy, - data = state.data, - initialSet, - strPath, - path, - currVal, - writeOnce, - initializing; - - if (name.indexOf(DOT) !== -1) { - strPath = name; - path = name.split(DOT); - name = path.shift(); - } - - if (this._isLazyAttr(name)) { - this._addLazyAttr(name); - } - - initialSet = (!data.value || !(name in data.value)); - - if (stateProxy && name in stateProxy && !this._state.get(name, BYPASS_PROXY)) { - // TODO: Value is always set for proxy. Can we do any better? Maybe take a snapshot as the initial value for the first call to set? - initialSet = false; - } - - if (this._requireAddAttr && !this.attrAdded(name)) { - Y.log('Set attribute:' + name + ', aborted; Attribute is not configured', 'warn', 'attribute'); - } else { - - writeOnce = state.get(name, WRITE_ONCE); - initializing = state.get(name, INITIALIZING); - - if (!initialSet && !force) { - - if (writeOnce) { - Y.log('Set attribute:' + name + ', aborted; Attribute is writeOnce', 'warn', 'attribute'); - allowSet = false; - } - - if (state.get(name, READ_ONLY)) { - Y.log('Set attribute:' + name + ', aborted; Attribute is readOnly', 'warn', 'attribute'); - allowSet = false; - } - } - - if (!initializing && !force && writeOnce === INIT_ONLY) { - Y.log('Set attribute:' + name + ', aborted; Attribute is writeOnce: "initOnly"', 'warn', 'attribute'); - allowSet = false; - } - - if (allowSet) { - // Don't need currVal if initialSet (might fail in custom getter if it always expects a non-undefined/non-null value) - if (!initialSet) { - currVal = this.get(name); - } - - if (path) { - val = O.setValue(Y.clone(currVal), path, val); - - if (val === undefined) { - Y.log('Set attribute path:' + strPath + ', aborted; Path is invalid', 'warn', 'attribute'); - allowSet = false; - } - } - - if (allowSet) { - if (initializing) { - this._setAttrVal(name, strPath, currVal, val); - } else { - this._fireAttrChange(name, strPath, currVal, val, opts); - } - } - } - } - - return this; - }, - - /** - * Utility method to help setup the event payload and fire the attribute change event. - * - * @method _fireAttrChange - * @private - * @param {String} attrName The name of the attribute - * @param {String} subAttrName The full path of the property being changed, - * if this is a sub-attribute value being change. Otherwise null. - * @param {Any} currVal The current value of the attribute - * @param {Any} newVal The new value of the attribute - * @param {Object} opts Any additional event data to mix into the attribute change event's event facade. - */ - _fireAttrChange : function(attrName, subAttrName, currVal, newVal, opts) { - var host = this, - eventName = attrName + CHANGE, - state = host._state, - facade; - - if (!state.get(attrName, PUBLISHED)) { - host.publish(eventName, { - queuable:false, - defaultTargetOnly: true, - defaultFn:host._defAttrChangeFn, - silent:true, - broadcast : state.get(attrName, BROADCAST) - }); - state.add(attrName, PUBLISHED, true); - } - - facade = (opts) ? Y.merge(opts) : host._ATTR_E_FACADE; - - // Not using the single object signature for fire({type:..., newVal:...}), since - // we don't want to override type. Changed to the fire(type, {newVal:...}) signature. - - // facade.type = eventName; - facade.attrName = attrName; - facade.subAttrName = subAttrName; - facade.prevVal = currVal; - facade.newVal = newVal; - - // host.fire(facade); - host.fire(eventName, facade); - }, - - /** - * Default function for attribute change events. - * - * @private - * @method _defAttrChangeFn - * @param {EventFacade} e The event object for attribute change events. - */ - _defAttrChangeFn : function(e) { - if (!this._setAttrVal(e.attrName, e.subAttrName, e.prevVal, e.newVal)) { - Y.log('State not updated and stopImmediatePropagation called for attribute: ' + e.attrName + ' , value:' + e.newVal, 'warn', 'attribute'); - // Prevent "after" listeners from being invoked since nothing changed. - e.stopImmediatePropagation(); - } else { - e.newVal = this.get(e.attrName); - } - }, - - /** - * Gets the stored value for the attribute, from either the - * internal state object, or the state proxy if it exits - * - * @method _getStateVal - * @private - * @param {String} name The name of the attribute - * @return {Any} The stored value of the attribute - */ - _getStateVal : function(name) { - var stateProxy = this._stateProxy; - return stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY) ? stateProxy[name] : this._state.get(name, VALUE); - }, - - /** - * Sets the stored value for the attribute, in either the - * internal state object, or the state proxy if it exits - * - * @method _setStateVal - * @private - * @param {String} name The name of the attribute - * @param {Any} value The value of the attribute - */ - _setStateVal : function(name, value) { - var stateProxy = this._stateProxy; - if (stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY)) { - stateProxy[name] = value; - } else { - this._state.add(name, VALUE, value); - } - }, - - /** - * Updates the stored value of the attribute in the privately held State object, - * if validation and setter passes. - * - * @method _setAttrVal - * @private - * @param {String} attrName The attribute name. - * @param {String} subAttrName The sub-attribute name, if setting a sub-attribute property ("x.y.z"). - * @param {Any} prevVal The currently stored value of the attribute. - * @param {Any} newVal The value which is going to be stored. - * - * @return {booolean} true if the new attribute value was stored, false if not. - */ - _setAttrVal : function(attrName, subAttrName, prevVal, newVal) { - - var host = this, - allowSet = true, - state = host._state, - - validator = state.get(attrName, VALIDATOR), - setter = state.get(attrName, SETTER), - initializing = state.get(attrName, INITIALIZING), - prevValRaw = this._getStateVal(attrName), - - name = subAttrName || attrName, - retVal, - valid; - - if (validator) { - if (!validator.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - validator = this[validator]; - } - if (validator) { - valid = validator.call(host, newVal, name); - - if (!valid && initializing) { - newVal = state.get(attrName, DEF_VALUE); - valid = true; // Assume it's valid, for perf. - } - } - } - - if (!validator || valid) { - if (setter) { - if (!setter.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - setter = this[setter]; - } - if (setter) { - retVal = setter.call(host, newVal, name); - - if (retVal === INVALID_VALUE) { - Y.log('Attribute: ' + attrName + ', setter returned Attribute.INVALID_VALUE for value:' + newVal, 'warn', 'attribute'); - allowSet = false; - } else if (retVal !== undefined){ - Y.log('Attribute: ' + attrName + ', raw value: ' + newVal + ' modified by setter to:' + retVal, 'info', 'attribute'); - newVal = retVal; - } - } - } - - if (allowSet) { - if(!subAttrName && (newVal === prevValRaw) && !Lang.isObject(newVal)) { - Y.log('Attribute: ' + attrName + ', value unchanged:' + newVal, 'warn', 'attribute'); - allowSet = false; - } else { - // Store value - if (state.get(attrName, INIT_VALUE) === undefined) { - state.add(attrName, INIT_VALUE, newVal); - } - host._setStateVal(attrName, newVal); - } - } - - } else { - Y.log('Attribute:' + attrName + ', Validation failed for value:' + newVal, 'warn', 'attribute'); - allowSet = false; - } - - return allowSet; - }, - - /** - * Sets multiple attribute values. - * - * @method setAttrs - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - setAttrs : function(attrs, opts) { - return this._setAttrs(attrs, opts); - }, - - /** - * Implementation behind the public setAttrs method, to set multiple attribute values. - * - * @method _setAttrs - * @protected - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - _setAttrs : function(attrs, opts) { - for (var attr in attrs) { - if ( attrs.hasOwnProperty(attr) ) { - this.set(attr, attrs[attr]); - } - } - return this; - }, - - /** - * Gets multiple attribute values. - * - * @method getAttrs - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - getAttrs : function(attrs) { - return this._getAttrs(attrs); - }, - - /** - * Implementation behind the public getAttrs method, to get multiple attribute values. - * - * @method _getAttrs - * @protected - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - _getAttrs : function(attrs) { - var host = this, - o = {}, - i, l, attr, val, - modifiedOnly = (attrs === true); - - attrs = (attrs && !modifiedOnly) ? attrs : O.keys(host._state.data.added); - - for (i = 0, l = attrs.length; i < l; i++) { - // Go through get, to honor cloning/normalization - attr = attrs[i]; - val = host.get(attr); - - if (!modifiedOnly || host._getStateVal(attr) != host._state.get(attr, INIT_VALUE)) { - o[attr] = host.get(attr); - } - } - - return o; - }, - - /** - * Configures a group of attributes, and sets initial values. - * - *

                                - * NOTE: This method does not isolate the configuration object by merging/cloning. - * The caller is responsible for merging/cloning the configuration object if required. - *

                                - * - * @method addAttrs - * @chainable - * - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - * - * @return {Object} A reference to the host object. - */ - addAttrs : function(cfgs, values, lazy) { - var host = this; // help compression - if (cfgs) { - host._tCfgs = cfgs; - host._tVals = host._normAttrVals(values); - host._addAttrs(cfgs, host._tVals, lazy); - host._tCfgs = host._tVals = null; - } - - return host; - }, - - /** - * Implementation behind the public addAttrs method. - * - * This method is invoked directly by get if it encounters a scenario - * in which an attribute's valueFn attempts to obtain the - * value an attribute in the same group of attributes, which has not yet - * been added (on demand initialization). - * - * @method _addAttrs - * @private - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - */ - _addAttrs : function(cfgs, values, lazy) { - var host = this, // help compression - attr, - attrCfg, - value; - - for (attr in cfgs) { - if (cfgs.hasOwnProperty(attr)) { - - // Not Merging. Caller is responsible for isolating configs - attrCfg = cfgs[attr]; - attrCfg.defaultValue = attrCfg.value; - - // Handle simple, complex and user values, accounting for read-only - value = host._getAttrInitVal(attr, attrCfg, host._tVals); - - if (value !== undefined) { - attrCfg.value = value; - } - - if (host._tCfgs[attr]) { - delete host._tCfgs[attr]; - } - - host.addAttr(attr, attrCfg, lazy); - } - } - }, - - /** - * Utility method to protect an attribute configuration - * hash, by merging the entire object and the individual - * attr config objects. - * - * @method _protectAttrs - * @protected - * @param {Object} attrs A hash of attribute to configuration object pairs. - * @return {Object} A protected version of the attrs argument. - */ - _protectAttrs : function(attrs) { - if (attrs) { - attrs = Y.merge(attrs); - for (var attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - attrs[attr] = Y.merge(attrs[attr]); - } - } - } - return attrs; - }, - - /** - * Utility method to normalize attribute values. The base implementation - * simply merges the hash to protect the original. - * - * @method _normAttrVals - * @param {Object} valueHash An object with attribute name/value pairs - * - * @return {Object} - * - * @private - */ - _normAttrVals : function(valueHash) { - return (valueHash) ? Y.merge(valueHash) : null; - }, - - /** - * Returns the initial value of the given attribute from - * either the default configuration provided, or the - * over-ridden value if it exists in the set of initValues - * provided and the attribute is not read-only. - * - * @param {String} attr The name of the attribute - * @param {Object} cfg The attribute configuration object - * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals - * - * @return {Any} The initial value of the attribute. - * - * @method _getAttrInitVal - * @private - */ - _getAttrInitVal : function(attr, cfg, initValues) { - var val, valFn; - // init value is provided by the user if it exists, else, provided by the config - if (!cfg[READ_ONLY] && initValues && initValues.hasOwnProperty(attr)) { - val = initValues[attr]; - } else { - val = cfg[VALUE]; - valFn = cfg[VALUE_FN]; - - if (valFn) { - if (!valFn.call) { - valFn = this[valFn]; - } - if (valFn) { - val = valFn.call(this); - } - } - } - - Y.log('initValue for ' + attr + ':' + val, 'info', 'attribute'); - - return val; - }, - - /** - * Returns an object with the configuration properties (and value) - * for the given attrubute. If attrName is not provided, returns the - * configuration properties for all attributes. - * - * @method _getAttrCfg - * @protected - * @param {String} name Optional. The attribute name. If not provided, the method will return the configuration for all attributes. - * @return {Object} The configuration properties for the given attribute, or all attributes. - */ - _getAttrCfg : function(name) { - var o, - data = this._state.data; - - if (data) { - o = {}; - - Y.each(data, function(cfg, cfgProp) { - if (name) { - if(name in cfg) { - o[cfgProp] = cfg[name]; - } - } else { - Y.each(cfg, function(attrCfg, attr) { - o[attr] = o[attr] || {}; - o[attr][cfgProp] = attrCfg; - }); - } - }); - } - - return o; - }, - - /** - * Utility method to set up initial attributes defined during construction, either through the constructor.ATTRS property, or explicitly passed in. - * - * @method _initAttrs - * @protected - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - */ - _initAttrs : function(attrs, values, lazy) { - // ATTRS support for Node, which is not Base based - attrs = attrs || this.constructor.ATTRS; - - var Base = Y.Base; - if ( attrs && !(Base && Y.instanceOf(this, Base))) { - this.addAttrs(this._protectAttrs(attrs), values, lazy); - } - } - }; - - // Basic prototype augment - no lazy constructor invocation. - Y.mix(Attribute, EventTarget, false, null, 1); - - Y.Attribute = Attribute; - - -}, '3.4.0' ,{requires:['event-custom']}); -YUI.add('attribute-complex', function(Y) { - - /** - * Adds support for attribute providers to handle complex attributes in the constructor - * - * @module attribute - * @submodule attribute-complex - * @for Attribute - */ - - var O = Y.Object, - DOT = "."; - - Y.Attribute.Complex = function() {}; - Y.Attribute.Complex.prototype = { - - /** - * Utility method to split out simple attribute name/value pairs ("x") - * from complex attribute name/value pairs ("x.y.z"), so that complex - * attributes can be keyed by the top level attribute name. - * - * @method _normAttrVals - * @param {Object} valueHash An object with attribute name/value pairs - * - * @return {Object} An object literal with 2 properties - "simple" and "complex", - * containing simple and complex attribute values respectively keyed - * by the top level attribute name, or null, if valueHash is falsey. - * - * @private - */ - _normAttrVals : function(valueHash) { - var vals = {}, - subvals = {}, - path, - attr, - v, k; - - if (valueHash) { - for (k in valueHash) { - if (valueHash.hasOwnProperty(k)) { - if (k.indexOf(DOT) !== -1) { - path = k.split(DOT); - attr = path.shift(); - v = subvals[attr] = subvals[attr] || []; - v[v.length] = { - path : path, - value: valueHash[k] - }; - } else { - vals[k] = valueHash[k]; - } - } - } - return { simple:vals, complex:subvals }; - } else { - return null; - } - }, - - /** - * Returns the initial value of the given attribute from - * either the default configuration provided, or the - * over-ridden value if it exists in the set of initValues - * provided and the attribute is not read-only. - * - * @param {String} attr The name of the attribute - * @param {Object} cfg The attribute configuration object - * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals - * - * @return {Any} The initial value of the attribute. - * - * @method _getAttrInitVal - * @private - */ - _getAttrInitVal : function(attr, cfg, initValues) { - - var val = cfg.value, - valFn = cfg.valueFn, - simple, - complex, - i, - l, - path, - subval, - subvals; - - if (valFn) { - if (!valFn.call) { - valFn = this[valFn]; - } - if (valFn) { - val = valFn.call(this); - } - } - - if (!cfg.readOnly && initValues) { - - // Simple Attributes - simple = initValues.simple; - if (simple && simple.hasOwnProperty(attr)) { - val = simple[attr]; - } - - // Complex Attributes (complex values applied, after simple, incase both are set) - complex = initValues.complex; - if (complex && complex.hasOwnProperty(attr)) { - subvals = complex[attr]; - for (i = 0, l = subvals.length; i < l; ++i) { - path = subvals[i].path; - subval = subvals[i].value; - O.setValue(val, path, subval); - } - } - } - - return val; - } - }; - - Y.mix(Y.Attribute, Y.Attribute.Complex, true, null, 1); - - -}, '3.4.0' ,{requires:['attribute-base']}); - - -YUI.add('attribute', function(Y){}, '3.4.0' ,{use:['attribute-base', 'attribute-complex']}); - diff --git a/build/attribute/attribute-min.js b/build/attribute/attribute-min.js deleted file mode 100644 index 92b04b84f59..00000000000 --- a/build/attribute/attribute-min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("attribute-base",function(c){c.State=function(){this.data={};};c.State.prototype={add:function(B,C,E){var D=this.data;D[C]=D[C]||{};D[C][B]=E;},addAll:function(B,D){var C;for(C in D){if(D.hasOwnProperty(C)){this.add(B,C,D[C]);}}},remove:function(B,C){var D=this.data;if(D[C]&&(B in D[C])){delete D[C][B];}},removeAll:function(B,D){var C=this.data;c.each(D||C,function(F,E){if(c.Lang.isString(E)){this.remove(B,E);}else{this.remove(B,F);}},this);},get:function(B,C){var D=this.data;return(D[C]&&B in D[C])?D[C][B]:undefined;},getAll:function(B){var D=this.data,C;c.each(D,function(F,E){if(B in D[E]){C=C||{};C[E]=F[B];}},this);return C;}};var k=c.Object,f=c.Lang,l=c.EventTarget,w=".",t="Change",n="getter",m="setter",o="readOnly",x="writeOnce",u="initOnly",A="validator",h="value",p="valueFn",e="broadcast",r="lazyAdd",j="_bypassProxy",z="added",b="initializing",i="initValue",v="published",s="defaultValue",a="lazy",q="isLazyAdd",g,y={};y[o]=1;y[x]=1;y[n]=1;y[e]=1;function d(C,B,D){var E=this;E._ATTR_E_FACADE={};l.call(E,{emitFacade:true});E._conf=E._state=new c.State();E._stateProxy=E._stateProxy||null;E._requireAddAttr=E._requireAddAttr||false;this._initAttrs(C,B,D);}d.INVALID_VALUE={};g=d.INVALID_VALUE;d._ATTR_CFG=[m,n,A,h,p,x,o,r,e,j];d.prototype={addAttr:function(C,B,E){var F=this,H=F._state,G,D;E=(r in B)?B[r]:E;if(E&&!F.attrAdded(C)){H.add(C,a,B||{});H.add(C,z,true);}else{if(!F.attrAdded(C)||H.get(C,q)){B=B||{};D=(h in B);if(D){G=B.value;delete B.value;}B.added=true;B.initializing=true;H.addAll(C,B);if(D){F.set(C,G);}H.remove(C,b);}}return F;},attrAdded:function(B){return !!this._state.get(B,z);},modifyAttr:function(C,B){var D=this,F,E;if(D.attrAdded(C)){if(D._isLazyAttr(C)){D._addLazyAttr(C);}E=D._state;for(F in B){if(y[F]&&B.hasOwnProperty(F)){E.add(C,F,B[F]);if(F===e){E.remove(C,v);}}}}},removeAttr:function(B){this._state.removeAll(B);},get:function(B){return this._getAttr(B);},_isLazyAttr:function(B){return this._state.get(B,a);},_addLazyAttr:function(C){var D=this._state,B=D.get(C,a);D.add(C,q,true);D.remove(C,a);this.addAttr(C,B);},set:function(B,D,C){return this._setAttr(B,D,C);},reset:function(B){var D=this,C;if(B){if(D._isLazyAttr(B)){D._addLazyAttr(B);}D.set(B,D._state.get(B,i));}else{C=D._state.data.added;c.each(C,function(E,F){D.reset(F);},D);}return D;},_set:function(B,D,C){return this._setAttr(B,D,C,true);},_getAttr:function(D){var E=this,I=D,F=E._state,G,B,H,C;if(D.indexOf(w)!==-1){G=D.split(w);D=G.shift();}if(E._tCfgs&&E._tCfgs[D]){C={};C[D]=E._tCfgs[D];delete E._tCfgs[D];E._addAttrs(C,E._tVals);}if(E._isLazyAttr(D)){E._addLazyAttr(D);}H=E._getStateVal(D);B=F.get(D,n);if(B&&!B.call){B=this[B];}H=(B)?B.call(E,H,I):H;H=(G)?k.getValue(H,G):H;return H;},_setAttr:function(D,G,B,E){var K=true,C=this._state,H=this._stateProxy,M=C.data,J,N,O,F,I,L;if(D.indexOf(w)!==-1){N=D;O=D.split(w);D=O.shift();}if(this._isLazyAttr(D)){this._addLazyAttr(D);}J=(!M.value||!(D in M.value));if(H&&D in H&&!this._state.get(D,j)){J=false;}if(this._requireAddAttr&&!this.attrAdded(D)){}else{I=C.get(D,x);L=C.get(D,b);if(!J&&!E){if(I){K=false;}if(C.get(D,o)){K=false;}}if(!L&&!E&&I===u){K=false;}if(K){if(!J){F=this.get(D);}if(O){G=k.setValue(c.clone(F),O,G);if(G===undefined){K=false;}}if(K){if(L){this._setAttrVal(D,N,F,G);}else{this._fireAttrChange(D,N,F,G,B);}}}}return this;},_fireAttrChange:function(H,G,E,D,B){var J=this,F=H+t,C=J._state,I;if(!C.get(H,v)){J.publish(F,{queuable:false,defaultTargetOnly:true,defaultFn:J._defAttrChangeFn,silent:true,broadcast:C.get(H,e)});C.add(H,v,true);}I=(B)?c.merge(B):J._ATTR_E_FACADE;I.attrName=H;I.subAttrName=G;I.prevVal=E;I.newVal=D;J.fire(F,I);},_defAttrChangeFn:function(B){if(!this._setAttrVal(B.attrName,B.subAttrName,B.prevVal,B.newVal)){B.stopImmediatePropagation();}else{B.newVal=this.get(B.attrName);}},_getStateVal:function(B){var C=this._stateProxy;return C&&(B in C)&&!this._state.get(B,j)?C[B]:this._state.get(B,h);},_setStateVal:function(B,D){var C=this._stateProxy;if(C&&(B in C)&&!this._state.get(B,j)){C[B]=D;}else{this._state.add(B,h,D);}},_setAttrVal:function(M,L,I,G){var O=this,J=true,D=O._state,E=D.get(M,A),H=D.get(M,m),K=D.get(M,b),N=this._getStateVal(M),C=L||M,F,B;if(E){if(!E.call){E=this[E];}if(E){B=E.call(O,G,C);if(!B&&K){G=D.get(M,s);B=true;}}}if(!E||B){if(H){if(!H.call){H=this[H];}if(H){F=H.call(O,G,C);if(F===g){J=false;}else{if(F!==undefined){G=F;}}}}if(J){if(!L&&(G===N)&&!f.isObject(G)){J=false;}else{if(D.get(M,i)===undefined){D.add(M,i,G);}O._setStateVal(M,G);}}}else{J=false;}return J;},setAttrs:function(B,C){return this._setAttrs(B,C);},_setAttrs:function(C,D){for(var B in C){if(C.hasOwnProperty(B)){this.set(B,C[B]);}}return this;},getAttrs:function(B){return this._getAttrs(B);},_getAttrs:function(E){var G=this,I={},F,C,B,H,D=(E===true);E=(E&&!D)?E:k.keys(G._state.data.added);for(F=0,C=E.length;F - * Attribute provides configurable attribute support along with attribute change events. It is designed to be - * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state, - * along with attribute change events. - *

                                - *

                                For example, attributes added to the host can be configured:

                                - *
                                  - *
                                • As read only.
                                • - *
                                • As write once.
                                • - *
                                • With a setter function, which can be used to manipulate - * values passed to Attribute's set method, before they are stored.
                                • - *
                                • With a getter function, which can be used to manipulate stored values, - * before they are returned by Attribute's get method.
                                • - *
                                • With a validator function, to validate values before they are stored.
                                • - *
                                - * - *

                                See the addAttr method, for the complete set of configuration - * options available for attributes

                                . - * - *

                                NOTE: Most implementations will be better off extending the Base class, - * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration - * of attributes for derived classes, accounting for values passed into the constructor.

                                - * - * @class Attribute - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - * @uses EventTarget - */ - function Attribute(attrs, values, lazy) { - - var host = this; // help compression - - // Perf tweak - avoid creating event literals if not required. - host._ATTR_E_FACADE = {}; - - EventTarget.call(host, {emitFacade:true}); - - // _conf maintained for backwards compat - host._conf = host._state = new Y.State(); - - host._stateProxy = host._stateProxy || null; - host._requireAddAttr = host._requireAddAttr || false; - - this._initAttrs(attrs, values, lazy); - } - - /** - *

                                The value to return from an attribute setter in order to prevent the set from going through.

                                - * - *

                                You can return this value from your setter if you wish to combine validator and setter - * functionality into a single setter function, which either returns the massaged value to be stored or - * Attribute.INVALID_VALUE to prevent invalid values from being stored.

                                - * - * @property Attribute.INVALID_VALUE - * @type Object - * @static - * @final - */ - Attribute.INVALID_VALUE = {}; - INVALID_VALUE = Attribute.INVALID_VALUE; - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce etc.). - * - * This property is used internally as a whitelist for faster - * Y.mix operations. - * - * @property Attribute._ATTR_CFG - * @type Array - * @static - * @protected - */ - Attribute._ATTR_CFG = [SETTER, GETTER, VALIDATOR, VALUE, VALUE_FN, WRITE_ONCE, READ_ONLY, LAZY_ADD, BROADCAST, BYPASS_PROXY]; - - Attribute.prototype = { - /** - *

                                - * Adds an attribute with the provided configuration to the host object. - *

                                - *

                                - * The config argument object supports the following properties: - *

                                - * - *
                                - *
                                value <Any>
                                - *
                                The initial value to set on the attribute
                                - * - *
                                valueFn <Function | String>
                                - *
                                - *

                                A function, which will return the initial value to set on the attribute. This is useful - * for cases where the attribute configuration is defined statically, but needs to - * reference the host instance ("this") to obtain an initial value. If both the value and valueFn properties are defined, - * the value returned by the valueFn has precedence over the value property, unless it returns undefined, in which - * case the value property is used.

                                - * - *

                                valueFn can also be set to a string, representing the name of the instance method to be used to retrieve the value.

                                - *
                                - * - *
                                readOnly <boolean>
                                - *
                                Whether or not the attribute is read only. Attributes having readOnly set to true - * cannot be modified by invoking the set method.
                                - * - *
                                writeOnce <boolean> or <string>
                                - *
                                - * Whether or not the attribute is "write once". Attributes having writeOnce set to true, - * can only have their values set once, be it through the default configuration, - * constructor configuration arguments, or by invoking set. - *

                                The writeOnce attribute can also be set to the string "initOnly", in which case the attribute can only be set during initialization - * (when used with Base, this means it can only be set during construction)

                                - *
                                - * - *
                                setter <Function | String>
                                - *
                                - *

                                The setter function used to massage or normalize the value passed to the set method for the attribute. - * The value returned by the setter will be the final stored value. Returning - * Attribute.INVALID_VALUE, from the setter will prevent - * the value from being stored. - *

                                - * - *

                                setter can also be set to a string, representing the name of the instance method to be used as the setter function.

                                - *
                                - * - *
                                getter <Function | String>
                                - *
                                - *

                                - * The getter function used to massage or normalize the value returned by the get method for the attribute. - * The value returned by the getter function is the value which will be returned to the user when they - * invoke get. - *

                                - * - *

                                getter can also be set to a string, representing the name of the instance method to be used as the getter function.

                                - *
                                - * - *
                                validator <Function | String>
                                - *
                                - *

                                - * The validator function invoked prior to setting the stored value. Returning - * false from the validator function will prevent the value from being stored. - *

                                - * - *

                                validator can also be set to a string, representing the name of the instance method to be used as the validator function.

                                - *
                                - * - *
                                broadcast <int>
                                - *
                                If and how attribute change events for this attribute should be broadcast. See CustomEvent's broadcast property for - * valid values. By default attribute change events are not broadcast.
                                - * - *
                                lazyAdd <boolean>
                                - *
                                Whether or not to delay initialization of the attribute until the first call to get/set it. - * This flag can be used to over-ride lazy initialization on a per attribute basis, when adding multiple attributes through - * the addAttrs method.
                                - * - *
                                - * - *

                                The setter, getter and validator are invoked with the value and name passed in as the first and second arguments, and with - * the context ("this") set to the host object.

                                - * - *

                                Configuration properties outside of the list mentioned above are considered private properties used internally by attribute, and are not intended for public use.

                                - * - * @method addAttr - * - * @param {String} name The name of the attribute. - * @param {Object} config An object with attribute configuration property/value pairs, specifying the configuration for the attribute. - * - *

                                - * NOTE: The configuration object is modified when adding an attribute, so if you need - * to protect the original values, you will need to merge the object. - *

                                - * - * @param {boolean} lazy (optional) Whether or not to add this attribute lazily (on the first call to get/set). - * - * @return {Object} A reference to the host object. - * - * @chainable - */ - addAttr: function(name, config, lazy) { - - - var host = this, // help compression - state = host._state, - value, - hasValue; - - lazy = (LAZY_ADD in config) ? config[LAZY_ADD] : lazy; - - if (lazy && !host.attrAdded(name)) { - state.add(name, LAZY, config || {}); - state.add(name, ADDED, true); - } else { - - - if (!host.attrAdded(name) || state.get(name, IS_LAZY_ADD)) { - - config = config || {}; - - hasValue = (VALUE in config); - - - if(hasValue) { - // We'll go through set, don't want to set value in config directly - value = config.value; - delete config.value; - } - - config.added = true; - config.initializing = true; - - state.addAll(name, config); - - if (hasValue) { - // Go through set, so that raw values get normalized/validated - host.set(name, value); - } - - state.remove(name, INITIALIZING); - } - } - - return host; - }, - - /** - * Checks if the given attribute has been added to the host - * - * @method attrAdded - * @param {String} name The name of the attribute to check. - * @return {boolean} true if an attribute with the given name has been added, false if it hasn't. This method will return true for lazily added attributes. - */ - attrAdded: function(name) { - return !!this._state.get(name, ADDED); - }, - - /** - * Updates the configuration of an attribute which has already been added. - *

                                - * The properties which can be modified through this interface are limited - * to the following subset of attributes, which can be safely modified - * after a value has already been set on the attribute: readOnly, writeOnce, - * broadcast and getter. - *

                                - * @method modifyAttr - * @param {String} name The name of the attribute whose configuration is to be updated. - * @param {Object} config An object with configuration property/value pairs, specifying the configuration properties to modify. - */ - modifyAttr: function(name, config) { - var host = this, // help compression - prop, state; - - if (host.attrAdded(name)) { - - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - state = host._state; - for (prop in config) { - if (MODIFIABLE[prop] && config.hasOwnProperty(prop)) { - state.add(name, prop, config[prop]); - - // If we reconfigured broadcast, need to republish - if (prop === BROADCAST) { - state.remove(name, PUBLISHED); - } - } - } - } - - }, - - /** - * Removes an attribute from the host object - * - * @method removeAttr - * @param {String} name The name of the attribute to be removed. - */ - removeAttr: function(name) { - this._state.removeAll(name); - }, - - /** - * Returns the current value of the attribute. If the attribute - * has been configured with a 'getter' function, this method will delegate - * to the 'getter' to obtain the value of the attribute. - * - * @method get - * - * @param {String} name The name of the attribute. If the value of the attribute is an Object, - * dot notation can be used to obtain the value of a property of the object (e.g. get("x.y.z")) - * - * @return {Any} The value of the attribute - */ - get : function(name) { - return this._getAttr(name); - }, - - /** - * Checks whether or not the attribute is one which has been - * added lazily and still requires initialization. - * - * @method _isLazyAttr - * @private - * @param {String} name The name of the attribute - * @return {boolean} true if it's a lazily added attribute, false otherwise. - */ - _isLazyAttr: function(name) { - return this._state.get(name, LAZY); - }, - - /** - * Finishes initializing an attribute which has been lazily added. - * - * @method _addLazyAttr - * @private - * @param {Object} name The name of the attribute - */ - _addLazyAttr: function(name) { - var state = this._state, - lazyCfg = state.get(name, LAZY); - - state.add(name, IS_LAZY_ADD, true); - state.remove(name, LAZY); - this.addAttr(name, lazyCfg); - }, - - /** - * Sets the value of an attribute. - * - * @method set - * @chainable - * - * @param {String} name The name of the attribute. If the - * current value of the attribute is an Object, dot notation can be used - * to set the value of a property within the object (e.g. set("x.y.z", 5)). - * - * @param {Any} value The value to set the attribute to. - * - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. This - * can be used as a flexible way to identify the source of a call to set, allowing - * the developer to distinguish between set called internally by the host, vs. - * set called externally by the application developer. - * - * @return {Object} A reference to the host object. - */ - set : function(name, val, opts) { - return this._setAttr(name, val, opts); - }, - - /** - * Resets the attribute (or all attributes) to its initial value, as long as - * the attribute is not readOnly, or writeOnce. - * - * @method reset - * @param {String} name Optional. The name of the attribute to reset. If omitted, all attributes are reset. - * @return {Object} A reference to the host object. - * @chainable - */ - reset : function(name) { - var host = this, // help compression - added; - - if (name) { - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - host.set(name, host._state.get(name, INIT_VALUE)); - } else { - added = host._state.data.added; - Y.each(added, function(v, n) { - host.reset(n); - }, host); - } - return host; - }, - - /** - * Allows setting of readOnly/writeOnce attributes. See set for argument details. - * - * @method _set - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} val The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @return {Object} A reference to the host object. - */ - _set : function(name, val, opts) { - return this._setAttr(name, val, opts, true); - }, - - /** - * Provides the common implementation for the public get method, - * allowing Attribute hosts to over-ride either method. - * - * See get for argument details. - * - * @method _getAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @return {Any} The value of the attribute. - */ - _getAttr : function(name) { - var host = this, // help compression - fullName = name, - state = host._state, - path, - getter, - val, - cfg; - - if (name.indexOf(DOT) !== -1) { - path = name.split(DOT); - name = path.shift(); - } - - // On Demand - Should be rare - handles out of order valueFn references - if (host._tCfgs && host._tCfgs[name]) { - cfg = {}; - cfg[name] = host._tCfgs[name]; - delete host._tCfgs[name]; - host._addAttrs(cfg, host._tVals); - } - - // Lazy Init - if (host._isLazyAttr(name)) { - host._addLazyAttr(name); - } - - val = host._getStateVal(name); - getter = state.get(name, GETTER); - - if (getter && !getter.call) { - getter = this[getter]; - } - - val = (getter) ? getter.call(host, val, fullName) : val; - val = (path) ? O.getValue(val, path) : val; - - return val; - }, - - /** - * Provides the common implementation for the public set and protected _set methods. - * - * See set for argument details. - * - * @method _setAttr - * @protected - * @chainable - * - * @param {String} name The name of the attribute. - * @param {Any} value The value to set the attribute to. - * @param {Object} opts (Optional) Optional event data to be mixed into - * the event facade passed to subscribers of the attribute's change event. - * @param {boolean} force If true, allows the caller to set values for - * readOnly or writeOnce attributes which have already been set. - * - * @return {Object} A reference to the host object. - */ - _setAttr : function(name, val, opts, force) { - var allowSet = true, - state = this._state, - stateProxy = this._stateProxy, - data = state.data, - initialSet, - strPath, - path, - currVal, - writeOnce, - initializing; - - if (name.indexOf(DOT) !== -1) { - strPath = name; - path = name.split(DOT); - name = path.shift(); - } - - if (this._isLazyAttr(name)) { - this._addLazyAttr(name); - } - - initialSet = (!data.value || !(name in data.value)); - - if (stateProxy && name in stateProxy && !this._state.get(name, BYPASS_PROXY)) { - // TODO: Value is always set for proxy. Can we do any better? Maybe take a snapshot as the initial value for the first call to set? - initialSet = false; - } - - if (this._requireAddAttr && !this.attrAdded(name)) { - } else { - - writeOnce = state.get(name, WRITE_ONCE); - initializing = state.get(name, INITIALIZING); - - if (!initialSet && !force) { - - if (writeOnce) { - allowSet = false; - } - - if (state.get(name, READ_ONLY)) { - allowSet = false; - } - } - - if (!initializing && !force && writeOnce === INIT_ONLY) { - allowSet = false; - } - - if (allowSet) { - // Don't need currVal if initialSet (might fail in custom getter if it always expects a non-undefined/non-null value) - if (!initialSet) { - currVal = this.get(name); - } - - if (path) { - val = O.setValue(Y.clone(currVal), path, val); - - if (val === undefined) { - allowSet = false; - } - } - - if (allowSet) { - if (initializing) { - this._setAttrVal(name, strPath, currVal, val); - } else { - this._fireAttrChange(name, strPath, currVal, val, opts); - } - } - } - } - - return this; - }, - - /** - * Utility method to help setup the event payload and fire the attribute change event. - * - * @method _fireAttrChange - * @private - * @param {String} attrName The name of the attribute - * @param {String} subAttrName The full path of the property being changed, - * if this is a sub-attribute value being change. Otherwise null. - * @param {Any} currVal The current value of the attribute - * @param {Any} newVal The new value of the attribute - * @param {Object} opts Any additional event data to mix into the attribute change event's event facade. - */ - _fireAttrChange : function(attrName, subAttrName, currVal, newVal, opts) { - var host = this, - eventName = attrName + CHANGE, - state = host._state, - facade; - - if (!state.get(attrName, PUBLISHED)) { - host.publish(eventName, { - queuable:false, - defaultTargetOnly: true, - defaultFn:host._defAttrChangeFn, - silent:true, - broadcast : state.get(attrName, BROADCAST) - }); - state.add(attrName, PUBLISHED, true); - } - - facade = (opts) ? Y.merge(opts) : host._ATTR_E_FACADE; - - // Not using the single object signature for fire({type:..., newVal:...}), since - // we don't want to override type. Changed to the fire(type, {newVal:...}) signature. - - // facade.type = eventName; - facade.attrName = attrName; - facade.subAttrName = subAttrName; - facade.prevVal = currVal; - facade.newVal = newVal; - - // host.fire(facade); - host.fire(eventName, facade); - }, - - /** - * Default function for attribute change events. - * - * @private - * @method _defAttrChangeFn - * @param {EventFacade} e The event object for attribute change events. - */ - _defAttrChangeFn : function(e) { - if (!this._setAttrVal(e.attrName, e.subAttrName, e.prevVal, e.newVal)) { - // Prevent "after" listeners from being invoked since nothing changed. - e.stopImmediatePropagation(); - } else { - e.newVal = this.get(e.attrName); - } - }, - - /** - * Gets the stored value for the attribute, from either the - * internal state object, or the state proxy if it exits - * - * @method _getStateVal - * @private - * @param {String} name The name of the attribute - * @return {Any} The stored value of the attribute - */ - _getStateVal : function(name) { - var stateProxy = this._stateProxy; - return stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY) ? stateProxy[name] : this._state.get(name, VALUE); - }, - - /** - * Sets the stored value for the attribute, in either the - * internal state object, or the state proxy if it exits - * - * @method _setStateVal - * @private - * @param {String} name The name of the attribute - * @param {Any} value The value of the attribute - */ - _setStateVal : function(name, value) { - var stateProxy = this._stateProxy; - if (stateProxy && (name in stateProxy) && !this._state.get(name, BYPASS_PROXY)) { - stateProxy[name] = value; - } else { - this._state.add(name, VALUE, value); - } - }, - - /** - * Updates the stored value of the attribute in the privately held State object, - * if validation and setter passes. - * - * @method _setAttrVal - * @private - * @param {String} attrName The attribute name. - * @param {String} subAttrName The sub-attribute name, if setting a sub-attribute property ("x.y.z"). - * @param {Any} prevVal The currently stored value of the attribute. - * @param {Any} newVal The value which is going to be stored. - * - * @return {booolean} true if the new attribute value was stored, false if not. - */ - _setAttrVal : function(attrName, subAttrName, prevVal, newVal) { - - var host = this, - allowSet = true, - state = host._state, - - validator = state.get(attrName, VALIDATOR), - setter = state.get(attrName, SETTER), - initializing = state.get(attrName, INITIALIZING), - prevValRaw = this._getStateVal(attrName), - - name = subAttrName || attrName, - retVal, - valid; - - if (validator) { - if (!validator.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - validator = this[validator]; - } - if (validator) { - valid = validator.call(host, newVal, name); - - if (!valid && initializing) { - newVal = state.get(attrName, DEF_VALUE); - valid = true; // Assume it's valid, for perf. - } - } - } - - if (!validator || valid) { - if (setter) { - if (!setter.call) { - // Assume string - trying to keep critical path tight, so avoiding Lang check - setter = this[setter]; - } - if (setter) { - retVal = setter.call(host, newVal, name); - - if (retVal === INVALID_VALUE) { - allowSet = false; - } else if (retVal !== undefined){ - newVal = retVal; - } - } - } - - if (allowSet) { - if(!subAttrName && (newVal === prevValRaw) && !Lang.isObject(newVal)) { - allowSet = false; - } else { - // Store value - if (state.get(attrName, INIT_VALUE) === undefined) { - state.add(attrName, INIT_VALUE, newVal); - } - host._setStateVal(attrName, newVal); - } - } - - } else { - allowSet = false; - } - - return allowSet; - }, - - /** - * Sets multiple attribute values. - * - * @method setAttrs - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - setAttrs : function(attrs, opts) { - return this._setAttrs(attrs, opts); - }, - - /** - * Implementation behind the public setAttrs method, to set multiple attribute values. - * - * @method _setAttrs - * @protected - * @param {Object} attrs An object with attributes name/value pairs. - * @return {Object} A reference to the host object. - * @chainable - */ - _setAttrs : function(attrs, opts) { - for (var attr in attrs) { - if ( attrs.hasOwnProperty(attr) ) { - this.set(attr, attrs[attr]); - } - } - return this; - }, - - /** - * Gets multiple attribute values. - * - * @method getAttrs - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - getAttrs : function(attrs) { - return this._getAttrs(attrs); - }, - - /** - * Implementation behind the public getAttrs method, to get multiple attribute values. - * - * @method _getAttrs - * @protected - * @param {Array | boolean} attrs Optional. An array of attribute names. If omitted, all attribute values are - * returned. If set to true, all attributes modified from their initial values are returned. - * @return {Object} An object with attribute name/value pairs. - */ - _getAttrs : function(attrs) { - var host = this, - o = {}, - i, l, attr, val, - modifiedOnly = (attrs === true); - - attrs = (attrs && !modifiedOnly) ? attrs : O.keys(host._state.data.added); - - for (i = 0, l = attrs.length; i < l; i++) { - // Go through get, to honor cloning/normalization - attr = attrs[i]; - val = host.get(attr); - - if (!modifiedOnly || host._getStateVal(attr) != host._state.get(attr, INIT_VALUE)) { - o[attr] = host.get(attr); - } - } - - return o; - }, - - /** - * Configures a group of attributes, and sets initial values. - * - *

                                - * NOTE: This method does not isolate the configuration object by merging/cloning. - * The caller is responsible for merging/cloning the configuration object if required. - *

                                - * - * @method addAttrs - * @chainable - * - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - * - * @return {Object} A reference to the host object. - */ - addAttrs : function(cfgs, values, lazy) { - var host = this; // help compression - if (cfgs) { - host._tCfgs = cfgs; - host._tVals = host._normAttrVals(values); - host._addAttrs(cfgs, host._tVals, lazy); - host._tCfgs = host._tVals = null; - } - - return host; - }, - - /** - * Implementation behind the public addAttrs method. - * - * This method is invoked directly by get if it encounters a scenario - * in which an attribute's valueFn attempts to obtain the - * value an attribute in the same group of attributes, which has not yet - * been added (on demand initialization). - * - * @method _addAttrs - * @private - * @param {Object} cfgs An object with attribute name/configuration pairs. - * @param {Object} values An object with attribute name/value pairs, defining the initial values to apply. - * Values defined in the cfgs argument will be over-written by values in this argument unless defined as read only. - * @param {boolean} lazy Whether or not to delay the intialization of these attributes until the first call to get/set. - * Individual attributes can over-ride this behavior by defining a lazyAdd configuration property in their configuration. - * See addAttr. - */ - _addAttrs : function(cfgs, values, lazy) { - var host = this, // help compression - attr, - attrCfg, - value; - - for (attr in cfgs) { - if (cfgs.hasOwnProperty(attr)) { - - // Not Merging. Caller is responsible for isolating configs - attrCfg = cfgs[attr]; - attrCfg.defaultValue = attrCfg.value; - - // Handle simple, complex and user values, accounting for read-only - value = host._getAttrInitVal(attr, attrCfg, host._tVals); - - if (value !== undefined) { - attrCfg.value = value; - } - - if (host._tCfgs[attr]) { - delete host._tCfgs[attr]; - } - - host.addAttr(attr, attrCfg, lazy); - } - } - }, - - /** - * Utility method to protect an attribute configuration - * hash, by merging the entire object and the individual - * attr config objects. - * - * @method _protectAttrs - * @protected - * @param {Object} attrs A hash of attribute to configuration object pairs. - * @return {Object} A protected version of the attrs argument. - */ - _protectAttrs : function(attrs) { - if (attrs) { - attrs = Y.merge(attrs); - for (var attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - attrs[attr] = Y.merge(attrs[attr]); - } - } - } - return attrs; - }, - - /** - * Utility method to normalize attribute values. The base implementation - * simply merges the hash to protect the original. - * - * @method _normAttrVals - * @param {Object} valueHash An object with attribute name/value pairs - * - * @return {Object} - * - * @private - */ - _normAttrVals : function(valueHash) { - return (valueHash) ? Y.merge(valueHash) : null; - }, - - /** - * Returns the initial value of the given attribute from - * either the default configuration provided, or the - * over-ridden value if it exists in the set of initValues - * provided and the attribute is not read-only. - * - * @param {String} attr The name of the attribute - * @param {Object} cfg The attribute configuration object - * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals - * - * @return {Any} The initial value of the attribute. - * - * @method _getAttrInitVal - * @private - */ - _getAttrInitVal : function(attr, cfg, initValues) { - var val, valFn; - // init value is provided by the user if it exists, else, provided by the config - if (!cfg[READ_ONLY] && initValues && initValues.hasOwnProperty(attr)) { - val = initValues[attr]; - } else { - val = cfg[VALUE]; - valFn = cfg[VALUE_FN]; - - if (valFn) { - if (!valFn.call) { - valFn = this[valFn]; - } - if (valFn) { - val = valFn.call(this); - } - } - } - - - return val; - }, - - /** - * Returns an object with the configuration properties (and value) - * for the given attrubute. If attrName is not provided, returns the - * configuration properties for all attributes. - * - * @method _getAttrCfg - * @protected - * @param {String} name Optional. The attribute name. If not provided, the method will return the configuration for all attributes. - * @return {Object} The configuration properties for the given attribute, or all attributes. - */ - _getAttrCfg : function(name) { - var o, - data = this._state.data; - - if (data) { - o = {}; - - Y.each(data, function(cfg, cfgProp) { - if (name) { - if(name in cfg) { - o[cfgProp] = cfg[name]; - } - } else { - Y.each(cfg, function(attrCfg, attr) { - o[attr] = o[attr] || {}; - o[attr][cfgProp] = attrCfg; - }); - } - }); - } - - return o; - }, - - /** - * Utility method to set up initial attributes defined during construction, either through the constructor.ATTRS property, or explicitly passed in. - * - * @method _initAttrs - * @protected - * @param attrs {Object} The attributes to add during construction (passed through to addAttrs). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. - * @param values {Object} The initial attribute values to apply (passed through to addAttrs). These are not merged/cloned. The caller is responsible for isolating user provided values if required. - * @param lazy {boolean} Whether or not to add attributes lazily (passed through to addAttrs). - */ - _initAttrs : function(attrs, values, lazy) { - // ATTRS support for Node, which is not Base based - attrs = attrs || this.constructor.ATTRS; - - var Base = Y.Base; - if ( attrs && !(Base && Y.instanceOf(this, Base))) { - this.addAttrs(this._protectAttrs(attrs), values, lazy); - } - } - }; - - // Basic prototype augment - no lazy constructor invocation. - Y.mix(Attribute, EventTarget, false, null, 1); - - Y.Attribute = Attribute; - - -}, '3.4.0' ,{requires:['event-custom']}); -YUI.add('attribute-complex', function(Y) { - - /** - * Adds support for attribute providers to handle complex attributes in the constructor - * - * @module attribute - * @submodule attribute-complex - * @for Attribute - */ - - var O = Y.Object, - DOT = "."; - - Y.Attribute.Complex = function() {}; - Y.Attribute.Complex.prototype = { - - /** - * Utility method to split out simple attribute name/value pairs ("x") - * from complex attribute name/value pairs ("x.y.z"), so that complex - * attributes can be keyed by the top level attribute name. - * - * @method _normAttrVals - * @param {Object} valueHash An object with attribute name/value pairs - * - * @return {Object} An object literal with 2 properties - "simple" and "complex", - * containing simple and complex attribute values respectively keyed - * by the top level attribute name, or null, if valueHash is falsey. - * - * @private - */ - _normAttrVals : function(valueHash) { - var vals = {}, - subvals = {}, - path, - attr, - v, k; - - if (valueHash) { - for (k in valueHash) { - if (valueHash.hasOwnProperty(k)) { - if (k.indexOf(DOT) !== -1) { - path = k.split(DOT); - attr = path.shift(); - v = subvals[attr] = subvals[attr] || []; - v[v.length] = { - path : path, - value: valueHash[k] - }; - } else { - vals[k] = valueHash[k]; - } - } - } - return { simple:vals, complex:subvals }; - } else { - return null; - } - }, - - /** - * Returns the initial value of the given attribute from - * either the default configuration provided, or the - * over-ridden value if it exists in the set of initValues - * provided and the attribute is not read-only. - * - * @param {String} attr The name of the attribute - * @param {Object} cfg The attribute configuration object - * @param {Object} initValues The object with simple and complex attribute name/value pairs returned from _normAttrVals - * - * @return {Any} The initial value of the attribute. - * - * @method _getAttrInitVal - * @private - */ - _getAttrInitVal : function(attr, cfg, initValues) { - - var val = cfg.value, - valFn = cfg.valueFn, - simple, - complex, - i, - l, - path, - subval, - subvals; - - if (valFn) { - if (!valFn.call) { - valFn = this[valFn]; - } - if (valFn) { - val = valFn.call(this); - } - } - - if (!cfg.readOnly && initValues) { - - // Simple Attributes - simple = initValues.simple; - if (simple && simple.hasOwnProperty(attr)) { - val = simple[attr]; - } - - // Complex Attributes (complex values applied, after simple, incase both are set) - complex = initValues.complex; - if (complex && complex.hasOwnProperty(attr)) { - subvals = complex[attr]; - for (i = 0, l = subvals.length; i < l; ++i) { - path = subvals[i].path; - subval = subvals[i].value; - O.setValue(val, path, subval); - } - } - } - - return val; - } - }; - - Y.mix(Y.Attribute, Y.Attribute.Complex, true, null, 1); - - -}, '3.4.0' ,{requires:['attribute-base']}); - - -YUI.add('attribute', function(Y){}, '3.4.0' ,{use:['attribute-base', 'attribute-complex']}); - diff --git a/build/autocomplete/assets/autocomplete-list-core.css b/build/autocomplete/assets/autocomplete-list-core.css deleted file mode 100644 index a7db564ef5f..00000000000 --- a/build/autocomplete/assets/autocomplete-list-core.css +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -.yui3-aclist { - position: absolute; - z-index: 1; -} - -.yui3-aclist-hidden { visibility: hidden; } - -.yui3-aclist-aria { - /* Hide from sighted users, show to screen readers. */ - left: -9999px; - position: absolute; -} - -.yui3-aclist-list { - list-style: none; - margin: 0; - overflow: hidden; - padding: 0; -} - -.yui3-aclist-item { - cursor: pointer; - list-style: none; - padding: 2px 5px; -} - -.yui3-aclist-item-active { outline: #afafaf dotted thin; } diff --git a/build/autocomplete/assets/skins/sam/autocomplete-list-skin.css b/build/autocomplete/assets/skins/sam/autocomplete-list-skin.css deleted file mode 100644 index 8f89b852642..00000000000 --- a/build/autocomplete/assets/skins/sam/autocomplete-list-skin.css +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -.yui3-skin-sam .yui3-aclist-content { - -moz-box-shadow: 1px 1px 4px #888; - -webkit-box-shadow: 1px 1px 4px #888; - background: #fff; - border: 1px solid #afafaf; - box-shadow: 1px 1px 4px #888; -} - -.yui3-skin-sam .yui3-aclist-item-hover { - background: #bfdaff; -} - -.yui3-skin-sam .yui3-aclist-item-active { - background: #2647a0; - color: #fff; - outline: none; -} diff --git a/build/autocomplete/assets/skins/sam/autocomplete.css b/build/autocomplete/assets/skins/sam/autocomplete.css deleted file mode 100644 index 73d01d072bc..00000000000 --- a/build/autocomplete/assets/skins/sam/autocomplete.css +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -.yui3-aclist{position:absolute;z-index:1}.yui3-aclist-hidden{visibility:hidden}.yui3-aclist-aria{left:-9999px;position:absolute}.yui3-aclist-list{list-style:none;margin:0;overflow:hidden;padding:0}.yui3-aclist-item{cursor:pointer;list-style:none;padding:2px 5px}.yui3-aclist-item-active{outline:#afafaf dotted thin}.yui3-skin-sam .yui3-aclist-content{-moz-box-shadow:1px 1px 4px #888;-webkit-box-shadow:1px 1px 4px #888;background:#fff;border:1px solid #afafaf;box-shadow:1px 1px 4px #888}.yui3-skin-sam .yui3-aclist-item-hover{background:#bfdaff}.yui3-skin-sam .yui3-aclist-item-active{background:#2647a0;color:#fff;outline:0} diff --git a/build/autocomplete/autocomplete-debug.js b/build/autocomplete/autocomplete-debug.js deleted file mode 100644 index f9b96dab3a6..00000000000 --- a/build/autocomplete/autocomplete-debug.js +++ /dev/null @@ -1,3009 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('autocomplete-base', function(Y) { - -/** - * Provides automatic input completion or suggestions for text input fields and - * textareas. - * - * @module autocomplete - * @since 3.3.0 - */ - -/** - * Y.Base extension that provides core autocomplete logic (but no - * UI implementation) for a text input field or textarea. Must be mixed into a - * Y.Base-derived class to be useful. - * - * @module autocomplete - * @submodule autocomplete-base - */ - -/** - *

                                - * Extension that provides core autocomplete logic (but no UI implementation) - * for a text input field or textarea. - *

                                - * - *

                                - * The AutoCompleteBase class provides events and attributes that - * abstract away core autocomplete logic and configuration, but does not provide - * a widget implementation or suggestion UI. For a prepackaged autocomplete - * widget, see AutoCompleteList. - *

                                - * - *

                                - * This extension cannot be instantiated directly, since it doesn't provide an - * actual implementation. It's intended to be mixed into a - * Y.Base-based class or widget. - *

                                - * - *

                                - * Y.Widget-based example: - *

                                - * - *
                                - * YUI().use('autocomplete-base', 'widget', function (Y) {
                                - *   var MyAC = Y.Base.create('myAC', Y.Widget, [Y.AutoCompleteBase], {
                                - *     // Custom prototype methods and properties.
                                - *   }, {
                                - *     // Custom static methods and properties.
                                - *   });
                                - *  
                                - *   // Custom implementation code.
                                - * });
                                - * 
                                - * - *

                                - * Y.Base-based example: - *

                                - * - *
                                - * YUI().use('autocomplete-base', function (Y) {
                                - *   var MyAC = Y.Base.create('myAC', Y.Base, [Y.AutoCompleteBase], {
                                - *     initializer: function () {
                                - *       this._bindUIACBase();
                                - *       this._syncUIACBase();
                                - *     },
                                - *  
                                - *     // Custom prototype methods and properties.
                                - *   }, {
                                - *     // Custom static methods and properties.
                                - *   });
                                - *  
                                - *   // Custom implementation code.
                                - * });
                                - * 
                                - * - * @class AutoCompleteBase - */ - -var Escape = Y.Escape, - Lang = Y.Lang, - YArray = Y.Array, - YObject = Y.Object, - - isFunction = Lang.isFunction, - isString = Lang.isString, - trim = Lang.trim, - - INVALID_VALUE = Y.Attribute.INVALID_VALUE, - - _FUNCTION_VALIDATOR = '_functionValidator', - _SOURCE_SUCCESS = '_sourceSuccess', - - ALLOW_BROWSER_AC = 'allowBrowserAutocomplete', - INPUT_NODE = 'inputNode', - QUERY = 'query', - QUERY_DELIMITER = 'queryDelimiter', - REQUEST_TEMPLATE = 'requestTemplate', - RESULTS = 'results', - RESULT_LIST_LOCATOR = 'resultListLocator', - VALUE = 'value', - VALUE_CHANGE = 'valueChange', - - EVT_CLEAR = 'clear', - EVT_QUERY = QUERY, - EVT_RESULTS = RESULTS; - -function AutoCompleteBase() { - // AOP bindings. - Y.before(this._bindUIACBase, this, 'bindUI'); - Y.before(this._destructorACBase, this, 'destructor'); - Y.before(this._syncUIACBase, this, 'syncUI'); - - // -- Public Events -------------------------------------------------------- - - /** - * Fires after the query has been completely cleared or no longer meets the - * minimum query length requirement. - * - * @event clear - * @param {EventFacade} e Event facade with the following additional - * properties: - * - *
                                - *
                                prevVal (String)
                                - *
                                - * Value of the query before it was cleared. - *
                                - *
                                - * - * @preventable _defClearFn - */ - this.publish(EVT_CLEAR, { - defaultFn: this._defClearFn - }); - - /** - * Fires when the contents of the input field have changed and the input - * value meets the criteria necessary to generate an autocomplete query. - * - * @event query - * @param {EventFacade} e Event facade with the following additional - * properties: - * - *
                                - *
                                inputValue (String)
                                - *
                                - * Full contents of the text input field or textarea that generated - * the query. - *
                                - * - *
                                query (String)
                                - *
                                - * Autocomplete query. This is the string that will be used to - * request completion results. It may or may not be the same as - * inputValue. - *
                                - *
                                - * - * @preventable _defQueryFn - */ - this.publish(EVT_QUERY, { - defaultFn: this._defQueryFn - }); - - /** - * Fires after query results are received from the source. If - * no source has been set, this event will not fire. - * - * @event results - * @param {EventFacade} e Event facade with the following additional - * properties: - * - *
                                - *
                                data (Array|Object)
                                - *
                                - * Raw, unfiltered result data (if available). - *
                                - * - *
                                query (String)
                                - *
                                - * Query that generated these results. - *
                                - * - *
                                results (Array)
                                - *
                                - * Array of filtered, formatted, and highlighted results. Each item in - * the array is an object with the following properties: - * - *
                                - *
                                display (Node|HTMLElement|String)
                                - *
                                - * Formatted result HTML suitable for display to the user. If no - * custom formatter is set, this will be an HTML-escaped version of - * the string in the text property. - *
                                - * - *
                                highlighted (String)
                                - *
                                - * Highlighted (but not formatted) result text. This property will - * only be set if a highlighter is in use. - *
                                - * - *
                                raw (mixed)
                                - *
                                - * Raw, unformatted result in whatever form it was provided by the - * source. - *
                                - * - *
                                text (String)
                                - *
                                - * Plain text version of the result, suitable for being inserted - * into the value of a text input field or textarea when the result - * is selected by a user. This value is not HTML-escaped and should - * not be inserted into the page using innerHTML. - *
                                - *
                                - *
                                - *
                                - * - * @preventable _defResultsFn - */ - this.publish(EVT_RESULTS, { - defaultFn: this._defResultsFn - }); -} - -// -- Public Static Properties ------------------------------------------------- -AutoCompleteBase.ATTRS = { - /** - * Whether or not to enable the browser's built-in autocomplete - * functionality for input fields. - * - * @attribute allowBrowserAutocomplete - * @type Boolean - * @default false - */ - allowBrowserAutocomplete: { - value: false - }, - - /** - * When a queryDelimiter is set, trailing delimiters will - * automatically be stripped from the input value by default when the - * input node loses focus. Set this to true to allow trailing - * delimiters. - * - * @attribute allowTrailingDelimiter - * @type Boolean - * @default false - */ - allowTrailingDelimiter: { - value: false - }, - - /** - * Node to monitor for changes, which will generate query - * events when appropriate. May be either an input field or a textarea. - * - * @attribute inputNode - * @type Node|HTMLElement|String - * @writeonce - */ - inputNode: { - setter: Y.one, - writeOnce: 'initOnly' - }, - - /** - * Maximum number of results to return. A value of 0 or less - * will allow an unlimited number of results. - * - * @attribute maxResults - * @type Number - * @default 0 - */ - maxResults: { - value: 0 - }, - - /** - * Minimum number of characters that must be entered before a - * query event will be fired. A value of 0 - * allows empty queries; a negative value will effectively disable all - * query events. - * - * @attribute minQueryLength - * @type Number - * @default 1 - */ - minQueryLength: { - value: 1 - }, - - /** - *

                                - * Current query, or null if there is no current query. - *

                                - * - *

                                - * The query might not be the same as the current value of the input - * node, both for timing reasons (due to queryDelay) and - * because when one or more queryDelimiter separators are - * in use, only the last portion of the delimited input string will be - * used as the query value. - *

                                - * - * @attribute query - * @type String|null - * @default null - * @readonly - */ - query: { - readOnly: true, - value: null - }, - - /** - *

                                - * Number of milliseconds to delay after input before triggering a - * query event. If new input occurs before this delay is - * over, the previous input event will be ignored and a new delay will - * begin. - *

                                - * - *

                                - * This can be useful both to throttle queries to a remote data source - * and to avoid distracting the user by showing them less relevant - * results before they've paused their typing. - *

                                - * - * @attribute queryDelay - * @type Number - * @default 100 - */ - queryDelay: { - value: 100 - }, - - /** - * Query delimiter string. When a delimiter is configured, the input value - * will be split on the delimiter, and only the last portion will be used in - * autocomplete queries and updated when the query attribute is - * modified. - * - * @attribute queryDelimiter - * @type String|null - * @default null - */ - queryDelimiter: { - value: null - }, - - /** - *

                                - * Source request template. This can be a function that accepts a query as a - * parameter and returns a request string, or it can be a string containing - * the placeholder "{query}", which will be replaced with the actual - * URI-encoded query. In either case, the resulting string will be appended - * to the request URL when the source attribute is set to a - * remote DataSource, JSONP URL, or XHR URL (it will not be appended to YQL - * URLs). - *

                                - * - *

                                - * While requestTemplate may be set to either a function or - * a string, it will always be returned as a function that accepts a - * query argument and returns a string. - *

                                - * - * @attribute requestTemplate - * @type Function|String|null - * @default null - */ - requestTemplate: { - setter: '_setRequestTemplate', - value: null - }, - - /** - *

                                - * Array of local result filter functions. If provided, each filter - * will be called with two arguments when results are received: the query - * and an array of result objects. See the documentation for the - * results event for a list of the properties available on each - * result object. - *

                                - * - *

                                - * Each filter is expected to return a filtered or modified version of the - * results array, which will then be passed on to subsequent filters, then - * the resultHighlighter function (if set), then the - * resultFormatter function (if set), and finally to - * subscribers to the results event. - *

                                - * - *

                                - * If no source is set, result filters will not be called. - *

                                - * - *

                                - * Prepackaged result filters provided by the autocomplete-filters and - * autocomplete-filters-accentfold modules can be used by specifying the - * filter name as a string, such as 'phraseMatch' (assuming - * the necessary filters module is loaded). - *

                                - * - * @attribute resultFilters - * @type Array - * @default [] - */ - resultFilters: { - setter: '_setResultFilters', - value: [] - }, - - /** - *

                                - * Function which will be used to format results. If provided, this function - * will be called with two arguments after results have been received and - * filtered: the query and an array of result objects. The formatter is - * expected to return an array of HTML strings or Node instances containing - * the desired HTML for each result. - *

                                - * - *

                                - * See the documentation for the results event for a list of - * the properties available on each result object. - *

                                - * - *

                                - * If no source is set, the formatter will not be called. - *

                                - * - * @attribute resultFormatter - * @type Function|null - */ - resultFormatter: { - validator: _FUNCTION_VALIDATOR - }, - - /** - *

                                - * Function which will be used to highlight results. If provided, this - * function will be called with two arguments after results have been - * received and filtered: the query and an array of filtered result objects. - * The highlighter is expected to return an array of highlighted result - * text in the form of HTML strings. - *

                                - * - *

                                - * See the documentation for the results event for a list of - * the properties available on each result object. - *

                                - * - *

                                - * If no source is set, the highlighter will not be called. - *

                                - * - * @attribute resultHighlighter - * @type Function|null - */ - resultHighlighter: { - setter: '_setResultHighlighter' - }, - - /** - *

                                - * Locator that should be used to extract an array of results from a - * non-array response. - *

                                - * - *

                                - * By default, no locator is applied, and all responses are assumed to be - * arrays by default. If all responses are already arrays, you don't need to - * define a locator. - *

                                - * - *

                                - * The locator may be either a function (which will receive the raw response - * as an argument and must return an array) or a string representing an - * object path, such as "foo.bar.baz" (which would return the value of - * result.foo.bar.baz if the response is an object). - *

                                - * - *

                                - * While resultListLocator may be set to either a function or a - * string, it will always be returned as a function that accepts a response - * argument and returns an array. - *

                                - * - * @attribute resultListLocator - * @type Function|String|null - */ - resultListLocator: { - setter: '_setLocator' - }, - - /** - * Current results, or an empty array if there are no results. - * - * @attribute results - * @type Array - * @default [] - * @readonly - */ - results: { - readOnly: true, - value: [] - }, - - /** - *

                                - * Locator that should be used to extract a plain text string from a - * non-string result item. The resulting text value will typically be the - * value that ends up being inserted into an input field or textarea when - * the user of an autocomplete implementation selects a result. - *

                                - * - *

                                - * By default, no locator is applied, and all results are assumed to be - * plain text strings. If all results are already plain text strings, you - * don't need to define a locator. - *

                                - * - *

                                - * The locator may be either a function (which will receive the raw result - * as an argument and must return a string) or a string representing an - * object path, such as "foo.bar.baz" (which would return the value of - * result.foo.bar.baz if the result is an object). - *

                                - * - *

                                - * While resultTextLocator may be set to either a function or a - * string, it will always be returned as a function that accepts a result - * argument and returns a string. - *

                                - * - * @attribute resultTextLocator - * @type Function|String|null - */ - resultTextLocator: { - setter: '_setLocator' - }, - - /** - *

                                - * Source for autocomplete results. The following source types are - * supported: - *

                                - * - *
                                - *
                                Array
                                - *
                                - *

                                - * Example: ['first result', 'second result', 'etc'] - *

                                - * - *

                                - * The full array will be provided to any configured filters for each - * query. This is an easy way to create a fully client-side autocomplete - * implementation. - *

                                - *
                                - * - *
                                DataSource
                                - *
                                - *

                                - * A DataSource instance or other object that provides a - * DataSource-like sendRequest method. See the - * DataSource documentation for details. - *

                                - *
                                - * - *
                                Function
                                - *
                                - *

                                - * Example (synchronous): function (query) { return ['foo', 'bar']; }
                                - Example (async): function (query, callback) { callback(['foo', 'bar']); } - *

                                - * - *

                                - * A function source will be called with the current query and a - * callback function as parameters, and should either return an array of - * results (for synchronous operation) or return nothing and pass an - * array of results to the provided callback (for asynchronous - * operation). - *

                                - *
                                - * - *
                                Object
                                - *
                                - *

                                - * Example: {foo: ['foo result 1', 'foo result 2'], bar: ['bar result']} - *

                                - * - *

                                - * An object will be treated as a query hashmap. If a property on the - * object matches the current query, the value of that property will be - * used as the response. - *

                                - * - *

                                - * The response is assumed to be an array of results by default. If the - * response is not an array, provide a resultListLocator to - * process the response and return an array. - *

                                - *
                                - *
                                - * - *

                                - * If the optional autocomplete-sources module is loaded, then - * the following additional source types will be supported as well: - *

                                - * - *
                                - *
                                <select> Node
                                - *
                                - *

                                - * You may provide a YUI Node instance wrapping a <select> - * element, and the options in the list will be used as results. You - * will also need to specify a resultTextLocator of 'text' - * or 'value', depending on what you want to use as the text of the - * result. - *

                                - * - *

                                - * Each result will be an object with the following properties: - *

                                - * - *
                                - *
                                html (String)
                                - *
                                - *

                                HTML content of the <option> element.

                                - *
                                - * - *
                                index (Number)
                                - *
                                - *

                                Index of the <option> element in the list.

                                - *
                                - * - *
                                node (Y.Node)
                                - *
                                - *

                                Node instance referring to the original <option> element.

                                - *
                                - * - *
                                selected (Boolean)
                                - *
                                - *

                                Whether or not this item is currently selected in the - * <select> list.

                                - *
                                - * - *
                                text (String)
                                - *
                                - *

                                Text content of the <option> element.

                                - *
                                - * - *
                                value (String)
                                - *
                                - *

                                Value of the <option> element.

                                - *
                                - *
                                - *
                                - * - *
                                String (JSONP URL)
                                - *
                                - *

                                - * Example: 'http://example.com/search?q={query}&callback={callback}' - *

                                - * - *

                                - * If a URL with a {callback} placeholder is provided, it - * will be used to make a JSONP request. The {query} - * placeholder will be replaced with the current query, and the - * {callback} placeholder will be replaced with an - * internally-generated JSONP callback name. Both placeholders must - * appear in the URL, or the request will fail. An optional - * {maxResults} placeholder may also be provided, and will - * be replaced with the value of the maxResults attribute (or 1000 if - * the maxResults attribute is 0 or less). - *

                                - * - *

                                - * The response is assumed to be an array of results by default. If the - * response is not an array, provide a resultListLocator to - * process the response and return an array. - *

                                - * - *

                                - * The jsonp module must be loaded in order for - * JSONP URL sources to work. If the jsonp module - * is not already loaded, it will be loaded on demand if possible. - *

                                - *
                                - * - *
                                String (XHR URL)
                                - *
                                - *

                                - * Example: 'http://example.com/search?q={query}' - *

                                - * - *

                                - * If a URL without a {callback} placeholder is provided, - * it will be used to make a same-origin XHR request. The - * {query} placeholder will be replaced with the current - * query. An optional {maxResults} placeholder may also be - * provided, and will be replaced with the value of the maxResults - * attribute (or 1000 if the maxResults attribute is 0 or less). - *

                                - * - *

                                - * The response is assumed to be a JSON array of results by default. If - * the response is a JSON object and not an array, provide a - * resultListLocator to process the response and return an - * array. If the response is in some form other than JSON, you will - * need to use a custom DataSource instance as the source. - *

                                - * - *

                                - * The io-base and json-parse modules - * must be loaded in order for XHR URL sources to work. If - * these modules are not already loaded, they will be loaded on demand - * if possible. - *

                                - *
                                - * - *
                                String (YQL query)
                                - *
                                - *

                                - * Example: 'select * from search.suggest where query="{query}"' - *

                                - * - *

                                - * If a YQL query is provided, it will be used to make a YQL request. - * The {query} placeholder will be replaced with the - * current autocomplete query. This placeholder must appear in the YQL - * query, or the request will fail. An optional - * {maxResults} placeholder may also be provided, and will - * be replaced with the value of the maxResults attribute (or 1000 if - * the maxResults attribute is 0 or less). - *

                                - * - *

                                - * The yql module must be loaded in order for YQL - * sources to work. If the yql module is not - * already loaded, it will be loaded on demand if possible. - *

                                - *
                                - *
                                - * - *

                                - * As an alternative to providing a source, you could simply listen for - * query events and handle them any way you see fit. Providing - * a source is optional, but will usually be simpler. - *

                                - * - * @attribute source - * @type Array|DataSource|Function|Node|Object|String|null - */ - source: { - setter: '_setSource' - }, - - /** - *

                                - * May be used to force a specific source type, overriding the automatic - * source type detection. It should almost never be necessary to do this, - * but as they taught us in the Boy Scouts, one should always be prepared, - * so it's here if you need it. Be warned that if you set this attribute and - * something breaks, it's your own fault. - *

                                - * - *

                                - * Supported sourceType values are: 'array', 'datasource', - * 'function', and 'object'. - *

                                - * - *

                                - * If the autocomplete-sources module is loaded, the following - * additional source types are supported: 'io', 'jsonp', 'select', - * 'string', 'yql' - *

                                - * - * @attribute sourceType - * @type String - */ - sourceType: { - value: null - }, - - /** - * If the inputNode specified at instantiation time has a - * node-tokeninput plugin attached to it, this attribute will - * be a reference to the Y.Plugin.TokenInput instance. - * - * @attribute tokenInput - * @type Plugin.TokenInput - * @readonly - */ - tokenInput: { - readOnly: true - }, - - /** - * Current value of the input node. - * - * @attribute value - * @type String - * @default '' - */ - value: { - // Why duplicate this._inputNode.get('value')? Because we need a - // reliable way to track the source of value changes. We want to perform - // completion when the user changes the value, but not when we change - // the value. - value: '' - } -}; - -AutoCompleteBase.CSS_PREFIX = 'ac'; -AutoCompleteBase.UI_SRC = (Y.Widget && Y.Widget.UI_SRC) || 'ui'; - -/** - * Mapping of built-in source types to their setter functions. DataSource - * instances and DataSource-like objects are handled natively, so are not - * mapped here. - * - * @property SOURCE_TYPES - * @type {Object} - * @static - */ -AutoCompleteBase.SOURCE_TYPES = { - array : '_createArraySource', - 'function': '_createFunctionSource', - object : '_createObjectSource' -}; - -AutoCompleteBase.prototype = { - // -- Public Prototype Methods --------------------------------------------- - - /** - *

                                - * Sends a request to the configured source. If no source is configured, - * this method won't do anything. - *

                                - * - *

                                - * Usually there's no reason to call this method manually; it will be - * called automatically when user input causes a query event to - * be fired. The only time you'll need to call this method manually is if - * you want to force a request to be sent when no user input has occurred. - *

                                - * - * @method sendRequest - * @param {String} query (optional) Query to send. If specified, the - * query attribute will be set to this query. If not - * specified, the current value of the query attribute will - * be used. - * @param {Function} requestTemplate (optional) Request template function. - * If not specified, the current value of the requestTemplate - * attribute will be used. - * @chainable - */ - sendRequest: function (query, requestTemplate) { - var request, - source = this.get('source'); - - if (query || query === '') { - this._set(QUERY, query); - } else { - query = this.get(QUERY); - } - - if (source) { - if (!requestTemplate) { - requestTemplate = this.get(REQUEST_TEMPLATE); - } - - request = requestTemplate ? requestTemplate(query) : query; - - Y.log('sendRequest: ' + request, 'info', 'autocomplete-base'); - - source.sendRequest({ - query : query, - request: request, - - callback: { - success: Y.bind(this._onResponse, this, query) - } - }); - } - - return this; - }, - - // -- Protected Lifecycle Methods ------------------------------------------ - - /** - * Attaches event listeners and behaviors. - * - * @method _bindUIACBase - * @protected - */ - _bindUIACBase: function () { - var inputNode = this.get(INPUT_NODE), - tokenInput = inputNode && inputNode.tokenInput; - - // If the inputNode has a node-tokeninput plugin attached, bind to the - // plugin's inputNode instead. - if (tokenInput) { - inputNode = tokenInput.get(INPUT_NODE); - this._set('tokenInput', tokenInput); - } - - if (!inputNode) { - Y.error('No inputNode specified.'); - return; - } - - this._inputNode = inputNode; - - this._acBaseEvents = new Y.EventHandle([ - // This is the valueChange event on the inputNode, provided by the - // event-valuechange module, not our own valueChange. - inputNode.on(VALUE_CHANGE, this._onInputValueChange, this), - inputNode.on('blur', this._onInputBlur, this), - - this.after(ALLOW_BROWSER_AC + 'Change', this._syncBrowserAutocomplete), - this.after('sourceTypeChange', this._afterSourceTypeChange), - this.after(VALUE_CHANGE, this._afterValueChange) - ]); - }, - - /** - * Detaches AutoCompleteBase event listeners. - * - * @method _destructorACBase - * @protected - */ - _destructorACBase: function () { - this._acBaseEvents.detach(); - }, - - /** - * Synchronizes the UI state of the inputNode. - * - * @method _syncUIACBase - * @protected - */ - _syncUIACBase: function () { - this._syncBrowserAutocomplete(); - this.set(VALUE, this.get(INPUT_NODE).get(VALUE)); - }, - - // -- Protected Prototype Methods ------------------------------------------ - - /** - * Creates a DataSource-like object that simply returns the specified array - * as a response. See the source attribute for more details. - * - * @method _createArraySource - * @param {Array} source - * @return {Object} DataSource-like object. - * @protected - */ - _createArraySource: function (source) { - var that = this; - - return { - type: 'array', - sendRequest: function (request) { - that[_SOURCE_SUCCESS](source.concat(), request); - } - }; - }, - - /** - * Creates a DataSource-like object that passes the query to a - * custom-defined function, which is expected to call the provided callback - * with an array of results. See the source attribute for more - * details. - * - * @method _createFunctionSource - * @param {Function} source Function that accepts a query and a callback as - * parameters, and calls the callback with an array of results. - * @return {Object} DataSource-like object. - * @protected - */ - _createFunctionSource: function (source) { - var that = this; - - return { - type: 'function', - sendRequest: function (request) { - var value; - - function afterResults(results) { - that[_SOURCE_SUCCESS](results || [], request); - } - - // Allow both synchronous and asynchronous functions. If we get - // a truthy return value, assume the function is synchronous. - if ((value = source(request.query, afterResults))) { - afterResults(value); - } - } - }; - }, - - /** - * Creates a DataSource-like object that looks up queries as properties on - * the specified object, and returns the found value (if any) as a response. - * See the source attribute for more details. - * - * @method _createObjectSource - * @param {Object} source - * @return {Object} DataSource-like object. - * @protected - */ - _createObjectSource: function (source) { - var that = this; - - return { - type: 'object', - sendRequest: function (request) { - var query = request.query; - - that[_SOURCE_SUCCESS]( - YObject.owns(source, query) ? source[query] : [], - request - ); - } - }; - }, - - /** - * Returns true if value is either a function or - * null. - * - * @method _functionValidator - * @param {Function|null} value Value to validate. - * @protected - */ - _functionValidator: function (value) { - return value === null || isFunction(value); - }, - - /** - * Faster and safer alternative to Y.Object.getValue(). Doesn't bother - * casting the path to an array (since we already know it's an array) and - * doesn't throw an error if a value in the middle of the object hierarchy - * is neither undefined nor an object. - * - * @method _getObjectValue - * @param {Object} obj - * @param {Array} path - * @return {mixed} Located value, or undefined if the value was - * not found at the specified path. - * @protected - */ - _getObjectValue: function (obj, path) { - if (!obj) { - return; - } - - for (var i = 0, len = path.length; obj && i < len; i++) { - obj = obj[path[i]]; - } - - return obj; - }, - - /** - * Parses result responses, performs filtering and highlighting, and fires - * the results event. - * - * @method _parseResponse - * @param {String} query Query that generated these results. - * @param {Object} response Response containing results. - * @param {Object} data Raw response data. - * @protected - */ - _parseResponse: function (query, response, data) { - var facade = { - data : data, - query : query, - results: [] - }, - - listLocator = this.get(RESULT_LIST_LOCATOR), - results = [], - unfiltered = response && response.results, - - filters, - formatted, - formatter, - highlighted, - highlighter, - i, - len, - maxResults, - result, - text, - textLocator; - - if (unfiltered && listLocator) { - unfiltered = listLocator(unfiltered); - } - - if (unfiltered && unfiltered.length) { - filters = this.get('resultFilters'); - textLocator = this.get('resultTextLocator'); - - // Create a lightweight result object for each result to make them - // easier to work with. The various properties on the object - // represent different formats of the result, and will be populated - // as we go. - for (i = 0, len = unfiltered.length; i < len; ++i) { - result = unfiltered[i]; - text = textLocator ? textLocator(result) : result.toString(); - - results.push({ - display: Escape.html(text), - raw : result, - text : text - }); - } - - // Run the results through all configured result filters. Each - // filter returns an array of (potentially fewer) result objects, - // which is then passed to the next filter, and so on. - for (i = 0, len = filters.length; i < len; ++i) { - results = filters[i](query, results.concat()); - - if (!results) { - Y.log("Filter didn't return anything.", 'warn', 'autocomplete-base'); - return; - } - - if (!results.length) { - break; - } - } - - if (results.length) { - formatter = this.get('resultFormatter'); - highlighter = this.get('resultHighlighter'); - maxResults = this.get('maxResults'); - - // If maxResults is set and greater than 0, limit the number of - // results. - if (maxResults && maxResults > 0 && - results.length > maxResults) { - results.length = maxResults; - } - - // Run the results through the configured highlighter (if any). - // The highlighter returns an array of highlighted strings (not - // an array of result objects), and these strings are then added - // to each result object. - if (highlighter) { - highlighted = highlighter(query, results.concat()); - - if (!highlighted) { - Y.log("Highlighter didn't return anything.", 'warn', 'autocomplete-base'); - return; - } - - for (i = 0, len = highlighted.length; i < len; ++i) { - result = results[i]; - result.highlighted = highlighted[i]; - result.display = result.highlighted; - } - } - - // Run the results through the configured formatter (if any) to - // produce the final formatted results. The formatter returns an - // array of strings or Node instances (not an array of result - // objects), and these strings/Nodes are then added to each - // result object. - if (formatter) { - formatted = formatter(query, results.concat()); - - if (!formatted) { - Y.log("Formatter didn't return anything.", 'warn', 'autocomplete-base'); - return; - } - - for (i = 0, len = formatted.length; i < len; ++i) { - results[i].display = formatted[i]; - } - } - } - } - - facade.results = results; - this.fire(EVT_RESULTS, facade); - }, - - /** - *

                                - * Returns the query portion of the specified input value, or - * null if there is no suitable query within the input value. - *

                                - * - *

                                - * If a query delimiter is defined, the query will be the last delimited - * part of of the string. - *

                                - * - * @method _parseValue - * @param {String} value Input value from which to extract the query. - * @return {String|null} query - * @protected - */ - _parseValue: function (value) { - var delim = this.get(QUERY_DELIMITER); - - if (delim) { - value = value.split(delim); - value = value[value.length - 1]; - } - - return Lang.trimLeft(value); - }, - - /** - * Setter for locator attributes. - * - * @method _setLocator - * @param {Function|String|null} locator - * @return {Function|null} - * @protected - */ - _setLocator: function (locator) { - if (this[_FUNCTION_VALIDATOR](locator)) { - return locator; - } - - var that = this; - - locator = locator.toString().split('.'); - - return function (result) { - return result && that._getObjectValue(result, locator); - }; - }, - - /** - * Setter for the requestTemplate attribute. - * - * @method _setRequestTemplate - * @param {Function|String|null} template - * @return {Function|null} - * @protected - */ - _setRequestTemplate: function (template) { - if (this[_FUNCTION_VALIDATOR](template)) { - return template; - } - - template = template.toString(); - - return function (query) { - return Lang.sub(template, {query: encodeURIComponent(query)}); - }; - }, - - /** - * Setter for the resultFilters attribute. - * - * @method _setResultFilters - * @param {Array|Function|String|null} filters null, a filter - * function, an array of filter functions, or a string or array of strings - * representing the names of methods on - * Y.AutoCompleteFilters. - * @return {Array} Array of filter functions (empty if filters is - * null). - * @protected - */ - _setResultFilters: function (filters) { - var acFilters, getFilterFunction; - - if (filters === null) { - return []; - } - - acFilters = Y.AutoCompleteFilters; - - getFilterFunction = function (filter) { - if (isFunction(filter)) { - return filter; - } - - if (isString(filter) && acFilters && - isFunction(acFilters[filter])) { - return acFilters[filter]; - } - - return false; - }; - - if (Lang.isArray(filters)) { - filters = YArray.map(filters, getFilterFunction); - return YArray.every(filters, function (f) { return !!f; }) ? - filters : INVALID_VALUE; - } else { - filters = getFilterFunction(filters); - return filters ? [filters] : INVALID_VALUE; - } - }, - - /** - * Setter for the resultHighlighter attribute. - * - * @method _setResultHighlighter - * @param {Function|String|null} highlighter null, a - * highlighter function, or a string representing the name of a method on - * Y.AutoCompleteHighlighters. - * @return {Function|null} - * @protected - */ - _setResultHighlighter: function (highlighter) { - var acHighlighters; - - if (this._functionValidator(highlighter)) { - return highlighter; - } - - acHighlighters = Y.AutoCompleteHighlighters; - - if (isString(highlighter) && acHighlighters && - isFunction(acHighlighters[highlighter])) { - return acHighlighters[highlighter]; - } - - return INVALID_VALUE; - }, - - /** - * Setter for the source attribute. Returns a DataSource or - * a DataSource-like object depending on the type of source and/or - * the value of the sourceType attribute. - * - * @method _setSource - * @param {mixed} source AutoComplete source. See the source - * attribute for details. - * @return {DataSource|Object} - * @protected - */ - _setSource: function (source) { - var sourceType = this.get('sourceType') || Lang.type(source), - sourceSetter; - - if ((source && isFunction(source.sendRequest)) - || source === null - || sourceType === 'datasource') { - - // Quacks like a DataSource instance (or null). Make it so! - this._rawSource = source; - return source; - } - - // See if there's a registered setter for this source type. - if ((sourceSetter = AutoCompleteBase.SOURCE_TYPES[sourceType])) { - this._rawSource = source; - return Lang.isString(sourceSetter) ? - this[sourceSetter](source) : sourceSetter(source); - } - - Y.error("Unsupported source type '" + sourceType + "'. Maybe autocomplete-sources isn't loaded?"); - return INVALID_VALUE; - }, - - /** - * Shared success callback for non-DataSource sources. - * - * @method _sourceSuccess - * @param {mixed} data Response data. - * @param {Object} request Request object. - * @protected - */ - _sourceSuccess: function (data, request) { - request.callback.success({ - data: data, - response: {results: data} - }); - }, - - /** - * Synchronizes the UI state of the allowBrowserAutocomplete - * attribute. - * - * @method _syncBrowserAutocomplete - * @protected - */ - _syncBrowserAutocomplete: function () { - var inputNode = this.get(INPUT_NODE); - - if (inputNode.get('nodeName').toLowerCase() === 'input') { - inputNode.setAttribute('autocomplete', - this.get(ALLOW_BROWSER_AC) ? 'on' : 'off'); - } - }, - - /** - *

                                - * Updates the query portion of the value attribute. - *

                                - * - *

                                - * If a query delimiter is defined, the last delimited portion of the input - * value will be replaced with the specified value. - *

                                - * - * @method _updateValue - * @param {String} newVal New value. - * @protected - */ - _updateValue: function (newVal) { - var delim = this.get(QUERY_DELIMITER), - insertDelim, - len, - prevVal; - - newVal = Lang.trimLeft(newVal); - - if (delim) { - insertDelim = trim(delim); // so we don't double up on spaces - prevVal = YArray.map(trim(this.get(VALUE)).split(delim), trim); - len = prevVal.length; - - if (len > 1) { - prevVal[len - 1] = newVal; - newVal = prevVal.join(insertDelim + ' '); - } - - newVal = newVal + insertDelim + ' '; - } - - this.set(VALUE, newVal); - }, - - // -- Protected Event Handlers --------------------------------------------- - - /** - * Updates the current source based on the new - * sourceType to ensure that the two attributes don't get out - * of sync when they're changed separately. - * - * @method _afterSourceTypeChange - * @param {EventFacade} e - * @protected - */ - _afterSourceTypeChange: function (e) { - if (this._rawSource) { - this.set('source', this._rawSource); - } - }, - - /** - * Handles change events for the value attribute. - * - * @method _afterValueChange - * @param {EventFacade} e - * @protected - */ - _afterValueChange: function (e) { - var delay, - fire, - minQueryLength, - newVal = e.newVal, - query, - that; - - // Don't query on value changes that didn't come from the user. - if (e.src !== AutoCompleteBase.UI_SRC) { - this._inputNode.set(VALUE, newVal); - return; - } - - Y.log('valueChange: new: "' + newVal + '"; old: "' + e.prevVal + '"', 'info', 'autocomplete-base'); - - minQueryLength = this.get('minQueryLength'); - query = this._parseValue(newVal) || ''; - - if (minQueryLength >= 0 && query.length >= minQueryLength) { - delay = this.get('queryDelay'); - that = this; - - fire = function () { - that.fire(EVT_QUERY, { - inputValue: newVal, - query : query - }); - }; - - if (delay) { - clearTimeout(this._delay); - this._delay = setTimeout(fire, delay); - } else { - fire(); - } - } else { - clearTimeout(this._delay); - - this.fire(EVT_CLEAR, { - prevVal: e.prevVal ? this._parseValue(e.prevVal) : null - }); - } - }, - - /** - * Handles blur events on the input node. - * - * @method _onInputBlur - * @param {EventFacade} e - * @protected - */ - _onInputBlur: function (e) { - var delim = this.get(QUERY_DELIMITER), - delimPos, - newVal, - value; - - // If a query delimiter is set and the input's value contains one or - // more trailing delimiters, strip them. - if (delim && !this.get('allowTrailingDelimiter')) { - delim = Lang.trimRight(delim); - value = newVal = this._inputNode.get(VALUE); - - if (delim) { - while ((newVal = Lang.trimRight(newVal)) && - (delimPos = newVal.length - delim.length) && - newVal.lastIndexOf(delim) === delimPos) { - - newVal = newVal.substring(0, delimPos); - } - } else { - // Delimiter is one or more space characters, so just trim the - // value. - newVal = Lang.trimRight(newVal); - } - - if (newVal !== value) { - this.set(VALUE, newVal); - } - } - }, - - /** - * Handles valueChange events on the input node and fires a - * query event when the input value meets the configured - * criteria. - * - * @method _onInputValueChange - * @param {EventFacade} e - * @protected - */ - _onInputValueChange: function (e) { - var newVal = e.newVal; - - // Don't query if the internal value is the same as the new value - // reported by valueChange. - if (newVal === this.get(VALUE)) { - return; - } - - this.set(VALUE, newVal, {src: AutoCompleteBase.UI_SRC}); - }, - - /** - * Handles source responses and fires the results event. - * - * @method _onResponse - * @param {EventFacade} e - * @protected - */ - _onResponse: function (query, e) { - // Ignore stale responses that aren't for the current query. - if (query === this.get(QUERY)) { - this._parseResponse(query, e.response, e.data); - } - }, - - // -- Protected Default Event Handlers ------------------------------------- - - /** - * Default clear event handler. Sets the results - * property to an empty array and query to null. - * - * @method _defClearFn - * @protected - */ - _defClearFn: function () { - this._set(QUERY, null); - this._set(RESULTS, []); - }, - - /** - * Default query event handler. Sets the query - * property and sends a request to the source if one is configured. - * - * @method _defQueryFn - * @param {EventFacade} e - * @protected - */ - _defQueryFn: function (e) { - var query = e.query; - - Y.log('query: "' + query + '"; inputValue: "' + e.inputValue + '"', 'info', 'autocomplete-base'); - this.sendRequest(query); // sendRequest will set the 'query' attribute - }, - - /** - * Default results event handler. Sets the results - * property to the latest results. - * - * @method _defResultsFn - * @param {EventFacade} e - * @protected - */ - _defResultsFn: function (e) { - Y.log('results: ' + Y.dump(e.results), 'info', 'autocomplete-base'); - this._set(RESULTS, e[RESULTS]); - } -}; - -Y.AutoCompleteBase = AutoCompleteBase; - - -}, '3.4.0' ,{optional:['autocomplete-sources'], requires:['array-extras', 'base-build', 'escape', 'event-valuechange', 'node-base']}); -YUI.add('autocomplete-sources', function(Y) { - -/** - * Mixes support for JSONP and YQL result sources into AutoCompleteBase. - * - * @module autocomplete - * @submodule autocomplete-sources - */ - -var ACBase = Y.AutoCompleteBase, - Lang = Y.Lang, - - _SOURCE_SUCCESS = '_sourceSuccess', - - MAX_RESULTS = 'maxResults', - REQUEST_TEMPLATE = 'requestTemplate', - RESULT_LIST_LOCATOR = 'resultListLocator'; - -// Add prototype properties and methods to AutoCompleteBase. -Y.mix(ACBase.prototype, { - /** - * Regular expression used to determine whether a String source is a YQL - * query. - * - * @property _YQL_SOURCE_REGEX - * @type RegExp - * @protected - * @for AutoCompleteBase - */ - _YQL_SOURCE_REGEX: /^(?:select|set|use)\s+/i, - - /** - * Runs before AutoCompleteBase's _createObjectSource() method - * and augments it to support additional object-based source types. - * - * @method _beforeCreateObjectSource - * @param {String} source - * @protected - * @for AutoCompleteBase - */ - _beforeCreateObjectSource: function (source) { - // If the object is a node, use the options as the result - // source. - if (source instanceof Y.Node && - source.get('nodeName').toLowerCase() === 'select') { - - return this._createSelectSource(source); - } - - // If the object is a JSONPRequest instance, try to use it as a JSONP - // source. - if (Y.JSONPRequest && source instanceof Y.JSONPRequest) { - return this._createJSONPSource(source); - } - - // Fall back to a basic object source. - return this._createObjectSource(source); - }, - - /** - * Creates a DataSource-like object that uses Y.io as a source. - * See the source attribute for more details. - * - * @method _createIOSource - * @param {String} source URL. - * @return {Object} DataSource-like object. - * @protected - * @for AutoCompleteBase - */ - _createIOSource: function (source) { - var cache = {}, - ioSource = {type: 'io'}, - that = this, - ioRequest, lastRequest, loading; - - // Private internal _sendRequest method that will be assigned to - // ioSource.sendRequest once io-base and json-parse are available. - function _sendRequest(request) { - var query = request.query; - - // Return immediately on a cached response. - if (cache[query]) { - that[_SOURCE_SUCCESS](cache[query], request); - return; - } - - // Cancel any outstanding requests. - if (ioRequest && ioRequest.isInProgress()) { - ioRequest.abort(); - } - - ioRequest = Y.io(that._getXHRUrl(source, query), { - on: { - success: function (tid, response) { - var data; - - try { - data = Y.JSON.parse(response.responseText); - } catch (ex) { - Y.error('JSON parse error', ex); - } - - if (data) { - cache[query] = data; - that[_SOURCE_SUCCESS](data, request); - } - } - } - }); - } - - ioSource.sendRequest = function (request) { - // Keep track of the most recent request in case there are multiple - // requests while we're waiting for the IO module to load. Only the - // most recent request will be sent. - lastRequest = request; - - if (loading) { return; } - - loading = true; - - // Lazy-load the io-base and json-parse modules if necessary, - // then overwrite the sendRequest method to bypass this check in - // the future. - Y.use('io-base', 'json-parse', function () { - ioSource.sendRequest = _sendRequest; - _sendRequest(lastRequest); - }); - }; - - return ioSource; - }, - - /** - * Creates a DataSource-like object that uses the specified JSONPRequest - * instance as a source. See the source attribute for more - * details. - * - * @method _createJSONPSource - * @param {JSONPRequest|String} source URL string or JSONPRequest instance. - * @return {Object} DataSource-like object. - * @protected - * @for AutoCompleteBase - */ - _createJSONPSource: function (source) { - var cache = {}, - jsonpSource = {type: 'jsonp'}, - that = this, - lastRequest, loading; - - function _sendRequest(request) { - var query = request.query; - - if (cache[query]) { - that[_SOURCE_SUCCESS](cache[query], request); - return; - } - - // Hack alert: JSONPRequest currently doesn't support - // per-request callbacks, so we're reaching into the protected - // _config object to make it happen. - // - // This limitation is mentioned in the following JSONP - // enhancement ticket: - // - // http://yuilibrary.com/projects/yui3/ticket/2529371 - source._config.on.success = function (data) { - cache[query] = data; - that[_SOURCE_SUCCESS](data, request); - }; - - source.send(query); - } - - jsonpSource.sendRequest = function (request) { - // Keep track of the most recent request in case there are multiple - // requests while we're waiting for the JSONP module to load. Only - // the most recent request will be sent. - lastRequest = request; - - if (loading) { return; } - - loading = true; - - // Lazy-load the JSONP module if necessary, then overwrite the - // sendRequest method to bypass this check in the future. - Y.use('jsonp', function () { - // Turn the source into a JSONPRequest instance if it isn't - // one already. - if (!(source instanceof Y.JSONPRequest)) { - source = new Y.JSONPRequest(source, { - format: Y.bind(that._jsonpFormatter, that) - }); - } - - jsonpSource.sendRequest = _sendRequest; - _sendRequest(lastRequest); - }); - }; - - return jsonpSource; - }, - - /** - * Creates a DataSource-like object that uses the specified <select> - * node as a source. - * - * @method _createSelectSource - * @param {Node} source YUI Node instance wrapping a <select> node. - * @return {Object} DataSource-like object. - * @protected - * @for AutoCompleteBase - */ - _createSelectSource: function (source) { - var that = this; - - return { - type: 'select', - sendRequest: function (request) { - var options = []; - - source.get('options').each(function (option) { - options.push({ - html : option.get('innerHTML'), - index : option.get('index'), - node : option, - selected: option.get('selected'), - text : option.get('text'), - value : option.get('value') - }); - }); - - that[_SOURCE_SUCCESS](options, request); - } - }; - }, - - /** - * Creates a DataSource-like object that calls the specified URL or - * executes the specified YQL query for results. If the string starts - * with "select ", "use ", or "set " (case-insensitive), it's assumed to be - * a YQL query; otherwise, it's assumed to be a URL (which may be absolute - * or relative). URLs containing a "{callback}" placeholder are assumed to - * be JSONP URLs; all others will use XHR. See the source - * attribute for more details. - * - * @method _createStringSource - * @param {String} source URL or YQL query. - * @return {Object} DataSource-like object. - * @protected - * @for AutoCompleteBase - */ - _createStringSource: function (source) { - if (this._YQL_SOURCE_REGEX.test(source)) { - // Looks like a YQL query. - return this._createYQLSource(source); - } else if (source.indexOf('{callback}') !== -1) { - // Contains a {callback} param and isn't a YQL query, so it must be - // JSONP. - return this._createJSONPSource(source); - } else { - // Not a YQL query or JSONP, so we'll assume it's an XHR URL. - return this._createIOSource(source); - } - }, - - /** - * Creates a DataSource-like object that uses the specified YQL query string - * to create a YQL-based source. See the source attribute for - * details. If no resultListLocator is defined, this method - * will set a best-guess locator that might work for many typical YQL - * queries. - * - * @method _createYQLSource - * @param {String} source YQL query. - * @return {Object} DataSource-like object. - * @protected - * @for AutoCompleteBase - */ - _createYQLSource: function (source) { - var cache = {}, - yqlSource = {type: 'yql'}, - that = this, - lastRequest, loading, yqlRequest; - - if (!this.get(RESULT_LIST_LOCATOR)) { - this.set(RESULT_LIST_LOCATOR, this._defaultYQLLocator); - } - - function _sendRequest(request) { - var query = request.query, - callback, env, maxResults, opts, yqlQuery; - - if (cache[query]) { - that[_SOURCE_SUCCESS](cache[query], request); - return; - } - - callback = function (data) { - cache[query] = data; - that[_SOURCE_SUCCESS](data, request); - }; - - env = that.get('yqlEnv'); - maxResults = that.get(MAX_RESULTS); - - opts = {proto: that.get('yqlProtocol')}; - - yqlQuery = Lang.sub(source, { - maxResults: maxResults > 0 ? maxResults : 1000, - query : query - }); - - // Only create a new YQLRequest instance if this is the - // first request. For subsequent requests, we'll reuse the - // original instance. - if (yqlRequest) { - yqlRequest._callback = callback; - yqlRequest._opts = opts; - yqlRequest._params.q = yqlQuery; - - if (env) { - yqlRequest._params.env = env; - } - } else { - yqlRequest = new Y.YQLRequest(yqlQuery, { - on: {success: callback}, - allowCache: false // temp workaround until JSONP has per-URL callback proxies - }, env ? {env: env} : null, opts); - } - - yqlRequest.send(); - } - - yqlSource.sendRequest = function (request) { - // Keep track of the most recent request in case there are multiple - // requests while we're waiting for the YQL module to load. Only the - // most recent request will be sent. - lastRequest = request; - - if (!loading) { - // Lazy-load the YQL module if necessary, then overwrite the - // sendRequest method to bypass this check in the future. - loading = true; - - Y.use('yql', function () { - yqlSource.sendRequest = _sendRequest; - _sendRequest(lastRequest); - }); - } - }; - - return yqlSource; - }, - - /** - * Default resultListLocator used when a string-based YQL source is set and - * the implementer hasn't already specified one. - * - * @method _defaultYQLLocator - * @param {Object} response YQL response object. - * @return {Array} - * @protected - * @for AutoCompleteBase - */ - _defaultYQLLocator: function (response) { - var results = response && response.query && response.query.results, - values; - - if (results && Lang.isObject(results)) { - // If there's only a single value on YQL's results object, that - // value almost certainly contains the array of results we want. If - // there are 0 or 2+ values, then the values themselves are most - // likely the results we want. - values = Y.Object.values(results) || []; - results = values.length === 1 ? values[0] : values; - - if (!Lang.isArray(results)) { - results = [results]; - } - } else { - results = []; - } - - return results; - }, - - /** - * Returns a formatted XHR URL based on the specified base url, - * query, and the current requestTemplate if any. - * - * @method _getXHRUrl - * @param {String} url Base URL. - * @param {String} query AutoComplete query. - * @return {String} Formatted URL. - * @protected - * @for AutoCompleteBase - */ - _getXHRUrl: function (url, query) { - var maxResults = this.get(MAX_RESULTS), - requestTemplate = this.get(REQUEST_TEMPLATE); - - if (requestTemplate) { - url += requestTemplate(query); - } - - return Lang.sub(url, { - maxResults: maxResults > 0 ? maxResults : 1000, - query : encodeURIComponent(query) - }); - }, - - /** - * URL formatter passed to JSONPRequest instances. - * - * @method _jsonpFormatter - * @param {String} url - * @param {String} proxy - * @param {String} query - * @return {String} Formatted URL - * @protected - * @for AutoCompleteBase - */ - _jsonpFormatter: function (url, proxy, query) { - var maxResults = this.get(MAX_RESULTS), - requestTemplate = this.get(REQUEST_TEMPLATE); - - if (requestTemplate) { - url += requestTemplate(query); - } - - return Lang.sub(url, { - callback : proxy, - maxResults: maxResults > 0 ? maxResults : 1000, - query : encodeURIComponent(query) - }); - } -}); - -// Add attributes to AutoCompleteBase. -Y.mix(ACBase.ATTRS, { - /** - * YQL environment file URL to load when the source is set to - * a YQL query. Set this to null to use the default Open Data - * Tables environment file (http://datatables.org/alltables.env). - * - * @attribute yqlEnv - * @type String - * @default null - * @for AutoCompleteBase - */ - yqlEnv: { - value: null - }, - - /** - * URL protocol to use when the source is set to a YQL query. - * - * @attribute yqlProtocol - * @type String - * @default 'http' - * @for AutoCompleteBase - */ - yqlProtocol: { - value: 'http' - } -}); - -// Tell AutoCompleteBase about the new source types it can now support. -Y.mix(ACBase.SOURCE_TYPES, { - io : '_createIOSource', - jsonp : '_createJSONPSource', - object: '_beforeCreateObjectSource', // Run our version before the base version. - select: '_createSelectSource', - string: '_createStringSource', - yql : '_createYQLSource' -}, true); - - -}, '3.4.0' ,{optional:['io-base', 'json-parse', 'jsonp', 'yql'], requires:['autocomplete-base']}); -YUI.add('autocomplete-list', function(Y) { - -/** - * Traditional autocomplete dropdown list widget, just like Mom used to make. - * - * @module autocomplete - * @submodule autocomplete-list - * @class AutoCompleteList - * @extends Widget - * @uses AutoCompleteBase - * @uses WidgetPosition - * @uses WidgetPositionAlign - * @constructor - * @param {Object} config Configuration object. - */ - -var Lang = Y.Lang, - Node = Y.Node, - YArray = Y.Array, - - // Whether or not we need an iframe shim. - useShim = Y.UA.ie && Y.UA.ie < 7, - - // keyCode constants. - KEY_TAB = 9, - - // String shorthand. - _CLASS_ITEM = '_CLASS_ITEM', - _CLASS_ITEM_ACTIVE = '_CLASS_ITEM_ACTIVE', - _CLASS_ITEM_HOVER = '_CLASS_ITEM_HOVER', - _SELECTOR_ITEM = '_SELECTOR_ITEM', - - ACTIVE_ITEM = 'activeItem', - ALWAYS_SHOW_LIST = 'alwaysShowList', - CIRCULAR = 'circular', - HOVERED_ITEM = 'hoveredItem', - ID = 'id', - ITEM = 'item', - LIST = 'list', - RESULT = 'result', - RESULTS = 'results', - VISIBLE = 'visible', - WIDTH = 'width', - - // Event names. - EVT_SELECT = 'select', - -List = Y.Base.create('autocompleteList', Y.Widget, [ - Y.AutoCompleteBase, - Y.WidgetPosition, - Y.WidgetPositionAlign -], { - // -- Prototype Properties ------------------------------------------------- - ARIA_TEMPLATE: '
                                ', - ITEM_TEMPLATE: '
                              • ', - LIST_TEMPLATE: '
                                  ', - - // -- Lifecycle Prototype Methods ------------------------------------------ - initializer: function () { - var inputNode = this.get('inputNode'); - - if (!inputNode) { - Y.error('No inputNode specified.'); - return; - } - - this._inputNode = inputNode; - this._listEvents = []; - - // This ensures that the list is rendered inside the same parent as the - // input node by default, which is necessary for proper ARIA support. - this.DEF_PARENT_NODE = inputNode.get('parentNode'); - - // Cache commonly used classnames and selectors for performance. - this[_CLASS_ITEM] = this.getClassName(ITEM); - this[_CLASS_ITEM_ACTIVE] = this.getClassName(ITEM, 'active'); - this[_CLASS_ITEM_HOVER] = this.getClassName(ITEM, 'hover'); - this[_SELECTOR_ITEM] = '.' + this[_CLASS_ITEM]; - - /** - * Fires when an autocomplete suggestion is selected from the list, - * typically via a keyboard action or mouse click. - * - * @event select - * @param {EventFacade} e Event facade with the following additional - * properties: - * - *
                                  - *
                                  itemNode (Node)
                                  - *
                                  - * List item node that was selected. - *
                                  - * - *
                                  result (Object)
                                  - *
                                  - * AutoComplete result object. - *
                                  - *
                                  - * - * @preventable _defSelectFn - */ - this.publish(EVT_SELECT, { - defaultFn: this._defSelectFn - }); - }, - - destructor: function () { - while (this._listEvents.length) { - this._listEvents.pop().detach(); - } - - if (this._ariaNode) { - this._ariaNode.remove().destroy(true); - } - }, - - bindUI: function () { - this._bindInput(); - this._bindList(); - }, - - renderUI: function () { - var ariaNode = this._createAriaNode(), - boundingBox = this.get('boundingBox'), - contentBox = this.get('contentBox'), - inputNode = this._inputNode, - listNode, - parentNode = inputNode.get('parentNode'); - - listNode = this._createListNode(); - this._set('listNode', listNode); - contentBox.append(listNode); - - inputNode.addClass(this.getClassName('input')).setAttrs({ - 'aria-autocomplete': LIST, - 'aria-expanded' : false, - 'aria-owns' : listNode.get('id'), - role : 'combobox' - }); - - // ARIA node must be outside the widget or announcements won't be made - // when the widget is hidden. - parentNode.append(ariaNode); - - // Add an iframe shim for IE6. - if (useShim) { - boundingBox.plug(Y.Plugin.Shim); - } - - // Force position: absolute on the boundingBox. This works around a - // potential CSS loading race condition in Gecko that can cause the - // boundingBox to become relatively positioned, which is all kinds of - // no good. - boundingBox.setStyle('position', 'absolute'); - - this._ariaNode = ariaNode; - this._boundingBox = boundingBox; - this._contentBox = contentBox; - this._listNode = listNode; - this._parentNode = parentNode; - }, - - syncUI: function () { - // No need to call _syncPosition() here; the other _sync methods will - // call it when necessary. - this._syncResults(); - this._syncVisibility(); - }, - - // -- Public Prototype Methods --------------------------------------------- - - /** - * Hides the list, unless the alwaysShowList attribute is - * true. - * - * @method hide - * @see show - * @chainable - */ - hide: function () { - return this.get(ALWAYS_SHOW_LIST) ? this : this.set(VISIBLE, false); - }, - - /** - * Selects the specified itemNode, or the current - * activeItem if itemNode is not specified. - * - * @method selectItem - * @param {Node} itemNode (optional) Item node to select. - * @param {EventFacade} originEvent (optional) Event that triggered the - * selection, if any. - * @chainable - */ - selectItem: function (itemNode, originEvent) { - if (itemNode) { - if (!itemNode.hasClass(this[_CLASS_ITEM])) { - return this; - } - } else { - itemNode = this.get(ACTIVE_ITEM); - - if (!itemNode) { - return this; - } - } - - this.fire(EVT_SELECT, { - itemNode : itemNode, - originEvent: originEvent || null, - result : itemNode.getData(RESULT) - }); - - return this; - }, - - // -- Protected Prototype Methods ------------------------------------------ - - /** - * Activates the next item after the currently active item. If there is no - * next item and the circular attribute is true, - * focus will wrap back to the input node. - * - * @method _activateNextItem - * @chainable - * @protected - */ - _activateNextItem: function () { - var item = this.get(ACTIVE_ITEM), - nextItem; - - if (item) { - nextItem = item.next(this[_SELECTOR_ITEM]) || - (this.get(CIRCULAR) ? null : item); - } else { - nextItem = this._getFirstItemNode(); - } - - this.set(ACTIVE_ITEM, nextItem); - - return this; - }, - - /** - * Activates the item previous to the currently active item. If there is no - * previous item and the circular attribute is - * true, focus will wrap back to the input node. - * - * @method _activatePrevItem - * @chainable - * @protected - */ - _activatePrevItem: function () { - var item = this.get(ACTIVE_ITEM), - prevItem = item ? item.previous(this[_SELECTOR_ITEM]) : - this.get(CIRCULAR) && this._getLastItemNode(); - - this.set(ACTIVE_ITEM, prevItem || null); - - return this; - }, - - /** - * Appends the specified result items to the list inside a new item - * node. - * - * @method _add - * @param {Array|Node|HTMLElement|String} items Result item or array of - * result items. - * @return {NodeList} Added nodes. - * @protected - */ - _add: function (items) { - var itemNodes = []; - - YArray.each(Lang.isArray(items) ? items : [items], function (item) { - itemNodes.push(this._createItemNode(item).setData(RESULT, item)); - }, this); - - itemNodes = Y.all(itemNodes); - this._listNode.append(itemNodes.toFrag()); - - return itemNodes; - }, - - /** - * Updates the ARIA live region with the specified message. - * - * @method _ariaSay - * @param {String} stringId String id (from the strings - * attribute) of the message to speak. - * @param {Object} subs (optional) Substitutions for placeholders in the - * string. - * @protected - */ - _ariaSay: function (stringId, subs) { - var message = this.get('strings.' + stringId); - this._ariaNode.setContent(subs ? Lang.sub(message, subs) : message); - }, - - /** - * Binds inputNode events and behavior. - * - * @method _bindInput - * @protected - */ - _bindInput: function () { - var inputNode = this._inputNode, - alignNode, alignWidth, tokenInput; - - // Null align means we can auto-align. Set align to false to prevent - // auto-alignment, or a valid alignment config to customize the - // alignment. - if (this.get('align') === null) { - // If this is a tokenInput, align with its bounding box. - // Otherwise, align with the inputNode. Bit of a cheat. - tokenInput = this.get('tokenInput'); - alignNode = (tokenInput && tokenInput.get('boundingBox')) || inputNode; - - this.set('align', { - node : alignNode, - points: ['tl', 'bl'] - }); - - // If no width config is set, attempt to set the list's width to the - // width of the alignment node. If the alignment node's width is - // falsy, do nothing. - if (!this.get(WIDTH) && (alignWidth = alignNode.get('offsetWidth'))) { - this.set(WIDTH, alignWidth); - } - } - - // Attach inputNode events. - this._listEvents.push(inputNode.on('blur', this._onListInputBlur, this)); - }, - - /** - * Binds list events. - * - * @method _bindList - * @protected - */ - _bindList: function () { - this._listEvents.concat([ - Y.on('windowresize', this._syncPosition, this), - - this.after({ - mouseover: this._afterMouseOver, - mouseout : this._afterMouseOut, - - activeItemChange : this._afterActiveItemChange, - alwaysShowListChange: this._afterAlwaysShowListChange, - hoveredItemChange : this._afterHoveredItemChange, - resultsChange : this._afterResultsChange, - visibleChange : this._afterVisibleChange - }), - - this._listNode.delegate('click', this._onItemClick, this[_SELECTOR_ITEM], this) - ]); - }, - - /** - * Clears the contents of the tray. - * - * @method _clear - * @protected - */ - _clear: function () { - this.set(ACTIVE_ITEM, null); - this._set(HOVERED_ITEM, null); - - this._listNode.get('children').remove(true); - }, - - /** - * Creates and returns an ARIA live region node. - * - * @method _createAriaNode - * @return {Node} ARIA node. - * @protected - */ - _createAriaNode: function () { - var ariaNode = Node.create(this.ARIA_TEMPLATE); - - return ariaNode.addClass(this.getClassName('aria')).setAttrs({ - 'aria-live': 'polite', - role : 'status' - }); - }, - - /** - * Creates and returns an item node with the specified content. - * - * @method _createItemNode - * @param {Object} result Result object. - * @return {Node} Item node. - * @protected - */ - _createItemNode: function (result) { - var itemNode = Node.create(this.ITEM_TEMPLATE); - - return itemNode.addClass(this[_CLASS_ITEM]).setAttrs({ - id : Y.stamp(itemNode), - role: 'option' - }).setAttribute('data-text', result.text).append(result.display); - }, - - /** - * Creates and returns a list node. - * - * @method _createListNode - * @return {Node} List node. - * @protected - */ - _createListNode: function () { - var listNode = Node.create(this.LIST_TEMPLATE); - - return listNode.addClass(this.getClassName(LIST)).setAttrs({ - id : Y.stamp(listNode), - role: 'listbox' - }); - }, - - /** - * Gets the first item node in the list, or null if the list is - * empty. - * - * @method _getFirstItemNode - * @return {Node|null} - * @protected - */ - _getFirstItemNode: function () { - return this._listNode.one(this[_SELECTOR_ITEM]); - }, - - /** - * Gets the last item node in the list, or null if the list is - * empty. - * - * @method _getLastItemNode - * @return {Node|null} - * @protected - */ - _getLastItemNode: function () { - return this._listNode.one(this[_SELECTOR_ITEM] + ':last-child'); - }, - - /** - * Synchronizes the result list's position and alignment. - * - * @method _syncPosition - * @protected - */ - _syncPosition: function () { - // Force WidgetPositionAlign to refresh its alignment. - this._syncUIPosAlign(); - - // Resize the IE6 iframe shim to match the list's dimensions. - this._syncShim(); - }, - - /** - * Synchronizes the results displayed in the list with those in the - * results argument, or with the results attribute if an - * argument is not provided. - * - * @method _syncResults - * @param {Array} results (optional) Results. - * @protected - */ - _syncResults: function (results) { - if (!results) { - results = this.get(RESULTS); - } - - this._clear(); - - if (results.length) { - this._add(results); - this._ariaSay('items_available'); - } - - this._syncPosition(); - - if (this.get('activateFirstItem') && !this.get(ACTIVE_ITEM)) { - this.set(ACTIVE_ITEM, this._getFirstItemNode()); - } - }, - - /** - * Synchronizes the size of the iframe shim used for IE6 and lower. In other - * browsers, this method is a noop. - * - * @method _syncShim - * @protected - */ - _syncShim: useShim ? function () { - this._boundingBox.shim.sync(); - } : function () {}, - - /** - * Synchronizes the visibility of the tray with the visible argument, - * or with the visible attribute if an argument is not - * provided. - * - * @method _syncVisibility - * @param {Boolean} visible (optional) Visibility. - * @protected - */ - _syncVisibility: function (visible) { - if (this.get(ALWAYS_SHOW_LIST)) { - visible = true; - this.set(VISIBLE, visible); - } - - if (typeof visible === 'undefined') { - visible = this.get(VISIBLE); - } - - this._inputNode.set('aria-expanded', visible); - this._boundingBox.set('aria-hidden', !visible); - - if (visible) { - this._syncPosition(); - } else { - this.set(ACTIVE_ITEM, null); - this._set(HOVERED_ITEM, null); - - // Force a reflow to work around a glitch in IE6 and 7 where some of - // the contents of the list will sometimes remain visible after the - // container is hidden. - this._boundingBox.get('offsetWidth'); - } - }, - - // -- Protected Event Handlers --------------------------------------------- - - /** - * Handles activeItemChange events. - * - * @method _afterActiveItemChange - * @param {EventTarget} e - * @protected - */ - _afterActiveItemChange: function (e) { - var inputNode = this._inputNode, - newVal = e.newVal, - prevVal = e.prevVal; - - // The previous item may have disappeared by the time this handler runs, - // so we need to be careful. - if (prevVal && prevVal._node) { - prevVal.removeClass(this[_CLASS_ITEM_ACTIVE]); - } - - if (newVal) { - newVal.addClass(this[_CLASS_ITEM_ACTIVE]); - inputNode.set('aria-activedescendant', newVal.get(ID)); - } else { - inputNode.removeAttribute('aria-activedescendant'); - } - - if (this.get('scrollIntoView')) { - (newVal || inputNode).scrollIntoView(); - } - }, - - /** - * Handles alwaysShowListChange events. - * - * @method _afterAlwaysShowListChange - * @param {EventTarget} e - * @protected - */ - _afterAlwaysShowListChange: function (e) { - this.set(VISIBLE, e.newVal || this.get(RESULTS).length > 0); - }, - - /** - * Handles hoveredItemChange events. - * - * @method _afterHoveredItemChange - * @param {EventTarget} e - * @protected - */ - _afterHoveredItemChange: function (e) { - var newVal = e.newVal, - prevVal = e.prevVal; - - if (prevVal) { - prevVal.removeClass(this[_CLASS_ITEM_HOVER]); - } - - if (newVal) { - newVal.addClass(this[_CLASS_ITEM_HOVER]); - } - }, - - /** - * Handles mouseover events. - * - * @method _afterMouseOver - * @param {EventTarget} e - * @protected - */ - _afterMouseOver: function (e) { - var itemNode = e.domEvent.target.ancestor(this[_SELECTOR_ITEM], true); - - this._mouseOverList = true; - - if (itemNode) { - this._set(HOVERED_ITEM, itemNode); - } - }, - - /** - * Handles mouseout events. - * - * @method _afterMouseOut - * @param {EventTarget} e - * @protected - */ - _afterMouseOut: function () { - this._mouseOverList = false; - this._set(HOVERED_ITEM, null); - }, - - /** - * Handles resultsChange events. - * - * @method _afterResultsChange - * @param {EventFacade} e - * @protected - */ - _afterResultsChange: function (e) { - this._syncResults(e.newVal); - - if (!this.get(ALWAYS_SHOW_LIST)) { - this.set(VISIBLE, !!e.newVal.length); - } - }, - - /** - * Handles visibleChange events. - * - * @method _afterVisibleChange - * @param {EventFacade} e - * @protected - */ - _afterVisibleChange: function (e) { - this._syncVisibility(!!e.newVal); - }, - - /** - * Handles inputNode blur events. - * - * @method _onListInputBlur - * @param {EventTarget} e - * @protected - */ - _onListInputBlur: function (e) { - // Hide the list on inputNode blur events, unless the mouse is currently - // over the list (which indicates that the user is probably interacting - // with it). The _lastInputKey property comes from the - // autocomplete-list-keys module. - if (!this._mouseOverList || this._lastInputKey === KEY_TAB) { - this.hide(); - } - }, - - /** - * Delegated event handler for item click events. - * - * @method _onItemClick - * @param {EventTarget} e - * @protected - */ - _onItemClick: function (e) { - var itemNode = e.currentTarget; - - this.set(ACTIVE_ITEM, itemNode); - this.selectItem(itemNode, e); - }, - - // -- Protected Default Event Handlers ------------------------------------- - - /** - * Default select event handler. - * - * @method _defSelectFn - * @param {EventTarget} e - * @protected - */ - _defSelectFn: function (e) { - var text = e.result.text; - - // TODO: support typeahead completion, etc. - this._inputNode.focus(); - this._updateValue(text); - this._ariaSay('item_selected', {item: text}); - this.hide(); - } -}, { - ATTRS: { - /** - * If true, the first item in the list will be activated by - * default when the list is initially displayed and when results change. - * - * @attribute activateFirstItem - * @type Boolean - * @default false - */ - activateFirstItem: { - value: false - }, - - /** - * Item that's currently active, if any. When the user presses enter, - * this is the item that will be selected. - * - * @attribute activeItem - * @type Node - */ - activeItem: { - setter: Y.one, - value: null - }, - - /** - * If true, the list will remain visible even when there - * are no results to display. - * - * @attribute alwaysShowList - * @type Boolean - * @default false - */ - alwaysShowList: { - value: false - }, - - /** - * If true, keyboard navigation will wrap around to the - * opposite end of the list when navigating past the first or last item. - * - * @attribute circular - * @type Boolean - * @default true - */ - circular: { - value: true - }, - - /** - * Item currently being hovered over by the mouse, if any. - * - * @attribute hoveredItem - * @type Node|null - * @readonly - */ - hoveredItem: { - readOnly: true, - value: null - }, - - /** - * Node that will contain result items. - * - * @attribute listNode - * @type Node|null - * @readonly - */ - listNode: { - readOnly: true, - value: null - }, - - /** - * If true, the viewport will be scrolled to ensure that - * the active list item is visible when necessary. - * - * @attribute scrollIntoView - * @type Boolean - * @default false - */ - scrollIntoView: { - value: false - }, - - /** - * Translatable strings used by the AutoCompleteList widget. - * - * @attribute strings - * @type Object - */ - strings: { - valueFn: function () { - return Y.Intl.get('autocomplete-list'); - } - }, - - /** - * If true, pressing the tab key while the list is visible - * will select the active item, if any. - * - * @attribute tabSelect - * @type Boolean - * @default true - */ - tabSelect: { - value: true - }, - - // The "visible" attribute is documented in Widget. - visible: { - value: false - } - }, - - CSS_PREFIX: Y.ClassNameManager.getClassName('aclist') -}); - -Y.AutoCompleteList = List; - -/** - * Alias for AutoCompleteList. - * See that class for API docs. - * - * @class AutoComplete - */ - -Y.AutoComplete = List; - - -}, '3.4.0' ,{lang:['en'], after:['autocomplete-sources'], skinnable:true, requires:['autocomplete-base', 'event-resize', 'selector-css3', 'shim-plugin', 'widget', 'widget-position', 'widget-position-align']}); -YUI.add('autocomplete-plugin', function(Y) { - -/** - * Binds an AutoCompleteList instance to a Node instance. - * - * @module autocomplete - * @submodule autocomplete-plugin - */ - -/** - *

                                  - * Binds an AutoCompleteList instance to a Node instance. - *

                                  - * - *

                                  - * Example: - *

                                  - * - *
                                  - * Y.one('#my-input').plug(Y.Plugin.AutoComplete, {
                                  - *   source: 'select * from search.suggest where query="{query}"'
                                  - * });
                                  - *  
                                  - * // You can now access the AutoCompleteList instance at Y.one('#my-input').ac
                                  - * 
                                  - * - * @class Plugin.AutoComplete - * @extends AutoCompleteList - */ - -var Plugin = Y.Plugin; - -function ACListPlugin(config) { - config.inputNode = config.host; - - // Render by default. - if (!config.render && config.render !== false) { - config.render = true; - } - - ACListPlugin.superclass.constructor.apply(this, arguments); -} - -Y.extend(ACListPlugin, Y.AutoCompleteList, {}, { - NAME : 'autocompleteListPlugin', - NS : 'ac', - CSS_PREFIX: Y.ClassNameManager.getClassName('aclist') -}); - -Plugin.AutoComplete = ACListPlugin; -Plugin.AutoCompleteList = ACListPlugin; - - -}, '3.4.0' ,{requires:['autocomplete-list', 'node-pluginhost']}); - - -YUI.add('autocomplete', function(Y){}, '3.4.0' ,{use:['autocomplete-base', 'autocomplete-sources', 'autocomplete-list', 'autocomplete-plugin']}); - diff --git a/build/autocomplete/lang/autocomplete.js b/build/autocomplete/lang/autocomplete.js deleted file mode 100644 index 7dbd3767755..00000000000 --- a/build/autocomplete/lang/autocomplete.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("lang/autocomplete-list",function(a){a.Intl.add("autocomplete-list","",{item_selected:"{item} selected.",items_available:"Suggestions are available. Use the up and down arrow keys to select suggestions."});},"3.4.0");YUI.add("lang/autocomplete",function(a){},"3.4.0",{use:["lang/autocomplete-list"]}); \ No newline at end of file diff --git a/build/autocomplete/lang/autocomplete_en.js b/build/autocomplete/lang/autocomplete_en.js deleted file mode 100644 index b5ae8a4e57f..00000000000 --- a/build/autocomplete/lang/autocomplete_en.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("lang/autocomplete-list_en",function(a){a.Intl.add("autocomplete-list","en",{item_selected:"{item} selected.",items_available:"Suggestions are available. Use the up and down arrow keys to select suggestions."});},"3.4.0");YUI.add("lang/autocomplete_en",function(a){},"3.4.0",{use:["lang/autocomplete-list_en"]}); \ No newline at end of file diff --git a/build/base/base-base-debug.js b/build/base/base-base-debug.js deleted file mode 100644 index 4f74b99d8c7..00000000000 --- a/build/base/base-base-debug.js +++ /dev/null @@ -1,617 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('base-base', function(Y) { - - /** - * The base module provides the Base class, which objects requiring attribute and custom event support can extend. - * The module also provides two ways to reuse code - It augments Base with the Plugin.Host interface which provides - * plugin support and also provides the Base.build method which provides a way to build custom classes using extensions. - * - * @module base - */ - - /** - * The base-base submodule provides the Base class without the Plugin support, provided by Plugin.Host, - * and without the extension support provided by Base.build. - * - * @module base - * @submodule base-base - */ - var O = Y.Object, - L = Y.Lang, - DOT = ".", - DESTROY = "destroy", - INIT = "init", - INITIALIZED = "initialized", - DESTROYED = "destroyed", - INITIALIZER = "initializer", - BUBBLETARGETS = "bubbleTargets", - _BUBBLETARGETS = "_bubbleTargets", - OBJECT_CONSTRUCTOR = Object.prototype.constructor, - DEEP = "deep", - SHALLOW = "shallow", - DESTRUCTOR = "destructor", - - Attribute = Y.Attribute; - - /** - *

                                  - * A base class which objects requiring attributes and custom event support can - * extend. Base also handles the chaining of initializer and destructor methods across - * the hierarchy as part of object construction and destruction. Additionally, attributes configured - * through the static ATTRS property for each class - * in the hierarchy will be initialized by Base. - *

                                  - * - *

                                  - * The static NAME property of each class extending - * from Base will be used as the identifier for the class, and is used by Base to prefix - * all events fired by instances of that class. - *

                                  - * - * @class Base - * @constructor - * @uses Attribute - * @uses Plugin.Host - * - * @param {Object} config Object with configuration property name/value pairs. The object can be - * used to provide default values for the objects published attributes. - * - *

                                  - * The config object can also contain the following non-attribute properties, providing a convenient - * way to configure events listeners and plugins for the instance, as part of the constructor call: - *

                                  - * - *
                                  - *
                                  on
                                  - *
                                  An event name to listener function map, to register event listeners for the "on" moment of the event. A constructor convenience property for the on method.
                                  - *
                                  after
                                  - *
                                  An event name to listener function map, to register event listeners for the "after" moment of the event. A constructor convenience property for the after method.
                                  - *
                                  bubbleTargets
                                  - *
                                  An object, or array of objects, to register as bubble targets for bubbled events fired by this instance. A constructor convenience property for the addTarget method.
                                  - *
                                  plugins
                                  - *
                                  A plugin, or array of plugins to be plugged into the instance (see PluginHost's plug method for signature details). A constructor convenience property for the plug method.
                                  - *
                                  - */ - function Base() { - Y.log('constructor called', 'life', 'base'); - - // So the object can be used as a hash key (as DD does) - Y.stamp(this); - - Attribute.call(this); - - // If Plugin.Host has been augmented [ through base-pluginhost ], setup it's - // initial state, but don't initialize Plugins yet. That's done after initialization. - var PluginHost = Y.Plugin && Y.Plugin.Host; - if (this._initPlugins && PluginHost) { - PluginHost.call(this); - } - - if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; } - - /** - * The string used to identify the class of this object. - * - * @deprecated Use this.constructor.NAME - * @property name - * @type String - */ - this.name = this.constructor.NAME; - this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME; - - this.init.apply(this, arguments); - } - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce, readOnly etc.) - * - * @property Base._ATTR_CFG - * @type Array - * @static - * @private - */ - Base._ATTR_CFG = Attribute._ATTR_CFG.concat("cloneDefaultValue"); - - /** - *

                                  - * The string to be used to identify instances of - * this class, for example in prefixing events. - *

                                  - *

                                  - * Classes extending Base, should define their own - * static NAME property, which should be camelCase by - * convention (e.g. MyClass.NAME = "myClass";). - *

                                  - * @property Base.NAME - * @type String - * @static - */ - Base.NAME = "base"; - - /** - * The default set of attributes which will be available for instances of this class, and - * their configuration. In addition to the configuration properties listed by - * Attribute's addAttr method, the attribute - * can also be configured with a "cloneDefaultValue" property, which defines how the statically - * defined value field should be protected ("shallow", "deep" and false are supported values). - * - * By default if the value is an object literal or an array it will be "shallow" cloned, to - * protect the default value. - * - * @property Base.ATTRS - * @type Object - * @static - */ - Base.ATTRS = { - /** - * Flag indicating whether or not this object - * has been through the init lifecycle phase. - * - * @attribute initialized - * @readonly - * @default false - * @type boolean - */ - initialized: { - readOnly:true, - value:false - }, - - /** - * Flag indicating whether or not this object - * has been through the destroy lifecycle phase. - * - * @attribute destroyed - * @readonly - * @default false - * @type boolean - */ - destroyed: { - readOnly:true, - value:false - } - }; - - Base.prototype = { - - /** - * Init lifecycle method, invoked during construction. - * Fires the init event prior to setting up attributes and - * invoking initializers for the class hierarchy. - * - * @method init - * @final - * @chainable - * @param {Object} config Object with configuration property name/value pairs - * @return {Base} A reference to this object - */ - init: function(config) { - Y.log('init called', 'life', 'base'); - - this._yuievt.config.prefix = this._eventPrefix; - - /** - *

                                  - * Lifecycle event for the init phase, fired prior to initialization. - * Invoking the preventDefault() method on the event object provided - * to subscribers will prevent initialization from occuring. - *

                                  - *

                                  - * Subscribers to the "after" momemt of this event, will be notified - * after initialization of the object is complete (and therefore - * cannot prevent initialization). - *

                                  - * - * @event init - * @preventable _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - */ - this.publish(INIT, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn:this._defInitFn - }); - - this._preInitEventCfg(config); - - this.fire(INIT, {cfg: config}); - - return this; - }, - - /** - * Handles the special on, after and target properties which allow the user to - * easily configure on and after listeners as well as bubble targets during - * construction, prior to init. - * - * @private - * @method _preInitEventCfg - * @param {Object} config The user configuration object - */ - _preInitEventCfg : function(config) { - if (config) { - if (config.on) { - this.on(config.on); - } - if (config.after) { - this.after(config.after); - } - } - - var i, l, target, - userTargets = (config && BUBBLETARGETS in config); - - if (userTargets || _BUBBLETARGETS in this) { - target = userTargets ? (config && config.bubbleTargets) : this._bubbleTargets; - if (L.isArray(target)) { - for (i = 0, l = target.length; i < l; i++) { - this.addTarget(target[i]); - } - } else if (target) { - this.addTarget(target); - } - } - }, - - /** - *

                                  - * Destroy lifecycle method. Fires the destroy - * event, prior to invoking destructors for the - * class hierarchy. - *

                                  - *

                                  - * Subscribers to the destroy - * event can invoke preventDefault on the event object, to prevent destruction - * from proceeding. - *

                                  - * @method destroy - * @return {Base} A reference to this object - * @final - * @chainable - */ - destroy: function() { - Y.log('destroy called', 'life', 'base'); - - /** - *

                                  - * Lifecycle event for the destroy phase, - * fired prior to destruction. Invoking the preventDefault - * method on the event object provided to subscribers will - * prevent destruction from proceeding. - *

                                  - *

                                  - * Subscribers to the "after" moment of this event, will be notified - * after destruction is complete (and as a result cannot prevent - * destruction). - *

                                  - * @event destroy - * @preventable _defDestroyFn - * @param {EventFacade} e Event object - */ - this.publish(DESTROY, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn: this._defDestroyFn - }); - this.fire(DESTROY); - - this.detachAll(); - return this; - }, - - /** - * Default init event handler - * - * @method _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - * @protected - */ - _defInitFn : function(e) { - this._initHierarchy(e.cfg); - if (this._initPlugins) { - // Need to initPlugins manually, to handle constructor parsing, static Plug parsing - this._initPlugins(e.cfg); - } - this._set(INITIALIZED, true); - }, - - /** - * Default destroy event handler - * - * @method _defDestroyFn - * @param {EventFacade} e Event object - * @protected - */ - _defDestroyFn : function(e) { - if (this._destroyPlugins) { - this._destroyPlugins(); - } - this._destroyHierarchy(); - this._set(DESTROYED, true); - }, - - /** - * Returns the class hierarchy for this object, with Base being the last class in the array. - * - * @method _getClasses - * @protected - * @return {Function[]} An array of classes (constructor functions), making up the class hierarchy for this object. - * This value is cached the first time the method, or _getAttrCfgs, is invoked. Subsequent invocations return the - * cached value. - */ - _getClasses : function() { - if (!this._classes) { - this._initHierarchyData(); - } - return this._classes; - }, - - /** - * Returns an aggregated set of attribute configurations, by traversing the class hierarchy. - * - * @method _getAttrCfgs - * @protected - * @return {Object} The hash of attribute configurations, aggregated across classes in the hierarchy - * This value is cached the first time the method, or _getClasses, is invoked. Subsequent invocations return - * the cached value. - */ - _getAttrCfgs : function() { - if (!this._attrs) { - this._initHierarchyData(); - } - return this._attrs; - }, - - /** - * A helper method used when processing ATTRS across the class hierarchy during - * initialization. Returns a disposable object with the attributes defined for - * the provided class, extracted from the set of all attributes passed in . - * - * @method _filterAttrCfs - * @private - * - * @param {Function} clazz The class for which the desired attributes are required. - * @param {Object} allCfgs The set of all attribute configurations for this instance. - * Attributes will be removed from this set, if they belong to the filtered class, so - * that by the time all classes are processed, allCfgs will be empty. - * - * @return {Object} The set of attributes belonging to the class passed in, in the form - * of an object with attribute name/configuration pairs. - */ - _filterAttrCfgs : function(clazz, allCfgs) { - var cfgs = null, attr, attrs = clazz.ATTRS; - - if (attrs) { - for (attr in attrs) { - if (attrs.hasOwnProperty(attr) && allCfgs[attr]) { - cfgs = cfgs || {}; - cfgs[attr] = allCfgs[attr]; - delete allCfgs[attr]; - } - } - } - - return cfgs; - }, - - /** - * A helper method used by _getClasses and _getAttrCfgs, which determines both - * the array of classes and aggregate set of attribute configurations - * across the class hierarchy for the instance. - * - * @method _initHierarchyData - * @private - */ - _initHierarchyData : function() { - var c = this.constructor, - classes = [], - attrs = []; - - while (c) { - // Add to classes - classes[classes.length] = c; - - // Add to attributes - if (c.ATTRS) { - attrs[attrs.length] = c.ATTRS; - } - c = c.superclass ? c.superclass.constructor : null; - } - - this._classes = classes; - this._attrs = this._aggregateAttrs(attrs); - }, - - /** - * A helper method, used by _initHierarchyData to aggregate - * attribute configuration across the instances class hierarchy. - * - * The method will potect the attribute configuration value to protect the statically defined - * default value in ATTRS if required (if the value is an object literal, array or the - * attribute configuration has cloneDefaultValue set to shallow or deep). - * - * @method _aggregateAttrs - * @private - * @param {Array} allAttrs An array of ATTRS definitions across classes in the hierarchy - * (subclass first, Base last) - * @return {Object} The aggregate set of ATTRS definitions for the instance - */ - _aggregateAttrs : function(allAttrs) { - var attr, - attrs, - cfg, - val, - path, - i, - clone, - cfgProps = Base._ATTR_CFG, - aggAttrs = {}; - - if (allAttrs) { - for (i = allAttrs.length-1; i >= 0; --i) { - attrs = allAttrs[i]; - - for (attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - - // Protect config passed in - cfg = Y.mix({}, attrs[attr], true, cfgProps); - - val = cfg.value; - clone = cfg.cloneDefaultValue; - - if (val) { - if ( (clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val))) || clone === DEEP || clone === true) { - Y.log('Cloning default value for attribute:' + attr, 'info', 'base'); - cfg.value = Y.clone(val); - } else if (clone === SHALLOW) { - Y.log('Merging default value for attribute:' + attr, 'info', 'base'); - cfg.value = Y.merge(val); - } - // else if (clone === false), don't clone the static default value. - // It's intended to be used by reference. - } - - path = null; - if (attr.indexOf(DOT) !== -1) { - path = attr.split(DOT); - attr = path.shift(); - } - - if (path && aggAttrs[attr] && aggAttrs[attr].value) { - O.setValue(aggAttrs[attr].value, path, val); - } else if (!path){ - if (!aggAttrs[attr]) { - aggAttrs[attr] = cfg; - } else { - Y.mix(aggAttrs[attr], cfg, true, cfgProps); - } - } - } - } - } - } - - return aggAttrs; - }, - - /** - * Initializes the class hierarchy for the instance, which includes - * initializing attributes for each class defined in the class's - * static ATTRS property and - * invoking the initializer method on the prototype of each class in the hierarchy. - * - * @method _initHierarchy - * @param {Object} userVals Object with configuration property name/value pairs - * @private - */ - _initHierarchy : function(userVals) { - var lazy = this._lazyAddAttrs, - constr, - constrProto, - ci, - ei, - el, - extProto, - exts, - classes = this._getClasses(), - attrCfgs = this._getAttrCfgs(); - - for (ci = classes.length-1; ci >= 0; ci--) { - - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - exts[ei].apply(this, arguments); - } - } - - this.addAttrs(this._filterAttrCfgs(constr, attrCfgs), userVals, lazy); - - // Using INITIALIZER in hasOwnProperty check, for performance reasons (helps IE6 avoid GC thresholds when - // referencing string literals). Not using it in apply, again, for performance "." is faster. - if (constrProto.hasOwnProperty(INITIALIZER)) { - constrProto.initializer.apply(this, arguments); - } - - if (exts) { - for (ei = 0; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(INITIALIZER)) { - extProto.initializer.apply(this, arguments); - } - } - } - } - }, - - /** - * Destroys the class hierarchy for this instance by invoking - * the descructor method on the prototype of each class in the hierarchy. - * - * @method _destroyHierarchy - * @private - */ - _destroyHierarchy : function() { - var constr, - constrProto, - ci, cl, ei, el, exts, extProto, - classes = this._getClasses(); - - for (ci = 0, cl = classes.length; ci < cl; ci++) { - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(DESTRUCTOR)) { - extProto.destructor.apply(this, arguments); - } - } - } - - if (constrProto.hasOwnProperty(DESTRUCTOR)) { - constrProto.destructor.apply(this, arguments); - } - } - }, - - /** - * Default toString implementation. Provides the constructor NAME - * and the instance guid, if set. - * - * @method toString - * @return {String} String representation for this object - */ - toString: function() { - return this.name + "[" + Y.stamp(this, true) + "]"; - } - - }; - - // Straightup augment, no wrapper functions - Y.mix(Base, Attribute, false, null, 1); - - // Fix constructor - Base.prototype.constructor = Base; - - Y.Base = Base; - - -}, '3.4.0' ,{requires:['attribute-base']}); diff --git a/build/base/base-base-min.js b/build/base/base-base-min.js deleted file mode 100644 index aae0ad1f482..00000000000 --- a/build/base/base-base-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("base-base",function(b){var i=b.Object,k=b.Lang,j=".",g="destroy",p="init",o="initialized",h="destroyed",d="initializer",m="bubbleTargets",e="_bubbleTargets",c=Object.prototype.constructor,l="deep",q="shallow",n="destructor",a=b.Attribute;function f(){b.stamp(this);a.call(this);var r=b.Plugin&&b.Plugin.Host;if(this._initPlugins&&r){r.call(this);}if(this._lazyAddAttrs!==false){this._lazyAddAttrs=true;}this.name=this.constructor.NAME;this._eventPrefix=this.constructor.EVENT_PREFIX||this.constructor.NAME;this.init.apply(this,arguments);}f._ATTR_CFG=a._ATTR_CFG.concat("cloneDefaultValue");f.NAME="base";f.ATTRS={initialized:{readOnly:true,value:false},destroyed:{readOnly:true,value:false}};f.prototype={init:function(r){this._yuievt.config.prefix=this._eventPrefix;this.publish(p,{queuable:false,fireOnce:true,defaultTargetOnly:true,defaultFn:this._defInitFn});this._preInitEventCfg(r);this.fire(p,{cfg:r});return this;},_preInitEventCfg:function(s){if(s){if(s.on){this.on(s.on);}if(s.after){this.after(s.after);}}var t,r,v,u=(s&&m in s);if(u||e in this){v=u?(s&&s.bubbleTargets):this._bubbleTargets;if(k.isArray(v)){for(t=0,r=v.length;t=0;--s){z=y[s];for(v in z){if(z.hasOwnProperty(v)){u=b.mix({},z[v],true,t);r=u.value;x=u.cloneDefaultValue;if(r){if((x===undefined&&(c===r.constructor||k.isArray(r)))||x===l||x===true){u.value=b.clone(r);}else{if(x===q){u.value=b.merge(r);}}}A=null;if(v.indexOf(j)!==-1){A=v.split(j);v=A.shift();}if(A&&w[v]&&w[v].value){i.setValue(w[v].value,A,r);}else{if(!A){if(!w[v]){w[v]=u;}else{b.mix(w[v],u,true,t);}}}}}}}return w;},_initHierarchy:function(x){var t=this._lazyAddAttrs,y,z,B,v,s,A,w,u=this._getClasses(),r=this._getAttrCfgs();for(B=u.length-1;B>=0;B--){y=u[B];z=y.prototype;w=y._yuibuild&&y._yuibuild.exts;if(w){for(v=0,s=w.length;v - * A base class which objects requiring attributes and custom event support can - * extend. Base also handles the chaining of initializer and destructor methods across - * the hierarchy as part of object construction and destruction. Additionally, attributes configured - * through the static ATTRS property for each class - * in the hierarchy will be initialized by Base. - *

                                  - * - *

                                  - * The static NAME property of each class extending - * from Base will be used as the identifier for the class, and is used by Base to prefix - * all events fired by instances of that class. - *

                                  - * - * @class Base - * @constructor - * @uses Attribute - * @uses Plugin.Host - * - * @param {Object} config Object with configuration property name/value pairs. The object can be - * used to provide default values for the objects published attributes. - * - *

                                  - * The config object can also contain the following non-attribute properties, providing a convenient - * way to configure events listeners and plugins for the instance, as part of the constructor call: - *

                                  - * - *
                                  - *
                                  on
                                  - *
                                  An event name to listener function map, to register event listeners for the "on" moment of the event. A constructor convenience property for the on method.
                                  - *
                                  after
                                  - *
                                  An event name to listener function map, to register event listeners for the "after" moment of the event. A constructor convenience property for the after method.
                                  - *
                                  bubbleTargets
                                  - *
                                  An object, or array of objects, to register as bubble targets for bubbled events fired by this instance. A constructor convenience property for the addTarget method.
                                  - *
                                  plugins
                                  - *
                                  A plugin, or array of plugins to be plugged into the instance (see PluginHost's plug method for signature details). A constructor convenience property for the plug method.
                                  - *
                                  - */ - function Base() { - - // So the object can be used as a hash key (as DD does) - Y.stamp(this); - - Attribute.call(this); - - // If Plugin.Host has been augmented [ through base-pluginhost ], setup it's - // initial state, but don't initialize Plugins yet. That's done after initialization. - var PluginHost = Y.Plugin && Y.Plugin.Host; - if (this._initPlugins && PluginHost) { - PluginHost.call(this); - } - - if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; } - - /** - * The string used to identify the class of this object. - * - * @deprecated Use this.constructor.NAME - * @property name - * @type String - */ - this.name = this.constructor.NAME; - this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME; - - this.init.apply(this, arguments); - } - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce, readOnly etc.) - * - * @property Base._ATTR_CFG - * @type Array - * @static - * @private - */ - Base._ATTR_CFG = Attribute._ATTR_CFG.concat("cloneDefaultValue"); - - /** - *

                                  - * The string to be used to identify instances of - * this class, for example in prefixing events. - *

                                  - *

                                  - * Classes extending Base, should define their own - * static NAME property, which should be camelCase by - * convention (e.g. MyClass.NAME = "myClass";). - *

                                  - * @property Base.NAME - * @type String - * @static - */ - Base.NAME = "base"; - - /** - * The default set of attributes which will be available for instances of this class, and - * their configuration. In addition to the configuration properties listed by - * Attribute's addAttr method, the attribute - * can also be configured with a "cloneDefaultValue" property, which defines how the statically - * defined value field should be protected ("shallow", "deep" and false are supported values). - * - * By default if the value is an object literal or an array it will be "shallow" cloned, to - * protect the default value. - * - * @property Base.ATTRS - * @type Object - * @static - */ - Base.ATTRS = { - /** - * Flag indicating whether or not this object - * has been through the init lifecycle phase. - * - * @attribute initialized - * @readonly - * @default false - * @type boolean - */ - initialized: { - readOnly:true, - value:false - }, - - /** - * Flag indicating whether or not this object - * has been through the destroy lifecycle phase. - * - * @attribute destroyed - * @readonly - * @default false - * @type boolean - */ - destroyed: { - readOnly:true, - value:false - } - }; - - Base.prototype = { - - /** - * Init lifecycle method, invoked during construction. - * Fires the init event prior to setting up attributes and - * invoking initializers for the class hierarchy. - * - * @method init - * @final - * @chainable - * @param {Object} config Object with configuration property name/value pairs - * @return {Base} A reference to this object - */ - init: function(config) { - - this._yuievt.config.prefix = this._eventPrefix; - - /** - *

                                  - * Lifecycle event for the init phase, fired prior to initialization. - * Invoking the preventDefault() method on the event object provided - * to subscribers will prevent initialization from occuring. - *

                                  - *

                                  - * Subscribers to the "after" momemt of this event, will be notified - * after initialization of the object is complete (and therefore - * cannot prevent initialization). - *

                                  - * - * @event init - * @preventable _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - */ - this.publish(INIT, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn:this._defInitFn - }); - - this._preInitEventCfg(config); - - this.fire(INIT, {cfg: config}); - - return this; - }, - - /** - * Handles the special on, after and target properties which allow the user to - * easily configure on and after listeners as well as bubble targets during - * construction, prior to init. - * - * @private - * @method _preInitEventCfg - * @param {Object} config The user configuration object - */ - _preInitEventCfg : function(config) { - if (config) { - if (config.on) { - this.on(config.on); - } - if (config.after) { - this.after(config.after); - } - } - - var i, l, target, - userTargets = (config && BUBBLETARGETS in config); - - if (userTargets || _BUBBLETARGETS in this) { - target = userTargets ? (config && config.bubbleTargets) : this._bubbleTargets; - if (L.isArray(target)) { - for (i = 0, l = target.length; i < l; i++) { - this.addTarget(target[i]); - } - } else if (target) { - this.addTarget(target); - } - } - }, - - /** - *

                                  - * Destroy lifecycle method. Fires the destroy - * event, prior to invoking destructors for the - * class hierarchy. - *

                                  - *

                                  - * Subscribers to the destroy - * event can invoke preventDefault on the event object, to prevent destruction - * from proceeding. - *

                                  - * @method destroy - * @return {Base} A reference to this object - * @final - * @chainable - */ - destroy: function() { - - /** - *

                                  - * Lifecycle event for the destroy phase, - * fired prior to destruction. Invoking the preventDefault - * method on the event object provided to subscribers will - * prevent destruction from proceeding. - *

                                  - *

                                  - * Subscribers to the "after" moment of this event, will be notified - * after destruction is complete (and as a result cannot prevent - * destruction). - *

                                  - * @event destroy - * @preventable _defDestroyFn - * @param {EventFacade} e Event object - */ - this.publish(DESTROY, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn: this._defDestroyFn - }); - this.fire(DESTROY); - - this.detachAll(); - return this; - }, - - /** - * Default init event handler - * - * @method _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - * @protected - */ - _defInitFn : function(e) { - this._initHierarchy(e.cfg); - if (this._initPlugins) { - // Need to initPlugins manually, to handle constructor parsing, static Plug parsing - this._initPlugins(e.cfg); - } - this._set(INITIALIZED, true); - }, - - /** - * Default destroy event handler - * - * @method _defDestroyFn - * @param {EventFacade} e Event object - * @protected - */ - _defDestroyFn : function(e) { - if (this._destroyPlugins) { - this._destroyPlugins(); - } - this._destroyHierarchy(); - this._set(DESTROYED, true); - }, - - /** - * Returns the class hierarchy for this object, with Base being the last class in the array. - * - * @method _getClasses - * @protected - * @return {Function[]} An array of classes (constructor functions), making up the class hierarchy for this object. - * This value is cached the first time the method, or _getAttrCfgs, is invoked. Subsequent invocations return the - * cached value. - */ - _getClasses : function() { - if (!this._classes) { - this._initHierarchyData(); - } - return this._classes; - }, - - /** - * Returns an aggregated set of attribute configurations, by traversing the class hierarchy. - * - * @method _getAttrCfgs - * @protected - * @return {Object} The hash of attribute configurations, aggregated across classes in the hierarchy - * This value is cached the first time the method, or _getClasses, is invoked. Subsequent invocations return - * the cached value. - */ - _getAttrCfgs : function() { - if (!this._attrs) { - this._initHierarchyData(); - } - return this._attrs; - }, - - /** - * A helper method used when processing ATTRS across the class hierarchy during - * initialization. Returns a disposable object with the attributes defined for - * the provided class, extracted from the set of all attributes passed in . - * - * @method _filterAttrCfs - * @private - * - * @param {Function} clazz The class for which the desired attributes are required. - * @param {Object} allCfgs The set of all attribute configurations for this instance. - * Attributes will be removed from this set, if they belong to the filtered class, so - * that by the time all classes are processed, allCfgs will be empty. - * - * @return {Object} The set of attributes belonging to the class passed in, in the form - * of an object with attribute name/configuration pairs. - */ - _filterAttrCfgs : function(clazz, allCfgs) { - var cfgs = null, attr, attrs = clazz.ATTRS; - - if (attrs) { - for (attr in attrs) { - if (attrs.hasOwnProperty(attr) && allCfgs[attr]) { - cfgs = cfgs || {}; - cfgs[attr] = allCfgs[attr]; - delete allCfgs[attr]; - } - } - } - - return cfgs; - }, - - /** - * A helper method used by _getClasses and _getAttrCfgs, which determines both - * the array of classes and aggregate set of attribute configurations - * across the class hierarchy for the instance. - * - * @method _initHierarchyData - * @private - */ - _initHierarchyData : function() { - var c = this.constructor, - classes = [], - attrs = []; - - while (c) { - // Add to classes - classes[classes.length] = c; - - // Add to attributes - if (c.ATTRS) { - attrs[attrs.length] = c.ATTRS; - } - c = c.superclass ? c.superclass.constructor : null; - } - - this._classes = classes; - this._attrs = this._aggregateAttrs(attrs); - }, - - /** - * A helper method, used by _initHierarchyData to aggregate - * attribute configuration across the instances class hierarchy. - * - * The method will potect the attribute configuration value to protect the statically defined - * default value in ATTRS if required (if the value is an object literal, array or the - * attribute configuration has cloneDefaultValue set to shallow or deep). - * - * @method _aggregateAttrs - * @private - * @param {Array} allAttrs An array of ATTRS definitions across classes in the hierarchy - * (subclass first, Base last) - * @return {Object} The aggregate set of ATTRS definitions for the instance - */ - _aggregateAttrs : function(allAttrs) { - var attr, - attrs, - cfg, - val, - path, - i, - clone, - cfgProps = Base._ATTR_CFG, - aggAttrs = {}; - - if (allAttrs) { - for (i = allAttrs.length-1; i >= 0; --i) { - attrs = allAttrs[i]; - - for (attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - - // Protect config passed in - cfg = Y.mix({}, attrs[attr], true, cfgProps); - - val = cfg.value; - clone = cfg.cloneDefaultValue; - - if (val) { - if ( (clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val))) || clone === DEEP || clone === true) { - cfg.value = Y.clone(val); - } else if (clone === SHALLOW) { - cfg.value = Y.merge(val); - } - // else if (clone === false), don't clone the static default value. - // It's intended to be used by reference. - } - - path = null; - if (attr.indexOf(DOT) !== -1) { - path = attr.split(DOT); - attr = path.shift(); - } - - if (path && aggAttrs[attr] && aggAttrs[attr].value) { - O.setValue(aggAttrs[attr].value, path, val); - } else if (!path){ - if (!aggAttrs[attr]) { - aggAttrs[attr] = cfg; - } else { - Y.mix(aggAttrs[attr], cfg, true, cfgProps); - } - } - } - } - } - } - - return aggAttrs; - }, - - /** - * Initializes the class hierarchy for the instance, which includes - * initializing attributes for each class defined in the class's - * static ATTRS property and - * invoking the initializer method on the prototype of each class in the hierarchy. - * - * @method _initHierarchy - * @param {Object} userVals Object with configuration property name/value pairs - * @private - */ - _initHierarchy : function(userVals) { - var lazy = this._lazyAddAttrs, - constr, - constrProto, - ci, - ei, - el, - extProto, - exts, - classes = this._getClasses(), - attrCfgs = this._getAttrCfgs(); - - for (ci = classes.length-1; ci >= 0; ci--) { - - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - exts[ei].apply(this, arguments); - } - } - - this.addAttrs(this._filterAttrCfgs(constr, attrCfgs), userVals, lazy); - - // Using INITIALIZER in hasOwnProperty check, for performance reasons (helps IE6 avoid GC thresholds when - // referencing string literals). Not using it in apply, again, for performance "." is faster. - if (constrProto.hasOwnProperty(INITIALIZER)) { - constrProto.initializer.apply(this, arguments); - } - - if (exts) { - for (ei = 0; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(INITIALIZER)) { - extProto.initializer.apply(this, arguments); - } - } - } - } - }, - - /** - * Destroys the class hierarchy for this instance by invoking - * the descructor method on the prototype of each class in the hierarchy. - * - * @method _destroyHierarchy - * @private - */ - _destroyHierarchy : function() { - var constr, - constrProto, - ci, cl, ei, el, exts, extProto, - classes = this._getClasses(); - - for (ci = 0, cl = classes.length; ci < cl; ci++) { - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(DESTRUCTOR)) { - extProto.destructor.apply(this, arguments); - } - } - } - - if (constrProto.hasOwnProperty(DESTRUCTOR)) { - constrProto.destructor.apply(this, arguments); - } - } - }, - - /** - * Default toString implementation. Provides the constructor NAME - * and the instance guid, if set. - * - * @method toString - * @return {String} String representation for this object - */ - toString: function() { - return this.name + "[" + Y.stamp(this, true) + "]"; - } - - }; - - // Straightup augment, no wrapper functions - Y.mix(Base, Attribute, false, null, 1); - - // Fix constructor - Base.prototype.constructor = Base; - - Y.Base = Base; - - -}, '3.4.0' ,{requires:['attribute-base']}); diff --git a/build/base/base-build-debug.js b/build/base/base-build-debug.js deleted file mode 100644 index 303481249d5..00000000000 --- a/build/base/base-build-debug.js +++ /dev/null @@ -1,329 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('base-build', function(Y) { - - /** - * The base-build submodule provides Base.build functionality, which - * can be used to create custom classes, by aggregating extensions onto - * a main class. - * - * @module base - * @submodule base-build - * @for Base - */ - var Base = Y.Base, - L = Y.Lang, - INITIALIZER = "initializer", - DESTRUCTOR = "destructor", - build; - - Base._build = function(name, main, extensions, px, sx, cfg) { - - var build = Base._build, - - builtClass = build._ctor(main, cfg), - buildCfg = build._cfg(main, cfg), - - _mixCust = build._mixCust, - - aggregates = buildCfg.aggregates, - custom = buildCfg.custom, - - dynamic = builtClass._yuibuild.dynamic, - - i, l, val, extClass, extProto, - initializer, - destructor; - - if (dynamic && aggregates) { - for (i = 0, l = aggregates.length; i < l; ++i) { - val = aggregates[i]; - if (main.hasOwnProperty(val)) { - builtClass[val] = L.isArray(main[val]) ? [] : {}; - } - } - } - - // Augment/Aggregate - for (i = 0, l = extensions.length; i < l; i++) { - extClass = extensions[i]; - - extProto = extClass.prototype; - - initializer = extProto[INITIALIZER]; - destructor = extProto[DESTRUCTOR]; - delete extProto[INITIALIZER]; - delete extProto[DESTRUCTOR]; - - // Prototype, old non-displacing augment - Y.mix(builtClass, extClass, true, null, 1); - - // Custom Statics - _mixCust(builtClass, extClass, aggregates, custom); - - if (initializer) { - extProto[INITIALIZER] = initializer; - } - - if (destructor) { - extProto[DESTRUCTOR] = destructor; - } - - builtClass._yuibuild.exts.push(extClass); - } - - if (px) { - Y.mix(builtClass.prototype, px, true); - } - - if (sx) { - Y.mix(builtClass, build._clean(sx, aggregates, custom), true); - _mixCust(builtClass, sx, aggregates, custom); - } - - builtClass.prototype.hasImpl = build._impl; - - if (dynamic) { - builtClass.NAME = name; - builtClass.prototype.constructor = builtClass; - } - - return builtClass; - }; - - build = Base._build; - - Y.mix(build, { - - _mixCust: function(r, s, aggregates, custom) { - - if (aggregates) { - Y.aggregate(r, s, true, aggregates); - } - - if (custom) { - for (var j in custom) { - if (custom.hasOwnProperty(j)) { - custom[j](j, r, s); - } - } - } - }, - - _tmpl: function(main) { - - function BuiltClass() { - BuiltClass.superclass.constructor.apply(this, arguments); - } - Y.extend(BuiltClass, main); - - return BuiltClass; - }, - - _impl : function(extClass) { - var classes = this._getClasses(), i, l, cls, exts, ll, j; - for (i = 0, l = classes.length; i < l; i++) { - cls = classes[i]; - if (cls._yuibuild) { - exts = cls._yuibuild.exts; - ll = exts.length; - - for (j = 0; j < ll; j++) { - if (exts[j] === extClass) { - return true; - } - } - } - } - return false; - }, - - _ctor : function(main, cfg) { - - var dynamic = (cfg && false === cfg.dynamic) ? false : true, - builtClass = (dynamic) ? build._tmpl(main) : main, - buildCfg = builtClass._yuibuild; - - if (!buildCfg) { - buildCfg = builtClass._yuibuild = {}; - } - - buildCfg.id = buildCfg.id || null; - buildCfg.exts = buildCfg.exts || []; - buildCfg.dynamic = dynamic; - - return builtClass; - }, - - _cfg : function(main, cfg) { - var aggr = [], - cust = {}, - buildCfg, - cfgAggr = (cfg && cfg.aggregates), - cfgCustBuild = (cfg && cfg.custom), - c = main; - - while (c && c.prototype) { - buildCfg = c._buildCfg; - if (buildCfg) { - if (buildCfg.aggregates) { - aggr = aggr.concat(buildCfg.aggregates); - } - if (buildCfg.custom) { - Y.mix(cust, buildCfg.custom, true); - } - } - c = c.superclass ? c.superclass.constructor : null; - } - - if (cfgAggr) { - aggr = aggr.concat(cfgAggr); - } - if (cfgCustBuild) { - Y.mix(cust, cfg.cfgBuild, true); - } - - return { - aggregates: aggr, - custom: cust - }; - }, - - _clean : function(sx, aggregates, custom) { - var prop, i, l, sxclone = Y.merge(sx); - - for (prop in custom) { - if (sxclone.hasOwnProperty(prop)) { - delete sxclone[prop]; - } - } - - for (i = 0, l = aggregates.length; i < l; i++) { - prop = aggregates[i]; - if (sxclone.hasOwnProperty(prop)) { - delete sxclone[prop]; - } - } - - return sxclone; - } - }); - - /** - *

                                  - * Builds a custom constructor function (class) from the - * main function, and array of extension functions (classes) - * provided. The NAME field for the constructor function is - * defined by the first argument passed in. - *

                                  - *

                                  - * The cfg object supports the following properties - *

                                  - *
                                  - *
                                  dynamic <boolean>
                                  - *
                                  - *

                                  If true (default), a completely new class - * is created which extends the main class, and acts as the - * host on which the extension classes are augmented.

                                  - *

                                  If false, the extensions classes are augmented directly to - * the main class, modifying the main class' prototype.

                                  - *
                                  - *
                                  aggregates <String[]>
                                  - *
                                  An array of static property names, which will get aggregated - * on to the built class, in addition to the default properties build - * will always aggregate as defined by the main class' static _buildCfg - * property. - *
                                  - *
                                  - * - * @method Base.build - * @deprecated Use the more convenient Base.create and Base.mix methods instead - * @static - * @param {Function} name The name of the new class. Used to defined the NAME property for the new class. - * @param {Function} main The main class on which to base the built class - * @param {Function[]} extensions The set of extension classes which will be - * augmented/aggregated to the built class. - * @param {Object} cfg Optional. Build configuration for the class (see description). - * @return {Function} A custom class, created from the provided main and extension classes - */ - Base.build = function(name, main, extensions, cfg) { - return build(name, main, extensions, null, null, cfg); - }; - - /** - *

                                  Creates a new class (constructor function) which extends the base class passed in as the second argument, - * and mixes in the array of extensions provided.

                                  - *

                                  Prototype properties or methods can be added to the new class, using the px argument (similar to Y.extend).

                                  - *

                                  Static properties or methods can be added to the new class, using the sx argument (similar to Y.extend).

                                  - *

                                  - * - *

                                  - * @method Base.create - * @static - * @param {Function} name The name of the newly created class. Used to defined the NAME property for the new class. - * @param {Function} main The base class which the new class should extend. This class needs to be Base or a class derived from base (e.g. Widget). - * @param {Function[]} extensions The list of extensions which will be mixed into the built class. - * @param {Object} px The set of prototype properties/methods to add to the built class. - * @param {Object} sx The set of static properties/methods to add to the built class. - * @return {Function} The newly created class. - */ - Base.create = function(name, base, extensions, px, sx) { - return build(name, base, extensions, px, sx); - }; - - /** - *

                                  Mixes in a list of extensions to an existing class.

                                  - * @method Base.mix - * @static - * @param {Function} main The existing class into which the extensions should be mixed. The class needs to be Base or a class derived from Base (e.g. Widget) - * @param {Function[]} extensions The set of extension classes which will mixed into the existing main class. - * @return {Function} The modified main class, with extensions mixed in. - */ - Base.mix = function(main, extensions) { - return build(null, main, extensions, null, null, {dynamic:false}); - }; - - /** - * The build configuration for the Base class. - * - * Defines the static fields which need to be aggregated - * when the Base class is used as the main class passed to - * the Base.build method. - * - * @property Base._buildCfg - * @type Object - * @static - * @final - * @private - */ - Base._buildCfg = { - custom : { - ATTRS : function(prop, r, s) { - - r.ATTRS = r.ATTRS || {}; - - if (s.ATTRS) { - - var sAttrs = s.ATTRS, - rAttrs = r.ATTRS, - a; - - for (a in sAttrs) { - if (sAttrs.hasOwnProperty(a)) { - rAttrs[a] = rAttrs[a] || {}; - Y.mix(rAttrs[a], sAttrs[a], true); - } - } - } - } - }, - aggregates : ["_PLUG", "_UNPLUG"] - }; - - -}, '3.4.0' ,{requires:['base-base']}); diff --git a/build/base/base-build-min.js b/build/base/base-build-min.js deleted file mode 100644 index e3468e7b60f..00000000000 --- a/build/base/base-build-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("base-build",function(f){var c=f.Base,a=f.Lang,b="initializer",d="destructor",e;c._build=function(B,p,z,s,t,o){var u=c._build,x=u._ctor(p,o),q=u._cfg(p,o),h=u._mixCust,m=q.aggregates,g=q.custom,k=x._yuibuild.dynamic,w,v,A,j,n,y,r;if(k&&m){for(w=0,v=m.length;w - * Builds a custom constructor function (class) from the - * main function, and array of extension functions (classes) - * provided. The NAME field for the constructor function is - * defined by the first argument passed in. - *

                                  - *

                                  - * The cfg object supports the following properties - *

                                  - *
                                  - *
                                  dynamic <boolean>
                                  - *
                                  - *

                                  If true (default), a completely new class - * is created which extends the main class, and acts as the - * host on which the extension classes are augmented.

                                  - *

                                  If false, the extensions classes are augmented directly to - * the main class, modifying the main class' prototype.

                                  - *
                                  - *
                                  aggregates <String[]>
                                  - *
                                  An array of static property names, which will get aggregated - * on to the built class, in addition to the default properties build - * will always aggregate as defined by the main class' static _buildCfg - * property. - *
                                  - *
                                  - * - * @method Base.build - * @deprecated Use the more convenient Base.create and Base.mix methods instead - * @static - * @param {Function} name The name of the new class. Used to defined the NAME property for the new class. - * @param {Function} main The main class on which to base the built class - * @param {Function[]} extensions The set of extension classes which will be - * augmented/aggregated to the built class. - * @param {Object} cfg Optional. Build configuration for the class (see description). - * @return {Function} A custom class, created from the provided main and extension classes - */ - Base.build = function(name, main, extensions, cfg) { - return build(name, main, extensions, null, null, cfg); - }; - - /** - *

                                  Creates a new class (constructor function) which extends the base class passed in as the second argument, - * and mixes in the array of extensions provided.

                                  - *

                                  Prototype properties or methods can be added to the new class, using the px argument (similar to Y.extend).

                                  - *

                                  Static properties or methods can be added to the new class, using the sx argument (similar to Y.extend).

                                  - *

                                  - * - *

                                  - * @method Base.create - * @static - * @param {Function} name The name of the newly created class. Used to defined the NAME property for the new class. - * @param {Function} main The base class which the new class should extend. This class needs to be Base or a class derived from base (e.g. Widget). - * @param {Function[]} extensions The list of extensions which will be mixed into the built class. - * @param {Object} px The set of prototype properties/methods to add to the built class. - * @param {Object} sx The set of static properties/methods to add to the built class. - * @return {Function} The newly created class. - */ - Base.create = function(name, base, extensions, px, sx) { - return build(name, base, extensions, px, sx); - }; - - /** - *

                                  Mixes in a list of extensions to an existing class.

                                  - * @method Base.mix - * @static - * @param {Function} main The existing class into which the extensions should be mixed. The class needs to be Base or a class derived from Base (e.g. Widget) - * @param {Function[]} extensions The set of extension classes which will mixed into the existing main class. - * @return {Function} The modified main class, with extensions mixed in. - */ - Base.mix = function(main, extensions) { - return build(null, main, extensions, null, null, {dynamic:false}); - }; - - /** - * The build configuration for the Base class. - * - * Defines the static fields which need to be aggregated - * when the Base class is used as the main class passed to - * the Base.build method. - * - * @property Base._buildCfg - * @type Object - * @static - * @final - * @private - */ - Base._buildCfg = { - custom : { - ATTRS : function(prop, r, s) { - - r.ATTRS = r.ATTRS || {}; - - if (s.ATTRS) { - - var sAttrs = s.ATTRS, - rAttrs = r.ATTRS, - a; - - for (a in sAttrs) { - if (sAttrs.hasOwnProperty(a)) { - rAttrs[a] = rAttrs[a] || {}; - Y.mix(rAttrs[a], sAttrs[a], true); - } - } - } - } - }, - aggregates : ["_PLUG", "_UNPLUG"] - }; - - -}, '3.4.0' ,{requires:['base-base']}); diff --git a/build/base/base-debug.js b/build/base/base-debug.js deleted file mode 100644 index bf1ebb849cd..00000000000 --- a/build/base/base-debug.js +++ /dev/null @@ -1,992 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('base-base', function(Y) { - - /** - * The base module provides the Base class, which objects requiring attribute and custom event support can extend. - * The module also provides two ways to reuse code - It augments Base with the Plugin.Host interface which provides - * plugin support and also provides the Base.build method which provides a way to build custom classes using extensions. - * - * @module base - */ - - /** - * The base-base submodule provides the Base class without the Plugin support, provided by Plugin.Host, - * and without the extension support provided by Base.build. - * - * @module base - * @submodule base-base - */ - var O = Y.Object, - L = Y.Lang, - DOT = ".", - DESTROY = "destroy", - INIT = "init", - INITIALIZED = "initialized", - DESTROYED = "destroyed", - INITIALIZER = "initializer", - BUBBLETARGETS = "bubbleTargets", - _BUBBLETARGETS = "_bubbleTargets", - OBJECT_CONSTRUCTOR = Object.prototype.constructor, - DEEP = "deep", - SHALLOW = "shallow", - DESTRUCTOR = "destructor", - - Attribute = Y.Attribute, - - _wlmix = function(r, s, wlhash) { - var p; - for (p in s) { - if(wlhash[p]) { - r[p] = s[p]; - } - } - return r; - }; - - /** - *

                                  - * A base class which objects requiring attributes and custom event support can - * extend. Base also handles the chaining of initializer and destructor methods across - * the hierarchy as part of object construction and destruction. Additionally, attributes configured - * through the static ATTRS property for each class - * in the hierarchy will be initialized by Base. - *

                                  - * - *

                                  - * The static NAME property of each class extending - * from Base will be used as the identifier for the class, and is used by Base to prefix - * all events fired by instances of that class. - *

                                  - * - * @class Base - * @constructor - * @uses Attribute - * @uses Plugin.Host - * - * @param {Object} config Object with configuration property name/value pairs. The object can be - * used to provide default values for the objects published attributes. - * - *

                                  - * The config object can also contain the following non-attribute properties, providing a convenient - * way to configure events listeners and plugins for the instance, as part of the constructor call: - *

                                  - * - *
                                  - *
                                  on
                                  - *
                                  An event name to listener function map, to register event listeners for the "on" moment of the event. A constructor convenience property for the on method.
                                  - *
                                  after
                                  - *
                                  An event name to listener function map, to register event listeners for the "after" moment of the event. A constructor convenience property for the after method.
                                  - *
                                  bubbleTargets
                                  - *
                                  An object, or array of objects, to register as bubble targets for bubbled events fired by this instance. A constructor convenience property for the addTarget method.
                                  - *
                                  plugins
                                  - *
                                  A plugin, or array of plugins to be plugged into the instance (see PluginHost's plug method for signature details). A constructor convenience property for the plug method.
                                  - *
                                  - */ - function Base() { - Y.log('constructor called', 'life', 'base'); - - // So the object can be used as a hash key (as DD does) - Y.stamp(this); - - Attribute.call(this); - - // If Plugin.Host has been augmented [ through base-pluginhost ], setup it's - // initial state, but don't initialize Plugins yet. That's done after initialization. - var PluginHost = Y.Plugin && Y.Plugin.Host; - if (this._initPlugins && PluginHost) { - PluginHost.call(this); - } - - if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; } - - /** - * The string used to identify the class of this object. - * - * @deprecated Use this.constructor.NAME - * @property name - * @type String - */ - this.name = this.constructor.NAME; - this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME; - - this.init.apply(this, arguments); - } - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce, readOnly etc.) - * - * @property Base._ATTR_CFG - * @type Array - * @static - * @private - */ - Base._ATTR_CFG = Attribute._ATTR_CFG.concat("cloneDefaultValue"); - Base._ATTR_CFG_HASH = Y.Array.hash(Base._ATTR_CFG); - - /** - *

                                  - * The string to be used to identify instances of - * this class, for example in prefixing events. - *

                                  - *

                                  - * Classes extending Base, should define their own - * static NAME property, which should be camelCase by - * convention (e.g. MyClass.NAME = "myClass";). - *

                                  - * @property Base.NAME - * @type String - * @static - */ - Base.NAME = "base"; - - /** - * The default set of attributes which will be available for instances of this class, and - * their configuration. In addition to the configuration properties listed by - * Attribute's addAttr method, the attribute - * can also be configured with a "cloneDefaultValue" property, which defines how the statically - * defined value field should be protected ("shallow", "deep" and false are supported values). - * - * By default if the value is an object literal or an array it will be "shallow" cloned, to - * protect the default value. - * - * @property Base.ATTRS - * @type Object - * @static - */ - Base.ATTRS = { - /** - * Flag indicating whether or not this object - * has been through the init lifecycle phase. - * - * @attribute initialized - * @readonly - * @default false - * @type boolean - */ - initialized: { - readOnly:true, - value:false - }, - - /** - * Flag indicating whether or not this object - * has been through the destroy lifecycle phase. - * - * @attribute destroyed - * @readonly - * @default false - * @type boolean - */ - destroyed: { - readOnly:true, - value:false - } - }; - - Base.prototype = { - - /** - * Init lifecycle method, invoked during construction. - * Fires the init event prior to setting up attributes and - * invoking initializers for the class hierarchy. - * - * @method init - * @final - * @chainable - * @param {Object} config Object with configuration property name/value pairs - * @return {Base} A reference to this object - */ - init: function(config) { - Y.log('init called', 'life', 'base'); - - this._yuievt.config.prefix = this._eventPrefix; - - /** - *

                                  - * Lifecycle event for the init phase, fired prior to initialization. - * Invoking the preventDefault() method on the event object provided - * to subscribers will prevent initialization from occuring. - *

                                  - *

                                  - * Subscribers to the "after" momemt of this event, will be notified - * after initialization of the object is complete (and therefore - * cannot prevent initialization). - *

                                  - * - * @event init - * @preventable _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - */ - this.publish(INIT, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn:this._defInitFn - }); - - this._preInitEventCfg(config); - - this.fire(INIT, {cfg: config}); - - return this; - }, - - /** - * Handles the special on, after and target properties which allow the user to - * easily configure on and after listeners as well as bubble targets during - * construction, prior to init. - * - * @private - * @method _preInitEventCfg - * @param {Object} config The user configuration object - */ - _preInitEventCfg : function(config) { - if (config) { - if (config.on) { - this.on(config.on); - } - if (config.after) { - this.after(config.after); - } - } - - var i, l, target, - userTargets = (config && BUBBLETARGETS in config); - - if (userTargets || _BUBBLETARGETS in this) { - target = userTargets ? (config && config.bubbleTargets) : this._bubbleTargets; - if (L.isArray(target)) { - for (i = 0, l = target.length; i < l; i++) { - this.addTarget(target[i]); - } - } else if (target) { - this.addTarget(target); - } - } - }, - - /** - *

                                  - * Destroy lifecycle method. Fires the destroy - * event, prior to invoking destructors for the - * class hierarchy. - *

                                  - *

                                  - * Subscribers to the destroy - * event can invoke preventDefault on the event object, to prevent destruction - * from proceeding. - *

                                  - * @method destroy - * @return {Base} A reference to this object - * @final - * @chainable - */ - destroy: function() { - Y.log('destroy called', 'life', 'base'); - - /** - *

                                  - * Lifecycle event for the destroy phase, - * fired prior to destruction. Invoking the preventDefault - * method on the event object provided to subscribers will - * prevent destruction from proceeding. - *

                                  - *

                                  - * Subscribers to the "after" moment of this event, will be notified - * after destruction is complete (and as a result cannot prevent - * destruction). - *

                                  - * @event destroy - * @preventable _defDestroyFn - * @param {EventFacade} e Event object - */ - this.publish(DESTROY, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn: this._defDestroyFn - }); - this.fire(DESTROY); - - this.detachAll(); - return this; - }, - - /** - * Default init event handler - * - * @method _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - * @protected - */ - _defInitFn : function(e) { - this._initHierarchy(e.cfg); - if (this._initPlugins) { - // Need to initPlugins manually, to handle constructor parsing, static Plug parsing - this._initPlugins(e.cfg); - } - this._set(INITIALIZED, true); - }, - - /** - * Default destroy event handler - * - * @method _defDestroyFn - * @param {EventFacade} e Event object - * @protected - */ - _defDestroyFn : function(e) { - if (this._destroyPlugins) { - this._destroyPlugins(); - } - this._destroyHierarchy(); - this._set(DESTROYED, true); - }, - - /** - * Returns the class hierarchy for this object, with Base being the last class in the array. - * - * @method _getClasses - * @protected - * @return {Function[]} An array of classes (constructor functions), making up the class hierarchy for this object. - * This value is cached the first time the method, or _getAttrCfgs, is invoked. Subsequent invocations return the - * cached value. - */ - _getClasses : function() { - if (!this._classes) { - this._initHierarchyData(); - } - return this._classes; - }, - - /** - * Returns an aggregated set of attribute configurations, by traversing the class hierarchy. - * - * @method _getAttrCfgs - * @protected - * @return {Object} The hash of attribute configurations, aggregated across classes in the hierarchy - * This value is cached the first time the method, or _getClasses, is invoked. Subsequent invocations return - * the cached value. - */ - _getAttrCfgs : function() { - if (!this._attrs) { - this._initHierarchyData(); - } - return this._attrs; - }, - - /** - * A helper method used when processing ATTRS across the class hierarchy during - * initialization. Returns a disposable object with the attributes defined for - * the provided class, extracted from the set of all attributes passed in . - * - * @method _filterAttrCfs - * @private - * - * @param {Function} clazz The class for which the desired attributes are required. - * @param {Object} allCfgs The set of all attribute configurations for this instance. - * Attributes will be removed from this set, if they belong to the filtered class, so - * that by the time all classes are processed, allCfgs will be empty. - * - * @return {Object} The set of attributes belonging to the class passed in, in the form - * of an object with attribute name/configuration pairs. - */ - _filterAttrCfgs : function(clazz, allCfgs) { - var cfgs = null, attr, attrs = clazz.ATTRS; - - if (attrs) { - for (attr in attrs) { - if (allCfgs[attr]) { - cfgs = cfgs || {}; - cfgs[attr] = allCfgs[attr]; - allCfgs[attr] = null; - } - } - } - - return cfgs; - }, - - /** - * A helper method used by _getClasses and _getAttrCfgs, which determines both - * the array of classes and aggregate set of attribute configurations - * across the class hierarchy for the instance. - * - * @method _initHierarchyData - * @private - */ - _initHierarchyData : function() { - var c = this.constructor, - classes = [], - attrs = []; - - while (c) { - // Add to classes - classes[classes.length] = c; - - // Add to attributes - if (c.ATTRS) { - attrs[attrs.length] = c.ATTRS; - } - c = c.superclass ? c.superclass.constructor : null; - } - - this._classes = classes; - this._attrs = this._aggregateAttrs(attrs); - }, - - /** - * A helper method, used by _initHierarchyData to aggregate - * attribute configuration across the instances class hierarchy. - * - * The method will protect the attribute configuration value to protect the statically defined - * default value in ATTRS if required (if the value is an object literal, array or the - * attribute configuration has cloneDefaultValue set to shallow or deep). - * - * @method _aggregateAttrs - * @private - * @param {Array} allAttrs An array of ATTRS definitions across classes in the hierarchy - * (subclass first, Base last) - * @return {Object} The aggregate set of ATTRS definitions for the instance - */ - _aggregateAttrs : function(allAttrs) { - var attr, - attrs, - cfg, - val, - path, - i, - clone, - cfgPropsHash = Base._ATTR_CFG_HASH, - aggAttrs = {}; - - if (allAttrs) { - for (i = allAttrs.length-1; i >= 0; --i) { - attrs = allAttrs[i]; - - for (attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - - // Protect config passed in - //cfg = Y.mix({}, attrs[attr], true, cfgProps); - //cfg = Y.Object(attrs[attr]); - cfg = _wlmix({}, attrs[attr], cfgPropsHash); - - val = cfg.value; - clone = cfg.cloneDefaultValue; - - if (val) { - if ( (clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val))) || clone === DEEP || clone === true) { - Y.log('Cloning default value for attribute:' + attr, 'info', 'base'); - cfg.value = Y.clone(val); - } else if (clone === SHALLOW) { - Y.log('Merging default value for attribute:' + attr, 'info', 'base'); - cfg.value = Y.merge(val); - } - // else if (clone === false), don't clone the static default value. - // It's intended to be used by reference. - } - - path = null; - if (attr.indexOf(DOT) !== -1) { - path = attr.split(DOT); - attr = path.shift(); - } - - if (path && aggAttrs[attr] && aggAttrs[attr].value) { - O.setValue(aggAttrs[attr].value, path, val); - } else if (!path) { - if (!aggAttrs[attr]) { - aggAttrs[attr] = cfg; - } else { - _wlmix(aggAttrs[attr], cfg, cfgPropsHash); - } - } - } - } - } - } - - return aggAttrs; - }, - - /** - * Initializes the class hierarchy for the instance, which includes - * initializing attributes for each class defined in the class's - * static ATTRS property and - * invoking the initializer method on the prototype of each class in the hierarchy. - * - * @method _initHierarchy - * @param {Object} userVals Object with configuration property name/value pairs - * @private - */ - _initHierarchy : function(userVals) { - var lazy = this._lazyAddAttrs, - constr, - constrProto, - ci, - ei, - el, - extProto, - exts, - classes = this._getClasses(), - attrCfgs = this._getAttrCfgs(); - - for (ci = classes.length-1; ci >= 0; ci--) { - - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - exts[ei].apply(this, arguments); - } - } - - this.addAttrs(this._filterAttrCfgs(constr, attrCfgs), userVals, lazy); - - // Using INITIALIZER in hasOwnProperty check, for performance reasons (helps IE6 avoid GC thresholds when - // referencing string literals). Not using it in apply, again, for performance "." is faster. - if (constrProto.hasOwnProperty(INITIALIZER)) { - constrProto.initializer.apply(this, arguments); - } - - if (exts) { - for (ei = 0; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(INITIALIZER)) { - extProto.initializer.apply(this, arguments); - } - } - } - } - }, - - /** - * Destroys the class hierarchy for this instance by invoking - * the destructor method on the prototype of each class in the hierarchy. - * - * @method _destroyHierarchy - * @private - */ - _destroyHierarchy : function() { - var constr, - constrProto, - ci, cl, ei, el, exts, extProto, - classes = this._getClasses(); - - for (ci = 0, cl = classes.length; ci < cl; ci++) { - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(DESTRUCTOR)) { - extProto.destructor.apply(this, arguments); - } - } - } - - if (constrProto.hasOwnProperty(DESTRUCTOR)) { - constrProto.destructor.apply(this, arguments); - } - } - }, - - /** - * Default toString implementation. Provides the constructor NAME - * and the instance guid, if set. - * - * @method toString - * @return {String} String representation for this object - */ - toString: function() { - return this.name + "[" + Y.stamp(this, true) + "]"; - } - - }; - - // Straightup augment, no wrapper functions - Y.mix(Base, Attribute, false, null, 1); - - // Fix constructor - Base.prototype.constructor = Base; - - Y.Base = Base; - - -}, '3.4.0' ,{requires:['attribute-base']}); -YUI.add('base-pluginhost', function(Y) { - - /** - * The base-pluginhost submodule adds Plugin support to Base, by augmenting Base with - * Plugin.Host and setting up static (class level) Base.plug and Base.unplug methods. - * - * @module base - * @submodule base-pluginhost - * @for Base - */ - - var Base = Y.Base, - PluginHost = Y.Plugin.Host; - - Y.mix(Base, PluginHost, false, null, 1); - - /** - * Alias for Plugin.Host.plug. See aliased - * method for argument and return value details. - * - * @method Base.plug - * @static - */ - Base.plug = PluginHost.plug; - - /** - * Alias for Plugin.Host.unplug. See the - * aliased method for argument and return value details. - * - * @method Base.unplug - * @static - */ - Base.unplug = PluginHost.unplug; - - -}, '3.4.0' ,{requires:['base-base', 'pluginhost']}); -YUI.add('base-build', function(Y) { - - /** - * The base-build submodule provides Base.build functionality, which - * can be used to create custom classes, by aggregating extensions onto - * a main class. - * - * @module base - * @submodule base-build - * @for Base - */ - var Base = Y.Base, - L = Y.Lang, - INITIALIZER = "initializer", - DESTRUCTOR = "destructor", - build; - - Base._build = function(name, main, extensions, px, sx, cfg) { - - var build = Base._build, - - builtClass = build._ctor(main, cfg), - buildCfg = build._cfg(main, cfg), - - _mixCust = build._mixCust, - - aggregates = buildCfg.aggregates, - custom = buildCfg.custom, - - dynamic = builtClass._yuibuild.dynamic, - - i, l, val, extClass, extProto, - initializer, - destructor; - - if (dynamic && aggregates) { - for (i = 0, l = aggregates.length; i < l; ++i) { - val = aggregates[i]; - if (main.hasOwnProperty(val)) { - builtClass[val] = L.isArray(main[val]) ? [] : {}; - } - } - } - - // Augment/Aggregate - for (i = 0, l = extensions.length; i < l; i++) { - extClass = extensions[i]; - - extProto = extClass.prototype; - - initializer = extProto[INITIALIZER]; - destructor = extProto[DESTRUCTOR]; - delete extProto[INITIALIZER]; - delete extProto[DESTRUCTOR]; - - // Prototype, old non-displacing augment - Y.mix(builtClass, extClass, true, null, 1); - - // Custom Statics - _mixCust(builtClass, extClass, aggregates, custom); - - if (initializer) { - extProto[INITIALIZER] = initializer; - } - - if (destructor) { - extProto[DESTRUCTOR] = destructor; - } - - builtClass._yuibuild.exts.push(extClass); - } - - if (px) { - Y.mix(builtClass.prototype, px, true); - } - - if (sx) { - Y.mix(builtClass, build._clean(sx, aggregates, custom), true); - _mixCust(builtClass, sx, aggregates, custom); - } - - builtClass.prototype.hasImpl = build._impl; - - if (dynamic) { - builtClass.NAME = name; - builtClass.prototype.constructor = builtClass; - } - - return builtClass; - }; - - build = Base._build; - - Y.mix(build, { - - _mixCust: function(r, s, aggregates, custom) { - - if (aggregates) { - Y.aggregate(r, s, true, aggregates); - } - - if (custom) { - for (var j in custom) { - if (custom.hasOwnProperty(j)) { - custom[j](j, r, s); - } - } - } - }, - - _tmpl: function(main) { - - function BuiltClass() { - BuiltClass.superclass.constructor.apply(this, arguments); - } - Y.extend(BuiltClass, main); - - return BuiltClass; - }, - - _impl : function(extClass) { - var classes = this._getClasses(), i, l, cls, exts, ll, j; - for (i = 0, l = classes.length; i < l; i++) { - cls = classes[i]; - if (cls._yuibuild) { - exts = cls._yuibuild.exts; - ll = exts.length; - - for (j = 0; j < ll; j++) { - if (exts[j] === extClass) { - return true; - } - } - } - } - return false; - }, - - _ctor : function(main, cfg) { - - var dynamic = (cfg && false === cfg.dynamic) ? false : true, - builtClass = (dynamic) ? build._tmpl(main) : main, - buildCfg = builtClass._yuibuild; - - if (!buildCfg) { - buildCfg = builtClass._yuibuild = {}; - } - - buildCfg.id = buildCfg.id || null; - buildCfg.exts = buildCfg.exts || []; - buildCfg.dynamic = dynamic; - - return builtClass; - }, - - _cfg : function(main, cfg) { - var aggr = [], - cust = {}, - buildCfg, - cfgAggr = (cfg && cfg.aggregates), - cfgCustBuild = (cfg && cfg.custom), - c = main; - - while (c && c.prototype) { - buildCfg = c._buildCfg; - if (buildCfg) { - if (buildCfg.aggregates) { - aggr = aggr.concat(buildCfg.aggregates); - } - if (buildCfg.custom) { - Y.mix(cust, buildCfg.custom, true); - } - } - c = c.superclass ? c.superclass.constructor : null; - } - - if (cfgAggr) { - aggr = aggr.concat(cfgAggr); - } - if (cfgCustBuild) { - Y.mix(cust, cfg.cfgBuild, true); - } - - return { - aggregates: aggr, - custom: cust - }; - }, - - _clean : function(sx, aggregates, custom) { - var prop, i, l, sxclone = Y.merge(sx); - - for (prop in custom) { - if (sxclone.hasOwnProperty(prop)) { - delete sxclone[prop]; - } - } - - for (i = 0, l = aggregates.length; i < l; i++) { - prop = aggregates[i]; - if (sxclone.hasOwnProperty(prop)) { - delete sxclone[prop]; - } - } - - return sxclone; - } - }); - - /** - *

                                  - * Builds a custom constructor function (class) from the - * main function, and array of extension functions (classes) - * provided. The NAME field for the constructor function is - * defined by the first argument passed in. - *

                                  - *

                                  - * The cfg object supports the following properties - *

                                  - *
                                  - *
                                  dynamic <boolean>
                                  - *
                                  - *

                                  If true (default), a completely new class - * is created which extends the main class, and acts as the - * host on which the extension classes are augmented.

                                  - *

                                  If false, the extensions classes are augmented directly to - * the main class, modifying the main class' prototype.

                                  - *
                                  - *
                                  aggregates <String[]>
                                  - *
                                  An array of static property names, which will get aggregated - * on to the built class, in addition to the default properties build - * will always aggregate as defined by the main class' static _buildCfg - * property. - *
                                  - *
                                  - * - * @method Base.build - * @deprecated Use the more convenient Base.create and Base.mix methods instead - * @static - * @param {Function} name The name of the new class. Used to defined the NAME property for the new class. - * @param {Function} main The main class on which to base the built class - * @param {Function[]} extensions The set of extension classes which will be - * augmented/aggregated to the built class. - * @param {Object} cfg Optional. Build configuration for the class (see description). - * @return {Function} A custom class, created from the provided main and extension classes - */ - Base.build = function(name, main, extensions, cfg) { - return build(name, main, extensions, null, null, cfg); - }; - - /** - *

                                  Creates a new class (constructor function) which extends the base class passed in as the second argument, - * and mixes in the array of extensions provided.

                                  - *

                                  Prototype properties or methods can be added to the new class, using the px argument (similar to Y.extend).

                                  - *

                                  Static properties or methods can be added to the new class, using the sx argument (similar to Y.extend).

                                  - *

                                  - * - *

                                  - * @method Base.create - * @static - * @param {Function} name The name of the newly created class. Used to defined the NAME property for the new class. - * @param {Function} main The base class which the new class should extend. This class needs to be Base or a class derived from base (e.g. Widget). - * @param {Function[]} extensions The list of extensions which will be mixed into the built class. - * @param {Object} px The set of prototype properties/methods to add to the built class. - * @param {Object} sx The set of static properties/methods to add to the built class. - * @return {Function} The newly created class. - */ - Base.create = function(name, base, extensions, px, sx) { - return build(name, base, extensions, px, sx); - }; - - /** - *

                                  Mixes in a list of extensions to an existing class.

                                  - * @method Base.mix - * @static - * @param {Function} main The existing class into which the extensions should be mixed. The class needs to be Base or a class derived from Base (e.g. Widget) - * @param {Function[]} extensions The set of extension classes which will mixed into the existing main class. - * @return {Function} The modified main class, with extensions mixed in. - */ - Base.mix = function(main, extensions) { - return build(null, main, extensions, null, null, {dynamic:false}); - }; - - /** - * The build configuration for the Base class. - * - * Defines the static fields which need to be aggregated - * when the Base class is used as the main class passed to - * the Base.build method. - * - * @property Base._buildCfg - * @type Object - * @static - * @final - * @private - */ - Base._buildCfg = { - custom : { - ATTRS : function(prop, r, s) { - - r.ATTRS = r.ATTRS || {}; - - if (s.ATTRS) { - - var sAttrs = s.ATTRS, - rAttrs = r.ATTRS, - a; - - for (a in sAttrs) { - if (sAttrs.hasOwnProperty(a)) { - rAttrs[a] = rAttrs[a] || {}; - Y.mix(rAttrs[a], sAttrs[a], true); - } - } - } - } - }, - aggregates : ["_PLUG", "_UNPLUG"] - }; - - -}, '3.4.0' ,{requires:['base-base']}); - - -YUI.add('base', function(Y){}, '3.4.0' ,{after:['attribute-complex'], use:['base-base', 'base-pluginhost', 'base-build']}); - diff --git a/build/base/base-min.js b/build/base/base-min.js deleted file mode 100644 index 3f373cf139e..00000000000 --- a/build/base/base-min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("base-base",function(d){var g=d.Object,h=d.Lang,o=".",q="destroy",b="init",r="initialized",m="destroyed",n="initializer",j="bubbleTargets",e="_bubbleTargets",a=Object.prototype.constructor,c="deep",p="shallow",k="destructor",f=d.Attribute,l=function(v,u,t){var w;for(w in u){if(t[w]){v[w]=u[w];}}return v;};function i(){d.stamp(this);f.call(this);var s=d.Plugin&&d.Plugin.Host;if(this._initPlugins&&s){s.call(this);}if(this._lazyAddAttrs!==false){this._lazyAddAttrs=true;}this.name=this.constructor.NAME;this._eventPrefix=this.constructor.EVENT_PREFIX||this.constructor.NAME;this.init.apply(this,arguments);}i._ATTR_CFG=f._ATTR_CFG.concat("cloneDefaultValue");i._ATTR_CFG_HASH=d.Array.hash(i._ATTR_CFG);i.NAME="base";i.ATTRS={initialized:{readOnly:true,value:false},destroyed:{readOnly:true,value:false}};i.prototype={init:function(s){this._yuievt.config.prefix=this._eventPrefix;this.publish(b,{queuable:false,fireOnce:true,defaultTargetOnly:true,defaultFn:this._defInitFn});this._preInitEventCfg(s);this.fire(b,{cfg:s});return this;},_preInitEventCfg:function(t){if(t){if(t.on){this.on(t.on);}if(t.after){this.after(t.after);}}var u,s,w,v=(t&&j in t);if(v||e in this){w=v?(t&&t.bubbleTargets):this._bubbleTargets;if(h.isArray(w)){for(u=0,s=w.length;u=0;--t){A=z[t];for(v in A){if(A.hasOwnProperty(v)){u=l({},A[v],x);s=u.value;y=u.cloneDefaultValue;if(s){if((y===undefined&&(a===s.constructor||h.isArray(s)))||y===c||y===true){u.value=d.clone(s);}else{if(y===p){u.value=d.merge(s);}}}B=null;if(v.indexOf(o)!==-1){B=v.split(o);v=B.shift();}if(B&&w[v]&&w[v].value){g.setValue(w[v].value,B,s);}else{if(!B){if(!w[v]){w[v]=u;}else{l(w[v],u,x);}}}}}}}return w;},_initHierarchy:function(y){var u=this._lazyAddAttrs,z,A,C,w,t,B,x,v=this._getClasses(),s=this._getAttrCfgs();for(C=v.length-1;C>=0;C--){z=v[C];A=z.prototype;x=z._yuibuild&&z._yuibuild.exts;if(x){for(w=0,t=x.length;wPlugin.Host.plug. See aliased - * method for argument and return value details. - * - * @method Base.plug - * @static - */ - Base.plug = PluginHost.plug; - - /** - * Alias for Plugin.Host.unplug. See the - * aliased method for argument and return value details. - * - * @method Base.unplug - * @static - */ - Base.unplug = PluginHost.unplug; - - -}, '3.4.0' ,{requires:['base-base', 'pluginhost']}); diff --git a/build/base/base-pluginhost-min.js b/build/base/base-pluginhost-min.js deleted file mode 100644 index 1af671cb8a2..00000000000 --- a/build/base/base-pluginhost-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("base-pluginhost",function(c){var a=c.Base,b=c.Plugin.Host;c.mix(a,b,false,null,1);a.plug=b.plug;a.unplug=b.unplug;},"3.4.0",{requires:["base-base","pluginhost"]}); \ No newline at end of file diff --git a/build/base/base-pluginhost.js b/build/base/base-pluginhost.js deleted file mode 100644 index 744e1eae93d..00000000000 --- a/build/base/base-pluginhost.js +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('base-pluginhost', function(Y) { - - /** - * The base-pluginhost submodule adds Plugin support to Base, by augmenting Base with - * Plugin.Host and setting up static (class level) Base.plug and Base.unplug methods. - * - * @module base - * @submodule base-pluginhost - * @for Base - */ - - var Base = Y.Base, - PluginHost = Y.Plugin.Host; - - Y.mix(Base, PluginHost, false, null, 1); - - /** - * Alias for Plugin.Host.plug. See aliased - * method for argument and return value details. - * - * @method Base.plug - * @static - */ - Base.plug = PluginHost.plug; - - /** - * Alias for Plugin.Host.unplug. See the - * aliased method for argument and return value details. - * - * @method Base.unplug - * @static - */ - Base.unplug = PluginHost.unplug; - - -}, '3.4.0' ,{requires:['base-base', 'pluginhost']}); diff --git a/build/base/base.js b/build/base/base.js deleted file mode 100644 index c38c896ba08..00000000000 --- a/build/base/base.js +++ /dev/null @@ -1,987 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('base-base', function(Y) { - - /** - * The base module provides the Base class, which objects requiring attribute and custom event support can extend. - * The module also provides two ways to reuse code - It augments Base with the Plugin.Host interface which provides - * plugin support and also provides the Base.build method which provides a way to build custom classes using extensions. - * - * @module base - */ - - /** - * The base-base submodule provides the Base class without the Plugin support, provided by Plugin.Host, - * and without the extension support provided by Base.build. - * - * @module base - * @submodule base-base - */ - var O = Y.Object, - L = Y.Lang, - DOT = ".", - DESTROY = "destroy", - INIT = "init", - INITIALIZED = "initialized", - DESTROYED = "destroyed", - INITIALIZER = "initializer", - BUBBLETARGETS = "bubbleTargets", - _BUBBLETARGETS = "_bubbleTargets", - OBJECT_CONSTRUCTOR = Object.prototype.constructor, - DEEP = "deep", - SHALLOW = "shallow", - DESTRUCTOR = "destructor", - - Attribute = Y.Attribute, - - _wlmix = function(r, s, wlhash) { - var p; - for (p in s) { - if(wlhash[p]) { - r[p] = s[p]; - } - } - return r; - }; - - /** - *

                                  - * A base class which objects requiring attributes and custom event support can - * extend. Base also handles the chaining of initializer and destructor methods across - * the hierarchy as part of object construction and destruction. Additionally, attributes configured - * through the static ATTRS property for each class - * in the hierarchy will be initialized by Base. - *

                                  - * - *

                                  - * The static NAME property of each class extending - * from Base will be used as the identifier for the class, and is used by Base to prefix - * all events fired by instances of that class. - *

                                  - * - * @class Base - * @constructor - * @uses Attribute - * @uses Plugin.Host - * - * @param {Object} config Object with configuration property name/value pairs. The object can be - * used to provide default values for the objects published attributes. - * - *

                                  - * The config object can also contain the following non-attribute properties, providing a convenient - * way to configure events listeners and plugins for the instance, as part of the constructor call: - *

                                  - * - *
                                  - *
                                  on
                                  - *
                                  An event name to listener function map, to register event listeners for the "on" moment of the event. A constructor convenience property for the on method.
                                  - *
                                  after
                                  - *
                                  An event name to listener function map, to register event listeners for the "after" moment of the event. A constructor convenience property for the after method.
                                  - *
                                  bubbleTargets
                                  - *
                                  An object, or array of objects, to register as bubble targets for bubbled events fired by this instance. A constructor convenience property for the addTarget method.
                                  - *
                                  plugins
                                  - *
                                  A plugin, or array of plugins to be plugged into the instance (see PluginHost's plug method for signature details). A constructor convenience property for the plug method.
                                  - *
                                  - */ - function Base() { - - // So the object can be used as a hash key (as DD does) - Y.stamp(this); - - Attribute.call(this); - - // If Plugin.Host has been augmented [ through base-pluginhost ], setup it's - // initial state, but don't initialize Plugins yet. That's done after initialization. - var PluginHost = Y.Plugin && Y.Plugin.Host; - if (this._initPlugins && PluginHost) { - PluginHost.call(this); - } - - if (this._lazyAddAttrs !== false) { this._lazyAddAttrs = true; } - - /** - * The string used to identify the class of this object. - * - * @deprecated Use this.constructor.NAME - * @property name - * @type String - */ - this.name = this.constructor.NAME; - this._eventPrefix = this.constructor.EVENT_PREFIX || this.constructor.NAME; - - this.init.apply(this, arguments); - } - - /** - * The list of properties which can be configured for - * each attribute (e.g. setter, getter, writeOnce, readOnly etc.) - * - * @property Base._ATTR_CFG - * @type Array - * @static - * @private - */ - Base._ATTR_CFG = Attribute._ATTR_CFG.concat("cloneDefaultValue"); - Base._ATTR_CFG_HASH = Y.Array.hash(Base._ATTR_CFG); - - /** - *

                                  - * The string to be used to identify instances of - * this class, for example in prefixing events. - *

                                  - *

                                  - * Classes extending Base, should define their own - * static NAME property, which should be camelCase by - * convention (e.g. MyClass.NAME = "myClass";). - *

                                  - * @property Base.NAME - * @type String - * @static - */ - Base.NAME = "base"; - - /** - * The default set of attributes which will be available for instances of this class, and - * their configuration. In addition to the configuration properties listed by - * Attribute's addAttr method, the attribute - * can also be configured with a "cloneDefaultValue" property, which defines how the statically - * defined value field should be protected ("shallow", "deep" and false are supported values). - * - * By default if the value is an object literal or an array it will be "shallow" cloned, to - * protect the default value. - * - * @property Base.ATTRS - * @type Object - * @static - */ - Base.ATTRS = { - /** - * Flag indicating whether or not this object - * has been through the init lifecycle phase. - * - * @attribute initialized - * @readonly - * @default false - * @type boolean - */ - initialized: { - readOnly:true, - value:false - }, - - /** - * Flag indicating whether or not this object - * has been through the destroy lifecycle phase. - * - * @attribute destroyed - * @readonly - * @default false - * @type boolean - */ - destroyed: { - readOnly:true, - value:false - } - }; - - Base.prototype = { - - /** - * Init lifecycle method, invoked during construction. - * Fires the init event prior to setting up attributes and - * invoking initializers for the class hierarchy. - * - * @method init - * @final - * @chainable - * @param {Object} config Object with configuration property name/value pairs - * @return {Base} A reference to this object - */ - init: function(config) { - - this._yuievt.config.prefix = this._eventPrefix; - - /** - *

                                  - * Lifecycle event for the init phase, fired prior to initialization. - * Invoking the preventDefault() method on the event object provided - * to subscribers will prevent initialization from occuring. - *

                                  - *

                                  - * Subscribers to the "after" momemt of this event, will be notified - * after initialization of the object is complete (and therefore - * cannot prevent initialization). - *

                                  - * - * @event init - * @preventable _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - */ - this.publish(INIT, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn:this._defInitFn - }); - - this._preInitEventCfg(config); - - this.fire(INIT, {cfg: config}); - - return this; - }, - - /** - * Handles the special on, after and target properties which allow the user to - * easily configure on and after listeners as well as bubble targets during - * construction, prior to init. - * - * @private - * @method _preInitEventCfg - * @param {Object} config The user configuration object - */ - _preInitEventCfg : function(config) { - if (config) { - if (config.on) { - this.on(config.on); - } - if (config.after) { - this.after(config.after); - } - } - - var i, l, target, - userTargets = (config && BUBBLETARGETS in config); - - if (userTargets || _BUBBLETARGETS in this) { - target = userTargets ? (config && config.bubbleTargets) : this._bubbleTargets; - if (L.isArray(target)) { - for (i = 0, l = target.length; i < l; i++) { - this.addTarget(target[i]); - } - } else if (target) { - this.addTarget(target); - } - } - }, - - /** - *

                                  - * Destroy lifecycle method. Fires the destroy - * event, prior to invoking destructors for the - * class hierarchy. - *

                                  - *

                                  - * Subscribers to the destroy - * event can invoke preventDefault on the event object, to prevent destruction - * from proceeding. - *

                                  - * @method destroy - * @return {Base} A reference to this object - * @final - * @chainable - */ - destroy: function() { - - /** - *

                                  - * Lifecycle event for the destroy phase, - * fired prior to destruction. Invoking the preventDefault - * method on the event object provided to subscribers will - * prevent destruction from proceeding. - *

                                  - *

                                  - * Subscribers to the "after" moment of this event, will be notified - * after destruction is complete (and as a result cannot prevent - * destruction). - *

                                  - * @event destroy - * @preventable _defDestroyFn - * @param {EventFacade} e Event object - */ - this.publish(DESTROY, { - queuable:false, - fireOnce:true, - defaultTargetOnly:true, - defaultFn: this._defDestroyFn - }); - this.fire(DESTROY); - - this.detachAll(); - return this; - }, - - /** - * Default init event handler - * - * @method _defInitFn - * @param {EventFacade} e Event object, with a cfg property which - * refers to the configuration object passed to the constructor. - * @protected - */ - _defInitFn : function(e) { - this._initHierarchy(e.cfg); - if (this._initPlugins) { - // Need to initPlugins manually, to handle constructor parsing, static Plug parsing - this._initPlugins(e.cfg); - } - this._set(INITIALIZED, true); - }, - - /** - * Default destroy event handler - * - * @method _defDestroyFn - * @param {EventFacade} e Event object - * @protected - */ - _defDestroyFn : function(e) { - if (this._destroyPlugins) { - this._destroyPlugins(); - } - this._destroyHierarchy(); - this._set(DESTROYED, true); - }, - - /** - * Returns the class hierarchy for this object, with Base being the last class in the array. - * - * @method _getClasses - * @protected - * @return {Function[]} An array of classes (constructor functions), making up the class hierarchy for this object. - * This value is cached the first time the method, or _getAttrCfgs, is invoked. Subsequent invocations return the - * cached value. - */ - _getClasses : function() { - if (!this._classes) { - this._initHierarchyData(); - } - return this._classes; - }, - - /** - * Returns an aggregated set of attribute configurations, by traversing the class hierarchy. - * - * @method _getAttrCfgs - * @protected - * @return {Object} The hash of attribute configurations, aggregated across classes in the hierarchy - * This value is cached the first time the method, or _getClasses, is invoked. Subsequent invocations return - * the cached value. - */ - _getAttrCfgs : function() { - if (!this._attrs) { - this._initHierarchyData(); - } - return this._attrs; - }, - - /** - * A helper method used when processing ATTRS across the class hierarchy during - * initialization. Returns a disposable object with the attributes defined for - * the provided class, extracted from the set of all attributes passed in . - * - * @method _filterAttrCfs - * @private - * - * @param {Function} clazz The class for which the desired attributes are required. - * @param {Object} allCfgs The set of all attribute configurations for this instance. - * Attributes will be removed from this set, if they belong to the filtered class, so - * that by the time all classes are processed, allCfgs will be empty. - * - * @return {Object} The set of attributes belonging to the class passed in, in the form - * of an object with attribute name/configuration pairs. - */ - _filterAttrCfgs : function(clazz, allCfgs) { - var cfgs = null, attr, attrs = clazz.ATTRS; - - if (attrs) { - for (attr in attrs) { - if (allCfgs[attr]) { - cfgs = cfgs || {}; - cfgs[attr] = allCfgs[attr]; - allCfgs[attr] = null; - } - } - } - - return cfgs; - }, - - /** - * A helper method used by _getClasses and _getAttrCfgs, which determines both - * the array of classes and aggregate set of attribute configurations - * across the class hierarchy for the instance. - * - * @method _initHierarchyData - * @private - */ - _initHierarchyData : function() { - var c = this.constructor, - classes = [], - attrs = []; - - while (c) { - // Add to classes - classes[classes.length] = c; - - // Add to attributes - if (c.ATTRS) { - attrs[attrs.length] = c.ATTRS; - } - c = c.superclass ? c.superclass.constructor : null; - } - - this._classes = classes; - this._attrs = this._aggregateAttrs(attrs); - }, - - /** - * A helper method, used by _initHierarchyData to aggregate - * attribute configuration across the instances class hierarchy. - * - * The method will protect the attribute configuration value to protect the statically defined - * default value in ATTRS if required (if the value is an object literal, array or the - * attribute configuration has cloneDefaultValue set to shallow or deep). - * - * @method _aggregateAttrs - * @private - * @param {Array} allAttrs An array of ATTRS definitions across classes in the hierarchy - * (subclass first, Base last) - * @return {Object} The aggregate set of ATTRS definitions for the instance - */ - _aggregateAttrs : function(allAttrs) { - var attr, - attrs, - cfg, - val, - path, - i, - clone, - cfgPropsHash = Base._ATTR_CFG_HASH, - aggAttrs = {}; - - if (allAttrs) { - for (i = allAttrs.length-1; i >= 0; --i) { - attrs = allAttrs[i]; - - for (attr in attrs) { - if (attrs.hasOwnProperty(attr)) { - - // Protect config passed in - //cfg = Y.mix({}, attrs[attr], true, cfgProps); - //cfg = Y.Object(attrs[attr]); - cfg = _wlmix({}, attrs[attr], cfgPropsHash); - - val = cfg.value; - clone = cfg.cloneDefaultValue; - - if (val) { - if ( (clone === undefined && (OBJECT_CONSTRUCTOR === val.constructor || L.isArray(val))) || clone === DEEP || clone === true) { - cfg.value = Y.clone(val); - } else if (clone === SHALLOW) { - cfg.value = Y.merge(val); - } - // else if (clone === false), don't clone the static default value. - // It's intended to be used by reference. - } - - path = null; - if (attr.indexOf(DOT) !== -1) { - path = attr.split(DOT); - attr = path.shift(); - } - - if (path && aggAttrs[attr] && aggAttrs[attr].value) { - O.setValue(aggAttrs[attr].value, path, val); - } else if (!path) { - if (!aggAttrs[attr]) { - aggAttrs[attr] = cfg; - } else { - _wlmix(aggAttrs[attr], cfg, cfgPropsHash); - } - } - } - } - } - } - - return aggAttrs; - }, - - /** - * Initializes the class hierarchy for the instance, which includes - * initializing attributes for each class defined in the class's - * static ATTRS property and - * invoking the initializer method on the prototype of each class in the hierarchy. - * - * @method _initHierarchy - * @param {Object} userVals Object with configuration property name/value pairs - * @private - */ - _initHierarchy : function(userVals) { - var lazy = this._lazyAddAttrs, - constr, - constrProto, - ci, - ei, - el, - extProto, - exts, - classes = this._getClasses(), - attrCfgs = this._getAttrCfgs(); - - for (ci = classes.length-1; ci >= 0; ci--) { - - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - exts[ei].apply(this, arguments); - } - } - - this.addAttrs(this._filterAttrCfgs(constr, attrCfgs), userVals, lazy); - - // Using INITIALIZER in hasOwnProperty check, for performance reasons (helps IE6 avoid GC thresholds when - // referencing string literals). Not using it in apply, again, for performance "." is faster. - if (constrProto.hasOwnProperty(INITIALIZER)) { - constrProto.initializer.apply(this, arguments); - } - - if (exts) { - for (ei = 0; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(INITIALIZER)) { - extProto.initializer.apply(this, arguments); - } - } - } - } - }, - - /** - * Destroys the class hierarchy for this instance by invoking - * the destructor method on the prototype of each class in the hierarchy. - * - * @method _destroyHierarchy - * @private - */ - _destroyHierarchy : function() { - var constr, - constrProto, - ci, cl, ei, el, exts, extProto, - classes = this._getClasses(); - - for (ci = 0, cl = classes.length; ci < cl; ci++) { - constr = classes[ci]; - constrProto = constr.prototype; - exts = constr._yuibuild && constr._yuibuild.exts; - - if (exts) { - for (ei = 0, el = exts.length; ei < el; ei++) { - extProto = exts[ei].prototype; - if (extProto.hasOwnProperty(DESTRUCTOR)) { - extProto.destructor.apply(this, arguments); - } - } - } - - if (constrProto.hasOwnProperty(DESTRUCTOR)) { - constrProto.destructor.apply(this, arguments); - } - } - }, - - /** - * Default toString implementation. Provides the constructor NAME - * and the instance guid, if set. - * - * @method toString - * @return {String} String representation for this object - */ - toString: function() { - return this.name + "[" + Y.stamp(this, true) + "]"; - } - - }; - - // Straightup augment, no wrapper functions - Y.mix(Base, Attribute, false, null, 1); - - // Fix constructor - Base.prototype.constructor = Base; - - Y.Base = Base; - - -}, '3.4.0' ,{requires:['attribute-base']}); -YUI.add('base-pluginhost', function(Y) { - - /** - * The base-pluginhost submodule adds Plugin support to Base, by augmenting Base with - * Plugin.Host and setting up static (class level) Base.plug and Base.unplug methods. - * - * @module base - * @submodule base-pluginhost - * @for Base - */ - - var Base = Y.Base, - PluginHost = Y.Plugin.Host; - - Y.mix(Base, PluginHost, false, null, 1); - - /** - * Alias for Plugin.Host.plug. See aliased - * method for argument and return value details. - * - * @method Base.plug - * @static - */ - Base.plug = PluginHost.plug; - - /** - * Alias for Plugin.Host.unplug. See the - * aliased method for argument and return value details. - * - * @method Base.unplug - * @static - */ - Base.unplug = PluginHost.unplug; - - -}, '3.4.0' ,{requires:['base-base', 'pluginhost']}); -YUI.add('base-build', function(Y) { - - /** - * The base-build submodule provides Base.build functionality, which - * can be used to create custom classes, by aggregating extensions onto - * a main class. - * - * @module base - * @submodule base-build - * @for Base - */ - var Base = Y.Base, - L = Y.Lang, - INITIALIZER = "initializer", - DESTRUCTOR = "destructor", - build; - - Base._build = function(name, main, extensions, px, sx, cfg) { - - var build = Base._build, - - builtClass = build._ctor(main, cfg), - buildCfg = build._cfg(main, cfg), - - _mixCust = build._mixCust, - - aggregates = buildCfg.aggregates, - custom = buildCfg.custom, - - dynamic = builtClass._yuibuild.dynamic, - - i, l, val, extClass, extProto, - initializer, - destructor; - - if (dynamic && aggregates) { - for (i = 0, l = aggregates.length; i < l; ++i) { - val = aggregates[i]; - if (main.hasOwnProperty(val)) { - builtClass[val] = L.isArray(main[val]) ? [] : {}; - } - } - } - - // Augment/Aggregate - for (i = 0, l = extensions.length; i < l; i++) { - extClass = extensions[i]; - - extProto = extClass.prototype; - - initializer = extProto[INITIALIZER]; - destructor = extProto[DESTRUCTOR]; - delete extProto[INITIALIZER]; - delete extProto[DESTRUCTOR]; - - // Prototype, old non-displacing augment - Y.mix(builtClass, extClass, true, null, 1); - - // Custom Statics - _mixCust(builtClass, extClass, aggregates, custom); - - if (initializer) { - extProto[INITIALIZER] = initializer; - } - - if (destructor) { - extProto[DESTRUCTOR] = destructor; - } - - builtClass._yuibuild.exts.push(extClass); - } - - if (px) { - Y.mix(builtClass.prototype, px, true); - } - - if (sx) { - Y.mix(builtClass, build._clean(sx, aggregates, custom), true); - _mixCust(builtClass, sx, aggregates, custom); - } - - builtClass.prototype.hasImpl = build._impl; - - if (dynamic) { - builtClass.NAME = name; - builtClass.prototype.constructor = builtClass; - } - - return builtClass; - }; - - build = Base._build; - - Y.mix(build, { - - _mixCust: function(r, s, aggregates, custom) { - - if (aggregates) { - Y.aggregate(r, s, true, aggregates); - } - - if (custom) { - for (var j in custom) { - if (custom.hasOwnProperty(j)) { - custom[j](j, r, s); - } - } - } - }, - - _tmpl: function(main) { - - function BuiltClass() { - BuiltClass.superclass.constructor.apply(this, arguments); - } - Y.extend(BuiltClass, main); - - return BuiltClass; - }, - - _impl : function(extClass) { - var classes = this._getClasses(), i, l, cls, exts, ll, j; - for (i = 0, l = classes.length; i < l; i++) { - cls = classes[i]; - if (cls._yuibuild) { - exts = cls._yuibuild.exts; - ll = exts.length; - - for (j = 0; j < ll; j++) { - if (exts[j] === extClass) { - return true; - } - } - } - } - return false; - }, - - _ctor : function(main, cfg) { - - var dynamic = (cfg && false === cfg.dynamic) ? false : true, - builtClass = (dynamic) ? build._tmpl(main) : main, - buildCfg = builtClass._yuibuild; - - if (!buildCfg) { - buildCfg = builtClass._yuibuild = {}; - } - - buildCfg.id = buildCfg.id || null; - buildCfg.exts = buildCfg.exts || []; - buildCfg.dynamic = dynamic; - - return builtClass; - }, - - _cfg : function(main, cfg) { - var aggr = [], - cust = {}, - buildCfg, - cfgAggr = (cfg && cfg.aggregates), - cfgCustBuild = (cfg && cfg.custom), - c = main; - - while (c && c.prototype) { - buildCfg = c._buildCfg; - if (buildCfg) { - if (buildCfg.aggregates) { - aggr = aggr.concat(buildCfg.aggregates); - } - if (buildCfg.custom) { - Y.mix(cust, buildCfg.custom, true); - } - } - c = c.superclass ? c.superclass.constructor : null; - } - - if (cfgAggr) { - aggr = aggr.concat(cfgAggr); - } - if (cfgCustBuild) { - Y.mix(cust, cfg.cfgBuild, true); - } - - return { - aggregates: aggr, - custom: cust - }; - }, - - _clean : function(sx, aggregates, custom) { - var prop, i, l, sxclone = Y.merge(sx); - - for (prop in custom) { - if (sxclone.hasOwnProperty(prop)) { - delete sxclone[prop]; - } - } - - for (i = 0, l = aggregates.length; i < l; i++) { - prop = aggregates[i]; - if (sxclone.hasOwnProperty(prop)) { - delete sxclone[prop]; - } - } - - return sxclone; - } - }); - - /** - *

                                  - * Builds a custom constructor function (class) from the - * main function, and array of extension functions (classes) - * provided. The NAME field for the constructor function is - * defined by the first argument passed in. - *

                                  - *

                                  - * The cfg object supports the following properties - *

                                  - *
                                  - *
                                  dynamic <boolean>
                                  - *
                                  - *

                                  If true (default), a completely new class - * is created which extends the main class, and acts as the - * host on which the extension classes are augmented.

                                  - *

                                  If false, the extensions classes are augmented directly to - * the main class, modifying the main class' prototype.

                                  - *
                                  - *
                                  aggregates <String[]>
                                  - *
                                  An array of static property names, which will get aggregated - * on to the built class, in addition to the default properties build - * will always aggregate as defined by the main class' static _buildCfg - * property. - *
                                  - *
                                  - * - * @method Base.build - * @deprecated Use the more convenient Base.create and Base.mix methods instead - * @static - * @param {Function} name The name of the new class. Used to defined the NAME property for the new class. - * @param {Function} main The main class on which to base the built class - * @param {Function[]} extensions The set of extension classes which will be - * augmented/aggregated to the built class. - * @param {Object} cfg Optional. Build configuration for the class (see description). - * @return {Function} A custom class, created from the provided main and extension classes - */ - Base.build = function(name, main, extensions, cfg) { - return build(name, main, extensions, null, null, cfg); - }; - - /** - *

                                  Creates a new class (constructor function) which extends the base class passed in as the second argument, - * and mixes in the array of extensions provided.

                                  - *

                                  Prototype properties or methods can be added to the new class, using the px argument (similar to Y.extend).

                                  - *

                                  Static properties or methods can be added to the new class, using the sx argument (similar to Y.extend).

                                  - *

                                  - * - *

                                  - * @method Base.create - * @static - * @param {Function} name The name of the newly created class. Used to defined the NAME property for the new class. - * @param {Function} main The base class which the new class should extend. This class needs to be Base or a class derived from base (e.g. Widget). - * @param {Function[]} extensions The list of extensions which will be mixed into the built class. - * @param {Object} px The set of prototype properties/methods to add to the built class. - * @param {Object} sx The set of static properties/methods to add to the built class. - * @return {Function} The newly created class. - */ - Base.create = function(name, base, extensions, px, sx) { - return build(name, base, extensions, px, sx); - }; - - /** - *

                                  Mixes in a list of extensions to an existing class.

                                  - * @method Base.mix - * @static - * @param {Function} main The existing class into which the extensions should be mixed. The class needs to be Base or a class derived from Base (e.g. Widget) - * @param {Function[]} extensions The set of extension classes which will mixed into the existing main class. - * @return {Function} The modified main class, with extensions mixed in. - */ - Base.mix = function(main, extensions) { - return build(null, main, extensions, null, null, {dynamic:false}); - }; - - /** - * The build configuration for the Base class. - * - * Defines the static fields which need to be aggregated - * when the Base class is used as the main class passed to - * the Base.build method. - * - * @property Base._buildCfg - * @type Object - * @static - * @final - * @private - */ - Base._buildCfg = { - custom : { - ATTRS : function(prop, r, s) { - - r.ATTRS = r.ATTRS || {}; - - if (s.ATTRS) { - - var sAttrs = s.ATTRS, - rAttrs = r.ATTRS, - a; - - for (a in sAttrs) { - if (sAttrs.hasOwnProperty(a)) { - rAttrs[a] = rAttrs[a] || {}; - Y.mix(rAttrs[a], sAttrs[a], true); - } - } - } - } - }, - aggregates : ["_PLUG", "_UNPLUG"] - }; - - -}, '3.4.0' ,{requires:['base-base']}); - - -YUI.add('base', function(Y){}, '3.4.0' ,{after:['attribute-complex'], use:['base-base', 'base-pluginhost', 'base-build']}); - diff --git a/build/cache/cache-base-debug.js b/build/cache/cache-base-debug.js deleted file mode 100644 index 9ef6631390c..00000000000 --- a/build/cache/cache-base-debug.js +++ /dev/null @@ -1,396 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('cache-base', function(Y) { - -/** - * The Cache utility provides a common configurable interface for components to - * cache and retrieve data from a local JavaScript struct. - * - * @module cache - */ -var LANG = Y.Lang, - isDate = Y.Lang.isDate, - -/** - * Base class for the YUI Cache utility. - * @class Cache - * @extends Base - * @constructor - */ -Cache = function() { - Cache.superclass.constructor.apply(this, arguments); -}; - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(Cache, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "cache" - */ - NAME: "cache", - - - ATTRS: { - ///////////////////////////////////////////////////////////////////////////// - // - // Cache Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @attribute max - * @description Maximum number of entries the Cache can hold. - * Set to 0 to turn off caching. - * @type Number - * @default 0 - */ - max: { - value: 0, - setter: "_setMax" - }, - - /** - * @attribute size - * @description Number of entries currently cached. - * @type Number - */ - size: { - readOnly: true, - getter: "_getSize" - }, - - /** - * @attribute uniqueKeys - * @description Validate uniqueness of stored keys. Default is false and - * is more performant. - * @type Boolean - */ - uniqueKeys: { - value: false - }, - - /** - * @attribute expires - * @description Absolute Date when data expires or - * relative number of milliseconds. Zero disables expiration. - * @type Date | Number - * @default 0 - */ - expires: { - value: 0, - validator: function(v) { - return Y.Lang.isDate(v) || (Y.Lang.isNumber(v) && v >= 0); - } - }, - - /** - * @attribute entries - * @description Cached entries. - * @type Array - */ - entries: { - readOnly: true, - getter: "_getEntries" - } - } -}); - -Y.extend(Cache, Y.Base, { - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private properties - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Array of request/response objects indexed chronologically. - * - * @property _entries - * @type Object[] - * @private - */ - _entries: null, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @method initializer - * @description Internal init() handler. - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - - /** - * @event add - * @description Fired when an entry is added. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @preventable _defAddFn - */ - this.publish("add", {defaultFn: this._defAddFn}); - - /** - * @event flush - * @description Fired when the cache is flushed. - * @param e {Event.Facade} Event Facade object. - * @preventable _defFlushFn - */ - this.publish("flush", {defaultFn: this._defFlushFn}); - - /** - * @event request - * @description Fired when an entry is requested from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  request (Object)
                                  The request object.
                                  - *
                                  - */ - - /** - * @event retrieve - * @description Fired when an entry is retrieved from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The retrieved entry.
                                  - *
                                  - */ - - // Initialize internal values - this._entries = []; - Y.log("Cache initialized", "info", "cache"); - }, - - /** - * @method destructor - * @description Internal destroy() handler. - * @private - */ - destructor: function() { - this._entries = []; - Y.log("Cache destroyed", "info", "cache"); - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache protected methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Sets max. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - // If the cache is full, make room by removing stalest element (index=0) - var entries = this._entries; - if(value > 0) { - if(entries) { - while(entries.length > value) { - entries.shift(); - } - } - } - else { - value = 0; - this._entries = []; - } - return value; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - return this._entries.length; - }, - - /** - * Gets all entries. - * - * @method _getEntries - * @protected - */ - _getEntries: function() { - return this._entries; - }, - - - /** - * Adds entry to cache. - * - * @method _defAddFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @protected - */ - _defAddFn: function(e) { - var entries = this._entries, - max = this.get("max"), - entry = e.entry; - - if(this.get("uniqueKeys") && (this.retrieve(e.entry.request))) { - entries.shift(); - } - - - // If the cache at or over capacity, make room by removing stalest element (index=0) - while(max && entries.length>=max) { - entries.shift(); - } - - // Add entry to cache in the newest position, at the end of the array - entries[entries.length] = entry; - Y.log("Cached entry: " + Y.dump(entry), "info", "cache"); - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - this._entries = []; - Y.log("Cache flushed", "info", "cache"); - }, - - /** - * Default overridable method compares current request with given cache entry. - * Returns true if current request matches the cached request, otherwise - * false. Implementers should override this method to customize the - * cache-matching algorithm. - * - * @method _isMatch - * @param request {Object} Request object. - * @param entry {Object} Cached entry. - * @return {Boolean} True if current request matches given cached request, false otherwise. - * @protected - */ - _isMatch: function(request, entry) { - if(!entry.expires || new Date() < entry.expires) { - return (request === entry.request); - } - return false; - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache public methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires:expires}. - * If cache is full, evicts the stalest entry before adding the new one. - * - * @method add - * @param request {Object} Request value. - * @param response {Object} Response value. - */ - add: function(request, response) { - var expires = this.get("expires"); - if(this.get("initialized") && ((this.get("max") === null) || this.get("max") > 0) && - (LANG.isValue(request) || LANG.isNull(request) || LANG.isUndefined(request))) { - this.fire("add", {entry: { - request:request, - response:response, - cached: new Date(), - expires: isDate(expires) ? expires : - (expires ? new Date(new Date().getTime() + this.get("expires")) : null) - }}); - } - else { - Y.log("Could not add " + Y.dump(response) + " to cache for " + Y.dump(request), "info", "cache"); - } - }, - - /** - * Flushes cache. - * - * @method flush - */ - flush: function() { - this.fire("flush"); - }, - - /** - * Retrieves cached object for given request, if available, and refreshes - * entry in the cache. Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request and response, or null. - */ - retrieve: function(request) { - // If cache is enabled... - var entries = this._entries, - length = entries.length, - entry = null, - i = length-1; - - if((length > 0) && ((this.get("max") === null) || (this.get("max") > 0))) { - this.fire("request", {request: request}); - - // Loop through each cached entry starting from the newest - for(; i >= 0; i--) { - entry = entries[i]; - - // Execute matching function - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - - // Refresh the position of the cache hit - if(i < length-1) { - // Remove element from its original location - entries.splice(i,1); - // Add as newest - entries[entries.length] = entry; - Y.log("Refreshed cache entry: " + Y.dump(entry) + - " for request: " + Y.dump(request), "info", "cache"); - } - - Y.log("Retrieved cached response: " + Y.dump(entry) + - " for request: " + Y.dump(request), "info", "cache"); - return entry; - } - } - } - return null; - } -}); - -Y.Cache = Cache; - - - -}, '3.4.0' ,{requires:['base']}); diff --git a/build/cache/cache-base-min.js b/build/cache/cache-base-min.js deleted file mode 100644 index 8e5490d593e..00000000000 --- a/build/cache/cache-base-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("cache-base",function(D){var A=D.Lang,B=D.Lang.isDate,C=function(){C.superclass.constructor.apply(this,arguments);};D.mix(C,{NAME:"cache",ATTRS:{max:{value:0,setter:"_setMax"},size:{readOnly:true,getter:"_getSize"},uniqueKeys:{value:false},expires:{value:0,validator:function(E){return D.Lang.isDate(E)||(D.Lang.isNumber(E)&&E>=0);}},entries:{readOnly:true,getter:"_getEntries"}}});D.extend(C,D.Base,{_entries:null,initializer:function(E){this.publish("add",{defaultFn:this._defAddFn});this.publish("flush",{defaultFn:this._defFlushFn});this._entries=[];},destructor:function(){this._entries=[];},_setMax:function(F){var E=this._entries;if(F>0){if(E){while(E.length>F){E.shift();}}}else{F=0;this._entries=[];}return F;},_getSize:function(){return this._entries.length;},_getEntries:function(){return this._entries;},_defAddFn:function(H){var F=this._entries,E=this.get("max"),G=H.entry;if(this.get("uniqueKeys")&&(this.retrieve(H.entry.request))){F.shift();}while(E&&F.length>=E){F.shift();}F[F.length]=G;},_defFlushFn:function(E){this._entries=[];},_isMatch:function(F,E){if(!E.expires||new Date()0)&&(A.isValue(G)||A.isNull(G)||A.isUndefined(G))){this.fire("add",{entry:{request:G,response:F,cached:new Date(),expires:B(E)?E:(E?new Date(new Date().getTime()+this.get("expires")):null)}});}else{}},flush:function(){this.fire("flush");},retrieve:function(I){var E=this._entries,H=E.length,G=null,F=H-1;if((H>0)&&((this.get("max")===null)||(this.get("max")>0))){this.fire("request",{request:I});for(;F>=0;F--){G=E[F];if(this._isMatch(I,G)){this.fire("retrieve",{entry:G});if(F= 0); - } - }, - - /** - * @attribute entries - * @description Cached entries. - * @type Array - */ - entries: { - readOnly: true, - getter: "_getEntries" - } - } -}); - -Y.extend(Cache, Y.Base, { - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private properties - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Array of request/response objects indexed chronologically. - * - * @property _entries - * @type Object[] - * @private - */ - _entries: null, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @method initializer - * @description Internal init() handler. - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - - /** - * @event add - * @description Fired when an entry is added. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @preventable _defAddFn - */ - this.publish("add", {defaultFn: this._defAddFn}); - - /** - * @event flush - * @description Fired when the cache is flushed. - * @param e {Event.Facade} Event Facade object. - * @preventable _defFlushFn - */ - this.publish("flush", {defaultFn: this._defFlushFn}); - - /** - * @event request - * @description Fired when an entry is requested from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  request (Object)
                                  The request object.
                                  - *
                                  - */ - - /** - * @event retrieve - * @description Fired when an entry is retrieved from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The retrieved entry.
                                  - *
                                  - */ - - // Initialize internal values - this._entries = []; - }, - - /** - * @method destructor - * @description Internal destroy() handler. - * @private - */ - destructor: function() { - this._entries = []; - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache protected methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Sets max. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - // If the cache is full, make room by removing stalest element (index=0) - var entries = this._entries; - if(value > 0) { - if(entries) { - while(entries.length > value) { - entries.shift(); - } - } - } - else { - value = 0; - this._entries = []; - } - return value; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - return this._entries.length; - }, - - /** - * Gets all entries. - * - * @method _getEntries - * @protected - */ - _getEntries: function() { - return this._entries; - }, - - - /** - * Adds entry to cache. - * - * @method _defAddFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @protected - */ - _defAddFn: function(e) { - var entries = this._entries, - max = this.get("max"), - entry = e.entry; - - if(this.get("uniqueKeys") && (this.retrieve(e.entry.request))) { - entries.shift(); - } - - - // If the cache at or over capacity, make room by removing stalest element (index=0) - while(max && entries.length>=max) { - entries.shift(); - } - - // Add entry to cache in the newest position, at the end of the array - entries[entries.length] = entry; - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - this._entries = []; - }, - - /** - * Default overridable method compares current request with given cache entry. - * Returns true if current request matches the cached request, otherwise - * false. Implementers should override this method to customize the - * cache-matching algorithm. - * - * @method _isMatch - * @param request {Object} Request object. - * @param entry {Object} Cached entry. - * @return {Boolean} True if current request matches given cached request, false otherwise. - * @protected - */ - _isMatch: function(request, entry) { - if(!entry.expires || new Date() < entry.expires) { - return (request === entry.request); - } - return false; - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache public methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires:expires}. - * If cache is full, evicts the stalest entry before adding the new one. - * - * @method add - * @param request {Object} Request value. - * @param response {Object} Response value. - */ - add: function(request, response) { - var expires = this.get("expires"); - if(this.get("initialized") && ((this.get("max") === null) || this.get("max") > 0) && - (LANG.isValue(request) || LANG.isNull(request) || LANG.isUndefined(request))) { - this.fire("add", {entry: { - request:request, - response:response, - cached: new Date(), - expires: isDate(expires) ? expires : - (expires ? new Date(new Date().getTime() + this.get("expires")) : null) - }}); - } - else { - } - }, - - /** - * Flushes cache. - * - * @method flush - */ - flush: function() { - this.fire("flush"); - }, - - /** - * Retrieves cached object for given request, if available, and refreshes - * entry in the cache. Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request and response, or null. - */ - retrieve: function(request) { - // If cache is enabled... - var entries = this._entries, - length = entries.length, - entry = null, - i = length-1; - - if((length > 0) && ((this.get("max") === null) || (this.get("max") > 0))) { - this.fire("request", {request: request}); - - // Loop through each cached entry starting from the newest - for(; i >= 0; i--) { - entry = entries[i]; - - // Execute matching function - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - - // Refresh the position of the cache hit - if(i < length-1) { - // Remove element from its original location - entries.splice(i,1); - // Add as newest - entries[entries.length] = entry; - } - - return entry; - } - } - } - return null; - } -}); - -Y.Cache = Cache; - - - -}, '3.4.0' ,{requires:['base']}); diff --git a/build/cache/cache-debug.js b/build/cache/cache-debug.js deleted file mode 100644 index 37043b15ee2..00000000000 --- a/build/cache/cache-debug.js +++ /dev/null @@ -1,779 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('cache-base', function(Y) { - -/** - * The Cache utility provides a common configurable interface for components to - * cache and retrieve data from a local JavaScript struct. - * - * @module cache - */ -var LANG = Y.Lang, - isDate = Y.Lang.isDate, - -/** - * Base class for the YUI Cache utility. - * @class Cache - * @extends Base - * @constructor - */ -Cache = function() { - Cache.superclass.constructor.apply(this, arguments); -}; - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(Cache, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "cache" - */ - NAME: "cache", - - - ATTRS: { - ///////////////////////////////////////////////////////////////////////////// - // - // Cache Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @attribute max - * @description Maximum number of entries the Cache can hold. - * Set to 0 to turn off caching. - * @type Number - * @default 0 - */ - max: { - value: 0, - setter: "_setMax" - }, - - /** - * @attribute size - * @description Number of entries currently cached. - * @type Number - */ - size: { - readOnly: true, - getter: "_getSize" - }, - - /** - * @attribute uniqueKeys - * @description Validate uniqueness of stored keys. Default is false and - * is more performant. - * @type Boolean - */ - uniqueKeys: { - value: false - }, - - /** - * @attribute expires - * @description Absolute Date when data expires or - * relative number of milliseconds. Zero disables expiration. - * @type Date | Number - * @default 0 - */ - expires: { - value: 0, - validator: function(v) { - return Y.Lang.isDate(v) || (Y.Lang.isNumber(v) && v >= 0); - } - }, - - /** - * @attribute entries - * @description Cached entries. - * @type Array - */ - entries: { - readOnly: true, - getter: "_getEntries" - } - } -}); - -Y.extend(Cache, Y.Base, { - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private properties - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Array of request/response objects indexed chronologically. - * - * @property _entries - * @type Object[] - * @private - */ - _entries: null, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @method initializer - * @description Internal init() handler. - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - - /** - * @event add - * @description Fired when an entry is added. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @preventable _defAddFn - */ - this.publish("add", {defaultFn: this._defAddFn}); - - /** - * @event flush - * @description Fired when the cache is flushed. - * @param e {Event.Facade} Event Facade object. - * @preventable _defFlushFn - */ - this.publish("flush", {defaultFn: this._defFlushFn}); - - /** - * @event request - * @description Fired when an entry is requested from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  request (Object)
                                  The request object.
                                  - *
                                  - */ - - /** - * @event retrieve - * @description Fired when an entry is retrieved from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The retrieved entry.
                                  - *
                                  - */ - - // Initialize internal values - this._entries = []; - Y.log("Cache initialized", "info", "cache"); - }, - - /** - * @method destructor - * @description Internal destroy() handler. - * @private - */ - destructor: function() { - this._entries = []; - Y.log("Cache destroyed", "info", "cache"); - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache protected methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Sets max. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - // If the cache is full, make room by removing stalest element (index=0) - var entries = this._entries; - if(value > 0) { - if(entries) { - while(entries.length > value) { - entries.shift(); - } - } - } - else { - value = 0; - this._entries = []; - } - return value; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - return this._entries.length; - }, - - /** - * Gets all entries. - * - * @method _getEntries - * @protected - */ - _getEntries: function() { - return this._entries; - }, - - - /** - * Adds entry to cache. - * - * @method _defAddFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @protected - */ - _defAddFn: function(e) { - var entries = this._entries, - max = this.get("max"), - entry = e.entry; - - if(this.get("uniqueKeys") && (this.retrieve(e.entry.request))) { - entries.shift(); - } - - - // If the cache at or over capacity, make room by removing stalest element (index=0) - while(max && entries.length>=max) { - entries.shift(); - } - - // Add entry to cache in the newest position, at the end of the array - entries[entries.length] = entry; - Y.log("Cached entry: " + Y.dump(entry), "info", "cache"); - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - this._entries = []; - Y.log("Cache flushed", "info", "cache"); - }, - - /** - * Default overridable method compares current request with given cache entry. - * Returns true if current request matches the cached request, otherwise - * false. Implementers should override this method to customize the - * cache-matching algorithm. - * - * @method _isMatch - * @param request {Object} Request object. - * @param entry {Object} Cached entry. - * @return {Boolean} True if current request matches given cached request, false otherwise. - * @protected - */ - _isMatch: function(request, entry) { - if(!entry.expires || new Date() < entry.expires) { - return (request === entry.request); - } - return false; - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache public methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires:expires}. - * If cache is full, evicts the stalest entry before adding the new one. - * - * @method add - * @param request {Object} Request value. - * @param response {Object} Response value. - */ - add: function(request, response) { - var expires = this.get("expires"); - if(this.get("initialized") && ((this.get("max") === null) || this.get("max") > 0) && - (LANG.isValue(request) || LANG.isNull(request) || LANG.isUndefined(request))) { - this.fire("add", {entry: { - request:request, - response:response, - cached: new Date(), - expires: isDate(expires) ? expires : - (expires ? new Date(new Date().getTime() + this.get("expires")) : null) - }}); - } - else { - Y.log("Could not add " + Y.dump(response) + " to cache for " + Y.dump(request), "info", "cache"); - } - }, - - /** - * Flushes cache. - * - * @method flush - */ - flush: function() { - this.fire("flush"); - }, - - /** - * Retrieves cached object for given request, if available, and refreshes - * entry in the cache. Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request and response, or null. - */ - retrieve: function(request) { - // If cache is enabled... - var entries = this._entries, - length = entries.length, - entry = null, - i = length-1; - - if((length > 0) && ((this.get("max") === null) || (this.get("max") > 0))) { - this.fire("request", {request: request}); - - // Loop through each cached entry starting from the newest - for(; i >= 0; i--) { - entry = entries[i]; - - // Execute matching function - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - - // Refresh the position of the cache hit - if(i < length-1) { - // Remove element from its original location - entries.splice(i,1); - // Add as newest - entries[entries.length] = entry; - Y.log("Refreshed cache entry: " + Y.dump(entry) + - " for request: " + Y.dump(request), "info", "cache"); - } - - Y.log("Retrieved cached response: " + Y.dump(entry) + - " for request: " + Y.dump(request), "info", "cache"); - return entry; - } - } - } - return null; - } -}); - -Y.Cache = Cache; - - -}, '3.4.0' ,{requires:['base']}); -YUI.add('cache-offline', function(Y) { - -/** - * Extends Cache utility with offline functionality. - * @class CacheOffline - * @extends Cache - * @constructor - */ -function CacheOffline() { - CacheOffline.superclass.constructor.apply(this, arguments); -} - -var localStorage = null, - JSON = Y.JSON; - -// Bug 2529572 -try { - localStorage = Y.config.win.localStorage; -} -catch(e) { - Y.log("Could not access localStorage.", "warn", "cache"); -} - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline events -// -///////////////////////////////////////////////////////////////////////////// - -/** -* @event error -* @description Fired when an entry could not be added, most likely due to -* exceeded browser quota. -*
                                  -*
                                  error (Object)
                                  The error object.
                                  -*
                                  -*/ - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline static -// -///////////////////////////////////////////////////////////////////////////// -Y.mix(CacheOffline, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "cacheOffline" - */ - NAME: "cacheOffline", - - ATTRS: { - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @attribute sandbox - * @description A string that must be passed in via the constructor. - * This identifier is used to sandbox one cache instance's entries - * from another. Calling the cache instance's flush and length methods - * or get("entries") will apply to only these sandboxed entries. - * @type String - * @default "default" - * @initOnly - */ - sandbox: { - value: "default", - writeOnce: "initOnly" - }, - - /** - * @attribute expires - * @description Absolute Date when data expires or - * relative number of milliseconds. Zero disables expiration. - * @type Date | Number - * @default 86400000 (one day) - */ - expires: { - value: 86400000 - }, - - /** - * @attribute max - * @description Disabled. - * @readOnly - * @default null - */ - max: { - value: null, - readOnly: true - }, - - /** - * @attribute uniqueKeys - * @description Always true for CacheOffline. - * @readOnly - * @default true - */ - uniqueKeys: { - value: true, - readOnly: true, - setter: function() { - return true; - } - } - }, - - /** - * Removes all items from all sandboxes. Useful if localStorage has - * exceeded quota. Only supported on browsers that implement HTML 5 - * localStorage. - * - * @method flushAll - * @static - */ - flushAll: function() { - var store = localStorage, key; - if(store) { - if(store.clear) { - store.clear(); - } - // FF2.x and FF3.0.x - else { - for (key in store) { - if (store.hasOwnProperty(key)) { - store.removeItem(key); - delete store[key]; - } - } - } - Y.log("All sandboxes of OfflineCache flushed", "info", "cache"); - } - else { - Y.log("Could not flush all OfflineCache sandboxes.", "warn", "cache"); - } - } -}); - -Y.extend(CacheOffline, Y.Cache, localStorage ? { -///////////////////////////////////////////////////////////////////////////// -// -// Offline is supported -// -///////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline protected methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - var count = 0, - i=0, - l=localStorage.length; - for(; i - *
                                  entry (Object)
                                  The cached entry.
                                  - * - * @protected - */ - _defAddFn: function(e) { - var entry = e.entry, - request = entry.request, - cached = entry.cached, - expires = entry.expires; - - // Convert Dates to msecs on the way into localStorage - entry.cached = cached.getTime(); - entry.expires = expires ? expires.getTime() : expires; - - try { - localStorage.setItem(this.get("sandbox")+JSON.stringify({"request":request}), JSON.stringify(entry)); - Y.log("Cached offline entry: " + Y.dump(entry), "info", "cache"); - } - catch(error) { - this.fire("error", {error:error}); - Y.log("Could not cache offline entry: " + Y.dump(entry) + - " due to error: " + Y.dump(error), "warn", "cache"); - } - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - var key, - i=localStorage.length-1; - for(; i>-1; --i) { - // Match sandbox id - key = localStorage.key(i); - if(key.indexOf(this.get("sandbox")) === 0) { - localStorage.removeItem(key); - } - } - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline public methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires: expires}. - * - * @method add - * @param request {Object} Request value must be a String or JSON. - * @param response {Object} Response value must be a String or JSON. - */ - - /** - * Retrieves cached object for given request, if available. - * Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request, response, - * and expires, or null. - */ - retrieve: function(request) { - this.fire("request", {request: request}); - - var entry, expires, sandboxedrequest; - - try { - sandboxedrequest = this.get("sandbox")+JSON.stringify({"request":request}); - try { - entry = JSON.parse(localStorage.getItem(sandboxedrequest)); - } - catch(e) { - } - } - catch(e2) { - } - - if(entry) { - // Convert msecs to Dates on the way out of localStorage - entry.cached = new Date(entry.cached); - expires = entry.expires; - expires = !expires ? null : new Date(expires); - entry.expires = expires; - - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - Y.log("Retrieved offlinecached response: " + Y.dump(entry) + - " for request: " + Y.dump(request), "info", "cache"); - return entry; - } - } - return null; - } -} : -///////////////////////////////////////////////////////////////////////////// -// -// Offline is not supported -// -///////////////////////////////////////////////////////////////////////////// -{ - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - } -}); - - -Y.CacheOffline = CacheOffline; - - -}, '3.4.0' ,{requires:['cache-base', 'json']}); -YUI.add('cache-plugin', function(Y) { - -/** - * Plugin.Cache adds pluginizability to Cache. - * @class Plugin.Cache - * @extends Cache - * @uses Plugin.Base - */ -function CachePlugin(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(CachePlugin, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "cachePlugin" -}); - - -Y.namespace("Plugin").Cache = CachePlugin; - - -}, '3.4.0' ,{requires:['plugin','cache-base']}); - - -YUI.add('cache', function(Y){}, '3.4.0' ,{use:['cache-base','cache-offline','cache-plugin']}); - diff --git a/build/cache/cache-min.js b/build/cache/cache-min.js deleted file mode 100644 index cfcdf343b53..00000000000 --- a/build/cache/cache-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("cache-base",function(d){var a=d.Lang,b=d.Lang.isDate,c=function(){c.superclass.constructor.apply(this,arguments);};d.mix(c,{NAME:"cache",ATTRS:{max:{value:0,setter:"_setMax"},size:{readOnly:true,getter:"_getSize"},uniqueKeys:{value:false},expires:{value:0,validator:function(e){return d.Lang.isDate(e)||(d.Lang.isNumber(e)&&e>=0);}},entries:{readOnly:true,getter:"_getEntries"}}});d.extend(c,d.Base,{_entries:null,initializer:function(e){this.publish("add",{defaultFn:this._defAddFn});this.publish("flush",{defaultFn:this._defFlushFn});this._entries=[];},destructor:function(){this._entries=[];},_setMax:function(f){var e=this._entries;if(f>0){if(e){while(e.length>f){e.shift();}}}else{f=0;this._entries=[];}return f;},_getSize:function(){return this._entries.length;},_getEntries:function(){return this._entries;},_defAddFn:function(i){var g=this._entries,f=this.get("max"),h=i.entry;if(this.get("uniqueKeys")&&(this.retrieve(i.entry.request))){g.shift();}while(f&&g.length>=f){g.shift();}g[g.length]=h;},_defFlushFn:function(f){this._entries=[];},_isMatch:function(f,e){if(!e.expires||new Date()0)&&(a.isValue(g)||a.isNull(g)||a.isUndefined(g))){this.fire("add",{entry:{request:g,response:f,cached:new Date(),expires:b(e)?e:(e?new Date(new Date().getTime()+this.get("expires")):null)}});}else{}},flush:function(){this.fire("flush");},retrieve:function(j){var e=this._entries,h=e.length,g=null,f=h-1;if((h>0)&&((this.get("max")===null)||(this.get("max")>0))){this.fire("request",{request:j});for(;f>=0;f--){g=e[f];if(this._isMatch(j,g)){this.fire("retrieve",{entry:g});if(f-1;--g){h=a.key(g);if(h.indexOf(this.get("sandbox"))===0){a.removeItem(h);}}},retrieve:function(j){this.fire("request",{request:j});var i,g,h;try{h=this.get("sandbox")+c.stringify({"request":j});try{i=c.parse(a.getItem(h));}catch(l){}}catch(k){}if(i){i.cached=new Date(i.cached);g=i.expires;g=!g?null:new Date(g);i.expires=g;if(this._isMatch(j,i)){this.fire("retrieve",{entry:i});return i;}}return null;}}:{_setMax:function(e){return null;}});f.CacheOffline=d;},"3.4.0",{requires:["cache-base","json"]});YUI.add("cache-plugin",function(b){function a(e){var d=e&&e.cache?e.cache:b.Cache,f=b.Base.create("dataSourceCache",d,[b.Plugin.Base]),c=new f(e);f.NS="tmpClass";return c;}b.mix(a,{NS:"cache",NAME:"cachePlugin"});b.namespace("Plugin").Cache=a;},"3.4.0",{requires:["plugin","cache-base"]});YUI.add("cache",function(a){},"3.4.0",{use:["cache-base","cache-offline","cache-plugin"]}); \ No newline at end of file diff --git a/build/cache/cache-offline-debug.js b/build/cache/cache-offline-debug.js deleted file mode 100644 index 7741725e12f..00000000000 --- a/build/cache/cache-offline-debug.js +++ /dev/null @@ -1,342 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('cache-offline', function(Y) { - -/** - * Extends Cache utility with offline functionality. - * @class CacheOffline - * @extends Cache - * @constructor - */ -function CacheOffline() { - CacheOffline.superclass.constructor.apply(this, arguments); -} - -var localStorage = null, - JSON = Y.JSON; - -// Bug 2529572 -try { - localStorage = Y.config.win.localStorage; -} -catch(e) { - Y.log("Could not access localStorage.", "warn", "cache"); -} - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline events -// -///////////////////////////////////////////////////////////////////////////// - -/** -* @event error -* @description Fired when an entry could not be added, most likely due to -* exceeded browser quota. -*
                                  -*
                                  error (Object)
                                  The error object.
                                  -*
                                  -*/ - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline static -// -///////////////////////////////////////////////////////////////////////////// -Y.mix(CacheOffline, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "cacheOffline" - */ - NAME: "cacheOffline", - - ATTRS: { - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @attribute sandbox - * @description A string that must be passed in via the constructor. - * This identifier is used to sandbox one cache instance's entries - * from another. Calling the cache instance's flush and length methods - * or get("entries") will apply to only these sandboxed entries. - * @type String - * @default "default" - * @initOnly - */ - sandbox: { - value: "default", - writeOnce: "initOnly" - }, - - /** - * @attribute expires - * @description Absolute Date when data expires or - * relative number of milliseconds. Zero disables expiration. - * @type Date | Number - * @default 86400000 (one day) - */ - expires: { - value: 86400000 - }, - - /** - * @attribute max - * @description Disabled. - * @readOnly - * @default null - */ - max: { - value: null, - readOnly: true - }, - - /** - * @attribute uniqueKeys - * @description Always true for CacheOffline. - * @readOnly - * @default true - */ - uniqueKeys: { - value: true, - readOnly: true, - setter: function() { - return true; - } - } - }, - - /** - * Removes all items from all sandboxes. Useful if localStorage has - * exceeded quota. Only supported on browsers that implement HTML 5 - * localStorage. - * - * @method flushAll - * @static - */ - flushAll: function() { - var store = localStorage, key; - if(store) { - if(store.clear) { - store.clear(); - } - // FF2.x and FF3.0.x - else { - for (key in store) { - if (store.hasOwnProperty(key)) { - store.removeItem(key); - delete store[key]; - } - } - } - Y.log("All sandboxes of OfflineCache flushed", "info", "cache"); - } - else { - Y.log("Could not flush all OfflineCache sandboxes.", "warn", "cache"); - } - } -}); - -Y.extend(CacheOffline, Y.Cache, localStorage ? { -///////////////////////////////////////////////////////////////////////////// -// -// Offline is supported -// -///////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline protected methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - var count = 0, - i=0, - l=localStorage.length; - for(; i - *
                                  entry (Object)
                                  The cached entry.
                                  - * - * @protected - */ - _defAddFn: function(e) { - var entry = e.entry, - request = entry.request, - cached = entry.cached, - expires = entry.expires; - - // Convert Dates to msecs on the way into localStorage - entry.cached = cached.getTime(); - entry.expires = expires ? expires.getTime() : expires; - - try { - localStorage.setItem(this.get("sandbox")+JSON.stringify({"request":request}), JSON.stringify(entry)); - Y.log("Cached offline entry: " + Y.dump(entry), "info", "cache"); - } - catch(error) { - this.fire("error", {error:error}); - Y.log("Could not cache offline entry: " + Y.dump(entry) + - " due to error: " + Y.dump(error), "warn", "cache"); - } - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - var key, - i=localStorage.length-1; - for(; i>-1; --i) { - // Match sandbox id - key = localStorage.key(i); - if(key.indexOf(this.get("sandbox")) === 0) { - localStorage.removeItem(key); - } - } - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline public methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires: expires}. - * - * @method add - * @param request {Object} Request value must be a String or JSON. - * @param response {Object} Response value must be a String or JSON. - */ - - /** - * Retrieves cached object for given request, if available. - * Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request, response, - * and expires, or null. - */ - retrieve: function(request) { - this.fire("request", {request: request}); - - var entry, expires, sandboxedrequest; - - try { - sandboxedrequest = this.get("sandbox")+JSON.stringify({"request":request}); - try { - entry = JSON.parse(localStorage.getItem(sandboxedrequest)); - } - catch(e) { - } - } - catch(e2) { - } - - if(entry) { - // Convert msecs to Dates on the way out of localStorage - entry.cached = new Date(entry.cached); - expires = entry.expires; - expires = !expires ? null : new Date(expires); - entry.expires = expires; - - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - Y.log("Retrieved offlinecached response: " + Y.dump(entry) + - " for request: " + Y.dump(request), "info", "cache"); - return entry; - } - } - return null; - } -} : -///////////////////////////////////////////////////////////////////////////// -// -// Offline is not supported -// -///////////////////////////////////////////////////////////////////////////// -{ - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - } -}); - - -Y.CacheOffline = CacheOffline; - - - -}, '3.4.0' ,{requires:['cache-base', 'json']}); diff --git a/build/cache/cache-offline-min.js b/build/cache/cache-offline-min.js deleted file mode 100644 index fa095371be2..00000000000 --- a/build/cache/cache-offline-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("cache-offline",function(E){function D(){D.superclass.constructor.apply(this,arguments);}var A=null,C=E.JSON;try{A=E.config.win.localStorage;}catch(B){}E.mix(D,{NAME:"cacheOffline",ATTRS:{sandbox:{value:"default",writeOnce:"initOnly"},expires:{value:86400000},max:{value:null,readOnly:true},uniqueKeys:{value:true,readOnly:true,setter:function(){return true;}}},flushAll:function(){var F=A,G;if(F){if(F.clear){F.clear();}else{for(G in F){if(F.hasOwnProperty(G)){F.removeItem(G);delete F[G];}}}}else{}}});E.extend(D,E.Cache,A?{_setMax:function(F){return null;},_getSize:function(){var H=0,G=0,F=A.length;for(;G-1;--F){G=A.key(F);if(G.indexOf(this.get("sandbox"))===0){A.removeItem(G);}}},retrieve:function(I){this.fire("request",{request:I});var H,F,G;try{G=this.get("sandbox")+C.stringify({"request":I});try{H=C.parse(A.getItem(G));}catch(K){}}catch(J){}if(H){H.cached=new Date(H.cached);F=H.expires;F=!F?null:new Date(F);H.expires=F;if(this._isMatch(I,H)){this.fire("retrieve",{entry:H});return H;}}return null;}}:{_setMax:function(F){return null;}});E.CacheOffline=D;},"3.4.0",{requires:["cache-base","json"]}); \ No newline at end of file diff --git a/build/cache/cache-offline.js b/build/cache/cache-offline.js deleted file mode 100644 index a68e3aaeaeb..00000000000 --- a/build/cache/cache-offline.js +++ /dev/null @@ -1,334 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('cache-offline', function(Y) { - -/** - * Extends Cache utility with offline functionality. - * @class CacheOffline - * @extends Cache - * @constructor - */ -function CacheOffline() { - CacheOffline.superclass.constructor.apply(this, arguments); -} - -var localStorage = null, - JSON = Y.JSON; - -// Bug 2529572 -try { - localStorage = Y.config.win.localStorage; -} -catch(e) { -} - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline events -// -///////////////////////////////////////////////////////////////////////////// - -/** -* @event error -* @description Fired when an entry could not be added, most likely due to -* exceeded browser quota. -*
                                  -*
                                  error (Object)
                                  The error object.
                                  -*
                                  -*/ - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline static -// -///////////////////////////////////////////////////////////////////////////// -Y.mix(CacheOffline, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "cacheOffline" - */ - NAME: "cacheOffline", - - ATTRS: { - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @attribute sandbox - * @description A string that must be passed in via the constructor. - * This identifier is used to sandbox one cache instance's entries - * from another. Calling the cache instance's flush and length methods - * or get("entries") will apply to only these sandboxed entries. - * @type String - * @default "default" - * @initOnly - */ - sandbox: { - value: "default", - writeOnce: "initOnly" - }, - - /** - * @attribute expires - * @description Absolute Date when data expires or - * relative number of milliseconds. Zero disables expiration. - * @type Date | Number - * @default 86400000 (one day) - */ - expires: { - value: 86400000 - }, - - /** - * @attribute max - * @description Disabled. - * @readOnly - * @default null - */ - max: { - value: null, - readOnly: true - }, - - /** - * @attribute uniqueKeys - * @description Always true for CacheOffline. - * @readOnly - * @default true - */ - uniqueKeys: { - value: true, - readOnly: true, - setter: function() { - return true; - } - } - }, - - /** - * Removes all items from all sandboxes. Useful if localStorage has - * exceeded quota. Only supported on browsers that implement HTML 5 - * localStorage. - * - * @method flushAll - * @static - */ - flushAll: function() { - var store = localStorage, key; - if(store) { - if(store.clear) { - store.clear(); - } - // FF2.x and FF3.0.x - else { - for (key in store) { - if (store.hasOwnProperty(key)) { - store.removeItem(key); - delete store[key]; - } - } - } - } - else { - } - } -}); - -Y.extend(CacheOffline, Y.Cache, localStorage ? { -///////////////////////////////////////////////////////////////////////////// -// -// Offline is supported -// -///////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline protected methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - var count = 0, - i=0, - l=localStorage.length; - for(; i - *
                                  entry (Object)
                                  The cached entry.
                                  - * - * @protected - */ - _defAddFn: function(e) { - var entry = e.entry, - request = entry.request, - cached = entry.cached, - expires = entry.expires; - - // Convert Dates to msecs on the way into localStorage - entry.cached = cached.getTime(); - entry.expires = expires ? expires.getTime() : expires; - - try { - localStorage.setItem(this.get("sandbox")+JSON.stringify({"request":request}), JSON.stringify(entry)); - } - catch(error) { - this.fire("error", {error:error}); - } - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - var key, - i=localStorage.length-1; - for(; i>-1; --i) { - // Match sandbox id - key = localStorage.key(i); - if(key.indexOf(this.get("sandbox")) === 0) { - localStorage.removeItem(key); - } - } - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline public methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires: expires}. - * - * @method add - * @param request {Object} Request value must be a String or JSON. - * @param response {Object} Response value must be a String or JSON. - */ - - /** - * Retrieves cached object for given request, if available. - * Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request, response, - * and expires, or null. - */ - retrieve: function(request) { - this.fire("request", {request: request}); - - var entry, expires, sandboxedrequest; - - try { - sandboxedrequest = this.get("sandbox")+JSON.stringify({"request":request}); - try { - entry = JSON.parse(localStorage.getItem(sandboxedrequest)); - } - catch(e) { - } - } - catch(e2) { - } - - if(entry) { - // Convert msecs to Dates on the way out of localStorage - entry.cached = new Date(entry.cached); - expires = entry.expires; - expires = !expires ? null : new Date(expires); - entry.expires = expires; - - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - return entry; - } - } - return null; - } -} : -///////////////////////////////////////////////////////////////////////////// -// -// Offline is not supported -// -///////////////////////////////////////////////////////////////////////////// -{ - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - } -}); - - -Y.CacheOffline = CacheOffline; - - - -}, '3.4.0' ,{requires:['cache-base', 'json']}); diff --git a/build/cache/cache-plugin-debug.js b/build/cache/cache-plugin-debug.js deleted file mode 100644 index 4f92e276b5f..00000000000 --- a/build/cache/cache-plugin-debug.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('cache-plugin', function(Y) { - -/** - * Plugin.Cache adds pluginizability to Cache. - * @class Plugin.Cache - * @extends Cache - * @uses Plugin.Base - */ -function CachePlugin(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(CachePlugin, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "cachePlugin" -}); - - -Y.namespace("Plugin").Cache = CachePlugin; - - - -}, '3.4.0' ,{requires:['plugin','cache-base']}); diff --git a/build/cache/cache-plugin-min.js b/build/cache/cache-plugin-min.js deleted file mode 100644 index 8d863881c12..00000000000 --- a/build/cache/cache-plugin-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("cache-plugin",function(B){function A(E){var D=E&&E.cache?E.cache:B.Cache,F=B.Base.create("dataSourceCache",D,[B.Plugin.Base]),C=new F(E);F.NS="tmpClass";return C;}B.mix(A,{NS:"cache",NAME:"cachePlugin"});B.namespace("Plugin").Cache=A;},"3.4.0",{requires:["plugin","cache-base"]}); \ No newline at end of file diff --git a/build/cache/cache-plugin.js b/build/cache/cache-plugin.js deleted file mode 100644 index 4f92e276b5f..00000000000 --- a/build/cache/cache-plugin.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('cache-plugin', function(Y) { - -/** - * Plugin.Cache adds pluginizability to Cache. - * @class Plugin.Cache - * @extends Cache - * @uses Plugin.Base - */ -function CachePlugin(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(CachePlugin, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "cachePlugin" -}); - - -Y.namespace("Plugin").Cache = CachePlugin; - - - -}, '3.4.0' ,{requires:['plugin','cache-base']}); diff --git a/build/cache/cache.js b/build/cache/cache.js deleted file mode 100644 index 3e2d87eb299..00000000000 --- a/build/cache/cache.js +++ /dev/null @@ -1,762 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('cache-base', function(Y) { - -/** - * The Cache utility provides a common configurable interface for components to - * cache and retrieve data from a local JavaScript struct. - * - * @module cache - */ -var LANG = Y.Lang, - isDate = Y.Lang.isDate, - -/** - * Base class for the YUI Cache utility. - * @class Cache - * @extends Base - * @constructor - */ -Cache = function() { - Cache.superclass.constructor.apply(this, arguments); -}; - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(Cache, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "cache" - */ - NAME: "cache", - - - ATTRS: { - ///////////////////////////////////////////////////////////////////////////// - // - // Cache Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @attribute max - * @description Maximum number of entries the Cache can hold. - * Set to 0 to turn off caching. - * @type Number - * @default 0 - */ - max: { - value: 0, - setter: "_setMax" - }, - - /** - * @attribute size - * @description Number of entries currently cached. - * @type Number - */ - size: { - readOnly: true, - getter: "_getSize" - }, - - /** - * @attribute uniqueKeys - * @description Validate uniqueness of stored keys. Default is false and - * is more performant. - * @type Boolean - */ - uniqueKeys: { - value: false - }, - - /** - * @attribute expires - * @description Absolute Date when data expires or - * relative number of milliseconds. Zero disables expiration. - * @type Date | Number - * @default 0 - */ - expires: { - value: 0, - validator: function(v) { - return Y.Lang.isDate(v) || (Y.Lang.isNumber(v) && v >= 0); - } - }, - - /** - * @attribute entries - * @description Cached entries. - * @type Array - */ - entries: { - readOnly: true, - getter: "_getEntries" - } - } -}); - -Y.extend(Cache, Y.Base, { - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private properties - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Array of request/response objects indexed chronologically. - * - * @property _entries - * @type Object[] - * @private - */ - _entries: null, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache private methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @method initializer - * @description Internal init() handler. - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - - /** - * @event add - * @description Fired when an entry is added. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @preventable _defAddFn - */ - this.publish("add", {defaultFn: this._defAddFn}); - - /** - * @event flush - * @description Fired when the cache is flushed. - * @param e {Event.Facade} Event Facade object. - * @preventable _defFlushFn - */ - this.publish("flush", {defaultFn: this._defFlushFn}); - - /** - * @event request - * @description Fired when an entry is requested from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  request (Object)
                                  The request object.
                                  - *
                                  - */ - - /** - * @event retrieve - * @description Fired when an entry is retrieved from the cache. - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The retrieved entry.
                                  - *
                                  - */ - - // Initialize internal values - this._entries = []; - }, - - /** - * @method destructor - * @description Internal destroy() handler. - * @private - */ - destructor: function() { - this._entries = []; - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache protected methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Sets max. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - // If the cache is full, make room by removing stalest element (index=0) - var entries = this._entries; - if(value > 0) { - if(entries) { - while(entries.length > value) { - entries.shift(); - } - } - } - else { - value = 0; - this._entries = []; - } - return value; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - return this._entries.length; - }, - - /** - * Gets all entries. - * - * @method _getEntries - * @protected - */ - _getEntries: function() { - return this._entries; - }, - - - /** - * Adds entry to cache. - * - * @method _defAddFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  entry (Object)
                                  The cached entry.
                                  - *
                                  - * @protected - */ - _defAddFn: function(e) { - var entries = this._entries, - max = this.get("max"), - entry = e.entry; - - if(this.get("uniqueKeys") && (this.retrieve(e.entry.request))) { - entries.shift(); - } - - - // If the cache at or over capacity, make room by removing stalest element (index=0) - while(max && entries.length>=max) { - entries.shift(); - } - - // Add entry to cache in the newest position, at the end of the array - entries[entries.length] = entry; - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - this._entries = []; - }, - - /** - * Default overridable method compares current request with given cache entry. - * Returns true if current request matches the cached request, otherwise - * false. Implementers should override this method to customize the - * cache-matching algorithm. - * - * @method _isMatch - * @param request {Object} Request object. - * @param entry {Object} Cached entry. - * @return {Boolean} True if current request matches given cached request, false otherwise. - * @protected - */ - _isMatch: function(request, entry) { - if(!entry.expires || new Date() < entry.expires) { - return (request === entry.request); - } - return false; - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // Cache public methods - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires:expires}. - * If cache is full, evicts the stalest entry before adding the new one. - * - * @method add - * @param request {Object} Request value. - * @param response {Object} Response value. - */ - add: function(request, response) { - var expires = this.get("expires"); - if(this.get("initialized") && ((this.get("max") === null) || this.get("max") > 0) && - (LANG.isValue(request) || LANG.isNull(request) || LANG.isUndefined(request))) { - this.fire("add", {entry: { - request:request, - response:response, - cached: new Date(), - expires: isDate(expires) ? expires : - (expires ? new Date(new Date().getTime() + this.get("expires")) : null) - }}); - } - else { - } - }, - - /** - * Flushes cache. - * - * @method flush - */ - flush: function() { - this.fire("flush"); - }, - - /** - * Retrieves cached object for given request, if available, and refreshes - * entry in the cache. Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request and response, or null. - */ - retrieve: function(request) { - // If cache is enabled... - var entries = this._entries, - length = entries.length, - entry = null, - i = length-1; - - if((length > 0) && ((this.get("max") === null) || (this.get("max") > 0))) { - this.fire("request", {request: request}); - - // Loop through each cached entry starting from the newest - for(; i >= 0; i--) { - entry = entries[i]; - - // Execute matching function - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - - // Refresh the position of the cache hit - if(i < length-1) { - // Remove element from its original location - entries.splice(i,1); - // Add as newest - entries[entries.length] = entry; - } - - return entry; - } - } - } - return null; - } -}); - -Y.Cache = Cache; - - -}, '3.4.0' ,{requires:['base']}); -YUI.add('cache-offline', function(Y) { - -/** - * Extends Cache utility with offline functionality. - * @class CacheOffline - * @extends Cache - * @constructor - */ -function CacheOffline() { - CacheOffline.superclass.constructor.apply(this, arguments); -} - -var localStorage = null, - JSON = Y.JSON; - -// Bug 2529572 -try { - localStorage = Y.config.win.localStorage; -} -catch(e) { -} - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline events -// -///////////////////////////////////////////////////////////////////////////// - -/** -* @event error -* @description Fired when an entry could not be added, most likely due to -* exceeded browser quota. -*
                                  -*
                                  error (Object)
                                  The error object.
                                  -*
                                  -*/ - -///////////////////////////////////////////////////////////////////////////// -// -// CacheOffline static -// -///////////////////////////////////////////////////////////////////////////// -Y.mix(CacheOffline, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "cacheOffline" - */ - NAME: "cacheOffline", - - ATTRS: { - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - /** - * @attribute sandbox - * @description A string that must be passed in via the constructor. - * This identifier is used to sandbox one cache instance's entries - * from another. Calling the cache instance's flush and length methods - * or get("entries") will apply to only these sandboxed entries. - * @type String - * @default "default" - * @initOnly - */ - sandbox: { - value: "default", - writeOnce: "initOnly" - }, - - /** - * @attribute expires - * @description Absolute Date when data expires or - * relative number of milliseconds. Zero disables expiration. - * @type Date | Number - * @default 86400000 (one day) - */ - expires: { - value: 86400000 - }, - - /** - * @attribute max - * @description Disabled. - * @readOnly - * @default null - */ - max: { - value: null, - readOnly: true - }, - - /** - * @attribute uniqueKeys - * @description Always true for CacheOffline. - * @readOnly - * @default true - */ - uniqueKeys: { - value: true, - readOnly: true, - setter: function() { - return true; - } - } - }, - - /** - * Removes all items from all sandboxes. Useful if localStorage has - * exceeded quota. Only supported on browsers that implement HTML 5 - * localStorage. - * - * @method flushAll - * @static - */ - flushAll: function() { - var store = localStorage, key; - if(store) { - if(store.clear) { - store.clear(); - } - // FF2.x and FF3.0.x - else { - for (key in store) { - if (store.hasOwnProperty(key)) { - store.removeItem(key); - delete store[key]; - } - } - } - } - else { - } - } -}); - -Y.extend(CacheOffline, Y.Cache, localStorage ? { -///////////////////////////////////////////////////////////////////////////// -// -// Offline is supported -// -///////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline protected methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - }, - - /** - * Gets size. - * - * @method _getSize - * @protected - */ - _getSize: function() { - var count = 0, - i=0, - l=localStorage.length; - for(; i - *
                                  entry (Object)
                                  The cached entry.
                                  - * - * @protected - */ - _defAddFn: function(e) { - var entry = e.entry, - request = entry.request, - cached = entry.cached, - expires = entry.expires; - - // Convert Dates to msecs on the way into localStorage - entry.cached = cached.getTime(); - entry.expires = expires ? expires.getTime() : expires; - - try { - localStorage.setItem(this.get("sandbox")+JSON.stringify({"request":request}), JSON.stringify(entry)); - } - catch(error) { - this.fire("error", {error:error}); - } - }, - - /** - * Flushes cache. - * - * @method _defFlushFn - * @param e {Event.Facade} Event Facade object. - * @protected - */ - _defFlushFn: function(e) { - var key, - i=localStorage.length-1; - for(; i>-1; --i) { - // Match sandbox id - key = localStorage.key(i); - if(key.indexOf(this.get("sandbox")) === 0) { - localStorage.removeItem(key); - } - } - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // CacheOffline public methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Adds a new entry to the cache of the format - * {request:request, response:response, cached:cached, expires: expires}. - * - * @method add - * @param request {Object} Request value must be a String or JSON. - * @param response {Object} Response value must be a String or JSON. - */ - - /** - * Retrieves cached object for given request, if available. - * Returns null if there is no cache match. - * - * @method retrieve - * @param request {Object} Request object. - * @return {Object} Cached object with the properties request, response, - * and expires, or null. - */ - retrieve: function(request) { - this.fire("request", {request: request}); - - var entry, expires, sandboxedrequest; - - try { - sandboxedrequest = this.get("sandbox")+JSON.stringify({"request":request}); - try { - entry = JSON.parse(localStorage.getItem(sandboxedrequest)); - } - catch(e) { - } - } - catch(e2) { - } - - if(entry) { - // Convert msecs to Dates on the way out of localStorage - entry.cached = new Date(entry.cached); - expires = entry.expires; - expires = !expires ? null : new Date(expires); - entry.expires = expires; - - if(this._isMatch(request, entry)) { - this.fire("retrieve", {entry: entry}); - return entry; - } - } - return null; - } -} : -///////////////////////////////////////////////////////////////////////////// -// -// Offline is not supported -// -///////////////////////////////////////////////////////////////////////////// -{ - /** - * Always return null. - * - * @method _setMax - * @protected - */ - _setMax: function(value) { - return null; - } -}); - - -Y.CacheOffline = CacheOffline; - - -}, '3.4.0' ,{requires:['cache-base', 'json']}); -YUI.add('cache-plugin', function(Y) { - -/** - * Plugin.Cache adds pluginizability to Cache. - * @class Plugin.Cache - * @extends Cache - * @uses Plugin.Base - */ -function CachePlugin(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(CachePlugin, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "cachePlugin" -}); - - -Y.namespace("Plugin").Cache = CachePlugin; - - -}, '3.4.0' ,{requires:['plugin','cache-base']}); - - -YUI.add('cache', function(Y){}, '3.4.0' ,{use:['cache-base','cache-offline','cache-plugin']}); - diff --git a/build/collection/array-extras-debug.js b/build/collection/array-extras-debug.js deleted file mode 100644 index 9f522a64093..00000000000 --- a/build/collection/array-extras-debug.js +++ /dev/null @@ -1,357 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('array-extras', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule array-extras - */ - -var L = Y.Lang, Native = Array.prototype, A = Y.Array; - -/** - * Adds the following array utilities to the YUI instance - * (Y.Array). This is in addition to the methods provided - * in the core. - * @class YUI~array~extras - */ - -/** - * Returns the index of the last item in the array that contains the specified - * value, or -1 if the value isn't found. - * @method Array.lastIndexOf - * @static - * @param {Array} a Array to search in. - * @param {any} val Value to search for. - * @param {Number} fromIndex (optional) Index at which to start searching - * backwards. Defaults to the array's length - 1. If negative, it will be - * taken as an offset from the end of the array. If the calculated index is - * less than 0, the array will not be searched and -1 will be returned. - * @return {Number} Index of the item that contains the value, or -1 if not - * found. - */ -A.lastIndexOf = Native.lastIndexOf ? - function(a, val, fromIndex) { - // An undefined fromIndex is still considered a value by some (all?) - // native implementations, so we can't pass it unless it's actually - // specified. - return fromIndex || fromIndex === 0 ? a.lastIndexOf(val, fromIndex) : - a.lastIndexOf(val); - } : - function(a, val, fromIndex) { - var len = a.length, - i = len - 1; - - if (fromIndex || fromIndex === 0) { - i = Math.min(fromIndex < 0 ? len + fromIndex : fromIndex, len); - } - - if (i > -1 && len > 0) { - for (; i > -1; --i) { - if (a[i] === val) { - return i; - } - } - } - - return -1; - }; - -/** - * Returns a copy of the specified array with duplicate items removed. - * @method Array.unique - * @param {Array} a Array to dedupe. - * @return {Array} Copy of the array with duplicate items removed. - * @static - */ -A.unique = function(a, sort) { - // Note: the sort param is deprecated and intentionally undocumented since - // YUI 3.3.0. It never did what the API docs said it did (see the older - // comment below as well). - var i = 0, - len = a.length, - results = [], - item, j; - - for (; i < len; ++i) { - item = a[i]; - - // This loop iterates over the results array in reverse order and stops - // if it finds an item that matches the current input array item (a - // dupe). If it makes it all the way through without finding a dupe, the - // current item is pushed onto the results array. - for (j = results.length; j > -1; --j) { - if (item === results[j]) { - break; - } - } - - if (j === -1) { - results.push(item); - } - } - - // Note: the sort option doesn't really belong here... I think it was added - // because there was a way to fast path the two operations together. That - // implementation was not working, so I replaced it with the following. - // Leaving it in so that the API doesn't get broken. - if (sort) { - Y.log('The sort parameter is deprecated and will be removed in a future version of YUI.', 'warn', 'deprecated'); - - if (L.isNumber(results[0])) { - results.sort(A.numericSort); - } else { - results.sort(); - } - } - - return results; -}; - -/** -* Executes the supplied function on each item in the array. Returns a new array -* containing the items for which the supplied function returned a truthy value. -* @method Array.filter -* @param {Array} a Array to filter. -* @param {Function} f Function to execute on each item. -* @param {Object} o Optional context object. -* @static -* @return {Array} Array of items for which the supplied function returned a -* truthy value (empty if it never returned a truthy value). -*/ -A.filter = Native.filter ? - function(a, f, o) { - return a.filter(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = [], - item; - - for (; i < len; ++i) { - if (i in a) { - item = a[i]; - - if (f.call(o, item, i, a)) { - results.push(item); - } - } - } - - return results; - }; - -/** -* The inverse of filter. Executes the supplied function on each item. -* Returns a new array containing the items that the supplied -* function returned *false* for. -* @method Array.reject -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} The items on which the supplied function -* returned false. -*/ -A.reject = function(a, f, o) { - return A.filter(a, function(item, i, a) { - return !f.call(o, item, i, a); - }); -}; - -/** -* Executes the supplied function on each item in the array. -* Iteration stops if the supplied function does not return -* a truthy value. -* @method Array.every -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {boolean} true if every item in the array returns true -* from the supplied function. -*/ -A.every = Native.every ? - function(a, f, o) { - return a.every(f, o); - } : - function(a, f, o) { - for (var i = 0, l = a.length; i < l; ++i) { - if (i in a && !f.call(o, a[i], i, a)) { - return false; - } - } - - return true; - }; - -/** -* Executes the supplied function on each item in the array. -* @method Array.map -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} A new array containing the return value -* of the supplied function for each item in the original -* array. -*/ -A.map = Native.map ? - function(a, f, o) { - return a.map(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = a.concat(); - - for (; i < len; ++i) { - if (i in a) { - results[i] = f.call(o, a[i], i, a); - } - } - - return results; - }; - - -/** -* Executes the supplied function on each item in the array. -* Reduce "folds" the array into a single value. The callback -* function receives four arguments: -* the value from the previous callback call (or the initial value), -* the value of the current element, the current index, and -* the array over which iteration is occurring. -* @method Array.reduce -* @param {Array} a the array to iterate. -* @param {any} init The initial value to start from. -* @param {Function} f the function to execute on each item. It -* is responsible for returning the updated value of the -* computation. -* @param {object} o Optional context object. -* @static -* @return {any} A value that results from iteratively applying the -* supplied function to each element in the array. -*/ -A.reduce = Native.reduce ? - function(a, init, f, o) { - // ES5 Array.reduce doesn't support a thisObject, so we need to - // implement it manually - return a.reduce(function(init, item, i, a) { - return f.call(o, init, item, i, a); - }, init); - } : - function(a, init, f, o) { - var i = 0, - len = a.length, - result = init; - - for (; i < len; ++i) { - if (i in a) { - result = f.call(o, result, a[i], i, a); - } - } - - return result; - }; - - -/** -* Executes the supplied function on each item in the array, -* searching for the first item that matches the supplied -* function. -* @method Array.find -* @param {Array} a the array to search. -* @param {Function} f the function to execute on each item. -* Iteration is stopped as soon as this function returns true -* on an item. -* @param {object} o Optional context object. -* @static -* @return {object} the first item that the supplied function -* returns true for, or null if it never returns true. -*/ -A.find = function(a, f, o) { - for (var i = 0, l = a.length; i < l; i++) { - if (i in a && f.call(o, a[i], i, a)) { - return a[i]; - } - } - return null; -}; - -/** -* Iterates over an array, returning a new array of all the elements -* that match the supplied regular expression -* @method Array.grep -* @param {Array} a a collection to iterate over. -* @param {RegExp} pattern The regular expression to test against -* each item. -* @static -* @return {Array} All the items in the collection that -* produce a match against the supplied regular expression. -* If no items match, an empty array is returned. -*/ -A.grep = function(a, pattern) { - return A.filter(a, function(item, index) { - return pattern.test(item); - }); -}; - - -/** -* Partitions an array into two new arrays, one with the items -* that match the supplied function, and one with the items that -* do not. -* @method Array.partition -* @param {Array} a a collection to iterate over. -* @param {Function} f a function that will receive each item -* in the collection and its index. -* @param {object} o Optional execution context of f. -* @static -* @return {object} An object with two members, 'matches' and 'rejects', -* that are arrays containing the items that were selected or -* rejected by the test function (or an empty array). -*/ -A.partition = function(a, f, o) { - var results = { - matches: [], - rejects: [] - }; - - A.each(a, function(item, index) { - var set = f.call(o, item, index, a) ? results.matches : results.rejects; - set.push(item); - }); - - return results; -}; - -/** -* Creates an array of arrays by pairing the corresponding -* elements of two arrays together into a new array. -* @method Array.zip -* @param {Array} a a collection to iterate over. -* @param {Array} a2 another collection whose members will be -* paired with members of the first parameter. -* @static -* @return {array} An array of arrays formed by pairing each element -* of the first collection with an item in the second collection -* having the corresponding index. -*/ -A.zip = function(a, a2) { - var results = []; - A.each(a, function(item, index) { - results.push([item, a2[index]]); - }); - return results; -}; - - -}, '3.4.0' ); diff --git a/build/collection/array-extras-min.js b/build/collection/array-extras-min.js deleted file mode 100644 index 53d022c898f..00000000000 --- a/build/collection/array-extras-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("array-extras",function(d){var b=d.Lang,c=Array.prototype,a=d.Array;a.lastIndexOf=c.lastIndexOf?function(e,g,f){return f||f===0?e.lastIndexOf(g,f):e.lastIndexOf(g);}:function(f,j,h){var e=f.length,g=e-1;if(h||h===0){g=Math.min(h<0?e+h:h,e);}if(g>-1&&e>0){for(;g>-1;--g){if(f[g]===j){return g;}}}return -1;};a.unique=function(f,l){var k=0,e=f.length,h=[],m,g;for(;k-1;--g){if(m===h[g]){break;}}if(g===-1){h.push(m);}}if(l){if(b.isNumber(h[0])){h.sort(a.numericSort);}else{h.sort();}}return h;};a.filter=c.filter?function(e,g,h){return e.filter(g,h);}:function(g,l,m){var j=0,e=g.length,h=[],k;for(;j -1 && len > 0) { - for (; i > -1; --i) { - if (a[i] === val) { - return i; - } - } - } - - return -1; - }; - -/** - * Returns a copy of the specified array with duplicate items removed. - * @method Array.unique - * @param {Array} a Array to dedupe. - * @return {Array} Copy of the array with duplicate items removed. - * @static - */ -A.unique = function(a, sort) { - // Note: the sort param is deprecated and intentionally undocumented since - // YUI 3.3.0. It never did what the API docs said it did (see the older - // comment below as well). - var i = 0, - len = a.length, - results = [], - item, j; - - for (; i < len; ++i) { - item = a[i]; - - // This loop iterates over the results array in reverse order and stops - // if it finds an item that matches the current input array item (a - // dupe). If it makes it all the way through without finding a dupe, the - // current item is pushed onto the results array. - for (j = results.length; j > -1; --j) { - if (item === results[j]) { - break; - } - } - - if (j === -1) { - results.push(item); - } - } - - // Note: the sort option doesn't really belong here... I think it was added - // because there was a way to fast path the two operations together. That - // implementation was not working, so I replaced it with the following. - // Leaving it in so that the API doesn't get broken. - if (sort) { - - if (L.isNumber(results[0])) { - results.sort(A.numericSort); - } else { - results.sort(); - } - } - - return results; -}; - -/** -* Executes the supplied function on each item in the array. Returns a new array -* containing the items for which the supplied function returned a truthy value. -* @method Array.filter -* @param {Array} a Array to filter. -* @param {Function} f Function to execute on each item. -* @param {Object} o Optional context object. -* @static -* @return {Array} Array of items for which the supplied function returned a -* truthy value (empty if it never returned a truthy value). -*/ -A.filter = Native.filter ? - function(a, f, o) { - return a.filter(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = [], - item; - - for (; i < len; ++i) { - if (i in a) { - item = a[i]; - - if (f.call(o, item, i, a)) { - results.push(item); - } - } - } - - return results; - }; - -/** -* The inverse of filter. Executes the supplied function on each item. -* Returns a new array containing the items that the supplied -* function returned *false* for. -* @method Array.reject -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} The items on which the supplied function -* returned false. -*/ -A.reject = function(a, f, o) { - return A.filter(a, function(item, i, a) { - return !f.call(o, item, i, a); - }); -}; - -/** -* Executes the supplied function on each item in the array. -* Iteration stops if the supplied function does not return -* a truthy value. -* @method Array.every -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {boolean} true if every item in the array returns true -* from the supplied function. -*/ -A.every = Native.every ? - function(a, f, o) { - return a.every(f, o); - } : - function(a, f, o) { - for (var i = 0, l = a.length; i < l; ++i) { - if (i in a && !f.call(o, a[i], i, a)) { - return false; - } - } - - return true; - }; - -/** -* Executes the supplied function on each item in the array. -* @method Array.map -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} A new array containing the return value -* of the supplied function for each item in the original -* array. -*/ -A.map = Native.map ? - function(a, f, o) { - return a.map(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = a.concat(); - - for (; i < len; ++i) { - if (i in a) { - results[i] = f.call(o, a[i], i, a); - } - } - - return results; - }; - - -/** -* Executes the supplied function on each item in the array. -* Reduce "folds" the array into a single value. The callback -* function receives four arguments: -* the value from the previous callback call (or the initial value), -* the value of the current element, the current index, and -* the array over which iteration is occurring. -* @method Array.reduce -* @param {Array} a the array to iterate. -* @param {any} init The initial value to start from. -* @param {Function} f the function to execute on each item. It -* is responsible for returning the updated value of the -* computation. -* @param {object} o Optional context object. -* @static -* @return {any} A value that results from iteratively applying the -* supplied function to each element in the array. -*/ -A.reduce = Native.reduce ? - function(a, init, f, o) { - // ES5 Array.reduce doesn't support a thisObject, so we need to - // implement it manually - return a.reduce(function(init, item, i, a) { - return f.call(o, init, item, i, a); - }, init); - } : - function(a, init, f, o) { - var i = 0, - len = a.length, - result = init; - - for (; i < len; ++i) { - if (i in a) { - result = f.call(o, result, a[i], i, a); - } - } - - return result; - }; - - -/** -* Executes the supplied function on each item in the array, -* searching for the first item that matches the supplied -* function. -* @method Array.find -* @param {Array} a the array to search. -* @param {Function} f the function to execute on each item. -* Iteration is stopped as soon as this function returns true -* on an item. -* @param {object} o Optional context object. -* @static -* @return {object} the first item that the supplied function -* returns true for, or null if it never returns true. -*/ -A.find = function(a, f, o) { - for (var i = 0, l = a.length; i < l; i++) { - if (i in a && f.call(o, a[i], i, a)) { - return a[i]; - } - } - return null; -}; - -/** -* Iterates over an array, returning a new array of all the elements -* that match the supplied regular expression -* @method Array.grep -* @param {Array} a a collection to iterate over. -* @param {RegExp} pattern The regular expression to test against -* each item. -* @static -* @return {Array} All the items in the collection that -* produce a match against the supplied regular expression. -* If no items match, an empty array is returned. -*/ -A.grep = function(a, pattern) { - return A.filter(a, function(item, index) { - return pattern.test(item); - }); -}; - - -/** -* Partitions an array into two new arrays, one with the items -* that match the supplied function, and one with the items that -* do not. -* @method Array.partition -* @param {Array} a a collection to iterate over. -* @param {Function} f a function that will receive each item -* in the collection and its index. -* @param {object} o Optional execution context of f. -* @static -* @return {object} An object with two members, 'matches' and 'rejects', -* that are arrays containing the items that were selected or -* rejected by the test function (or an empty array). -*/ -A.partition = function(a, f, o) { - var results = { - matches: [], - rejects: [] - }; - - A.each(a, function(item, index) { - var set = f.call(o, item, index, a) ? results.matches : results.rejects; - set.push(item); - }); - - return results; -}; - -/** -* Creates an array of arrays by pairing the corresponding -* elements of two arrays together into a new array. -* @method Array.zip -* @param {Array} a a collection to iterate over. -* @param {Array} a2 another collection whose members will be -* paired with members of the first parameter. -* @static -* @return {array} An array of arrays formed by pairing each element -* of the first collection with an item in the second collection -* having the corresponding index. -*/ -A.zip = function(a, a2) { - var results = []; - A.each(a, function(item, index) { - results.push([item, a2[index]]); - }); - return results; -}; - - -}, '3.4.0' ); diff --git a/build/collection/array-invoke-debug.js b/build/collection/array-invoke-debug.js deleted file mode 100644 index 74773fce53f..00000000000 --- a/build/collection/array-invoke-debug.js +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('array-invoke', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule array-invoke - */ - -/** - * Adds the Y.Array.invoke( items, methodName ) utility method. - * @class YUI~array~invoke - */ - -/** - *

                                  Execute a named method on an array of objects. Items in the list that do - * not have a function by that name will be skipped. For example, - * Y.Array.invoke( arrayOfDrags, 'plug', Y.Plugin.DDProxy );

                                  - * - *

                                  The return values from each call are returned in an array.

                                  - * - * @method invoke - * @static - * @param { Array } items Array of objects supporting the named method. - * @param { String } name the name of the method to execute on each item. - * @param { mixed } args* Any number of additional args are passed as - * parameters to the execution of the named method. - * @return { Array } All return values, indexed according to item index. - */ -Y.Array.invoke = function(items, name) { - var args = Y.Array(arguments, 2, true), - isFunction = Y.Lang.isFunction, - ret = []; - - Y.Array.each(Y.Array(items), function(item, i) { - if (isFunction(item[name])) { - ret[i] = item[name].apply(item, args); - } - }); - - return ret; -}; - - -}, '3.4.0' ); diff --git a/build/collection/array-invoke-min.js b/build/collection/array-invoke-min.js deleted file mode 100644 index 37bdf6eb69e..00000000000 --- a/build/collection/array-invoke-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("array-invoke",function(a){a.Array.invoke=function(b,e){var d=a.Array(arguments,2,true),f=a.Lang.isFunction,c=[];a.Array.each(a.Array(b),function(h,g){if(f(h[e])){c[g]=h[e].apply(h,d);}});return c;};},"3.4.0"); \ No newline at end of file diff --git a/build/collection/array-invoke.js b/build/collection/array-invoke.js deleted file mode 100644 index 74773fce53f..00000000000 --- a/build/collection/array-invoke.js +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('array-invoke', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule array-invoke - */ - -/** - * Adds the Y.Array.invoke( items, methodName ) utility method. - * @class YUI~array~invoke - */ - -/** - *

                                  Execute a named method on an array of objects. Items in the list that do - * not have a function by that name will be skipped. For example, - * Y.Array.invoke( arrayOfDrags, 'plug', Y.Plugin.DDProxy );

                                  - * - *

                                  The return values from each call are returned in an array.

                                  - * - * @method invoke - * @static - * @param { Array } items Array of objects supporting the named method. - * @param { String } name the name of the method to execute on each item. - * @param { mixed } args* Any number of additional args are passed as - * parameters to the execution of the named method. - * @return { Array } All return values, indexed according to item index. - */ -Y.Array.invoke = function(items, name) { - var args = Y.Array(arguments, 2, true), - isFunction = Y.Lang.isFunction, - ret = []; - - Y.Array.each(Y.Array(items), function(item, i) { - if (isFunction(item[name])) { - ret[i] = item[name].apply(item, args); - } - }); - - return ret; -}; - - -}, '3.4.0' ); diff --git a/build/collection/arraylist-add-debug.js b/build/collection/arraylist-add-debug.js deleted file mode 100644 index 850ba07f1f3..00000000000 --- a/build/collection/arraylist-add-debug.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('arraylist-add', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-add - */ - -/** - * Adds methods add and remove to Y.ArrayList - * @class ArrayList~add - */ -Y.mix(Y.ArrayList.prototype, { - - /** - * Add a single item to the ArrayList. Does not prevent duplicates. - * - * @method add - * @param { mixed } item Item presumably of the same type as others in the - * ArrayList. - * @param {Number} index (Optional.) Number representing the position at - * which the item should be inserted. - * @return {ArrayList} the instance. - * @chainable - */ - add: function(item, index) { - var items = this._items; - - if (Y.Lang.isNumber(index)) { - items.splice(index, 0, item); - } - else { - items.push(item); - } - - return this; - }, - - /** - * Removes first or all occurrences of an item to the ArrayList. If a - * comparator is not provided, uses itemsAreEqual method to determine - * matches. - * - * @method remove - * @param { mixed } needle Item to find and remove from the list. - * @param { Boolean } all If true, remove all occurrences. - * @param { Function } comparator optional a/b function to test equivalence. - * @return {ArrayList} the instance. - * @chainable - */ - remove: function(needle, all, comparator) { - comparator = comparator || this.itemsAreEqual; - - for (var i = this._items.length - 1; i >= 0; --i) { - if (comparator.call(this, needle, this.item(i))) { - this._items.splice(i, 1); - if (!all) { - break; - } - } - } - - return this; - }, - - /** - * Default comparator for items stored in this list. Used by remove(). - * - * @method itemsAreEqual - * @param { mixed } a item to test equivalence with. - * @param { mixed } b other item to test equivalance. - * @return { Boolean } true if items are deemed equivalent. - */ - itemsAreEqual: function(a, b) { - return a === b; - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); diff --git a/build/collection/arraylist-add-min.js b/build/collection/arraylist-add-min.js deleted file mode 100644 index 961720e3003..00000000000 --- a/build/collection/arraylist-add-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("arraylist-add",function(a){a.mix(a.ArrayList.prototype,{add:function(d,c){var b=this._items;if(a.Lang.isNumber(c)){b.splice(c,0,d);}else{b.push(d);}return this;},remove:function(e,d,b){b=b||this.itemsAreEqual;for(var c=this._items.length-1;c>=0;--c){if(b.call(this,e,this.item(c))){this._items.splice(c,1);if(!d){break;}}}return this;},itemsAreEqual:function(d,c){return d===c;}});},"3.4.0",{requires:["arraylist"]}); \ No newline at end of file diff --git a/build/collection/arraylist-add.js b/build/collection/arraylist-add.js deleted file mode 100644 index 850ba07f1f3..00000000000 --- a/build/collection/arraylist-add.js +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('arraylist-add', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-add - */ - -/** - * Adds methods add and remove to Y.ArrayList - * @class ArrayList~add - */ -Y.mix(Y.ArrayList.prototype, { - - /** - * Add a single item to the ArrayList. Does not prevent duplicates. - * - * @method add - * @param { mixed } item Item presumably of the same type as others in the - * ArrayList. - * @param {Number} index (Optional.) Number representing the position at - * which the item should be inserted. - * @return {ArrayList} the instance. - * @chainable - */ - add: function(item, index) { - var items = this._items; - - if (Y.Lang.isNumber(index)) { - items.splice(index, 0, item); - } - else { - items.push(item); - } - - return this; - }, - - /** - * Removes first or all occurrences of an item to the ArrayList. If a - * comparator is not provided, uses itemsAreEqual method to determine - * matches. - * - * @method remove - * @param { mixed } needle Item to find and remove from the list. - * @param { Boolean } all If true, remove all occurrences. - * @param { Function } comparator optional a/b function to test equivalence. - * @return {ArrayList} the instance. - * @chainable - */ - remove: function(needle, all, comparator) { - comparator = comparator || this.itemsAreEqual; - - for (var i = this._items.length - 1; i >= 0; --i) { - if (comparator.call(this, needle, this.item(i))) { - this._items.splice(i, 1); - if (!all) { - break; - } - } - } - - return this; - }, - - /** - * Default comparator for items stored in this list. Used by remove(). - * - * @method itemsAreEqual - * @param { mixed } a item to test equivalence with. - * @param { mixed } b other item to test equivalance. - * @return { Boolean } true if items are deemed equivalent. - */ - itemsAreEqual: function(a, b) { - return a === b; - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); diff --git a/build/collection/arraylist-debug.js b/build/collection/arraylist-debug.js deleted file mode 100644 index 8a3ec8e8377..00000000000 --- a/build/collection/arraylist-debug.js +++ /dev/null @@ -1,219 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('arraylist', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist - */ - -var YArray = Y.Array, - YArray_each = YArray.each, - ArrayListProto; - -/** - * Generic ArrayList class for managing lists of items and iterating operations - * over them. The targeted use for this class is for augmentation onto a - * class that is responsible for managing multiple instances of another class - * (e.g. NodeList for Nodes). The recommended use is to augment your class with - * ArrayList, then use ArrayList.addMethod to mirror the API of the constituent - * items on the list's API. - * - * The default implementation creates immutable lists, but mutability can be - * provided via the arraylist-add submodule or by implementing mutation methods - * directly on the augmented class's prototype. - * - * @class ArrayList - * @constructor - * @param items { Array } array of items this list will be responsible for - */ -function ArrayList( items ) { - if ( items !== undefined ) { - this._items = Y.Lang.isArray( items ) ? items : YArray( items ); - } else { - // ||= to support lazy initialization from augment - this._items = this._items || []; - } -} - -ArrayListProto = { - /** - * Get an item by index from the list. Override this method if managing a - * list of objects that have a different public representation (e.g. Node - * instances vs DOM nodes). The iteration methods that accept a user - * function will use this method for access list items for operation. - * - * @method item - * @param i { Integer } index to fetch - * @return { mixed } the item at the requested index - */ - item: function ( i ) { - return this._items[i]; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - * @method each - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { ArrayList } this instance - * @chainable - */ - each: function ( fn, context ) { - YArray_each( this._items, function ( item, i ) { - item = this.item( i ); - - fn.call( context || item, item, i, this ); - }, this); - - return this; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - *

                                  Unlike each, if the callback returns true, the - * iteratation will stop.

                                  - * - * @method some - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { Boolean } True if the function returned true on an item - */ - some: function ( fn, context ) { - return YArray.some( this._items, function ( item, i ) { - item = this.item( i ); - - return fn.call( context || item, item, i, this ); - }, this); - }, - - /** - * Finds the first index of the needle in the managed array of items. - * - * @method indexOf - * @param needle { mixed } The item to search for - * @return { Integer } Array index if found. Otherwise -1 - */ - indexOf: function ( needle ) { - return YArray.indexOf( this._items, needle ); - }, - - /** - * How many items are in this list? - * - * @method size - * @return { Integer } Number of items in the list - */ - size: function () { - return this._items.length; - }, - - /** - * Is this instance managing any items? - * - * @method isEmpty - * @return { Boolean } true if 1 or more items are being managed - */ - isEmpty: function () { - return !this.size(); - }, - - /** - * Provides an array-like representation for JSON.stringify. - * - * @method toJSON - * @return { Array } an array representation of the ArrayList - */ - toJSON: function () { - return this._items; - } -}; -// Default implementation does not distinguish between public and private -// item getter -/** - * Protected method for optimizations that may be appropriate for API - * mirroring. Similar in functionality to item, but is used by - * methods added with ArrayList.addMethod(). - * - * @method _item - * @protected - * @param i { Integer } Index of item to fetch - * @return { mixed } The item appropriate for pass through API methods - */ -ArrayListProto._item = ArrayListProto.item; - -ArrayList.prototype = ArrayListProto; - -Y.mix( ArrayList, { - - /** - *

                                  Adds a pass through method to dest (typically the prototype of a list - * class) that calls the named method on each item in the list with - * whatever parameters are passed in. Allows for API indirection via list - * instances.

                                  - * - *

                                  Accepts a single string name or an array of string names.

                                  - * - *
                                  list.each( function ( item ) {
                                  -     *     item.methodName( 1, 2, 3 );
                                  -     * } );
                                  -     * // becomes
                                  -     * list.methodName( 1, 2, 3 );
                                  - * - *

                                  Additionally, the pass through methods use the item retrieved by the - * _item method in case there is any special behavior that is - * appropriate for API mirroring.

                                  - * - *

                                  If the iterated method returns a value, the return value from the - * added method will be an array of values with each value being at the - * corresponding index for that item. If the iterated method does not - * return a value, the added method will be chainable. - * - * @method addMethod - * @static - * @param dest {Object} Object or prototype to receive the iterator method - * @param name {String|String[]} Name of method of methods to create - */ - addMethod: function ( dest, names ) { - - names = YArray( names ); - - YArray_each( names, function ( name ) { - dest[ name ] = function () { - var args = YArray( arguments, 0, true ), - ret = []; - - YArray_each( this._items, function ( item, i ) { - item = this._item( i ); - - var result = item[ name ].apply( item, args ); - - if ( result !== undefined && result !== item ) { - ret[i] = result; - } - }, this); - - return ret.length ? ret : this; - }; - } ); - } -} ); - -Y.ArrayList = ArrayList; - - -}, '3.4.0' ); diff --git a/build/collection/arraylist-filter-debug.js b/build/collection/arraylist-filter-debug.js deleted file mode 100644 index fbd8cc99bda..00000000000 --- a/build/collection/arraylist-filter-debug.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('arraylist-filter', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-filter - */ - -/** - * Adds filter method to ArrayList prototype - * @class ArrayList~filter - */ -Y.mix(Y.ArrayList.prototype, { - - /** - *

                                  Create a new ArrayList (or augmenting class instance) from a subset - * of items as determined by the boolean function passed as the - * argument. The original ArrayList is unchanged.

                                  - * - *

                                  The validator signature is validator( item ).

                                  - * - * @method filter - * @param { Function } validator Boolean function to determine in or out. - * @return { ArrayList } New instance based on who passed the validator. - */ - filter: function(validator) { - var items = []; - - Y.Array.each(this._items, function(item, i) { - item = this.item(i); - - if (validator(item)) { - items.push(item); - } - }, this); - - return new this.constructor(items); - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); diff --git a/build/collection/arraylist-filter-min.js b/build/collection/arraylist-filter-min.js deleted file mode 100644 index a7ffbea4fa4..00000000000 --- a/build/collection/arraylist-filter-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("arraylist-filter",function(a){a.mix(a.ArrayList.prototype,{filter:function(c){var b=[];a.Array.each(this._items,function(e,d){e=this.item(d);if(c(e)){b.push(e);}},this);return new this.constructor(b);}});},"3.4.0",{requires:["arraylist"]}); \ No newline at end of file diff --git a/build/collection/arraylist-filter.js b/build/collection/arraylist-filter.js deleted file mode 100644 index fbd8cc99bda..00000000000 --- a/build/collection/arraylist-filter.js +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('arraylist-filter', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-filter - */ - -/** - * Adds filter method to ArrayList prototype - * @class ArrayList~filter - */ -Y.mix(Y.ArrayList.prototype, { - - /** - *

                                  Create a new ArrayList (or augmenting class instance) from a subset - * of items as determined by the boolean function passed as the - * argument. The original ArrayList is unchanged.

                                  - * - *

                                  The validator signature is validator( item ).

                                  - * - * @method filter - * @param { Function } validator Boolean function to determine in or out. - * @return { ArrayList } New instance based on who passed the validator. - */ - filter: function(validator) { - var items = []; - - Y.Array.each(this._items, function(item, i) { - item = this.item(i); - - if (validator(item)) { - items.push(item); - } - }, this); - - return new this.constructor(items); - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); diff --git a/build/collection/arraylist-min.js b/build/collection/arraylist-min.js deleted file mode 100644 index 230d70604cc..00000000000 --- a/build/collection/arraylist-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("arraylist",function(e){var d=e.Array,c=d.each,a;function b(f){if(f!==undefined){this._items=e.Lang.isArray(f)?f:d(f);}else{this._items=this._items||[];}}a={item:function(f){return this._items[f];},each:function(g,f){c(this._items,function(j,h){j=this.item(h);g.call(f||j,j,h,this);},this);return this;},some:function(g,f){return d.some(this._items,function(j,h){j=this.item(h);return g.call(f||j,j,h,this);},this);},indexOf:function(f){return d.indexOf(this._items,f);},size:function(){return this._items.length;},isEmpty:function(){return !this.size();},toJSON:function(){return this._items;}};a._item=a.item;b.prototype=a;e.mix(b,{addMethod:function(f,g){g=d(g);c(g,function(h){f[h]=function(){var j=d(arguments,0,true),i=[];c(this._items,function(m,l){m=this._item(l);var k=m[h].apply(m,j);if(k!==undefined&&k!==m){i[l]=k;}},this);return i.length?i:this;};});}});e.ArrayList=b;},"3.4.0"); \ No newline at end of file diff --git a/build/collection/arraylist.js b/build/collection/arraylist.js deleted file mode 100644 index 8a3ec8e8377..00000000000 --- a/build/collection/arraylist.js +++ /dev/null @@ -1,219 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('arraylist', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist - */ - -var YArray = Y.Array, - YArray_each = YArray.each, - ArrayListProto; - -/** - * Generic ArrayList class for managing lists of items and iterating operations - * over them. The targeted use for this class is for augmentation onto a - * class that is responsible for managing multiple instances of another class - * (e.g. NodeList for Nodes). The recommended use is to augment your class with - * ArrayList, then use ArrayList.addMethod to mirror the API of the constituent - * items on the list's API. - * - * The default implementation creates immutable lists, but mutability can be - * provided via the arraylist-add submodule or by implementing mutation methods - * directly on the augmented class's prototype. - * - * @class ArrayList - * @constructor - * @param items { Array } array of items this list will be responsible for - */ -function ArrayList( items ) { - if ( items !== undefined ) { - this._items = Y.Lang.isArray( items ) ? items : YArray( items ); - } else { - // ||= to support lazy initialization from augment - this._items = this._items || []; - } -} - -ArrayListProto = { - /** - * Get an item by index from the list. Override this method if managing a - * list of objects that have a different public representation (e.g. Node - * instances vs DOM nodes). The iteration methods that accept a user - * function will use this method for access list items for operation. - * - * @method item - * @param i { Integer } index to fetch - * @return { mixed } the item at the requested index - */ - item: function ( i ) { - return this._items[i]; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - * @method each - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { ArrayList } this instance - * @chainable - */ - each: function ( fn, context ) { - YArray_each( this._items, function ( item, i ) { - item = this.item( i ); - - fn.call( context || item, item, i, this ); - }, this); - - return this; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - *

                                  Unlike each, if the callback returns true, the - * iteratation will stop.

                                  - * - * @method some - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { Boolean } True if the function returned true on an item - */ - some: function ( fn, context ) { - return YArray.some( this._items, function ( item, i ) { - item = this.item( i ); - - return fn.call( context || item, item, i, this ); - }, this); - }, - - /** - * Finds the first index of the needle in the managed array of items. - * - * @method indexOf - * @param needle { mixed } The item to search for - * @return { Integer } Array index if found. Otherwise -1 - */ - indexOf: function ( needle ) { - return YArray.indexOf( this._items, needle ); - }, - - /** - * How many items are in this list? - * - * @method size - * @return { Integer } Number of items in the list - */ - size: function () { - return this._items.length; - }, - - /** - * Is this instance managing any items? - * - * @method isEmpty - * @return { Boolean } true if 1 or more items are being managed - */ - isEmpty: function () { - return !this.size(); - }, - - /** - * Provides an array-like representation for JSON.stringify. - * - * @method toJSON - * @return { Array } an array representation of the ArrayList - */ - toJSON: function () { - return this._items; - } -}; -// Default implementation does not distinguish between public and private -// item getter -/** - * Protected method for optimizations that may be appropriate for API - * mirroring. Similar in functionality to item, but is used by - * methods added with ArrayList.addMethod(). - * - * @method _item - * @protected - * @param i { Integer } Index of item to fetch - * @return { mixed } The item appropriate for pass through API methods - */ -ArrayListProto._item = ArrayListProto.item; - -ArrayList.prototype = ArrayListProto; - -Y.mix( ArrayList, { - - /** - *

                                  Adds a pass through method to dest (typically the prototype of a list - * class) that calls the named method on each item in the list with - * whatever parameters are passed in. Allows for API indirection via list - * instances.

                                  - * - *

                                  Accepts a single string name or an array of string names.

                                  - * - *
                                  list.each( function ( item ) {
                                  -     *     item.methodName( 1, 2, 3 );
                                  -     * } );
                                  -     * // becomes
                                  -     * list.methodName( 1, 2, 3 );
                                  - * - *

                                  Additionally, the pass through methods use the item retrieved by the - * _item method in case there is any special behavior that is - * appropriate for API mirroring.

                                  - * - *

                                  If the iterated method returns a value, the return value from the - * added method will be an array of values with each value being at the - * corresponding index for that item. If the iterated method does not - * return a value, the added method will be chainable. - * - * @method addMethod - * @static - * @param dest {Object} Object or prototype to receive the iterator method - * @param name {String|String[]} Name of method of methods to create - */ - addMethod: function ( dest, names ) { - - names = YArray( names ); - - YArray_each( names, function ( name ) { - dest[ name ] = function () { - var args = YArray( arguments, 0, true ), - ret = []; - - YArray_each( this._items, function ( item, i ) { - item = this._item( i ); - - var result = item[ name ].apply( item, args ); - - if ( result !== undefined && result !== item ) { - ret[i] = result; - } - }, this); - - return ret.length ? ret : this; - }; - } ); - } -} ); - -Y.ArrayList = ArrayList; - - -}, '3.4.0' ); diff --git a/build/collection/collection-debug.js b/build/collection/collection-debug.js deleted file mode 100644 index 856a64f0586..00000000000 --- a/build/collection/collection-debug.js +++ /dev/null @@ -1,741 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('array-extras', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule array-extras - */ - -var L = Y.Lang, Native = Array.prototype, A = Y.Array; - -/** - * Adds the following array utilities to the YUI instance - * (Y.Array). This is in addition to the methods provided - * in the core. - * @class YUI~array~extras - */ - -/** - * Returns the index of the last item in the array that contains the specified - * value, or -1 if the value isn't found. - * @method Array.lastIndexOf - * @static - * @param {Array} a Array to search in. - * @param {any} val Value to search for. - * @param {Number} fromIndex (optional) Index at which to start searching - * backwards. Defaults to the array's length - 1. If negative, it will be - * taken as an offset from the end of the array. If the calculated index is - * less than 0, the array will not be searched and -1 will be returned. - * @return {Number} Index of the item that contains the value, or -1 if not - * found. - */ -A.lastIndexOf = Native.lastIndexOf ? - function(a, val, fromIndex) { - // An undefined fromIndex is still considered a value by some (all?) - // native implementations, so we can't pass it unless it's actually - // specified. - return fromIndex || fromIndex === 0 ? a.lastIndexOf(val, fromIndex) : - a.lastIndexOf(val); - } : - function(a, val, fromIndex) { - var len = a.length, - i = len - 1; - - if (fromIndex || fromIndex === 0) { - i = Math.min(fromIndex < 0 ? len + fromIndex : fromIndex, len); - } - - if (i > -1 && len > 0) { - for (; i > -1; --i) { - if (a[i] === val) { - return i; - } - } - } - - return -1; - }; - -/** - * Returns a copy of the specified array with duplicate items removed. - * @method Array.unique - * @param {Array} a Array to dedupe. - * @return {Array} Copy of the array with duplicate items removed. - * @static - */ -A.unique = function(a, sort) { - // Note: the sort param is deprecated and intentionally undocumented since - // YUI 3.3.0. It never did what the API docs said it did (see the older - // comment below as well). - var i = 0, - len = a.length, - results = [], - item, j; - - for (; i < len; ++i) { - item = a[i]; - - // This loop iterates over the results array in reverse order and stops - // if it finds an item that matches the current input array item (a - // dupe). If it makes it all the way through without finding a dupe, the - // current item is pushed onto the results array. - for (j = results.length; j > -1; --j) { - if (item === results[j]) { - break; - } - } - - if (j === -1) { - results.push(item); - } - } - - // Note: the sort option doesn't really belong here... I think it was added - // because there was a way to fast path the two operations together. That - // implementation was not working, so I replaced it with the following. - // Leaving it in so that the API doesn't get broken. - if (sort) { - Y.log('The sort parameter is deprecated and will be removed in a future version of YUI.', 'warn', 'deprecated'); - - if (L.isNumber(results[0])) { - results.sort(A.numericSort); - } else { - results.sort(); - } - } - - return results; -}; - -/** -* Executes the supplied function on each item in the array. Returns a new array -* containing the items for which the supplied function returned a truthy value. -* @method Array.filter -* @param {Array} a Array to filter. -* @param {Function} f Function to execute on each item. -* @param {Object} o Optional context object. -* @static -* @return {Array} Array of items for which the supplied function returned a -* truthy value (empty if it never returned a truthy value). -*/ -A.filter = Native.filter ? - function(a, f, o) { - return a.filter(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = [], - item; - - for (; i < len; ++i) { - if (i in a) { - item = a[i]; - - if (f.call(o, item, i, a)) { - results.push(item); - } - } - } - - return results; - }; - -/** -* The inverse of filter. Executes the supplied function on each item. -* Returns a new array containing the items that the supplied -* function returned *false* for. -* @method Array.reject -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} The items on which the supplied function -* returned false. -*/ -A.reject = function(a, f, o) { - return A.filter(a, function(item, i, a) { - return !f.call(o, item, i, a); - }); -}; - -/** -* Executes the supplied function on each item in the array. -* Iteration stops if the supplied function does not return -* a truthy value. -* @method Array.every -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {boolean} true if every item in the array returns true -* from the supplied function. -*/ -A.every = Native.every ? - function(a, f, o) { - return a.every(f, o); - } : - function(a, f, o) { - for (var i = 0, l = a.length; i < l; ++i) { - if (i in a && !f.call(o, a[i], i, a)) { - return false; - } - } - - return true; - }; - -/** -* Executes the supplied function on each item in the array. -* @method Array.map -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} A new array containing the return value -* of the supplied function for each item in the original -* array. -*/ -A.map = Native.map ? - function(a, f, o) { - return a.map(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = a.concat(); - - for (; i < len; ++i) { - if (i in a) { - results[i] = f.call(o, a[i], i, a); - } - } - - return results; - }; - - -/** -* Executes the supplied function on each item in the array. -* Reduce "folds" the array into a single value. The callback -* function receives four arguments: -* the value from the previous callback call (or the initial value), -* the value of the current element, the current index, and -* the array over which iteration is occurring. -* @method Array.reduce -* @param {Array} a the array to iterate. -* @param {any} init The initial value to start from. -* @param {Function} f the function to execute on each item. It -* is responsible for returning the updated value of the -* computation. -* @param {object} o Optional context object. -* @static -* @return {any} A value that results from iteratively applying the -* supplied function to each element in the array. -*/ -A.reduce = Native.reduce ? - function(a, init, f, o) { - // ES5 Array.reduce doesn't support a thisObject, so we need to - // implement it manually - return a.reduce(function(init, item, i, a) { - return f.call(o, init, item, i, a); - }, init); - } : - function(a, init, f, o) { - var i = 0, - len = a.length, - result = init; - - for (; i < len; ++i) { - if (i in a) { - result = f.call(o, result, a[i], i, a); - } - } - - return result; - }; - - -/** -* Executes the supplied function on each item in the array, -* searching for the first item that matches the supplied -* function. -* @method Array.find -* @param {Array} a the array to search. -* @param {Function} f the function to execute on each item. -* Iteration is stopped as soon as this function returns true -* on an item. -* @param {object} o Optional context object. -* @static -* @return {object} the first item that the supplied function -* returns true for, or null if it never returns true. -*/ -A.find = function(a, f, o) { - for (var i = 0, l = a.length; i < l; i++) { - if (i in a && f.call(o, a[i], i, a)) { - return a[i]; - } - } - return null; -}; - -/** -* Iterates over an array, returning a new array of all the elements -* that match the supplied regular expression -* @method Array.grep -* @param {Array} a a collection to iterate over. -* @param {RegExp} pattern The regular expression to test against -* each item. -* @static -* @return {Array} All the items in the collection that -* produce a match against the supplied regular expression. -* If no items match, an empty array is returned. -*/ -A.grep = function(a, pattern) { - return A.filter(a, function(item, index) { - return pattern.test(item); - }); -}; - - -/** -* Partitions an array into two new arrays, one with the items -* that match the supplied function, and one with the items that -* do not. -* @method Array.partition -* @param {Array} a a collection to iterate over. -* @param {Function} f a function that will receive each item -* in the collection and its index. -* @param {object} o Optional execution context of f. -* @static -* @return {object} An object with two members, 'matches' and 'rejects', -* that are arrays containing the items that were selected or -* rejected by the test function (or an empty array). -*/ -A.partition = function(a, f, o) { - var results = { - matches: [], - rejects: [] - }; - - A.each(a, function(item, index) { - var set = f.call(o, item, index, a) ? results.matches : results.rejects; - set.push(item); - }); - - return results; -}; - -/** -* Creates an array of arrays by pairing the corresponding -* elements of two arrays together into a new array. -* @method Array.zip -* @param {Array} a a collection to iterate over. -* @param {Array} a2 another collection whose members will be -* paired with members of the first parameter. -* @static -* @return {array} An array of arrays formed by pairing each element -* of the first collection with an item in the second collection -* having the corresponding index. -*/ -A.zip = function(a, a2) { - var results = []; - A.each(a, function(item, index) { - results.push([item, a2[index]]); - }); - return results; -}; - - -}, '3.4.0' ); -YUI.add('arraylist', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist - */ - -var YArray = Y.Array, - YArray_each = YArray.each, - ArrayListProto; - -/** - * Generic ArrayList class for managing lists of items and iterating operations - * over them. The targeted use for this class is for augmentation onto a - * class that is responsible for managing multiple instances of another class - * (e.g. NodeList for Nodes). The recommended use is to augment your class with - * ArrayList, then use ArrayList.addMethod to mirror the API of the constituent - * items on the list's API. - * - * The default implementation creates immutable lists, but mutability can be - * provided via the arraylist-add submodule or by implementing mutation methods - * directly on the augmented class's prototype. - * - * @class ArrayList - * @constructor - * @param items { Array } array of items this list will be responsible for - */ -function ArrayList( items ) { - if ( items !== undefined ) { - this._items = Y.Lang.isArray( items ) ? items : YArray( items ); - } else { - // ||= to support lazy initialization from augment - this._items = this._items || []; - } -} - -ArrayListProto = { - /** - * Get an item by index from the list. Override this method if managing a - * list of objects that have a different public representation (e.g. Node - * instances vs DOM nodes). The iteration methods that accept a user - * function will use this method for access list items for operation. - * - * @method item - * @param i { Integer } index to fetch - * @return { mixed } the item at the requested index - */ - item: function ( i ) { - return this._items[i]; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - * @method each - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { ArrayList } this instance - * @chainable - */ - each: function ( fn, context ) { - YArray_each( this._items, function ( item, i ) { - item = this.item( i ); - - fn.call( context || item, item, i, this ); - }, this); - - return this; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - *

                                  Unlike each, if the callback returns true, the - * iteratation will stop.

                                  - * - * @method some - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { Boolean } True if the function returned true on an item - */ - some: function ( fn, context ) { - return YArray.some( this._items, function ( item, i ) { - item = this.item( i ); - - return fn.call( context || item, item, i, this ); - }, this); - }, - - /** - * Finds the first index of the needle in the managed array of items. - * - * @method indexOf - * @param needle { mixed } The item to search for - * @return { Integer } Array index if found. Otherwise -1 - */ - indexOf: function ( needle ) { - return YArray.indexOf( this._items, needle ); - }, - - /** - * How many items are in this list? - * - * @method size - * @return { Integer } Number of items in the list - */ - size: function () { - return this._items.length; - }, - - /** - * Is this instance managing any items? - * - * @method isEmpty - * @return { Boolean } true if 1 or more items are being managed - */ - isEmpty: function () { - return !this.size(); - }, - - /** - * Provides an array-like representation for JSON.stringify. - * - * @method toJSON - * @return { Array } an array representation of the ArrayList - */ - toJSON: function () { - return this._items; - } -}; -// Default implementation does not distinguish between public and private -// item getter -/** - * Protected method for optimizations that may be appropriate for API - * mirroring. Similar in functionality to item, but is used by - * methods added with ArrayList.addMethod(). - * - * @method _item - * @protected - * @param i { Integer } Index of item to fetch - * @return { mixed } The item appropriate for pass through API methods - */ -ArrayListProto._item = ArrayListProto.item; - -ArrayList.prototype = ArrayListProto; - -Y.mix( ArrayList, { - - /** - *

                                  Adds a pass through method to dest (typically the prototype of a list - * class) that calls the named method on each item in the list with - * whatever parameters are passed in. Allows for API indirection via list - * instances.

                                  - * - *

                                  Accepts a single string name or an array of string names.

                                  - * - *
                                  list.each( function ( item ) {
                                  -     *     item.methodName( 1, 2, 3 );
                                  -     * } );
                                  -     * // becomes
                                  -     * list.methodName( 1, 2, 3 );
                                  - * - *

                                  Additionally, the pass through methods use the item retrieved by the - * _item method in case there is any special behavior that is - * appropriate for API mirroring.

                                  - * - *

                                  If the iterated method returns a value, the return value from the - * added method will be an array of values with each value being at the - * corresponding index for that item. If the iterated method does not - * return a value, the added method will be chainable. - * - * @method addMethod - * @static - * @param dest {Object} Object or prototype to receive the iterator method - * @param name {String|String[]} Name of method of methods to create - */ - addMethod: function ( dest, names ) { - - names = YArray( names ); - - YArray_each( names, function ( name ) { - dest[ name ] = function () { - var args = YArray( arguments, 0, true ), - ret = []; - - YArray_each( this._items, function ( item, i ) { - item = this._item( i ); - - var result = item[ name ].apply( item, args ); - - if ( result !== undefined && result !== item ) { - ret[i] = result; - } - }, this); - - return ret.length ? ret : this; - }; - } ); - } -} ); - -Y.ArrayList = ArrayList; - - -}, '3.4.0' ); -YUI.add('arraylist-add', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-add - */ - -/** - * Adds methods add and remove to Y.ArrayList - * @class ArrayList~add - */ -Y.mix(Y.ArrayList.prototype, { - - /** - * Add a single item to the ArrayList. Does not prevent duplicates. - * - * @method add - * @param { mixed } item Item presumably of the same type as others in the - * ArrayList. - * @param {Number} index (Optional.) Number representing the position at - * which the item should be inserted. - * @return {ArrayList} the instance. - * @chainable - */ - add: function(item, index) { - var items = this._items; - - if (Y.Lang.isNumber(index)) { - items.splice(index, 0, item); - } - else { - items.push(item); - } - - return this; - }, - - /** - * Removes first or all occurrences of an item to the ArrayList. If a - * comparator is not provided, uses itemsAreEqual method to determine - * matches. - * - * @method remove - * @param { mixed } needle Item to find and remove from the list. - * @param { Boolean } all If true, remove all occurrences. - * @param { Function } comparator optional a/b function to test equivalence. - * @return {ArrayList} the instance. - * @chainable - */ - remove: function(needle, all, comparator) { - comparator = comparator || this.itemsAreEqual; - - for (var i = this._items.length - 1; i >= 0; --i) { - if (comparator.call(this, needle, this.item(i))) { - this._items.splice(i, 1); - if (!all) { - break; - } - } - } - - return this; - }, - - /** - * Default comparator for items stored in this list. Used by remove(). - * - * @method itemsAreEqual - * @param { mixed } a item to test equivalence with. - * @param { mixed } b other item to test equivalance. - * @return { Boolean } true if items are deemed equivalent. - */ - itemsAreEqual: function(a, b) { - return a === b; - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); -YUI.add('arraylist-filter', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-filter - */ - -/** - * Adds filter method to ArrayList prototype - * @class ArrayList~filter - */ -Y.mix(Y.ArrayList.prototype, { - - /** - *

                                  Create a new ArrayList (or augmenting class instance) from a subset - * of items as determined by the boolean function passed as the - * argument. The original ArrayList is unchanged.

                                  - * - *

                                  The validator signature is validator( item ).

                                  - * - * @method filter - * @param { Function } validator Boolean function to determine in or out. - * @return { ArrayList } New instance based on who passed the validator. - */ - filter: function(validator) { - var items = []; - - Y.Array.each(this._items, function(item, i) { - item = this.item(i); - - if (validator(item)) { - items.push(item); - } - }, this); - - return new this.constructor(items); - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); -YUI.add('array-invoke', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule array-invoke - */ - -/** - * Adds the Y.Array.invoke( items, methodName ) utility method. - * @class YUI~array~invoke - */ - -/** - *

                                  Execute a named method on an array of objects. Items in the list that do - * not have a function by that name will be skipped. For example, - * Y.Array.invoke( arrayOfDrags, 'plug', Y.Plugin.DDProxy );

                                  - * - *

                                  The return values from each call are returned in an array.

                                  - * - * @method invoke - * @static - * @param { Array } items Array of objects supporting the named method. - * @param { String } name the name of the method to execute on each item. - * @param { mixed } args* Any number of additional args are passed as - * parameters to the execution of the named method. - * @return { Array } All return values, indexed according to item index. - */ -Y.Array.invoke = function(items, name) { - var args = Y.Array(arguments, 2, true), - isFunction = Y.Lang.isFunction, - ret = []; - - Y.Array.each(Y.Array(items), function(item, i) { - if (isFunction(item[name])) { - ret[i] = item[name].apply(item, args); - } - }); - - return ret; -}; - - -}, '3.4.0' ); - - -YUI.add('collection', function(Y){}, '3.4.0' ,{use:['array-extras', 'arraylist', 'arraylist-add', 'arraylist-filter', 'array-invoke']}); - diff --git a/build/collection/collection-min.js b/build/collection/collection-min.js deleted file mode 100644 index 48d199b94ff..00000000000 --- a/build/collection/collection-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("array-extras",function(d){var b=d.Lang,c=Array.prototype,a=d.Array;a.lastIndexOf=c.lastIndexOf?function(e,g,f){return f||f===0?e.lastIndexOf(g,f):e.lastIndexOf(g);}:function(f,j,h){var e=f.length,g=e-1;if(h||h===0){g=Math.min(h<0?e+h:h,e);}if(g>-1&&e>0){for(;g>-1;--g){if(f[g]===j){return g;}}}return -1;};a.unique=function(f,l){var k=0,e=f.length,h=[],m,g;for(;k-1;--g){if(m===h[g]){break;}}if(g===-1){h.push(m);}}if(l){if(b.isNumber(h[0])){h.sort(a.numericSort);}else{h.sort();}}return h;};a.filter=c.filter?function(e,g,h){return e.filter(g,h);}:function(g,l,m){var j=0,e=g.length,h=[],k;for(;j=0;--c){if(b.call(this,e,this.item(c))){this._items.splice(c,1);if(!d){break;}}}return this;},itemsAreEqual:function(d,c){return d===c;}});},"3.4.0",{requires:["arraylist"]});YUI.add("arraylist-filter",function(a){a.mix(a.ArrayList.prototype,{filter:function(c){var b=[];a.Array.each(this._items,function(e,d){e=this.item(d);if(c(e)){b.push(e);}},this);return new this.constructor(b);}});},"3.4.0",{requires:["arraylist"]});YUI.add("array-invoke",function(a){a.Array.invoke=function(b,e){var d=a.Array(arguments,2,true),f=a.Lang.isFunction,c=[];a.Array.each(a.Array(b),function(h,g){if(f(h[e])){c[g]=h[e].apply(h,d);}});return c;};},"3.4.0");YUI.add("collection",function(a){},"3.4.0",{use:["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"]}); \ No newline at end of file diff --git a/build/collection/collection.js b/build/collection/collection.js deleted file mode 100644 index b165ea9a966..00000000000 --- a/build/collection/collection.js +++ /dev/null @@ -1,740 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('array-extras', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule array-extras - */ - -var L = Y.Lang, Native = Array.prototype, A = Y.Array; - -/** - * Adds the following array utilities to the YUI instance - * (Y.Array). This is in addition to the methods provided - * in the core. - * @class YUI~array~extras - */ - -/** - * Returns the index of the last item in the array that contains the specified - * value, or -1 if the value isn't found. - * @method Array.lastIndexOf - * @static - * @param {Array} a Array to search in. - * @param {any} val Value to search for. - * @param {Number} fromIndex (optional) Index at which to start searching - * backwards. Defaults to the array's length - 1. If negative, it will be - * taken as an offset from the end of the array. If the calculated index is - * less than 0, the array will not be searched and -1 will be returned. - * @return {Number} Index of the item that contains the value, or -1 if not - * found. - */ -A.lastIndexOf = Native.lastIndexOf ? - function(a, val, fromIndex) { - // An undefined fromIndex is still considered a value by some (all?) - // native implementations, so we can't pass it unless it's actually - // specified. - return fromIndex || fromIndex === 0 ? a.lastIndexOf(val, fromIndex) : - a.lastIndexOf(val); - } : - function(a, val, fromIndex) { - var len = a.length, - i = len - 1; - - if (fromIndex || fromIndex === 0) { - i = Math.min(fromIndex < 0 ? len + fromIndex : fromIndex, len); - } - - if (i > -1 && len > 0) { - for (; i > -1; --i) { - if (a[i] === val) { - return i; - } - } - } - - return -1; - }; - -/** - * Returns a copy of the specified array with duplicate items removed. - * @method Array.unique - * @param {Array} a Array to dedupe. - * @return {Array} Copy of the array with duplicate items removed. - * @static - */ -A.unique = function(a, sort) { - // Note: the sort param is deprecated and intentionally undocumented since - // YUI 3.3.0. It never did what the API docs said it did (see the older - // comment below as well). - var i = 0, - len = a.length, - results = [], - item, j; - - for (; i < len; ++i) { - item = a[i]; - - // This loop iterates over the results array in reverse order and stops - // if it finds an item that matches the current input array item (a - // dupe). If it makes it all the way through without finding a dupe, the - // current item is pushed onto the results array. - for (j = results.length; j > -1; --j) { - if (item === results[j]) { - break; - } - } - - if (j === -1) { - results.push(item); - } - } - - // Note: the sort option doesn't really belong here... I think it was added - // because there was a way to fast path the two operations together. That - // implementation was not working, so I replaced it with the following. - // Leaving it in so that the API doesn't get broken. - if (sort) { - - if (L.isNumber(results[0])) { - results.sort(A.numericSort); - } else { - results.sort(); - } - } - - return results; -}; - -/** -* Executes the supplied function on each item in the array. Returns a new array -* containing the items for which the supplied function returned a truthy value. -* @method Array.filter -* @param {Array} a Array to filter. -* @param {Function} f Function to execute on each item. -* @param {Object} o Optional context object. -* @static -* @return {Array} Array of items for which the supplied function returned a -* truthy value (empty if it never returned a truthy value). -*/ -A.filter = Native.filter ? - function(a, f, o) { - return a.filter(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = [], - item; - - for (; i < len; ++i) { - if (i in a) { - item = a[i]; - - if (f.call(o, item, i, a)) { - results.push(item); - } - } - } - - return results; - }; - -/** -* The inverse of filter. Executes the supplied function on each item. -* Returns a new array containing the items that the supplied -* function returned *false* for. -* @method Array.reject -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} The items on which the supplied function -* returned false. -*/ -A.reject = function(a, f, o) { - return A.filter(a, function(item, i, a) { - return !f.call(o, item, i, a); - }); -}; - -/** -* Executes the supplied function on each item in the array. -* Iteration stops if the supplied function does not return -* a truthy value. -* @method Array.every -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {boolean} true if every item in the array returns true -* from the supplied function. -*/ -A.every = Native.every ? - function(a, f, o) { - return a.every(f, o); - } : - function(a, f, o) { - for (var i = 0, l = a.length; i < l; ++i) { - if (i in a && !f.call(o, a[i], i, a)) { - return false; - } - } - - return true; - }; - -/** -* Executes the supplied function on each item in the array. -* @method Array.map -* @param {Array} a the array to iterate. -* @param {Function} f the function to execute on each item. -* @param {object} o Optional context object. -* @static -* @return {Array} A new array containing the return value -* of the supplied function for each item in the original -* array. -*/ -A.map = Native.map ? - function(a, f, o) { - return a.map(f, o); - } : - function(a, f, o) { - var i = 0, - len = a.length, - results = a.concat(); - - for (; i < len; ++i) { - if (i in a) { - results[i] = f.call(o, a[i], i, a); - } - } - - return results; - }; - - -/** -* Executes the supplied function on each item in the array. -* Reduce "folds" the array into a single value. The callback -* function receives four arguments: -* the value from the previous callback call (or the initial value), -* the value of the current element, the current index, and -* the array over which iteration is occurring. -* @method Array.reduce -* @param {Array} a the array to iterate. -* @param {any} init The initial value to start from. -* @param {Function} f the function to execute on each item. It -* is responsible for returning the updated value of the -* computation. -* @param {object} o Optional context object. -* @static -* @return {any} A value that results from iteratively applying the -* supplied function to each element in the array. -*/ -A.reduce = Native.reduce ? - function(a, init, f, o) { - // ES5 Array.reduce doesn't support a thisObject, so we need to - // implement it manually - return a.reduce(function(init, item, i, a) { - return f.call(o, init, item, i, a); - }, init); - } : - function(a, init, f, o) { - var i = 0, - len = a.length, - result = init; - - for (; i < len; ++i) { - if (i in a) { - result = f.call(o, result, a[i], i, a); - } - } - - return result; - }; - - -/** -* Executes the supplied function on each item in the array, -* searching for the first item that matches the supplied -* function. -* @method Array.find -* @param {Array} a the array to search. -* @param {Function} f the function to execute on each item. -* Iteration is stopped as soon as this function returns true -* on an item. -* @param {object} o Optional context object. -* @static -* @return {object} the first item that the supplied function -* returns true for, or null if it never returns true. -*/ -A.find = function(a, f, o) { - for (var i = 0, l = a.length; i < l; i++) { - if (i in a && f.call(o, a[i], i, a)) { - return a[i]; - } - } - return null; -}; - -/** -* Iterates over an array, returning a new array of all the elements -* that match the supplied regular expression -* @method Array.grep -* @param {Array} a a collection to iterate over. -* @param {RegExp} pattern The regular expression to test against -* each item. -* @static -* @return {Array} All the items in the collection that -* produce a match against the supplied regular expression. -* If no items match, an empty array is returned. -*/ -A.grep = function(a, pattern) { - return A.filter(a, function(item, index) { - return pattern.test(item); - }); -}; - - -/** -* Partitions an array into two new arrays, one with the items -* that match the supplied function, and one with the items that -* do not. -* @method Array.partition -* @param {Array} a a collection to iterate over. -* @param {Function} f a function that will receive each item -* in the collection and its index. -* @param {object} o Optional execution context of f. -* @static -* @return {object} An object with two members, 'matches' and 'rejects', -* that are arrays containing the items that were selected or -* rejected by the test function (or an empty array). -*/ -A.partition = function(a, f, o) { - var results = { - matches: [], - rejects: [] - }; - - A.each(a, function(item, index) { - var set = f.call(o, item, index, a) ? results.matches : results.rejects; - set.push(item); - }); - - return results; -}; - -/** -* Creates an array of arrays by pairing the corresponding -* elements of two arrays together into a new array. -* @method Array.zip -* @param {Array} a a collection to iterate over. -* @param {Array} a2 another collection whose members will be -* paired with members of the first parameter. -* @static -* @return {array} An array of arrays formed by pairing each element -* of the first collection with an item in the second collection -* having the corresponding index. -*/ -A.zip = function(a, a2) { - var results = []; - A.each(a, function(item, index) { - results.push([item, a2[index]]); - }); - return results; -}; - - -}, '3.4.0' ); -YUI.add('arraylist', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist - */ - -var YArray = Y.Array, - YArray_each = YArray.each, - ArrayListProto; - -/** - * Generic ArrayList class for managing lists of items and iterating operations - * over them. The targeted use for this class is for augmentation onto a - * class that is responsible for managing multiple instances of another class - * (e.g. NodeList for Nodes). The recommended use is to augment your class with - * ArrayList, then use ArrayList.addMethod to mirror the API of the constituent - * items on the list's API. - * - * The default implementation creates immutable lists, but mutability can be - * provided via the arraylist-add submodule or by implementing mutation methods - * directly on the augmented class's prototype. - * - * @class ArrayList - * @constructor - * @param items { Array } array of items this list will be responsible for - */ -function ArrayList( items ) { - if ( items !== undefined ) { - this._items = Y.Lang.isArray( items ) ? items : YArray( items ); - } else { - // ||= to support lazy initialization from augment - this._items = this._items || []; - } -} - -ArrayListProto = { - /** - * Get an item by index from the list. Override this method if managing a - * list of objects that have a different public representation (e.g. Node - * instances vs DOM nodes). The iteration methods that accept a user - * function will use this method for access list items for operation. - * - * @method item - * @param i { Integer } index to fetch - * @return { mixed } the item at the requested index - */ - item: function ( i ) { - return this._items[i]; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - * @method each - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { ArrayList } this instance - * @chainable - */ - each: function ( fn, context ) { - YArray_each( this._items, function ( item, i ) { - item = this.item( i ); - - fn.call( context || item, item, i, this ); - }, this); - - return this; - }, - - /** - *

                                  Execute a function on each item of the list, optionally providing a - * custom execution context. Default context is the item.

                                  - * - *

                                  The callback signature is callback( item, index ).

                                  - * - *

                                  Unlike each, if the callback returns true, the - * iteratation will stop.

                                  - * - * @method some - * @param fn { Function } the function to execute - * @param context { mixed } optional override 'this' in the function - * @return { Boolean } True if the function returned true on an item - */ - some: function ( fn, context ) { - return YArray.some( this._items, function ( item, i ) { - item = this.item( i ); - - return fn.call( context || item, item, i, this ); - }, this); - }, - - /** - * Finds the first index of the needle in the managed array of items. - * - * @method indexOf - * @param needle { mixed } The item to search for - * @return { Integer } Array index if found. Otherwise -1 - */ - indexOf: function ( needle ) { - return YArray.indexOf( this._items, needle ); - }, - - /** - * How many items are in this list? - * - * @method size - * @return { Integer } Number of items in the list - */ - size: function () { - return this._items.length; - }, - - /** - * Is this instance managing any items? - * - * @method isEmpty - * @return { Boolean } true if 1 or more items are being managed - */ - isEmpty: function () { - return !this.size(); - }, - - /** - * Provides an array-like representation for JSON.stringify. - * - * @method toJSON - * @return { Array } an array representation of the ArrayList - */ - toJSON: function () { - return this._items; - } -}; -// Default implementation does not distinguish between public and private -// item getter -/** - * Protected method for optimizations that may be appropriate for API - * mirroring. Similar in functionality to item, but is used by - * methods added with ArrayList.addMethod(). - * - * @method _item - * @protected - * @param i { Integer } Index of item to fetch - * @return { mixed } The item appropriate for pass through API methods - */ -ArrayListProto._item = ArrayListProto.item; - -ArrayList.prototype = ArrayListProto; - -Y.mix( ArrayList, { - - /** - *

                                  Adds a pass through method to dest (typically the prototype of a list - * class) that calls the named method on each item in the list with - * whatever parameters are passed in. Allows for API indirection via list - * instances.

                                  - * - *

                                  Accepts a single string name or an array of string names.

                                  - * - *
                                  list.each( function ( item ) {
                                  -     *     item.methodName( 1, 2, 3 );
                                  -     * } );
                                  -     * // becomes
                                  -     * list.methodName( 1, 2, 3 );
                                  - * - *

                                  Additionally, the pass through methods use the item retrieved by the - * _item method in case there is any special behavior that is - * appropriate for API mirroring.

                                  - * - *

                                  If the iterated method returns a value, the return value from the - * added method will be an array of values with each value being at the - * corresponding index for that item. If the iterated method does not - * return a value, the added method will be chainable. - * - * @method addMethod - * @static - * @param dest {Object} Object or prototype to receive the iterator method - * @param name {String|String[]} Name of method of methods to create - */ - addMethod: function ( dest, names ) { - - names = YArray( names ); - - YArray_each( names, function ( name ) { - dest[ name ] = function () { - var args = YArray( arguments, 0, true ), - ret = []; - - YArray_each( this._items, function ( item, i ) { - item = this._item( i ); - - var result = item[ name ].apply( item, args ); - - if ( result !== undefined && result !== item ) { - ret[i] = result; - } - }, this); - - return ret.length ? ret : this; - }; - } ); - } -} ); - -Y.ArrayList = ArrayList; - - -}, '3.4.0' ); -YUI.add('arraylist-add', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-add - */ - -/** - * Adds methods add and remove to Y.ArrayList - * @class ArrayList~add - */ -Y.mix(Y.ArrayList.prototype, { - - /** - * Add a single item to the ArrayList. Does not prevent duplicates. - * - * @method add - * @param { mixed } item Item presumably of the same type as others in the - * ArrayList. - * @param {Number} index (Optional.) Number representing the position at - * which the item should be inserted. - * @return {ArrayList} the instance. - * @chainable - */ - add: function(item, index) { - var items = this._items; - - if (Y.Lang.isNumber(index)) { - items.splice(index, 0, item); - } - else { - items.push(item); - } - - return this; - }, - - /** - * Removes first or all occurrences of an item to the ArrayList. If a - * comparator is not provided, uses itemsAreEqual method to determine - * matches. - * - * @method remove - * @param { mixed } needle Item to find and remove from the list. - * @param { Boolean } all If true, remove all occurrences. - * @param { Function } comparator optional a/b function to test equivalence. - * @return {ArrayList} the instance. - * @chainable - */ - remove: function(needle, all, comparator) { - comparator = comparator || this.itemsAreEqual; - - for (var i = this._items.length - 1; i >= 0; --i) { - if (comparator.call(this, needle, this.item(i))) { - this._items.splice(i, 1); - if (!all) { - break; - } - } - } - - return this; - }, - - /** - * Default comparator for items stored in this list. Used by remove(). - * - * @method itemsAreEqual - * @param { mixed } a item to test equivalence with. - * @param { mixed } b other item to test equivalance. - * @return { Boolean } true if items are deemed equivalent. - */ - itemsAreEqual: function(a, b) { - return a === b; - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); -YUI.add('arraylist-filter', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule arraylist-filter - */ - -/** - * Adds filter method to ArrayList prototype - * @class ArrayList~filter - */ -Y.mix(Y.ArrayList.prototype, { - - /** - *

                                  Create a new ArrayList (or augmenting class instance) from a subset - * of items as determined by the boolean function passed as the - * argument. The original ArrayList is unchanged.

                                  - * - *

                                  The validator signature is validator( item ).

                                  - * - * @method filter - * @param { Function } validator Boolean function to determine in or out. - * @return { ArrayList } New instance based on who passed the validator. - */ - filter: function(validator) { - var items = []; - - Y.Array.each(this._items, function(item, i) { - item = this.item(i); - - if (validator(item)) { - items.push(item); - } - }, this); - - return new this.constructor(items); - } - -}); - - -}, '3.4.0' ,{requires:['arraylist']}); -YUI.add('array-invoke', function(Y) { - -/** - * Collection utilities beyond what is provided in the YUI core - * @module collection - * @submodule array-invoke - */ - -/** - * Adds the Y.Array.invoke( items, methodName ) utility method. - * @class YUI~array~invoke - */ - -/** - *

                                  Execute a named method on an array of objects. Items in the list that do - * not have a function by that name will be skipped. For example, - * Y.Array.invoke( arrayOfDrags, 'plug', Y.Plugin.DDProxy );

                                  - * - *

                                  The return values from each call are returned in an array.

                                  - * - * @method invoke - * @static - * @param { Array } items Array of objects supporting the named method. - * @param { String } name the name of the method to execute on each item. - * @param { mixed } args* Any number of additional args are passed as - * parameters to the execution of the named method. - * @return { Array } All return values, indexed according to item index. - */ -Y.Array.invoke = function(items, name) { - var args = Y.Array(arguments, 2, true), - isFunction = Y.Lang.isFunction, - ret = []; - - Y.Array.each(Y.Array(items), function(item, i) { - if (isFunction(item[name])) { - ret[i] = item[name].apply(item, args); - } - }); - - return ret; -}; - - -}, '3.4.0' ); - - -YUI.add('collection', function(Y){}, '3.4.0' ,{use:['array-extras', 'arraylist', 'arraylist-add', 'arraylist-filter', 'array-invoke']}); - diff --git a/build/compat/compat-debug.js b/build/compat/compat-debug.js deleted file mode 100644 index f39dd934c3a..00000000000 --- a/build/compat/compat-debug.js +++ /dev/null @@ -1,920 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('compat', function(Y) { - - -/*global YAHOO*/ -/*global YUI*/ -/*global YUI_config*/ - -var COMPAT_ARG = '~yui|2|compat~', o, L; - - -if (window.YAHOO != YUI) { - - // get any existing YAHOO obj props - o = (window.YAHOO) ? YUI.merge(window.YAHOO) : null; - - // Make the YUI global the YAHOO global - window.YAHOO = YUI; - - // augment old YAHOO props - if (o) { - Y.mix(Y, o); - } -} - -// add old namespaces -Y.namespace("util", "widget", "example"); - -// case/location change -Y.env = (Y.env) ? Y.mix(Y.env, Y.Env) : Y.Env; -Y.lang = (Y.lang) ? Y.mix(Y.lang, Y.Lang) : Y.Lang; -Y.env.ua = Y.UA; - -// support Y.register -Y.mix(Y.env, { - modules: [], - listeners: [], - getVersion: function(name) { - return this.Env.modules[name] || null; - } -}); - -L = Y.lang; - -// add old lang properties -Y.mix(L, { - - augmentObject: function(r, s) { - var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null, - ov = (wl), args = [r, s, ov]; - - if (wl && wl[0] !== true) { - args.push(wl); - } - - return Y.mix.apply(Y, args); - }, - - augmentProto: function(r, s) { - var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null, - ov = (wl), args = [r, s, ov]; - return Y.augment.apply(Y, args); - }, - - // extend: Y.bind(Y.extend, Y), - extend: Y.extend, - // merge: Y.bind(Y.merge, Y) - merge: Y.merge -}, true); - -L.augment = L.augmentProto; - -L.hasOwnProperty = function(o, k) { - return (o.hasOwnProperty(k)); -}; - -Y.augmentProto = L.augmentProto; - -// add register function -Y.mix(Y, { - register: function(name, mainClass, data) { - var mods = Y.Env.modules; - if (!mods[name]) { - mods[name] = { versions:[], builds:[] }; - } - var m=mods[name],v=data.version,b=data.build,ls=Y.Env.listeners; - m.name = name; - m.version = v; - m.build = b; - m.versions.push(v); - m.builds.push(b); - m.mainClass = mainClass; - // fire the module load listeners - for (var i=0;i *', node, true); - }, - - get: function(el) { - if (el) { - if (el.nodeType || el.item) { // Node, or NodeList - return el; - } - - if (typeof el === 'string') { // id - return document.getElementById(el); - } - - if ('length' in el) { // array-like - var c = []; - for (var i = 0, len = el.length; i < len; ++i) { - c[c.length] = Dom.get(el[i]); - } - - return c; - } - - return el; // some other object, just pass it back - } - - return null; - }, - - isAncestor: function(haystack, needle) { - return YUI.DOM.contains(Dom.get(haystack), Dom.get(needle)); - }, - - inDocument: function(el) { - return Dom.isAncestor(Y.config.doc.documentElement, el); - }, - - batch: function(el, method, o, override, args) { - el = (el && (el.tagName || el.item)) ? el : Dom.get(el); // skip get() when possible - - if (!el || !method) { - return false; - } - if (args) { - args = Y.Array(args); - } - var scope = (override) ? o : window; - - var apply = function(el) { - if (args) { - var tmp = slice.call(args); - tmp.unshift(el); - return method.apply(scope, tmp); - } else { - return method.call(scope, el, o); - } - }; - - if (el.tagName || el.length === undefined) { // element or not array-like - return apply(el); - } - - var collection = []; - - for (var i = 0, len = el.length; i < len; ++i) { - collection[collection.length] = apply(el[i]); - } - - return collection; - }, - - // 2.x returns false if already present - _addClass: function(el, className) { - if ( YUI.DOM.hasClass(el, className) ) { - return false; - } - - YUI.DOM.addClass(el, className); - return true; - }, - - // 2.x returns false if not present - _removeClass: function(el, className) { - if ( !YUI.DOM.hasClass(el, className) ) { - return false; - } - - YUI.DOM.removeClass(el, className); - return true; - }, - - // 2.x returns false if no newClass or same as oldClass - _replaceClass: function(el, oldClass, newClass) { - if (!newClass || oldClass === newClass) { - return false; - } - - YUI.DOM.replaceClass(el, oldClass, newClass); - return true; - }, - - getElementsByClassName: function(className, tag, root) { - tag = tag || '*'; - root = (root) ? Dom.get(root) : Y.config.doc; - var nodes = []; - if (root) { - nodes = Y.Selector.query(tag + '.' + className, root); - } - return nodes; - }, - - getElementsBy: function(method, tag, root) { - tag = tag || '*'; - root = (root) ? Dom.get(root) : null || document; - - - var nodes = Y.Selector.query(tag, root); - return nodes; - }, - - getViewportWidth: YUI.DOM.winWidth, - getViewportHeight: YUI.DOM.winHeight, - getDocumentWidth: YUI.DOM.docWidth, - getDocumentHeight: YUI.DOM.docHeight, - getDocumentScrollTop: YUI.DOM.docScrollY, - getDocumentScrollLeft: YUI.DOM.docScrollX, - - _guid: function(el, prefix) { - prefix = prefix || 'yui-gen'; - Dom._id_counter = Dom._id_counter || 0; - - if (el && el.id) { // do not override existing ID - return el.id; - } - - var id = prefix + Dom._id_counter++; - - if (el) { - el.id = id; - } - - return id; - }, - - _region: function(el) { - if ( (el.parentNode === null || el.offsetParent === null || - YUI.DOM.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) { - return false; - } - - return YUI.DOM.region(el); - - }, - - _ancestorByClass: function(element, className) { - return YUI.DOM.ancestor(element, function(el) { - return YUI.DOM.hasClass(el, className); - }); - }, - - _ancestorByTag: function(element, tag) { - tag = tag.toUpperCase(); - return YUI.DOM.ancestor(element, function(el) { - return el.tagName.toUpperCase() === tag; - }); - } -}; - - -var wrap = function(fn, name) { - Dom[name] = function() { - var args = slice.call(arguments); - args[0] = Dom.get(args[0]); - return fn.apply(Dom, args); - }; -}; - -var wrapped = { - getAncestorBy: YUI.DOM.ancestor, - getAncestorByClassName: Dom._ancestorByClass, - getAncestorByTagName: Dom._ancestorByTag, - getPreviousSiblingBy: YUI.DOM.previous, - getPreviousSibling: YUI.DOM.previous, - getNextSiblingBy: YUI.DOM.next, - getNextSibling: YUI.DOM.next, - getFirstChildBy: Dom._firstChild, - getFirstChild: Dom._firstChild, - getLastChildBy: YUI.DOM.lastChild, - getLastChild: YUI.DOM.lastChild, - getChildrenBy: YUI.DOM.children, - getChildren: YUI.DOM.children, - insertBefore: function(newNode, refNode) { - YUI.DOM.insertBefore(Dom.get(newNode), Dom.get(refNode)); - }, - insertAfter: function(newNode, refNode) { - YUI.DOM.insertAfter(Dom.get(newNode), Dom.get(refNode)); - } -}; - -Y.each(wrapped, wrap); - -var batched = { - getStyle: YUI.DOM.getStyle, - setStyle: YUI.DOM.setStyle, - getXY: YUI.DOM.getXY, - setXY: YUI.DOM.setXY, - getX: YUI.DOM.getX, - getY: YUI.DOM.getY, - setX: YUI.DOM.setX, - setY: YUI.DOM.setY, - getRegion: Dom._region, - hasClass: YUI.DOM.hasClass, - addClass: Dom._addClass, - removeClass: Dom._removeClass, - replaceClass: Dom._replaceClass, - generateId: Dom._guid -}; - -Y.each(batched, function(v, n) { - Dom[n] = function(el) { - var args = slice.call(arguments, 1); - return Dom.batch(el, v, null, null, args); - }; -}); - -Y.util.Dom = Dom; - -YAHOO.util.Region = function(t, r, b, l) { - this.top = t; - this[1] = t; - this.right = r; - this.bottom = b; - this.left = l; - this[0] = l; -}; - -YAHOO.util.Region.prototype.contains = function(region) { - return ( region.left >= this.left && - region.right <= this.right && - region.top >= this.top && - region.bottom <= this.bottom ); - - // this.logger.debug("does " + this + " contain " + region + " ... " + ret); -}; - -YAHOO.util.Region.prototype.getArea = function() { - return ( (this.bottom - this.top) * (this.right - this.left) ); -}; - -YAHOO.util.Region.prototype.intersect = function(region) { - var t = Math.max( this.top, region.top ); - var r = Math.min( this.right, region.right ); - var b = Math.min( this.bottom, region.bottom ); - var l = Math.max( this.left, region.left ); - - if (b >= t && r >= l) { - return new YAHOO.util.Region(t, r, b, l); - } else { - return null; - } -}; - -YAHOO.util.Region.prototype.union = function(region) { - var t = Math.min( this.top, region.top ); - var r = Math.max( this.right, region.right ); - var b = Math.max( this.bottom, region.bottom ); - var l = Math.min( this.left, region.left ); - - return new YAHOO.util.Region(t, r, b, l); -}; - -YAHOO.util.Region.prototype.toString = function() { - return ( "Region {" + - "top: " + this.top + - ", right: " + this.right + - ", bottom: " + this.bottom + - ", left: " + this.left + - "}" ); -}; - -YAHOO.util.Region.getRegion = function(el) { - return YUI.DOM.region(el); -}; - -YAHOO.util.Point = function(x, y) { - if (YAHOO.lang.isArray(x)) { // accept input from Dom.getXY, Event.getXY, etc. - y = x[1]; // dont blow away x yet - x = x[0]; - } - - this.x = this.right = this.left = this[0] = x; - this.y = this.top = this.bottom = this[1] = y; -}; - -YAHOO.util.Point.prototype = new YAHOO.util.Region(); - -YAHOO.register("dom", YAHOO.util.Dom, {version: "3.4.0", build: "nightly"}); - - - -}, '3.4.0' ,{requires:['dom','dom-style-ie','event-base','dump','substitute']}); -YUI._setup(); YUI.use('compat'); diff --git a/build/compat/compat-min.js b/build/compat/compat-min.js deleted file mode 100644 index 3da54e2cf8c..00000000000 --- a/build/compat/compat-min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("compat",function(d){var u="~yui|2|compat~",n,g;if(window.YAHOO!=YUI){n=(window.YAHOO)?YUI.merge(window.YAHOO):null;window.YAHOO=YUI;if(n){d.mix(d,n);}}d.namespace("util","widget","example");d.env=(d.env)?d.mix(d.env,d.Env):d.Env;d.lang=(d.lang)?d.mix(d.lang,d.Lang):d.Lang;d.env.ua=d.UA;d.mix(d.env,{modules:[],listeners:[],getVersion:function(i){return this.Env.modules[i]||null;}});g=d.lang;d.mix(g,{augmentObject:function(x,w){var i=arguments,y=(i.length>2)?d.Array(i,2,true):null,o=(y),l=[x,w,o];if(y&&y[0]!==true){l.push(y);}return d.mix.apply(d,l);},augmentProto:function(x,w){var i=arguments,y=(i.length>2)?d.Array(i,2,true):null,o=(y),l=[x,w,o];return d.augment.apply(d,l);},extend:d.extend,merge:d.merge},true);g.augment=g.augmentProto;g.hasOwnProperty=function(l,i){return(l.hasOwnProperty(i));};d.augmentProto=g.augmentProto;d.mix(d,{register:function(l,y,x){var C=d.Env.modules;if(!C[l]){C[l]={versions:[],builds:[]};}var o=C[l],B=x.version,A=x.build,z=d.Env.listeners;o.name=l;o.version=B;o.build=A;o.versions.push(B);o.builds.push(A);o.mainClass=y;for(var w=0;w *",i,true);},get:function(w){if(w){if(w.nodeType||w.item){return w;}if(typeof w==="string"){return document.getElementById(w);}if("length" in w){var x=[];for(var o=0,l=w.length;o=this.left&&i.right<=this.right&&i.top>=this.top&&i.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(y){var w=Math.max(this.top,y.top);var x=Math.min(this.right,y.right);var i=Math.min(this.bottom,y.bottom);var o=Math.max(this.left,y.left);if(i>=w&&x>=o){return new YAHOO.util.Region(w,x,i,o);}else{return null;}};YAHOO.util.Region.prototype.union=function(y){var w=Math.min(this.top,y.top);var x=Math.max(this.right,y.right);var i=Math.max(this.bottom,y.bottom);var o=Math.min(this.left,y.left);return new YAHOO.util.Region(w,x,i,o);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(i){return YUI.DOM.region(i);};YAHOO.util.Point=function(i,l){if(YAHOO.lang.isArray(i)){l=i[1];i=i[0];}this.x=this.right=this.left=this[0]=i;this.y=this.top=this.bottom=this[1]=l;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"3.4.0",build:"nightly"});},"3.4.0",{requires:["dom","dom-style-ie","event-base","dump","substitute"]});YUI._setup();YUI.use("compat"); \ No newline at end of file diff --git a/build/compat/compat.js b/build/compat/compat.js deleted file mode 100644 index 1fb4292fd5e..00000000000 --- a/build/compat/compat.js +++ /dev/null @@ -1,916 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('compat', function(Y) { - - -/*global YAHOO*/ -/*global YUI*/ -/*global YUI_config*/ - -var COMPAT_ARG = '~yui|2|compat~', o, L; - - -if (window.YAHOO != YUI) { - - // get any existing YAHOO obj props - o = (window.YAHOO) ? YUI.merge(window.YAHOO) : null; - - // Make the YUI global the YAHOO global - window.YAHOO = YUI; - - // augment old YAHOO props - if (o) { - Y.mix(Y, o); - } -} - -// add old namespaces -Y.namespace("util", "widget", "example"); - -// case/location change -Y.env = (Y.env) ? Y.mix(Y.env, Y.Env) : Y.Env; -Y.lang = (Y.lang) ? Y.mix(Y.lang, Y.Lang) : Y.Lang; -Y.env.ua = Y.UA; - -// support Y.register -Y.mix(Y.env, { - modules: [], - listeners: [], - getVersion: function(name) { - return this.Env.modules[name] || null; - } -}); - -L = Y.lang; - -// add old lang properties -Y.mix(L, { - - augmentObject: function(r, s) { - var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null, - ov = (wl), args = [r, s, ov]; - - if (wl && wl[0] !== true) { - args.push(wl); - } - - return Y.mix.apply(Y, args); - }, - - augmentProto: function(r, s) { - var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null, - ov = (wl), args = [r, s, ov]; - return Y.augment.apply(Y, args); - }, - - // extend: Y.bind(Y.extend, Y), - extend: Y.extend, - // merge: Y.bind(Y.merge, Y) - merge: Y.merge -}, true); - -L.augment = L.augmentProto; - -L.hasOwnProperty = function(o, k) { - return (o.hasOwnProperty(k)); -}; - -Y.augmentProto = L.augmentProto; - -// add register function -Y.mix(Y, { - register: function(name, mainClass, data) { - var mods = Y.Env.modules; - if (!mods[name]) { - mods[name] = { versions:[], builds:[] }; - } - var m=mods[name],v=data.version,b=data.build,ls=Y.Env.listeners; - m.name = name; - m.version = v; - m.build = b; - m.versions.push(v); - m.builds.push(b); - m.mainClass = mainClass; - // fire the module load listeners - for (var i=0;i *', node, true); - }, - - get: function(el) { - if (el) { - if (el.nodeType || el.item) { // Node, or NodeList - return el; - } - - if (typeof el === 'string') { // id - return document.getElementById(el); - } - - if ('length' in el) { // array-like - var c = []; - for (var i = 0, len = el.length; i < len; ++i) { - c[c.length] = Dom.get(el[i]); - } - - return c; - } - - return el; // some other object, just pass it back - } - - return null; - }, - - isAncestor: function(haystack, needle) { - return YUI.DOM.contains(Dom.get(haystack), Dom.get(needle)); - }, - - inDocument: function(el) { - return Dom.isAncestor(Y.config.doc.documentElement, el); - }, - - batch: function(el, method, o, override, args) { - el = (el && (el.tagName || el.item)) ? el : Dom.get(el); // skip get() when possible - - if (!el || !method) { - return false; - } - if (args) { - args = Y.Array(args); - } - var scope = (override) ? o : window; - - var apply = function(el) { - if (args) { - var tmp = slice.call(args); - tmp.unshift(el); - return method.apply(scope, tmp); - } else { - return method.call(scope, el, o); - } - }; - - if (el.tagName || el.length === undefined) { // element or not array-like - return apply(el); - } - - var collection = []; - - for (var i = 0, len = el.length; i < len; ++i) { - collection[collection.length] = apply(el[i]); - } - - return collection; - }, - - // 2.x returns false if already present - _addClass: function(el, className) { - if ( YUI.DOM.hasClass(el, className) ) { - return false; - } - - YUI.DOM.addClass(el, className); - return true; - }, - - // 2.x returns false if not present - _removeClass: function(el, className) { - if ( !YUI.DOM.hasClass(el, className) ) { - return false; - } - - YUI.DOM.removeClass(el, className); - return true; - }, - - // 2.x returns false if no newClass or same as oldClass - _replaceClass: function(el, oldClass, newClass) { - if (!newClass || oldClass === newClass) { - return false; - } - - YUI.DOM.replaceClass(el, oldClass, newClass); - return true; - }, - - getElementsByClassName: function(className, tag, root) { - tag = tag || '*'; - root = (root) ? Dom.get(root) : Y.config.doc; - var nodes = []; - if (root) { - nodes = Y.Selector.query(tag + '.' + className, root); - } - return nodes; - }, - - getElementsBy: function(method, tag, root) { - tag = tag || '*'; - root = (root) ? Dom.get(root) : null || document; - - - var nodes = Y.Selector.query(tag, root); - return nodes; - }, - - getViewportWidth: YUI.DOM.winWidth, - getViewportHeight: YUI.DOM.winHeight, - getDocumentWidth: YUI.DOM.docWidth, - getDocumentHeight: YUI.DOM.docHeight, - getDocumentScrollTop: YUI.DOM.docScrollY, - getDocumentScrollLeft: YUI.DOM.docScrollX, - - _guid: function(el, prefix) { - prefix = prefix || 'yui-gen'; - Dom._id_counter = Dom._id_counter || 0; - - if (el && el.id) { // do not override existing ID - return el.id; - } - - var id = prefix + Dom._id_counter++; - - if (el) { - el.id = id; - } - - return id; - }, - - _region: function(el) { - if ( (el.parentNode === null || el.offsetParent === null || - YUI.DOM.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) { - return false; - } - - return YUI.DOM.region(el); - - }, - - _ancestorByClass: function(element, className) { - return YUI.DOM.ancestor(element, function(el) { - return YUI.DOM.hasClass(el, className); - }); - }, - - _ancestorByTag: function(element, tag) { - tag = tag.toUpperCase(); - return YUI.DOM.ancestor(element, function(el) { - return el.tagName.toUpperCase() === tag; - }); - } -}; - - -var wrap = function(fn, name) { - Dom[name] = function() { - var args = slice.call(arguments); - args[0] = Dom.get(args[0]); - return fn.apply(Dom, args); - }; -}; - -var wrapped = { - getAncestorBy: YUI.DOM.ancestor, - getAncestorByClassName: Dom._ancestorByClass, - getAncestorByTagName: Dom._ancestorByTag, - getPreviousSiblingBy: YUI.DOM.previous, - getPreviousSibling: YUI.DOM.previous, - getNextSiblingBy: YUI.DOM.next, - getNextSibling: YUI.DOM.next, - getFirstChildBy: Dom._firstChild, - getFirstChild: Dom._firstChild, - getLastChildBy: YUI.DOM.lastChild, - getLastChild: YUI.DOM.lastChild, - getChildrenBy: YUI.DOM.children, - getChildren: YUI.DOM.children, - insertBefore: function(newNode, refNode) { - YUI.DOM.insertBefore(Dom.get(newNode), Dom.get(refNode)); - }, - insertAfter: function(newNode, refNode) { - YUI.DOM.insertAfter(Dom.get(newNode), Dom.get(refNode)); - } -}; - -Y.each(wrapped, wrap); - -var batched = { - getStyle: YUI.DOM.getStyle, - setStyle: YUI.DOM.setStyle, - getXY: YUI.DOM.getXY, - setXY: YUI.DOM.setXY, - getX: YUI.DOM.getX, - getY: YUI.DOM.getY, - setX: YUI.DOM.setX, - setY: YUI.DOM.setY, - getRegion: Dom._region, - hasClass: YUI.DOM.hasClass, - addClass: Dom._addClass, - removeClass: Dom._removeClass, - replaceClass: Dom._replaceClass, - generateId: Dom._guid -}; - -Y.each(batched, function(v, n) { - Dom[n] = function(el) { - var args = slice.call(arguments, 1); - return Dom.batch(el, v, null, null, args); - }; -}); - -Y.util.Dom = Dom; - -YAHOO.util.Region = function(t, r, b, l) { - this.top = t; - this[1] = t; - this.right = r; - this.bottom = b; - this.left = l; - this[0] = l; -}; - -YAHOO.util.Region.prototype.contains = function(region) { - return ( region.left >= this.left && - region.right <= this.right && - region.top >= this.top && - region.bottom <= this.bottom ); - -}; - -YAHOO.util.Region.prototype.getArea = function() { - return ( (this.bottom - this.top) * (this.right - this.left) ); -}; - -YAHOO.util.Region.prototype.intersect = function(region) { - var t = Math.max( this.top, region.top ); - var r = Math.min( this.right, region.right ); - var b = Math.min( this.bottom, region.bottom ); - var l = Math.max( this.left, region.left ); - - if (b >= t && r >= l) { - return new YAHOO.util.Region(t, r, b, l); - } else { - return null; - } -}; - -YAHOO.util.Region.prototype.union = function(region) { - var t = Math.min( this.top, region.top ); - var r = Math.max( this.right, region.right ); - var b = Math.max( this.bottom, region.bottom ); - var l = Math.min( this.left, region.left ); - - return new YAHOO.util.Region(t, r, b, l); -}; - -YAHOO.util.Region.prototype.toString = function() { - return ( "Region {" + - "top: " + this.top + - ", right: " + this.right + - ", bottom: " + this.bottom + - ", left: " + this.left + - "}" ); -}; - -YAHOO.util.Region.getRegion = function(el) { - return YUI.DOM.region(el); -}; - -YAHOO.util.Point = function(x, y) { - if (YAHOO.lang.isArray(x)) { // accept input from Dom.getXY, Event.getXY, etc. - y = x[1]; // dont blow away x yet - x = x[0]; - } - - this.x = this.right = this.left = this[0] = x; - this.y = this.top = this.bottom = this[1] = y; -}; - -YAHOO.util.Point.prototype = new YAHOO.util.Region(); - -YAHOO.register("dom", YAHOO.util.Dom, {version: "3.4.0", build: "nightly"}); - - - -}, '3.4.0' ,{requires:['dom','dom-style-ie','event-base','dump','substitute']}); -YUI._setup(); YUI.use('compat'); diff --git a/build/console/console-filters-debug.js b/build/console/console-filters-debug.js deleted file mode 100644 index 7ae86f0065d..00000000000 --- a/build/console/console-filters-debug.js +++ /dev/null @@ -1,730 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('console-filters', function(Y) { - -/** - *

                                  Provides Plugin.ConsoleFilters plugin class.

                                  - * - *

                                  This plugin adds the ability to control which Console entries display by filtering on category and source. Two groups of checkboxes are added to the Console footer, one for categories and the other for sources. Only those messages that match a checked category or source are displayed.

                                  - * - * @module console-filters - * @namespace Plugin - * @class ConsoleFilters - */ - -// Some common strings and functions -var getCN = Y.ClassNameManager.getClassName, - CONSOLE = 'console', - FILTERS = 'filters', - FILTER = 'filter', - CATEGORY = 'category', - SOURCE = 'source', - CATEGORY_DOT = 'category.', - SOURCE_DOT = 'source.', - - HOST = 'host', - CHECKED = 'checked', - DEF_VISIBILITY = 'defaultVisibility', - - DOT = '.', - EMPTY = '', - - C_BODY = DOT + Y.Console.CHROME_CLASSES.console_bd_class, - C_FOOT = DOT + Y.Console.CHROME_CLASSES.console_ft_class, - - SEL_CHECK = 'input[type=checkbox].', - - isString = Y.Lang.isString; - -function ConsoleFilters() { - ConsoleFilters.superclass.constructor.apply(this,arguments); -} - -Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base, - -// Y.Plugin.ConsoleFilters prototype -{ - /** - * Collection of all log messages passed through since the plugin's - * instantiation. This holds all messages regardless of filter status. - * Used as a single source of truth for repopulating the Console body when - * filters are changed. - * - * @property _entries - * @type Array - * @protected - */ - _entries : null, - - /** - * Maximum number of entries to store in the message cache. - * - * @property _cacheLimit - * @type {Number} - * @default Infinity - * @protected - */ - _cacheLimit : Number.POSITIVE_INFINITY, - - /** - * The container node created to house the category filters. - * - * @property _categories - * @type Node - * @protected - */ - _categories : null, - - /** - * The container node created to house the source filters. - * - * @property _sources - * @type Node - * @protected - */ - _sources : null, - - /** - * Initialize entries collection and attach listeners to host events and - * methods. - * - * @method initializer - * @protected - */ - initializer : function () { - this._entries = []; - - this.get(HOST).on("entry", this._onEntry, this); - - this.doAfter("renderUI", this.renderUI); - this.doAfter("syncUI", this.syncUI); - this.doAfter("bindUI", this.bindUI); - - this.doAfter("clearConsole", this._afterClearConsole); - - if (this.get(HOST).get('rendered')) { - this.renderUI(); - this.syncUI(); - this.bindUI(); - } - - this.after("cacheLimitChange", this._afterCacheLimitChange); - }, - - /** - * Removes the plugin UI and unwires events. - * - * @method destructor - * @protected - */ - destructor : function () { - //TODO: grab last {consoleLimit} entries and update the console with - //them (no filtering) - this._entries = []; - - if (this._categories) { - this._categories.remove(); - } - if (this._sources) { - this._sources.remove(); - } - }, - - /** - * Adds the category and source filter sections to the Console footer. - * - * @method renderUI - * @protected - */ - renderUI : function () { - var foot = this.get(HOST).get('contentBox').one(C_FOOT), - html; - - if (foot) { - html = Y.substitute( - ConsoleFilters.CATEGORIES_TEMPLATE, - ConsoleFilters.CHROME_CLASSES); - - this._categories = foot.appendChild(Y.Node.create(html)); - - html = Y.substitute( - ConsoleFilters.SOURCES_TEMPLATE, - ConsoleFilters.CHROME_CLASSES); - - this._sources = foot.appendChild(Y.Node.create(html)); - } - }, - - /** - * Binds to checkbox click events and internal attribute change events to - * maintain the UI state. - * - * @method bindUI - * @protected - */ - bindUI : function () { - this._categories.on('click', Y.bind(this._onCategoryCheckboxClick, this)); - - this._sources.on('click', Y.bind(this._onSourceCheckboxClick, this)); - - this.after('categoryChange',this._afterCategoryChange); - this.after('sourceChange', this._afterSourceChange); - }, - - /** - * Updates the UI to be in accordance with the current state of the plugin. - * - * @method syncUI - */ - syncUI : function () { - Y.each(this.get(CATEGORY), function (v, k) { - this._uiSetCheckbox(CATEGORY, k, v); - }, this); - - Y.each(this.get(SOURCE), function (v, k) { - this._uiSetCheckbox(SOURCE, k, v); - }, this); - - this.refreshConsole(); - }, - - /** - * Ensures a filter is set up for any new categories or sources and - * collects the messages in _entries. If the message is stamped with a - * category or source that is currently being filtered out, the message - * will not pass to the Console's print buffer. - * - * @method _onEntry - * @param e {Event} the custom event object - * @protected - */ - _onEntry : function (e) { - this._entries.push(e.message); - - var cat = CATEGORY_DOT + e.message.category, - src = SOURCE_DOT + e.message.source, - cat_filter = this.get(cat), - src_filter = this.get(src), - overLimit = this._entries.length - this._cacheLimit, - visible; - - if (overLimit > 0) { - this._entries.splice(0, overLimit); - } - - if (cat_filter === undefined) { - visible = this.get(DEF_VISIBILITY); - this.set(cat, visible); - cat_filter = visible; - } - - if (src_filter === undefined) { - visible = this.get(DEF_VISIBILITY); - this.set(src, visible); - src_filter = visible; - } - - if (!cat_filter || !src_filter) { - e.preventDefault(); - } - }, - - /** - * Flushes the cached entries after a call to the Console's clearConsole(). - * - * @method _afterClearConsole - * @protected - */ - _afterClearConsole : function () { - this._entries = []; - }, - - /** - * Triggers the Console to update if a known category filter - * changes value (e.g. visible => hidden). Updates the appropriate - * checkbox's checked state if necessary. - * - * @method _afterCategoryChange - * @param e {Event} the attribute change event object - * @protected - */ - _afterCategoryChange : function (e) { - var cat = e.subAttrName.replace(/category\./, EMPTY), - before = e.prevVal, - after = e.newVal; - - // Don't update the console for new categories - if (!cat || before[cat] !== undefined) { - this.refreshConsole(); - - this._filterBuffer(); - } - - if (cat && !e.fromUI) { - this._uiSetCheckbox(CATEGORY, cat, after[cat]); - } - }, - - /** - * Triggers the Console to update if a known source filter - * changes value (e.g. visible => hidden). Updates the appropriate - * checkbox's checked state if necessary. - * - * @method _afterSourceChange - * @param e {Event} the attribute change event object - * @protected - */ - _afterSourceChange : function (e) { - var src = e.subAttrName.replace(/source\./, EMPTY), - before = e.prevVal, - after = e.newVal; - - // Don't update the console for new sources - if (!src || before[src] !== undefined) { - this.refreshConsole(); - - this._filterBuffer(); - } - - if (src && !e.fromUI) { - this._uiSetCheckbox(SOURCE, src, after[src]); - } - }, - - /** - * Flushes the Console's print buffer of any entries that have a category - * or source that is currently being excluded. - * - * @method _filterBuffer - * @protected - */ - _filterBuffer : function () { - var cats = this.get(CATEGORY), - srcs = this.get(SOURCE), - buffer = this.get(HOST).buffer, - start = null, - i; - - for (i = buffer.length - 1; i >= 0; --i) { - if (!cats[buffer[i].category] || !srcs[buffer[i].source]) { - start = start || i; - } else if (start) { - buffer.splice(i,(start - i)); - start = null; - } - } - if (start) { - buffer.splice(0,start + 1); - } - }, - - /** - * Trims the cache of entries to the appropriate new length. - * - * @method _afterCacheLimitChange - * @param e {Event} the attribute change event object - * @protected - */ - _afterCacheLimitChange : function (e) { - if (isFinite(e.newVal)) { - var delta = this._entries.length - e.newVal; - - if (delta > 0) { - this._entries.splice(0,delta); - } - } - }, - - /** - * Repopulates the Console with entries appropriate to the current filter - * settings. - * - * @method refreshConsole - */ - refreshConsole : function () { - var entries = this._entries, - host = this.get(HOST), - body = host.get('contentBox').one(C_BODY), - remaining = host.get('consoleLimit'), - cats = this.get(CATEGORY), - srcs = this.get(SOURCE), - buffer = [], - i,e; - - if (body) { - host._cancelPrintLoop(); - - // Evaluate all entries from latest to oldest - for (i = entries.length - 1; i >= 0 && remaining >= 0; --i) { - e = entries[i]; - if (cats[e.category] && srcs[e.source]) { - buffer.unshift(e); - --remaining; - } - } - - body.setContent(EMPTY); - host.buffer = buffer; - host.printBuffer(); - } - }, - - /** - * Updates the checked property of a filter checkbox of the specified type. - * If no checkbox is found for the input params, one is created. - * - * @method _uiSetCheckbox - * @param type {String} 'category' or 'source' - * @param item {String} the name of the filter (e.g. 'info', 'event') - * @param checked {Boolean} value to set the checkbox's checked property - * @protected - */ - _uiSetCheckbox : function (type, item, checked) { - if (type && item) { - var container = type === CATEGORY ? - this._categories : - this._sources, - sel = SEL_CHECK + getCN(CONSOLE,FILTER,item), - checkbox = container.one(sel), - host; - - if (!checkbox) { - host = this.get(HOST); - - this._createCheckbox(container, item); - - checkbox = container.one(sel); - - host._uiSetHeight(host.get('height')); - } - - checkbox.set(CHECKED, checked); - } - }, - - /** - * Passes checkbox clicks on to the category attribute. - * - * @method _onCategoryCheckboxClick - * @param e {Event} the DOM event - * @protected - */ - _onCategoryCheckboxClick : function (e) { - var t = e.target, cat; - - if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) { - cat = t.get('value'); - if (cat && cat in this.get(CATEGORY)) { - this.set(CATEGORY_DOT + cat, t.get(CHECKED), { fromUI: true }); - } - } - }, - - /** - * Passes checkbox clicks on to the source attribute. - * - * @method _onSourceCheckboxClick - * @param e {Event} the DOM event - * @protected - */ - _onSourceCheckboxClick : function (e) { - var t = e.target, src; - - if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) { - src = t.get('value'); - if (src && src in this.get(SOURCE)) { - this.set(SOURCE_DOT + src, t.get(CHECKED), { fromUI: true }); - } - } - }, - - /** - * Hides any number of categories from the UI. Convenience method for - * myConsole.filter.set('category.foo', false); set('category.bar', false); - * and so on. - * - * @method hideCategory - * @param cat* {String} 1..n categories to filter out of the UI - */ - hideCategory : function (cat, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.hideCategory, this); - } else { - this.set(CATEGORY_DOT + cat, false); - } - }, - - /** - * Shows any number of categories in the UI. Convenience method for - * myConsole.filter.set('category.foo', true); set('category.bar', true); - * and so on. - * - * @method showCategory - * @param cat* {String} 1..n categories to allow to display in the UI - */ - showCategory : function (cat, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.showCategory, this); - } else { - this.set(CATEGORY_DOT + cat, true); - } - }, - - /** - * Hides any number of sources from the UI. Convenience method for - * myConsole.filter.set('source.foo', false); set('source.bar', false); - * and so on. - * - * @method hideSource - * @param src* {String} 1..n sources to filter out of the UI - */ - hideSource : function (src, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.hideSource, this); - } else { - this.set(SOURCE_DOT + src, false); - } - }, - - /** - * Shows any number of sources in the UI. Convenience method for - * myConsole.filter.set('source.foo', true); set('source.bar', true); - * and so on. - * - * @method showSource - * @param src* {String} 1..n sources to allow to display in the UI - */ - showSource : function (src, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.showSource, this); - } else { - this.set(SOURCE_DOT + src, true); - } - }, - - /** - * Creates a checkbox and label from the ConsoleFilters.FILTER_TEMPLATE for - * the provided type and name. The checkbox and label are appended to the - * container node passes as the first arg. - * - * @method _createCheckbox - * @param container {Node} the parentNode of the new checkbox and label - * @param name {String} the identifier of the filter - * @protected - */ - _createCheckbox : function (container, name) { - var info = Y.merge(ConsoleFilters.CHROME_CLASSES, { - filter_name : name, - filter_class : getCN(CONSOLE, FILTER, name) - }), - node = Y.Node.create( - Y.substitute(ConsoleFilters.FILTER_TEMPLATE, info)); - - container.appendChild(node); - }, - - /** - * Validates category updates are objects and the subattribute is not too - * deep. - * - * @method _validateCategory - * @param cat {String} the new category:visibility map - * @param v {String} the subattribute path updated - * @return Boolean - * @protected - */ - _validateCategory : function (cat, v) { - return Y.Lang.isObject(v,true) && cat.split(/\./).length < 3; - }, - - /** - * Validates source updates are objects and the subattribute is not too - * deep. - * - * @method _validateSource - * @param cat {String} the new source:visibility map - * @param v {String} the subattribute path updated - * @return Boolean - * @protected - */ - _validateSource : function (src, v) { - return Y.Lang.isObject(v,true) && src.split(/\./).length < 3; - }, - - /** - * Setter method for cacheLimit attribute. Basically a validator to ensure - * numeric input. - * - * @method _setCacheLimit - * @param v {Number} Maximum number of entries - * @return {Number} - * @protected - */ - _setCacheLimit: function (v) { - if (Y.Lang.isNumber(v)) { - this._cacheLimit = v; - return v; - } else { - return Y.Attribute.INVALID_VALUE; - } - } -}, - -// Y.Plugin.ConsoleFilters static properties -{ - /** - * Plugin name. - * - * @property ConsoleFilters.NAME - * @type String - * @static - * @default 'consoleFilters' - */ - NAME : 'consoleFilters', - - /** - * The namespace hung off the host object that this plugin will inhabit. - * - * @property ConsoleFilters.NS - * @type String - * @static - * @default 'filter' - */ - NS : FILTER, - - /** - * Markup template used to create the container for the category filters. - * - * @property ConsoleFilters.CATEGORIES_TEMPLATE - * @type String - * @static - */ - CATEGORIES_TEMPLATE : - '
                                  ', - - /** - * Markup template used to create the container for the source filters. - * - * @property ConsoleFilters.SOURCES_TEMPLATE - * @type String - * @static - */ - SOURCES_TEMPLATE : - '
                                  ', - - /** - * Markup template used to create the category and source filter checkboxes. - * - * @property ConsoleFilters.FILTER_TEMPLATE - * @type String - * @static - */ - FILTER_TEMPLATE : - // IE8 and FF3 don't permit breaking _between_ nowrap elements. IE8 - // doesn't understand (non spec) wbr tag, nor does it create text nodes - // for spaces in innerHTML strings. The thin-space entity suffices to - // create a breakable point. - ' ', - - /** - * Classnames used by the templates when creating nodes. - * - * @property ConsoleFilters.CHROME_CLASSES - * @type Object - * @static - * @protected - */ - CHROME_CLASSES : { - categories : getCN(CONSOLE,FILTERS,'categories'), - sources : getCN(CONSOLE,FILTERS,'sources'), - category : getCN(CONSOLE,FILTER,CATEGORY), - source : getCN(CONSOLE,FILTER,SOURCE), - filter : getCN(CONSOLE,FILTER), - filter_label : getCN(CONSOLE,FILTER,'label') - }, - - ATTRS : { - /** - * Default visibility applied to new categories and sources. - * - * @attribute defaultVisibility - * @type {Boolean} - * @default true - */ - defaultVisibility : { - value : true, - validator : Y.Lang.isBoolean - }, - - /** - *

                                  Map of entry categories to their visibility status. Update a - * particular category's visibility by setting the subattribute to true - * (visible) or false (hidden).

                                  - * - *

                                  For example, yconsole.filter.set('category.info', false) to hide - * log entries with the category/logLevel of 'info'.

                                  - * - *

                                  Similarly, yconsole.filter.get('category.warn') will return a - * boolean indicating whether that category is currently being included - * in the UI.

                                  - * - *

                                  Unlike the YUI instance configuration's logInclude and logExclude - * properties, filtered entries are only hidden from the UI, but - * can be made visible again.

                                  - * - * @attribute category - * @type Object - */ - category : { - value : {}, - validator : function (v,k) { - return this._validateCategory(k,v); - } - }, - - /** - *

                                  Map of entry sources to their visibility status. Update a - * particular sources's visibility by setting the subattribute to true - * (visible) or false (hidden).

                                  - * - *

                                  For example, yconsole.filter.set('sources.slider', false) to hide - * log entries originating from Y.Slider.

                                  - * - * @attribute source - * @type Object - */ - source : { - value : {}, - validator : function (v,k) { - return this._validateSource(k,v); - } - }, - - /** - * Maximum number of entries to store in the message cache. Use this to - * limit the memory footprint in environments with heavy log usage. - * By default, there is no limit (Number.POSITIVE_INFINITY). - * - * @attribute cacheLimit - * @type {Number} - * @default Number.POSITIVE_INFINITY - */ - cacheLimit : { - value : Number.POSITIVE_INFINITY, - setter : function (v) { - return this._setCacheLimit(v); - } - } - } -}); - - -}, '3.4.0' ,{requires:['console','plugin']}); diff --git a/build/console/console-filters-min.js b/build/console/console-filters-min.js deleted file mode 100644 index ff60ef19f5d..00000000000 --- a/build/console/console-filters-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("console-filters",function(C){var P=C.ClassNameManager.getClassName,G="console",B="filters",K="filter",F="category",D="source",E="category.",L="source.",O="host",Q="checked",N="defaultVisibility",M=".",S="",R=M+C.Console.CHROME_CLASSES.console_bd_class,H=M+C.Console.CHROME_CLASSES.console_ft_class,A="input[type=checkbox].",I=C.Lang.isString;function J(){J.superclass.constructor.apply(this,arguments);}C.namespace("Plugin").ConsoleFilters=C.extend(J,C.Plugin.Base,{_entries:null,_cacheLimit:Number.POSITIVE_INFINITY,_categories:null,_sources:null,initializer:function(){this._entries=[];this.get(O).on("entry",this._onEntry,this);this.doAfter("renderUI",this.renderUI);this.doAfter("syncUI",this.syncUI);this.doAfter("bindUI",this.bindUI);this.doAfter("clearConsole",this._afterClearConsole);if(this.get(O).get("rendered")){this.renderUI();this.syncUI();this.bindUI();}this.after("cacheLimitChange",this._afterCacheLimitChange);},destructor:function(){this._entries=[];if(this._categories){this._categories.remove();}if(this._sources){this._sources.remove();}},renderUI:function(){var U=this.get(O).get("contentBox").one(H),T;if(U){T=C.substitute(J.CATEGORIES_TEMPLATE,J.CHROME_CLASSES);this._categories=U.appendChild(C.Node.create(T));T=C.substitute(J.SOURCES_TEMPLATE,J.CHROME_CLASSES);this._sources=U.appendChild(C.Node.create(T));}},bindUI:function(){this._categories.on("click",C.bind(this._onCategoryCheckboxClick,this));this._sources.on("click",C.bind(this._onSourceCheckboxClick,this));this.after("categoryChange",this._afterCategoryChange);this.after("sourceChange",this._afterSourceChange);},syncUI:function(){C.each(this.get(F),function(U,T){this._uiSetCheckbox(F,T,U);},this);C.each(this.get(D),function(U,T){this._uiSetCheckbox(D,T,U);},this);this.refreshConsole();},_onEntry:function(W){this._entries.push(W.message);var T=E+W.message.category,Y=L+W.message.source,U=this.get(T),Z=this.get(Y),V=this._entries.length-this._cacheLimit,X;if(V>0){this._entries.splice(0,V);}if(U===undefined){X=this.get(N);this.set(T,X);U=X;}if(Z===undefined){X=this.get(N);this.set(Y,X);Z=X;}if(!U||!Z){W.preventDefault();}},_afterClearConsole:function(){this._entries=[];},_afterCategoryChange:function(V){var T=V.subAttrName.replace(/category\./,S),U=V.prevVal,W=V.newVal;if(!T||U[T]!==undefined){this.refreshConsole();this._filterBuffer();}if(T&&!V.fromUI){this._uiSetCheckbox(F,T,W[T]);}},_afterSourceChange:function(U){var W=U.subAttrName.replace(/source\./,S),T=U.prevVal,V=U.newVal;if(!W||T[W]!==undefined){this.refreshConsole();this._filterBuffer();}if(W&&!U.fromUI){this._uiSetCheckbox(D,W,V[W]);}},_filterBuffer:function(){var U=this.get(F),W=this.get(D),T=this.get(O).buffer,X=null,V;for(V=T.length-1;V>=0;--V){if(!U[T[V].category]||!W[T[V].source]){X=X||V;}else{if(X){T.splice(V,(X-V));X=null;}}}if(X){T.splice(0,X+1);}},_afterCacheLimitChange:function(T){if(isFinite(T.newVal)){var U=this._entries.length-T.newVal;if(U>0){this._entries.splice(0,U);}}},refreshConsole:function(){var X=this._entries,b=this.get(O),Y=b.get("contentBox").one(R),U=b.get("consoleLimit"),a=this.get(F),T=this.get(D),V=[],W,Z;if(Y){b._cancelPrintLoop();for(W=X.length-1;W>=0&&U>=0;--W){Z=X[W];if(a[Z.category]&&T[Z.source]){V.unshift(Z);--U;}}Y.setContent(S);b.buffer=V;b.printBuffer();}},_uiSetCheckbox:function(U,X,W){if(U&&X){var T=U===F?this._categories:this._sources,Z=A+P(G,K,X),Y=T.one(Z),V;if(!Y){V=this.get(O);this._createCheckbox(T,X);Y=T.one(Z);V._uiSetHeight(V.get("height"));}Y.set(Q,W);}},_onCategoryCheckboxClick:function(V){var U=V.target,T;if(U.hasClass(J.CHROME_CLASSES.filter)){T=U.get("value");if(T&&T in this.get(F)){this.set(E+T,U.get(Q),{fromUI:true});}}},_onSourceCheckboxClick:function(U){var T=U.target,V;if(T.hasClass(J.CHROME_CLASSES.filter)){V=T.get("value");if(V&&V in this.get(D)){this.set(L+V,T.get(Q),{fromUI:true});}}},hideCategory:function(U,T){if(I(T)){C.Array.each(arguments,this.hideCategory,this);}else{this.set(E+U,false);}},showCategory:function(U,T){if(I(T)){C.Array.each(arguments,this.showCategory,this);}else{this.set(E+U,true);}},hideSource:function(U,T){if(I(T)){C.Array.each(arguments,this.hideSource,this);}else{this.set(L+U,false);}},showSource:function(U,T){if(I(T)){C.Array.each(arguments,this.showSource,this);}else{this.set(L+U,true);}},_createCheckbox:function(T,U){var W=C.merge(J.CHROME_CLASSES,{filter_name:U,filter_class:P(G,K,U)}),V=C.Node.create(C.substitute(J.FILTER_TEMPLATE,W));T.appendChild(V);},_validateCategory:function(T,U){return C.Lang.isObject(U,true)&&T.split(/\./).length<3;},_validateSource:function(U,T){return C.Lang.isObject(T,true)&&U.split(/\./).length<3;},_setCacheLimit:function(T){if(C.Lang.isNumber(T)){this._cacheLimit=T;return T;}else{return C.Attribute.INVALID_VALUE;}}},{NAME:"consoleFilters",NS:K,CATEGORIES_TEMPLATE:'
                                  ',SOURCES_TEMPLATE:'
                                  ',FILTER_TEMPLATE:' ",CHROME_CLASSES:{categories:P(G,B,"categories"),sources:P(G,B,"sources"),category:P(G,K,F),source:P(G,K,D),filter:P(G,K),filter_label:P(G,K,"label")},ATTRS:{defaultVisibility:{value:true,validator:C.Lang.isBoolean},category:{value:{},validator:function(U,T){return this._validateCategory(T,U);}},source:{value:{},validator:function(U,T){return this._validateSource(T,U);}},cacheLimit:{value:Number.POSITIVE_INFINITY,setter:function(T){return this._setCacheLimit(T);}}}});},"3.4.0",{requires:["console","plugin"]}); \ No newline at end of file diff --git a/build/console/console-filters.js b/build/console/console-filters.js deleted file mode 100644 index 7ae86f0065d..00000000000 --- a/build/console/console-filters.js +++ /dev/null @@ -1,730 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('console-filters', function(Y) { - -/** - *

                                  Provides Plugin.ConsoleFilters plugin class.

                                  - * - *

                                  This plugin adds the ability to control which Console entries display by filtering on category and source. Two groups of checkboxes are added to the Console footer, one for categories and the other for sources. Only those messages that match a checked category or source are displayed.

                                  - * - * @module console-filters - * @namespace Plugin - * @class ConsoleFilters - */ - -// Some common strings and functions -var getCN = Y.ClassNameManager.getClassName, - CONSOLE = 'console', - FILTERS = 'filters', - FILTER = 'filter', - CATEGORY = 'category', - SOURCE = 'source', - CATEGORY_DOT = 'category.', - SOURCE_DOT = 'source.', - - HOST = 'host', - CHECKED = 'checked', - DEF_VISIBILITY = 'defaultVisibility', - - DOT = '.', - EMPTY = '', - - C_BODY = DOT + Y.Console.CHROME_CLASSES.console_bd_class, - C_FOOT = DOT + Y.Console.CHROME_CLASSES.console_ft_class, - - SEL_CHECK = 'input[type=checkbox].', - - isString = Y.Lang.isString; - -function ConsoleFilters() { - ConsoleFilters.superclass.constructor.apply(this,arguments); -} - -Y.namespace('Plugin').ConsoleFilters = Y.extend(ConsoleFilters, Y.Plugin.Base, - -// Y.Plugin.ConsoleFilters prototype -{ - /** - * Collection of all log messages passed through since the plugin's - * instantiation. This holds all messages regardless of filter status. - * Used as a single source of truth for repopulating the Console body when - * filters are changed. - * - * @property _entries - * @type Array - * @protected - */ - _entries : null, - - /** - * Maximum number of entries to store in the message cache. - * - * @property _cacheLimit - * @type {Number} - * @default Infinity - * @protected - */ - _cacheLimit : Number.POSITIVE_INFINITY, - - /** - * The container node created to house the category filters. - * - * @property _categories - * @type Node - * @protected - */ - _categories : null, - - /** - * The container node created to house the source filters. - * - * @property _sources - * @type Node - * @protected - */ - _sources : null, - - /** - * Initialize entries collection and attach listeners to host events and - * methods. - * - * @method initializer - * @protected - */ - initializer : function () { - this._entries = []; - - this.get(HOST).on("entry", this._onEntry, this); - - this.doAfter("renderUI", this.renderUI); - this.doAfter("syncUI", this.syncUI); - this.doAfter("bindUI", this.bindUI); - - this.doAfter("clearConsole", this._afterClearConsole); - - if (this.get(HOST).get('rendered')) { - this.renderUI(); - this.syncUI(); - this.bindUI(); - } - - this.after("cacheLimitChange", this._afterCacheLimitChange); - }, - - /** - * Removes the plugin UI and unwires events. - * - * @method destructor - * @protected - */ - destructor : function () { - //TODO: grab last {consoleLimit} entries and update the console with - //them (no filtering) - this._entries = []; - - if (this._categories) { - this._categories.remove(); - } - if (this._sources) { - this._sources.remove(); - } - }, - - /** - * Adds the category and source filter sections to the Console footer. - * - * @method renderUI - * @protected - */ - renderUI : function () { - var foot = this.get(HOST).get('contentBox').one(C_FOOT), - html; - - if (foot) { - html = Y.substitute( - ConsoleFilters.CATEGORIES_TEMPLATE, - ConsoleFilters.CHROME_CLASSES); - - this._categories = foot.appendChild(Y.Node.create(html)); - - html = Y.substitute( - ConsoleFilters.SOURCES_TEMPLATE, - ConsoleFilters.CHROME_CLASSES); - - this._sources = foot.appendChild(Y.Node.create(html)); - } - }, - - /** - * Binds to checkbox click events and internal attribute change events to - * maintain the UI state. - * - * @method bindUI - * @protected - */ - bindUI : function () { - this._categories.on('click', Y.bind(this._onCategoryCheckboxClick, this)); - - this._sources.on('click', Y.bind(this._onSourceCheckboxClick, this)); - - this.after('categoryChange',this._afterCategoryChange); - this.after('sourceChange', this._afterSourceChange); - }, - - /** - * Updates the UI to be in accordance with the current state of the plugin. - * - * @method syncUI - */ - syncUI : function () { - Y.each(this.get(CATEGORY), function (v, k) { - this._uiSetCheckbox(CATEGORY, k, v); - }, this); - - Y.each(this.get(SOURCE), function (v, k) { - this._uiSetCheckbox(SOURCE, k, v); - }, this); - - this.refreshConsole(); - }, - - /** - * Ensures a filter is set up for any new categories or sources and - * collects the messages in _entries. If the message is stamped with a - * category or source that is currently being filtered out, the message - * will not pass to the Console's print buffer. - * - * @method _onEntry - * @param e {Event} the custom event object - * @protected - */ - _onEntry : function (e) { - this._entries.push(e.message); - - var cat = CATEGORY_DOT + e.message.category, - src = SOURCE_DOT + e.message.source, - cat_filter = this.get(cat), - src_filter = this.get(src), - overLimit = this._entries.length - this._cacheLimit, - visible; - - if (overLimit > 0) { - this._entries.splice(0, overLimit); - } - - if (cat_filter === undefined) { - visible = this.get(DEF_VISIBILITY); - this.set(cat, visible); - cat_filter = visible; - } - - if (src_filter === undefined) { - visible = this.get(DEF_VISIBILITY); - this.set(src, visible); - src_filter = visible; - } - - if (!cat_filter || !src_filter) { - e.preventDefault(); - } - }, - - /** - * Flushes the cached entries after a call to the Console's clearConsole(). - * - * @method _afterClearConsole - * @protected - */ - _afterClearConsole : function () { - this._entries = []; - }, - - /** - * Triggers the Console to update if a known category filter - * changes value (e.g. visible => hidden). Updates the appropriate - * checkbox's checked state if necessary. - * - * @method _afterCategoryChange - * @param e {Event} the attribute change event object - * @protected - */ - _afterCategoryChange : function (e) { - var cat = e.subAttrName.replace(/category\./, EMPTY), - before = e.prevVal, - after = e.newVal; - - // Don't update the console for new categories - if (!cat || before[cat] !== undefined) { - this.refreshConsole(); - - this._filterBuffer(); - } - - if (cat && !e.fromUI) { - this._uiSetCheckbox(CATEGORY, cat, after[cat]); - } - }, - - /** - * Triggers the Console to update if a known source filter - * changes value (e.g. visible => hidden). Updates the appropriate - * checkbox's checked state if necessary. - * - * @method _afterSourceChange - * @param e {Event} the attribute change event object - * @protected - */ - _afterSourceChange : function (e) { - var src = e.subAttrName.replace(/source\./, EMPTY), - before = e.prevVal, - after = e.newVal; - - // Don't update the console for new sources - if (!src || before[src] !== undefined) { - this.refreshConsole(); - - this._filterBuffer(); - } - - if (src && !e.fromUI) { - this._uiSetCheckbox(SOURCE, src, after[src]); - } - }, - - /** - * Flushes the Console's print buffer of any entries that have a category - * or source that is currently being excluded. - * - * @method _filterBuffer - * @protected - */ - _filterBuffer : function () { - var cats = this.get(CATEGORY), - srcs = this.get(SOURCE), - buffer = this.get(HOST).buffer, - start = null, - i; - - for (i = buffer.length - 1; i >= 0; --i) { - if (!cats[buffer[i].category] || !srcs[buffer[i].source]) { - start = start || i; - } else if (start) { - buffer.splice(i,(start - i)); - start = null; - } - } - if (start) { - buffer.splice(0,start + 1); - } - }, - - /** - * Trims the cache of entries to the appropriate new length. - * - * @method _afterCacheLimitChange - * @param e {Event} the attribute change event object - * @protected - */ - _afterCacheLimitChange : function (e) { - if (isFinite(e.newVal)) { - var delta = this._entries.length - e.newVal; - - if (delta > 0) { - this._entries.splice(0,delta); - } - } - }, - - /** - * Repopulates the Console with entries appropriate to the current filter - * settings. - * - * @method refreshConsole - */ - refreshConsole : function () { - var entries = this._entries, - host = this.get(HOST), - body = host.get('contentBox').one(C_BODY), - remaining = host.get('consoleLimit'), - cats = this.get(CATEGORY), - srcs = this.get(SOURCE), - buffer = [], - i,e; - - if (body) { - host._cancelPrintLoop(); - - // Evaluate all entries from latest to oldest - for (i = entries.length - 1; i >= 0 && remaining >= 0; --i) { - e = entries[i]; - if (cats[e.category] && srcs[e.source]) { - buffer.unshift(e); - --remaining; - } - } - - body.setContent(EMPTY); - host.buffer = buffer; - host.printBuffer(); - } - }, - - /** - * Updates the checked property of a filter checkbox of the specified type. - * If no checkbox is found for the input params, one is created. - * - * @method _uiSetCheckbox - * @param type {String} 'category' or 'source' - * @param item {String} the name of the filter (e.g. 'info', 'event') - * @param checked {Boolean} value to set the checkbox's checked property - * @protected - */ - _uiSetCheckbox : function (type, item, checked) { - if (type && item) { - var container = type === CATEGORY ? - this._categories : - this._sources, - sel = SEL_CHECK + getCN(CONSOLE,FILTER,item), - checkbox = container.one(sel), - host; - - if (!checkbox) { - host = this.get(HOST); - - this._createCheckbox(container, item); - - checkbox = container.one(sel); - - host._uiSetHeight(host.get('height')); - } - - checkbox.set(CHECKED, checked); - } - }, - - /** - * Passes checkbox clicks on to the category attribute. - * - * @method _onCategoryCheckboxClick - * @param e {Event} the DOM event - * @protected - */ - _onCategoryCheckboxClick : function (e) { - var t = e.target, cat; - - if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) { - cat = t.get('value'); - if (cat && cat in this.get(CATEGORY)) { - this.set(CATEGORY_DOT + cat, t.get(CHECKED), { fromUI: true }); - } - } - }, - - /** - * Passes checkbox clicks on to the source attribute. - * - * @method _onSourceCheckboxClick - * @param e {Event} the DOM event - * @protected - */ - _onSourceCheckboxClick : function (e) { - var t = e.target, src; - - if (t.hasClass(ConsoleFilters.CHROME_CLASSES.filter)) { - src = t.get('value'); - if (src && src in this.get(SOURCE)) { - this.set(SOURCE_DOT + src, t.get(CHECKED), { fromUI: true }); - } - } - }, - - /** - * Hides any number of categories from the UI. Convenience method for - * myConsole.filter.set('category.foo', false); set('category.bar', false); - * and so on. - * - * @method hideCategory - * @param cat* {String} 1..n categories to filter out of the UI - */ - hideCategory : function (cat, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.hideCategory, this); - } else { - this.set(CATEGORY_DOT + cat, false); - } - }, - - /** - * Shows any number of categories in the UI. Convenience method for - * myConsole.filter.set('category.foo', true); set('category.bar', true); - * and so on. - * - * @method showCategory - * @param cat* {String} 1..n categories to allow to display in the UI - */ - showCategory : function (cat, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.showCategory, this); - } else { - this.set(CATEGORY_DOT + cat, true); - } - }, - - /** - * Hides any number of sources from the UI. Convenience method for - * myConsole.filter.set('source.foo', false); set('source.bar', false); - * and so on. - * - * @method hideSource - * @param src* {String} 1..n sources to filter out of the UI - */ - hideSource : function (src, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.hideSource, this); - } else { - this.set(SOURCE_DOT + src, false); - } - }, - - /** - * Shows any number of sources in the UI. Convenience method for - * myConsole.filter.set('source.foo', true); set('source.bar', true); - * and so on. - * - * @method showSource - * @param src* {String} 1..n sources to allow to display in the UI - */ - showSource : function (src, multiple) { - if (isString(multiple)) { - Y.Array.each(arguments, this.showSource, this); - } else { - this.set(SOURCE_DOT + src, true); - } - }, - - /** - * Creates a checkbox and label from the ConsoleFilters.FILTER_TEMPLATE for - * the provided type and name. The checkbox and label are appended to the - * container node passes as the first arg. - * - * @method _createCheckbox - * @param container {Node} the parentNode of the new checkbox and label - * @param name {String} the identifier of the filter - * @protected - */ - _createCheckbox : function (container, name) { - var info = Y.merge(ConsoleFilters.CHROME_CLASSES, { - filter_name : name, - filter_class : getCN(CONSOLE, FILTER, name) - }), - node = Y.Node.create( - Y.substitute(ConsoleFilters.FILTER_TEMPLATE, info)); - - container.appendChild(node); - }, - - /** - * Validates category updates are objects and the subattribute is not too - * deep. - * - * @method _validateCategory - * @param cat {String} the new category:visibility map - * @param v {String} the subattribute path updated - * @return Boolean - * @protected - */ - _validateCategory : function (cat, v) { - return Y.Lang.isObject(v,true) && cat.split(/\./).length < 3; - }, - - /** - * Validates source updates are objects and the subattribute is not too - * deep. - * - * @method _validateSource - * @param cat {String} the new source:visibility map - * @param v {String} the subattribute path updated - * @return Boolean - * @protected - */ - _validateSource : function (src, v) { - return Y.Lang.isObject(v,true) && src.split(/\./).length < 3; - }, - - /** - * Setter method for cacheLimit attribute. Basically a validator to ensure - * numeric input. - * - * @method _setCacheLimit - * @param v {Number} Maximum number of entries - * @return {Number} - * @protected - */ - _setCacheLimit: function (v) { - if (Y.Lang.isNumber(v)) { - this._cacheLimit = v; - return v; - } else { - return Y.Attribute.INVALID_VALUE; - } - } -}, - -// Y.Plugin.ConsoleFilters static properties -{ - /** - * Plugin name. - * - * @property ConsoleFilters.NAME - * @type String - * @static - * @default 'consoleFilters' - */ - NAME : 'consoleFilters', - - /** - * The namespace hung off the host object that this plugin will inhabit. - * - * @property ConsoleFilters.NS - * @type String - * @static - * @default 'filter' - */ - NS : FILTER, - - /** - * Markup template used to create the container for the category filters. - * - * @property ConsoleFilters.CATEGORIES_TEMPLATE - * @type String - * @static - */ - CATEGORIES_TEMPLATE : - '
                                  ', - - /** - * Markup template used to create the container for the source filters. - * - * @property ConsoleFilters.SOURCES_TEMPLATE - * @type String - * @static - */ - SOURCES_TEMPLATE : - '
                                  ', - - /** - * Markup template used to create the category and source filter checkboxes. - * - * @property ConsoleFilters.FILTER_TEMPLATE - * @type String - * @static - */ - FILTER_TEMPLATE : - // IE8 and FF3 don't permit breaking _between_ nowrap elements. IE8 - // doesn't understand (non spec) wbr tag, nor does it create text nodes - // for spaces in innerHTML strings. The thin-space entity suffices to - // create a breakable point. - ' ', - - /** - * Classnames used by the templates when creating nodes. - * - * @property ConsoleFilters.CHROME_CLASSES - * @type Object - * @static - * @protected - */ - CHROME_CLASSES : { - categories : getCN(CONSOLE,FILTERS,'categories'), - sources : getCN(CONSOLE,FILTERS,'sources'), - category : getCN(CONSOLE,FILTER,CATEGORY), - source : getCN(CONSOLE,FILTER,SOURCE), - filter : getCN(CONSOLE,FILTER), - filter_label : getCN(CONSOLE,FILTER,'label') - }, - - ATTRS : { - /** - * Default visibility applied to new categories and sources. - * - * @attribute defaultVisibility - * @type {Boolean} - * @default true - */ - defaultVisibility : { - value : true, - validator : Y.Lang.isBoolean - }, - - /** - *

                                  Map of entry categories to their visibility status. Update a - * particular category's visibility by setting the subattribute to true - * (visible) or false (hidden).

                                  - * - *

                                  For example, yconsole.filter.set('category.info', false) to hide - * log entries with the category/logLevel of 'info'.

                                  - * - *

                                  Similarly, yconsole.filter.get('category.warn') will return a - * boolean indicating whether that category is currently being included - * in the UI.

                                  - * - *

                                  Unlike the YUI instance configuration's logInclude and logExclude - * properties, filtered entries are only hidden from the UI, but - * can be made visible again.

                                  - * - * @attribute category - * @type Object - */ - category : { - value : {}, - validator : function (v,k) { - return this._validateCategory(k,v); - } - }, - - /** - *

                                  Map of entry sources to their visibility status. Update a - * particular sources's visibility by setting the subattribute to true - * (visible) or false (hidden).

                                  - * - *

                                  For example, yconsole.filter.set('sources.slider', false) to hide - * log entries originating from Y.Slider.

                                  - * - * @attribute source - * @type Object - */ - source : { - value : {}, - validator : function (v,k) { - return this._validateSource(k,v); - } - }, - - /** - * Maximum number of entries to store in the message cache. Use this to - * limit the memory footprint in environments with heavy log usage. - * By default, there is no limit (Number.POSITIVE_INFINITY). - * - * @attribute cacheLimit - * @type {Number} - * @default Number.POSITIVE_INFINITY - */ - cacheLimit : { - value : Number.POSITIVE_INFINITY, - setter : function (v) { - return this._setCacheLimit(v); - } - } - } -}); - - -}, '3.4.0' ,{requires:['console','plugin']}); diff --git a/build/dataschema/dataschema-array-debug.js b/build/dataschema/dataschema-array-debug.js deleted file mode 100644 index 624bcd74c50..00000000000 --- a/build/dataschema/dataschema-array-debug.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-array', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with data stored in arrays. - * - * @module dataschema - * @submodule dataschema-array - */ - -/** - * Array subclass for the DataSchema Utility. - * @class DataSchema.Array - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaArray = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Array static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given Array data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Array data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isArray(data_in)) { - if(schema && LANG.isArray(schema.resultFields)) { - // Parse results data - data_out = SchemaArray._parseResults.call(this, schema.resultFields, data_in, data_out); - } - else { - data_out.results = data_in; - Y.log("Schema resultFields property not found: " + Y.dump(schema), "warn", "dataschema-array"); - } - } - else { - Y.log("Array data could not be schema-parsed: " + Y.dump(data) + " " + Y.dump(data), "error", "dataschema-array"); - data_out.error = new Error("Array schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param fields {Array} Schema to parse against. - * @param array_in {Array} Array to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(fields, array_in, data_out) { - var results = [], - result, item, type, field, key, value, i, j; - - for(i=array_in.length-1; i>-1; i--) { - result = {}; - item = array_in[i]; - type = (LANG.isObject(item) && !LANG.isFunction(item)) ? 2 : (LANG.isArray(item)) ? 1 : (LANG.isString(item)) ? 0 : -1; - if(type > 0) { - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(item[key])) ? item[key] : item[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - else if(type === 0) { - result = item; - } - else { - //TODO: null or {}? - result = null; - Y.log("Unexpected type while parsing array: " + Y.dump(item), "warn", "dataschema-array"); - } - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); diff --git a/build/dataschema/dataschema-array-min.js b/build/dataschema/dataschema-array-min.js deleted file mode 100644 index ae15e776625..00000000000 --- a/build/dataschema/dataschema-array-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("dataschema-array",function(c){var a=c.Lang,b={apply:function(f,g){var d=g,e={results:[],meta:{}};if(a.isArray(d)){if(f&&a.isArray(f.resultFields)){e=b._parseResults.call(this,f.resultFields,d,e);}else{e.results=d;}}else{e.error=new Error("Array schema parse failure");}return e;},_parseResults:function(h,m,d){var g=[],q,p,k,l,o,n,f,e;for(f=m.length-1;f>-1;f--){q={};p=m[f];k=(a.isObject(p)&&!a.isFunction(p))?2:(a.isArray(p))?1:(a.isString(p))?0:-1;if(k>0){for(e=h.length-1;e>-1;e--){l=h[e];o=(!a.isUndefined(l.key))?l.key:l;n=(!a.isUndefined(p[o]))?p[o]:p[e];q[o]=c.DataSchema.Base.parse.call(this,n,l);}}else{if(k===0){q=p;}else{q=null;}}g[f]=q;}d.results=g;return d;}};c.DataSchema.Array=c.mix(b,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base"]}); \ No newline at end of file diff --git a/build/dataschema/dataschema-array.js b/build/dataschema/dataschema-array.js deleted file mode 100644 index 9113be2e198..00000000000 --- a/build/dataschema/dataschema-array.js +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-array', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with data stored in arrays. - * - * @module dataschema - * @submodule dataschema-array - */ - -/** - * Array subclass for the DataSchema Utility. - * @class DataSchema.Array - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaArray = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Array static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given Array data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Array data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isArray(data_in)) { - if(schema && LANG.isArray(schema.resultFields)) { - // Parse results data - data_out = SchemaArray._parseResults.call(this, schema.resultFields, data_in, data_out); - } - else { - data_out.results = data_in; - } - } - else { - data_out.error = new Error("Array schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param fields {Array} Schema to parse against. - * @param array_in {Array} Array to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(fields, array_in, data_out) { - var results = [], - result, item, type, field, key, value, i, j; - - for(i=array_in.length-1; i>-1; i--) { - result = {}; - item = array_in[i]; - type = (LANG.isObject(item) && !LANG.isFunction(item)) ? 2 : (LANG.isArray(item)) ? 1 : (LANG.isString(item)) ? 0 : -1; - if(type > 0) { - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(item[key])) ? item[key] : item[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - else if(type === 0) { - result = item; - } - else { - //TODO: null or {}? - result = null; - } - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); diff --git a/build/dataschema/dataschema-base-debug.js b/build/dataschema/dataschema-base-debug.js deleted file mode 100644 index 81932894793..00000000000 --- a/build/dataschema/dataschema-base-debug.js +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-base', function(Y) { - -/** - * The DataSchema utility provides a common configurable interface for widgets to - * apply a given schema to a variety of data. - * - * @module dataschema - */ - -/** - * Provides the base DataSchema implementation, which can be extended to - * create DataSchemas for specific data formats, such XML, JSON, text and - * arrays. - * - * @module dataschema - * @submodule dataschema-base - */ - -var LANG = Y.Lang, -/** - * Base class for the YUI DataSchema Utility. - * @class DataSchema.Base - * @static - */ - SchemaBase = { - /** - * Overridable method returns data as-is. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - return data; - }, - - /** - * Applies field parser, if defined - * - * @method parse - * @param value {Object} Original value. - * @param field {Object} Field. - * @return {Object} Type-converted value. - */ - parse: function(value, field) { - if(field.parser) { - var parser = (LANG.isFunction(field.parser)) ? - field.parser : Y.Parsers[field.parser+'']; - if(parser) { - value = parser.call(this, value); - } - else { - Y.log("Could not find parser for field " + Y.dump(field), "warn", "dataschema-json"); - } - } - return value; - } -}; - -Y.namespace("DataSchema").Base = SchemaBase; -Y.namespace("Parsers"); - - -}, '3.4.0' ,{requires:['base']}); diff --git a/build/dataschema/dataschema-base-min.js b/build/dataschema/dataschema-base-min.js deleted file mode 100644 index d4ac854f9c3..00000000000 --- a/build/dataschema/dataschema-base-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("dataschema-base",function(b){var a=b.Lang,c={apply:function(d,e){return e;},parse:function(d,e){if(e.parser){var f=(a.isFunction(e.parser))?e.parser:b.Parsers[e.parser+""];if(f){d=f.call(this,d);}else{}}return d;}};b.namespace("DataSchema").Base=c;b.namespace("Parsers");},"3.4.0",{requires:["base"]}); \ No newline at end of file diff --git a/build/dataschema/dataschema-base.js b/build/dataschema/dataschema-base.js deleted file mode 100644 index d261ab9569a..00000000000 --- a/build/dataschema/dataschema-base.js +++ /dev/null @@ -1,72 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-base', function(Y) { - -/** - * The DataSchema utility provides a common configurable interface for widgets to - * apply a given schema to a variety of data. - * - * @module dataschema - */ - -/** - * Provides the base DataSchema implementation, which can be extended to - * create DataSchemas for specific data formats, such XML, JSON, text and - * arrays. - * - * @module dataschema - * @submodule dataschema-base - */ - -var LANG = Y.Lang, -/** - * Base class for the YUI DataSchema Utility. - * @class DataSchema.Base - * @static - */ - SchemaBase = { - /** - * Overridable method returns data as-is. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - return data; - }, - - /** - * Applies field parser, if defined - * - * @method parse - * @param value {Object} Original value. - * @param field {Object} Field. - * @return {Object} Type-converted value. - */ - parse: function(value, field) { - if(field.parser) { - var parser = (LANG.isFunction(field.parser)) ? - field.parser : Y.Parsers[field.parser+'']; - if(parser) { - value = parser.call(this, value); - } - else { - } - } - return value; - } -}; - -Y.namespace("DataSchema").Base = SchemaBase; -Y.namespace("Parsers"); - - -}, '3.4.0' ,{requires:['base']}); diff --git a/build/dataschema/dataschema-debug.js b/build/dataschema/dataschema-debug.js deleted file mode 100644 index fdedd1ce562..00000000000 --- a/build/dataschema/dataschema-debug.js +++ /dev/null @@ -1,878 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-base', function(Y) { - -/** - * The DataSchema utility provides a common configurable interface for widgets to - * apply a given schema to a variety of data. - * - * @module dataschema - */ - -/** - * Provides the base DataSchema implementation, which can be extended to - * create DataSchemas for specific data formats, such XML, JSON, text and - * arrays. - * - * @module dataschema - * @submodule dataschema-base - */ - -var LANG = Y.Lang, -/** - * Base class for the YUI DataSchema Utility. - * @class DataSchema.Base - * @static - */ - SchemaBase = { - /** - * Overridable method returns data as-is. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - return data; - }, - - /** - * Applies field parser, if defined - * - * @method parse - * @param value {Object} Original value. - * @param field {Object} Field. - * @return {Object} Type-converted value. - */ - parse: function(value, field) { - if(field.parser) { - var parser = (LANG.isFunction(field.parser)) ? - field.parser : Y.Parsers[field.parser+'']; - if(parser) { - value = parser.call(this, value); - } - else { - Y.log("Could not find parser for field " + Y.dump(field), "warn", "dataschema-json"); - } - } - return value; - } -}; - -Y.namespace("DataSchema").Base = SchemaBase; -Y.namespace("Parsers"); - - -}, '3.4.0' ,{requires:['base']}); -YUI.add('dataschema-json', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with JSON data. - * - * @module dataschema - * @submodule dataschema-json - */ - -/** - * JSON subclass for the DataSchema Utility. - * @class DataSchema.JSON - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaJSON = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.JSON static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Utility function converts JSON locator strings into walkable paths - * - * @method DataSchema.JSON.getPath - * @param locator {String} JSON value locator. - * @return {String[]} Walkable path to data value. - * @static - */ - getPath: function(locator) { - var path = null, - keys = [], - i = 0; - - if (locator) { - // Strip the ["string keys"] and [1] array indexes - locator = locator. - replace(/\[(['"])(.*?)\1\]/g, - function (x,$1,$2) {keys[i]=$2;return '.@'+(i++);}). - replace(/\[(\d+)\]/g, - function (x,$1) {keys[i]=parseInt($1,10)|0;return '.@'+(i++);}). - replace(/^\./,''); // remove leading dot - - // Validate against problematic characters. - if (!/[^\w\.\$@]/.test(locator)) { - path = locator.split('.'); - for (i=path.length-1; i >= 0; --i) { - if (path[i].charAt(0) === '@') { - path[i] = keys[parseInt(path[i].substr(1),10)]; - } - } - } - else { - Y.log("Invalid locator: " + locator, "error", "dataschema-json"); - } - } - return path; - }, - - /** - * Utility function to walk a path and return the value located there. - * - * @method DataSchema.JSON.getLocationValue - * @param path {String[]} Locator path. - * @param data {String} Data to traverse. - * @return {Object} Data value at location. - * @static - */ - getLocationValue: function (path, data) { - var i = 0, - len = path.length; - for (;i=0; --i) { - record = {}; - result = array_in[i]; - if(result) { - // Cycle through simpleLocators - for (j=simplePaths.length-1; j>=0; --j) { - // Bug 1777850: The result might be an array instead of object - record[simplePaths[j].key] = Y.DataSchema.Base.parse.call(this, - (LANG.isUndefined(result[simplePaths[j].path]) ? - result[j] : result[simplePaths[j].path]), simplePaths[j]); - } - - // Cycle through complexLocators - for (j=complexPaths.length - 1; j>=0; --j) { - record[complexPaths[j].key] = Y.DataSchema.Base.parse.call(this, - (SchemaJSON.getLocationValue(complexPaths[j].path, result)), complexPaths[j] ); - } - - // Cycle through fieldParsers - for (j=fieldParsers.length-1; j>=0; --j) { - key = fieldParsers[j].key; - record[key] = fieldParsers[j].parser.call(this, record[key]); - // Safety net - if (LANG.isUndefined(record[key])) { - record[key] = null; - } - } - results[i] = record; - } - } - data_out.results = results; - return data_out; - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param metaFields {Object} Metafields definitions. - * @param json_in {Object} JSON to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Schema-parsed meta data. - * @static - * @protected - */ - _parseMeta: function(metaFields, json_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, path; - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - path = SchemaJSON.getPath(metaFields[key]); - if (path && json_in) { - data_out.meta[key] = SchemaJSON.getLocationValue(path, json_in); - } - } - } - } - else { - data_out.error = new Error("JSON meta data retrieval failure"); - } - return data_out; - } - }; - -Y.DataSchema.JSON = Y.mix(SchemaJSON, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base','json']}); -YUI.add('dataschema-xml', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with XML data. - * - * @module dataschema - * @submodule dataschema-xml - */ -var LANG = Y.Lang, - - /** - * XML subclass for the DataSchema Utility. - * @class DataSchema.XML - * @extends DataSchema.Base - * @static - */ - SchemaXML = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.XML static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given XML data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {XMLDoc} XML document. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var xmldoc = data, // unnecessary variables - data_out = {results:[],meta:{}}; - - if(xmldoc && xmldoc.nodeType && (9 === xmldoc.nodeType || 1 === xmldoc.nodeType || 11 === xmldoc.nodeType) && schema) { - // Parse results data - data_out = SchemaXML._parseResults.call(this, schema, xmldoc, data_out); - - // Parse meta data - data_out = SchemaXML._parseMeta.call(this, schema.metaFields, xmldoc, data_out); - } - else { - Y.log("XML data could not be schema-parsed: " + Y.dump(data) + " " + Y.dump(data), "error", "dataschema-xml"); - data_out.error = new Error("XML schema parse failure"); - } - - return data_out; - }, - - /** - * Get an XPath-specified value for a given field from an XML node or document. - * - * @method _getLocationValue - * @param field {String | Object} Field definition. - * @param context {Object} XML node or document to search within. - * @return {Object} Data value or null. - * @static - * @protected - */ - _getLocationValue: function(field, context) { - var locator = field.locator || field.key || field, - xmldoc = context.ownerDocument || context, - result, res, value = null; - - try { - result = SchemaXML._getXPathResult(locator, context, xmldoc); - while(res = result.iterateNext()) { - value = res.textContent || res.value || res.text || res.innerHTML || null; - } - - return Y.DataSchema.Base.parse.call(this, value, field); - } - catch(e) { - Y.log('SchemaXML._getLocationValue failed: ' + e.message); - } - - return null; - }, - - /** - * Fetches the XPath-specified result for a given location in an XML node or document. - * - * @param locator {String} The XPath location. - * @param context {Object} XML node or document to search within. - * @param xmldoc {Object} XML document to resolve namespace. - * @return {Object} Data collection or null. - * @static - * @protected - */ - _getXPathResult: function(locator, context, xmldoc) { - // Standards mode - if (! LANG.isUndefined(xmldoc.evaluate)) { - return xmldoc.evaluate(locator, context, xmldoc.createNSResolver(context.ownerDocument ? context.ownerDocument.documentElement : context.documentElement), 0, null); - } - // IE mode - else { - var values=[], locatorArray = locator.split(/\b\/\b/), i=0, l=locatorArray.length, location, subloc, m, isNth; - - // XPath is supported - try { - // this fixes the IE 5.5+ issue where childnode selectors begin at 0 instead of 1 - xmldoc.setProperty("SelectionLanguage", "XPath"); - values = context.selectNodes(locator); - } - // Fallback for DOM nodes and fragments - catch (e) { - // Iterate over each locator piece - for (; i -1) && (location.indexOf("]") > -1)) { - subloc = location.slice(location.indexOf("[")+1, location.indexOf("]")); - //XPath is 1-based while DOM is 0-based - subloc--; - context = context.children[subloc]; - isNth = true; - } - // grab attribute value @ - else if (location.indexOf("@") > -1) { - subloc = location.substr(location.indexOf("@")); - context = subloc ? context.getAttribute(subloc.replace('@', '')) : context; - } - // grab that last instance of tagName - else if (-1 < location.indexOf("//")) { - subloc = context.getElementsByTagName(location.substr(2)); - context = subloc.length ? subloc[subloc.length - 1] : null; - } - // find the last matching location in children - else if (l != i + 1) { - for (m=context.childNodes.length-1; 0 <= m; m-=1) { - if (location === context.childNodes[m].tagName) { - context = context.childNodes[m]; - m = -1; - } - } - } - } - - if (context) { - // attribute - if (LANG.isString(context)) { - values[0] = {value: context}; - } - // nth child - else if (isNth) { - values[0] = {value: context.innerHTML}; - } - // all children - else { - values = Y.Array(context.childNodes, 0, true); - } - } - } - - // returning a mock-standard object for IE - return { - index: 0, - - iterateNext: function() { - if (this.index >= this.values.length) {return undefined;} - var result = this.values[this.index]; - this.index += 1; - return result; - }, - - values: values - }; - } - }, - - /** - * Schema-parsed result field. - * - * @method _parseField - * @param field {String | Object} Required. Field definition. - * @param result {Object} Required. Schema parsed data object. - * @param context {Object} Required. XML node or document to search within. - * @static - * @protected - */ - _parseField: function(field, result, context) { - if (field.schema) { - result[field.key] = SchemaXML._parseResults.call(this, field.schema, context, {results:[],meta:{}}).results; - } - else { - result[field.key || field] = SchemaXML._getLocationValue.call(this, field, context); - } - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param xmldoc_in {Object} XML document parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseMeta: function(metaFields, xmldoc_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, - xmldoc = xmldoc_in.ownerDocument || xmldoc_in; - - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - data_out.meta[key] = SchemaXML._getLocationValue.call(this, metaFields[key], xmldoc); - } - } - } - return data_out; - }, - - /** - * Schema-parsed result to add to results list. - * - * @method _parseResult - * @param fields {Array} Required. A collection of field definition. - * @param context {Object} Required. XML node or document to search within. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResult: function(fields, context) { - var result = {}, j; - - // Find each field value - for (j=fields.length-1; 0 <= j; j--) { - SchemaXML._parseField.call(this, fields[j], result, context); - } - - return result; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Object} Schema to parse against. - * @param context {Object} XML node or document to parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResults: function(schema, context, data_out) { - if (schema.resultListLocator && LANG.isArray(schema.resultFields)) { - var xmldoc = context.ownerDocument || context, - fields = schema.resultFields, - results = [], - node, result, nodeList, i=0; - - if (schema.resultListLocator.match(/^[:\-\w]+$/)) { - nodeList = context.getElementsByTagName(schema.resultListLocator); - - // loop through each result node - for (i=nodeList.length-1; 0 <= i; i--) { - results[i] = SchemaXML._parseResult.call(this, fields, nodeList[i]); - } - } - else { - nodeList = SchemaXML._getXPathResult(schema.resultListLocator, context, xmldoc); - - // loop through the nodelist - while (node = nodeList.iterateNext()) { - results[i] = SchemaXML._parseResult.call(this, fields, node); - i += 1; - } - } - - if (results.length) { - data_out.results = results; - } - else { - data_out.error = new Error("XML schema result nodes retrieval failure"); - } - } - return data_out; - } - }; - -Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); -YUI.add('dataschema-array', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with data stored in arrays. - * - * @module dataschema - * @submodule dataschema-array - */ - -/** - * Array subclass for the DataSchema Utility. - * @class DataSchema.Array - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaArray = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Array static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given Array data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Array data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isArray(data_in)) { - if(schema && LANG.isArray(schema.resultFields)) { - // Parse results data - data_out = SchemaArray._parseResults.call(this, schema.resultFields, data_in, data_out); - } - else { - data_out.results = data_in; - Y.log("Schema resultFields property not found: " + Y.dump(schema), "warn", "dataschema-array"); - } - } - else { - Y.log("Array data could not be schema-parsed: " + Y.dump(data) + " " + Y.dump(data), "error", "dataschema-array"); - data_out.error = new Error("Array schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param fields {Array} Schema to parse against. - * @param array_in {Array} Array to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(fields, array_in, data_out) { - var results = [], - result, item, type, field, key, value, i, j; - - for(i=array_in.length-1; i>-1; i--) { - result = {}; - item = array_in[i]; - type = (LANG.isObject(item) && !LANG.isFunction(item)) ? 2 : (LANG.isArray(item)) ? 1 : (LANG.isString(item)) ? 0 : -1; - if(type > 0) { - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(item[key])) ? item[key] : item[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - else if(type === 0) { - result = item; - } - else { - //TODO: null or {}? - result = null; - Y.log("Unexpected type while parsing array: " + Y.dump(item), "warn", "dataschema-array"); - } - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); -YUI.add('dataschema-text', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with delimited text data. - * - * @module dataschema - * @submodule dataschema-text - */ - -/** - * Text subclass for the DataSchema Utility. - * @class DataSchema.Text - * @extends DataSchema.Base - * @static - */ - -var LANG = Y.Lang, - - SchemaText = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Text static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given delimited text data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Text data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isString(data_in) && LANG.isString(schema.resultDelimiter)) { - // Parse results data - data_out = SchemaText._parseResults.call(this, schema, data_in, data_out); - } - else { - Y.log("Text data could not be schema-parsed: " + Y.dump(data) + " " + Y.dump(data), "error", "dataschema-text"); - data_out.error = new Error("Text schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Array} Schema to parse against. - * @param text_in {String} Text to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(schema, text_in, data_out) { - var resultDelim = schema.resultDelimiter, - results = [], - results_in, fields_in, result, item, fields, field, key, value, i, j, - - // Delete final delimiter at end of string if there - tmpLength = text_in.length-resultDelim.length; - if(text_in.substr(tmpLength) == resultDelim) { - text_in = text_in.substr(0, tmpLength); - } - - // Split into results - results_in = text_in.split(schema.resultDelimiter); - - for(i=results_in.length-1; i>-1; i--) { - result = {}; - item = results_in[i]; - - if(LANG.isString(schema.fieldDelimiter)) { - fields_in = item.split(schema.fieldDelimiter); - - if(LANG.isArray(schema.resultFields)) { - fields = schema.resultFields; - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(fields_in[key])) ? fields_in[key] : fields_in[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - - } - else { - result = item; - } - - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); - - -YUI.add('dataschema', function(Y){}, '3.4.0' ,{use:['dataschema-base','dataschema-json','dataschema-xml','dataschema-array','dataschema-text']}); - diff --git a/build/dataschema/dataschema-json-debug.js b/build/dataschema/dataschema-json-debug.js deleted file mode 100644 index 0513f92f67e..00000000000 --- a/build/dataschema/dataschema-json-debug.js +++ /dev/null @@ -1,309 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-json', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with JSON data. - * - * @module dataschema - * @submodule dataschema-json - */ - -/** - * JSON subclass for the DataSchema Utility. - * @class DataSchema.JSON - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaJSON = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.JSON static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Utility function converts JSON locator strings into walkable paths - * - * @method DataSchema.JSON.getPath - * @param locator {String} JSON value locator. - * @return {String[]} Walkable path to data value. - * @static - */ - getPath: function(locator) { - var path = null, - keys = [], - i = 0; - - if (locator) { - // Strip the ["string keys"] and [1] array indexes - locator = locator. - replace(/\[(['"])(.*?)\1\]/g, - function (x,$1,$2) {keys[i]=$2;return '.@'+(i++);}). - replace(/\[(\d+)\]/g, - function (x,$1) {keys[i]=parseInt($1,10)|0;return '.@'+(i++);}). - replace(/^\./,''); // remove leading dot - - // Validate against problematic characters. - if (!/[^\w\.\$@]/.test(locator)) { - path = locator.split('.'); - for (i=path.length-1; i >= 0; --i) { - if (path[i].charAt(0) === '@') { - path[i] = keys[parseInt(path[i].substr(1),10)]; - } - } - } - else { - Y.log("Invalid locator: " + locator, "error", "dataschema-json"); - } - } - return path; - }, - - /** - * Utility function to walk a path and return the value located there. - * - * @method DataSchema.JSON.getLocationValue - * @param path {String[]} Locator path. - * @param data {String} Data to traverse. - * @return {Object} Data value at location. - * @static - */ - getLocationValue: function (path, data) { - var i = 0, - len = path.length; - for (;i=0; --i) { - record = {}; - result = array_in[i]; - if(result) { - // Cycle through simpleLocators - for (j=simplePaths.length-1; j>=0; --j) { - // Bug 1777850: The result might be an array instead of object - record[simplePaths[j].key] = Y.DataSchema.Base.parse.call(this, - (LANG.isUndefined(result[simplePaths[j].path]) ? - result[j] : result[simplePaths[j].path]), simplePaths[j]); - } - - // Cycle through complexLocators - for (j=complexPaths.length - 1; j>=0; --j) { - record[complexPaths[j].key] = Y.DataSchema.Base.parse.call(this, - (SchemaJSON.getLocationValue(complexPaths[j].path, result)), complexPaths[j] ); - } - - // Cycle through fieldParsers - for (j=fieldParsers.length-1; j>=0; --j) { - key = fieldParsers[j].key; - record[key] = fieldParsers[j].parser.call(this, record[key]); - // Safety net - if (LANG.isUndefined(record[key])) { - record[key] = null; - } - } - results[i] = record; - } - } - data_out.results = results; - return data_out; - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param metaFields {Object} Metafields definitions. - * @param json_in {Object} JSON to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Schema-parsed meta data. - * @static - * @protected - */ - _parseMeta: function(metaFields, json_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, path; - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - path = SchemaJSON.getPath(metaFields[key]); - if (path && json_in) { - data_out.meta[key] = SchemaJSON.getLocationValue(path, json_in); - } - } - } - } - else { - data_out.error = new Error("JSON meta data retrieval failure"); - } - return data_out; - } - }; - -Y.DataSchema.JSON = Y.mix(SchemaJSON, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base','json']}); diff --git a/build/dataschema/dataschema-json-min.js b/build/dataschema/dataschema-json-min.js deleted file mode 100644 index e2a29f8b26f..00000000000 --- a/build/dataschema/dataschema-json-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("dataschema-json",function(c){var a=c.Lang,b={getPath:function(d){var g=null,f=[],e=0;if(d){d=d.replace(/\[(['"])(.*?)\1\]/g,function(i,h,j){f[e]=j;return".@"+(e++);}).replace(/\[(\d+)\]/g,function(i,h){f[e]=parseInt(h,10)|0;return".@"+(e++);}).replace(/^\./,"");if(!/[^\w\.\$@]/.test(d)){g=d.split(".");for(e=g.length-1;e>=0;--e){if(g[e].charAt(0)==="@"){g[e]=f[parseInt(g[e].substr(1),10)];}}}else{}}return g;},getLocationValue:function(g,f){var e=0,d=g.length;for(;e=0;--h){k={};u=s[h];if(u){for(f=l.length-1;f>=0;--f){k[l[f].key]=c.DataSchema.Base.parse.call(this,(a.isUndefined(u[l[f].path])?u[f]:u[l[f].path]),l[f]);}for(f=q.length-1;f>=0;--f){k[q[f].key]=c.DataSchema.Base.parse.call(this,(b.getLocationValue(q[f].path,u)),q[f]);}for(f=o.length-1;f>=0;--f){t=o[f].key;k[t]=o[f].parser.call(this,k[t]);if(a.isUndefined(k[t])){k[t]=null;}}g[h]=k;}}e.results=g;return e;},_parseMeta:function(g,d,f){if(a.isObject(g)){var e,h;for(e in g){if(g.hasOwnProperty(e)){h=b.getPath(g[e]);if(h&&d){f.meta[e]=b.getLocationValue(h,d);}}}}else{f.error=new Error("JSON meta data retrieval failure");}return f;}};c.DataSchema.JSON=c.mix(b,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base","json"]}); \ No newline at end of file diff --git a/build/dataschema/dataschema-json.js b/build/dataschema/dataschema-json.js deleted file mode 100644 index f9d5bac1477..00000000000 --- a/build/dataschema/dataschema-json.js +++ /dev/null @@ -1,305 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-json', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with JSON data. - * - * @module dataschema - * @submodule dataschema-json - */ - -/** - * JSON subclass for the DataSchema Utility. - * @class DataSchema.JSON - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaJSON = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.JSON static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Utility function converts JSON locator strings into walkable paths - * - * @method DataSchema.JSON.getPath - * @param locator {String} JSON value locator. - * @return {String[]} Walkable path to data value. - * @static - */ - getPath: function(locator) { - var path = null, - keys = [], - i = 0; - - if (locator) { - // Strip the ["string keys"] and [1] array indexes - locator = locator. - replace(/\[(['"])(.*?)\1\]/g, - function (x,$1,$2) {keys[i]=$2;return '.@'+(i++);}). - replace(/\[(\d+)\]/g, - function (x,$1) {keys[i]=parseInt($1,10)|0;return '.@'+(i++);}). - replace(/^\./,''); // remove leading dot - - // Validate against problematic characters. - if (!/[^\w\.\$@]/.test(locator)) { - path = locator.split('.'); - for (i=path.length-1; i >= 0; --i) { - if (path[i].charAt(0) === '@') { - path[i] = keys[parseInt(path[i].substr(1),10)]; - } - } - } - else { - } - } - return path; - }, - - /** - * Utility function to walk a path and return the value located there. - * - * @method DataSchema.JSON.getLocationValue - * @param path {String[]} Locator path. - * @param data {String} Data to traverse. - * @return {Object} Data value at location. - * @static - */ - getLocationValue: function (path, data) { - var i = 0, - len = path.length; - for (;i=0; --i) { - record = {}; - result = array_in[i]; - if(result) { - // Cycle through simpleLocators - for (j=simplePaths.length-1; j>=0; --j) { - // Bug 1777850: The result might be an array instead of object - record[simplePaths[j].key] = Y.DataSchema.Base.parse.call(this, - (LANG.isUndefined(result[simplePaths[j].path]) ? - result[j] : result[simplePaths[j].path]), simplePaths[j]); - } - - // Cycle through complexLocators - for (j=complexPaths.length - 1; j>=0; --j) { - record[complexPaths[j].key] = Y.DataSchema.Base.parse.call(this, - (SchemaJSON.getLocationValue(complexPaths[j].path, result)), complexPaths[j] ); - } - - // Cycle through fieldParsers - for (j=fieldParsers.length-1; j>=0; --j) { - key = fieldParsers[j].key; - record[key] = fieldParsers[j].parser.call(this, record[key]); - // Safety net - if (LANG.isUndefined(record[key])) { - record[key] = null; - } - } - results[i] = record; - } - } - data_out.results = results; - return data_out; - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param metaFields {Object} Metafields definitions. - * @param json_in {Object} JSON to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Schema-parsed meta data. - * @static - * @protected - */ - _parseMeta: function(metaFields, json_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, path; - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - path = SchemaJSON.getPath(metaFields[key]); - if (path && json_in) { - data_out.meta[key] = SchemaJSON.getLocationValue(path, json_in); - } - } - } - } - else { - data_out.error = new Error("JSON meta data retrieval failure"); - } - return data_out; - } - }; - -Y.DataSchema.JSON = Y.mix(SchemaJSON, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base','json']}); diff --git a/build/dataschema/dataschema-min.js b/build/dataschema/dataschema-min.js deleted file mode 100644 index e3227264eb3..00000000000 --- a/build/dataschema/dataschema-min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("dataschema-base",function(b){var a=b.Lang,c={apply:function(d,e){return e;},parse:function(d,e){if(e.parser){var f=(a.isFunction(e.parser))?e.parser:b.Parsers[e.parser+""];if(f){d=f.call(this,d);}else{}}return d;}};b.namespace("DataSchema").Base=c;b.namespace("Parsers");},"3.4.0",{requires:["base"]});YUI.add("dataschema-json",function(c){var a=c.Lang,b={getPath:function(d){var g=null,f=[],e=0;if(d){d=d.replace(/\[(['"])(.*?)\1\]/g,function(i,h,j){f[e]=j;return".@"+(e++);}).replace(/\[(\d+)\]/g,function(i,h){f[e]=parseInt(h,10)|0;return".@"+(e++);}).replace(/^\./,"");if(!/[^\w\.\$@]/.test(d)){g=d.split(".");for(e=g.length-1;e>=0;--e){if(g[e].charAt(0)==="@"){g[e]=f[parseInt(g[e].substr(1),10)];}}}else{}}return g;},getLocationValue:function(g,f){var e=0,d=g.length;for(;e=0;--h){k={};u=s[h];if(u){for(f=l.length-1;f>=0;--f){k[l[f].key]=c.DataSchema.Base.parse.call(this,(a.isUndefined(u[l[f].path])?u[f]:u[l[f].path]),l[f]);}for(f=q.length-1;f>=0;--f){k[q[f].key]=c.DataSchema.Base.parse.call(this,(b.getLocationValue(q[f].path,u)),q[f]);}for(f=o.length-1;f>=0;--f){t=o[f].key;k[t]=o[f].parser.call(this,k[t]);if(a.isUndefined(k[t])){k[t]=null;}}g[h]=k;}}e.results=g;return e;},_parseMeta:function(g,d,f){if(a.isObject(g)){var e,h;for(e in g){if(g.hasOwnProperty(e)){h=b.getPath(g[e]);if(h&&d){f.meta[e]=b.getLocationValue(h,d);}}}}else{f.error=new Error("JSON meta data retrieval failure");}return f;}};c.DataSchema.JSON=c.mix(b,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base","json"]});YUI.add("dataschema-xml",function(c){var b=c.Lang,a={apply:function(f,g){var d=g,e={results:[],meta:{}};if(d&&d.nodeType&&(9===d.nodeType||1===d.nodeType||11===d.nodeType)&&f){e=a._parseResults.call(this,f,d,e);e=a._parseMeta.call(this,f.metaFields,d,e);}else{e.error=new Error("XML schema parse failure");}return e;},_getLocationValue:function(l,i){var g=l.locator||l.key||l,f=i.ownerDocument||i,d,h,j=null;try{d=a._getXPathResult(g,i,f);while(h=d.iterateNext()){j=h.textContent||h.value||h.text||h.innerHTML||null;}return c.DataSchema.Base.parse.call(this,j,l);}catch(k){}return null;},_getXPathResult:function(k,f,s){if(!b.isUndefined(s.evaluate)){return s.evaluate(k,f,s.createNSResolver(f.ownerDocument?f.ownerDocument.documentElement:f.documentElement),0,null);}else{var p=[],r=k.split(/\b\/\b/),j=0,h=r.length,o,d,g,q;try{s.setProperty("SelectionLanguage","XPath");p=f.selectNodes(k);}catch(n){for(;j-1)&&(o.indexOf("]")>-1)){d=o.slice(o.indexOf("[")+1,o.indexOf("]"));d--;f=f.children[d];q=true;}else{if(o.indexOf("@")>-1){d=o.substr(o.indexOf("@"));f=d?f.getAttribute(d.replace("@","")):f;}else{if(-1=this.values.length){return undefined;}var e=this.values[this.index];this.index+=1;return e;},values:p};}},_parseField:function(f,d,e){if(f.schema){d[f.key]=a._parseResults.call(this,f.schema,e,{results:[],meta:{}}).results;}else{d[f.key||f]=a._getLocationValue.call(this,f,e);}},_parseMeta:function(h,g,f){if(b.isObject(h)){var e,d=g.ownerDocument||g;for(e in h){if(h.hasOwnProperty(e)){f.meta[e]=a._getLocationValue.call(this,h[e],d);}}}return f;},_parseResult:function(e,g){var d={},f;for(f=e.length-1;0<=f;f--){a._parseField.call(this,e[f],d,g);}return d;},_parseResults:function(g,d,h){if(g.resultListLocator&&b.isArray(g.resultFields)){var m=d.ownerDocument||d,l=g.resultFields,k=[],e,n,f,j=0;if(g.resultListLocator.match(/^[:\-\w]+$/)){f=d.getElementsByTagName(g.resultListLocator);for(j=f.length-1;0<=j;j--){k[j]=a._parseResult.call(this,l,f[j]);}}else{f=a._getXPathResult(g.resultListLocator,d,m);while(e=f.iterateNext()){k[j]=a._parseResult.call(this,l,e);j+=1;}}if(k.length){h.results=k;}else{h.error=new Error("XML schema result nodes retrieval failure");}}return h;}};c.DataSchema.XML=c.mix(a,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base"]});YUI.add("dataschema-array",function(c){var a=c.Lang,b={apply:function(f,g){var d=g,e={results:[],meta:{}};if(a.isArray(d)){if(f&&a.isArray(f.resultFields)){e=b._parseResults.call(this,f.resultFields,d,e);}else{e.results=d;}}else{e.error=new Error("Array schema parse failure");}return e;},_parseResults:function(h,m,d){var g=[],q,p,k,l,o,n,f,e;for(f=m.length-1;f>-1;f--){q={};p=m[f];k=(a.isObject(p)&&!a.isFunction(p))?2:(a.isArray(p))?1:(a.isString(p))?0:-1;if(k>0){for(e=h.length-1;e>-1;e--){l=h[e]; -o=(!a.isUndefined(l.key))?l.key:l;n=(!a.isUndefined(p[o]))?p[o]:p[e];q[o]=c.DataSchema.Base.parse.call(this,n,l);}}else{if(k===0){q=p;}else{q=null;}}g[f]=q;}d.results=g;return d;}};c.DataSchema.Array=c.mix(b,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base"]});YUI.add("dataschema-text",function(c){var b=c.Lang,a={apply:function(f,g){var d=g,e={results:[],meta:{}};if(b.isString(d)&&b.isString(f.resultDelimiter)){e=a._parseResults.call(this,f,d,e);}else{e.error=new Error("Text schema parse failure");}return e;},_parseResults:function(d,m,e){var k=d.resultDelimiter,h=[],n,r,u,t,l,p,s,q,g,f,o=m.length-k.length;if(m.substr(o)==k){m=m.substr(0,o);}n=m.split(d.resultDelimiter);for(g=n.length-1;g>-1;g--){u={};t=n[g];if(b.isString(d.fieldDelimiter)){r=t.split(d.fieldDelimiter);if(b.isArray(d.resultFields)){l=d.resultFields;for(f=l.length-1;f>-1;f--){p=l[f];s=(!b.isUndefined(p.key))?p.key:p;q=(!b.isUndefined(r[s]))?r[s]:r[f];u[s]=c.DataSchema.Base.parse.call(this,q,p);}}}else{u=t;}h[g]=u;}e.results=h;return e;}};c.DataSchema.Text=c.mix(a,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base"]});YUI.add("dataschema",function(a){},"3.4.0",{use:["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"]}); \ No newline at end of file diff --git a/build/dataschema/dataschema-text-debug.js b/build/dataschema/dataschema-text-debug.js deleted file mode 100644 index 7537dba0631..00000000000 --- a/build/dataschema/dataschema-text-debug.js +++ /dev/null @@ -1,116 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-text', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with delimited text data. - * - * @module dataschema - * @submodule dataschema-text - */ - -/** - * Text subclass for the DataSchema Utility. - * @class DataSchema.Text - * @extends DataSchema.Base - * @static - */ - -var LANG = Y.Lang, - - SchemaText = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Text static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given delimited text data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Text data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isString(data_in) && LANG.isString(schema.resultDelimiter)) { - // Parse results data - data_out = SchemaText._parseResults.call(this, schema, data_in, data_out); - } - else { - Y.log("Text data could not be schema-parsed: " + Y.dump(data) + " " + Y.dump(data), "error", "dataschema-text"); - data_out.error = new Error("Text schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Array} Schema to parse against. - * @param text_in {String} Text to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(schema, text_in, data_out) { - var resultDelim = schema.resultDelimiter, - results = [], - results_in, fields_in, result, item, fields, field, key, value, i, j, - - // Delete final delimiter at end of string if there - tmpLength = text_in.length-resultDelim.length; - if(text_in.substr(tmpLength) == resultDelim) { - text_in = text_in.substr(0, tmpLength); - } - - // Split into results - results_in = text_in.split(schema.resultDelimiter); - - for(i=results_in.length-1; i>-1; i--) { - result = {}; - item = results_in[i]; - - if(LANG.isString(schema.fieldDelimiter)) { - fields_in = item.split(schema.fieldDelimiter); - - if(LANG.isArray(schema.resultFields)) { - fields = schema.resultFields; - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(fields_in[key])) ? fields_in[key] : fields_in[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - - } - else { - result = item; - } - - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); diff --git a/build/dataschema/dataschema-text-min.js b/build/dataschema/dataschema-text-min.js deleted file mode 100644 index 044ef39e0e7..00000000000 --- a/build/dataschema/dataschema-text-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("dataschema-text",function(c){var b=c.Lang,a={apply:function(f,g){var d=g,e={results:[],meta:{}};if(b.isString(d)&&b.isString(f.resultDelimiter)){e=a._parseResults.call(this,f,d,e);}else{e.error=new Error("Text schema parse failure");}return e;},_parseResults:function(d,m,e){var k=d.resultDelimiter,h=[],n,r,u,t,l,p,s,q,g,f,o=m.length-k.length;if(m.substr(o)==k){m=m.substr(0,o);}n=m.split(d.resultDelimiter);for(g=n.length-1;g>-1;g--){u={};t=n[g];if(b.isString(d.fieldDelimiter)){r=t.split(d.fieldDelimiter);if(b.isArray(d.resultFields)){l=d.resultFields;for(f=l.length-1;f>-1;f--){p=l[f];s=(!b.isUndefined(p.key))?p.key:p;q=(!b.isUndefined(r[s]))?r[s]:r[f];u[s]=c.DataSchema.Base.parse.call(this,q,p);}}}else{u=t;}h[g]=u;}e.results=h;return e;}};c.DataSchema.Text=c.mix(a,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base"]}); \ No newline at end of file diff --git a/build/dataschema/dataschema-text.js b/build/dataschema/dataschema-text.js deleted file mode 100644 index cad99300a36..00000000000 --- a/build/dataschema/dataschema-text.js +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-text', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with delimited text data. - * - * @module dataschema - * @submodule dataschema-text - */ - -/** - * Text subclass for the DataSchema Utility. - * @class DataSchema.Text - * @extends DataSchema.Base - * @static - */ - -var LANG = Y.Lang, - - SchemaText = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Text static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given delimited text data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Text data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isString(data_in) && LANG.isString(schema.resultDelimiter)) { - // Parse results data - data_out = SchemaText._parseResults.call(this, schema, data_in, data_out); - } - else { - data_out.error = new Error("Text schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Array} Schema to parse against. - * @param text_in {String} Text to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(schema, text_in, data_out) { - var resultDelim = schema.resultDelimiter, - results = [], - results_in, fields_in, result, item, fields, field, key, value, i, j, - - // Delete final delimiter at end of string if there - tmpLength = text_in.length-resultDelim.length; - if(text_in.substr(tmpLength) == resultDelim) { - text_in = text_in.substr(0, tmpLength); - } - - // Split into results - results_in = text_in.split(schema.resultDelimiter); - - for(i=results_in.length-1; i>-1; i--) { - result = {}; - item = results_in[i]; - - if(LANG.isString(schema.fieldDelimiter)) { - fields_in = item.split(schema.fieldDelimiter); - - if(LANG.isArray(schema.resultFields)) { - fields = schema.resultFields; - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(fields_in[key])) ? fields_in[key] : fields_in[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - - } - else { - result = item; - } - - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); diff --git a/build/dataschema/dataschema-xml-debug.js b/build/dataschema/dataschema-xml-debug.js deleted file mode 100644 index 45d29a16c95..00000000000 --- a/build/dataschema/dataschema-xml-debug.js +++ /dev/null @@ -1,295 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-xml', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with XML data. - * - * @module dataschema - * @submodule dataschema-xml - */ -var LANG = Y.Lang, - - /** - * XML subclass for the DataSchema Utility. - * @class DataSchema.XML - * @extends DataSchema.Base - * @static - */ - SchemaXML = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.XML static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given XML data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {XMLDoc} XML document. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var xmldoc = data, // unnecessary variables - data_out = {results:[],meta:{}}; - - if(xmldoc && xmldoc.nodeType && (9 === xmldoc.nodeType || 1 === xmldoc.nodeType || 11 === xmldoc.nodeType) && schema) { - // Parse results data - data_out = SchemaXML._parseResults.call(this, schema, xmldoc, data_out); - - // Parse meta data - data_out = SchemaXML._parseMeta.call(this, schema.metaFields, xmldoc, data_out); - } - else { - Y.log("XML data could not be schema-parsed: " + Y.dump(data) + " " + Y.dump(data), "error", "dataschema-xml"); - data_out.error = new Error("XML schema parse failure"); - } - - return data_out; - }, - - /** - * Get an XPath-specified value for a given field from an XML node or document. - * - * @method _getLocationValue - * @param field {String | Object} Field definition. - * @param context {Object} XML node or document to search within. - * @return {Object} Data value or null. - * @static - * @protected - */ - _getLocationValue: function(field, context) { - var locator = field.locator || field.key || field, - xmldoc = context.ownerDocument || context, - result, res, value = null; - - try { - result = SchemaXML._getXPathResult(locator, context, xmldoc); - while(res = result.iterateNext()) { - value = res.textContent || res.value || res.text || res.innerHTML || null; - } - - return Y.DataSchema.Base.parse.call(this, value, field); - } - catch(e) { - Y.log('SchemaXML._getLocationValue failed: ' + e.message); - } - - return null; - }, - - /** - * Fetches the XPath-specified result for a given location in an XML node or document. - * - * @param locator {String} The XPath location. - * @param context {Object} XML node or document to search within. - * @param xmldoc {Object} XML document to resolve namespace. - * @return {Object} Data collection or null. - * @static - * @protected - */ - _getXPathResult: function(locator, context, xmldoc) { - // Standards mode - if (! LANG.isUndefined(xmldoc.evaluate)) { - return xmldoc.evaluate(locator, context, xmldoc.createNSResolver(context.ownerDocument ? context.ownerDocument.documentElement : context.documentElement), 0, null); - } - // IE mode - else { - var values=[], locatorArray = locator.split(/\b\/\b/), i=0, l=locatorArray.length, location, subloc, m, isNth; - - // XPath is supported - try { - // this fixes the IE 5.5+ issue where childnode selectors begin at 0 instead of 1 - xmldoc.setProperty("SelectionLanguage", "XPath"); - values = context.selectNodes(locator); - } - // Fallback for DOM nodes and fragments - catch (e) { - // Iterate over each locator piece - for (; i -1) && (location.indexOf("]") > -1)) { - subloc = location.slice(location.indexOf("[")+1, location.indexOf("]")); - //XPath is 1-based while DOM is 0-based - subloc--; - context = context.children[subloc]; - isNth = true; - } - // grab attribute value @ - else if (location.indexOf("@") > -1) { - subloc = location.substr(location.indexOf("@")); - context = subloc ? context.getAttribute(subloc.replace('@', '')) : context; - } - // grab that last instance of tagName - else if (-1 < location.indexOf("//")) { - subloc = context.getElementsByTagName(location.substr(2)); - context = subloc.length ? subloc[subloc.length - 1] : null; - } - // find the last matching location in children - else if (l != i + 1) { - for (m=context.childNodes.length-1; 0 <= m; m-=1) { - if (location === context.childNodes[m].tagName) { - context = context.childNodes[m]; - m = -1; - } - } - } - } - - if (context) { - // attribute - if (LANG.isString(context)) { - values[0] = {value: context}; - } - // nth child - else if (isNth) { - values[0] = {value: context.innerHTML}; - } - // all children - else { - values = Y.Array(context.childNodes, 0, true); - } - } - } - - // returning a mock-standard object for IE - return { - index: 0, - - iterateNext: function() { - if (this.index >= this.values.length) {return undefined;} - var result = this.values[this.index]; - this.index += 1; - return result; - }, - - values: values - }; - } - }, - - /** - * Schema-parsed result field. - * - * @method _parseField - * @param field {String | Object} Required. Field definition. - * @param result {Object} Required. Schema parsed data object. - * @param context {Object} Required. XML node or document to search within. - * @static - * @protected - */ - _parseField: function(field, result, context) { - if (field.schema) { - result[field.key] = SchemaXML._parseResults.call(this, field.schema, context, {results:[],meta:{}}).results; - } - else { - result[field.key || field] = SchemaXML._getLocationValue.call(this, field, context); - } - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param xmldoc_in {Object} XML document parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseMeta: function(metaFields, xmldoc_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, - xmldoc = xmldoc_in.ownerDocument || xmldoc_in; - - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - data_out.meta[key] = SchemaXML._getLocationValue.call(this, metaFields[key], xmldoc); - } - } - } - return data_out; - }, - - /** - * Schema-parsed result to add to results list. - * - * @method _parseResult - * @param fields {Array} Required. A collection of field definition. - * @param context {Object} Required. XML node or document to search within. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResult: function(fields, context) { - var result = {}, j; - - // Find each field value - for (j=fields.length-1; 0 <= j; j--) { - SchemaXML._parseField.call(this, fields[j], result, context); - } - - return result; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Object} Schema to parse against. - * @param context {Object} XML node or document to parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResults: function(schema, context, data_out) { - if (schema.resultListLocator && LANG.isArray(schema.resultFields)) { - var xmldoc = context.ownerDocument || context, - fields = schema.resultFields, - results = [], - node, result, nodeList, i=0; - - if (schema.resultListLocator.match(/^[:\-\w]+$/)) { - nodeList = context.getElementsByTagName(schema.resultListLocator); - - // loop through each result node - for (i=nodeList.length-1; 0 <= i; i--) { - results[i] = SchemaXML._parseResult.call(this, fields, nodeList[i]); - } - } - else { - nodeList = SchemaXML._getXPathResult(schema.resultListLocator, context, xmldoc); - - // loop through the nodelist - while (node = nodeList.iterateNext()) { - results[i] = SchemaXML._parseResult.call(this, fields, node); - i += 1; - } - } - - if (results.length) { - data_out.results = results; - } - else { - data_out.error = new Error("XML schema result nodes retrieval failure"); - } - } - return data_out; - } - }; - -Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); diff --git a/build/dataschema/dataschema-xml-min.js b/build/dataschema/dataschema-xml-min.js deleted file mode 100644 index 418930b9b42..00000000000 --- a/build/dataschema/dataschema-xml-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("dataschema-xml",function(c){var b=c.Lang,a={apply:function(f,g){var d=g,e={results:[],meta:{}};if(d&&d.nodeType&&(9===d.nodeType||1===d.nodeType||11===d.nodeType)&&f){e=a._parseResults.call(this,f,d,e);e=a._parseMeta.call(this,f.metaFields,d,e);}else{e.error=new Error("XML schema parse failure");}return e;},_getLocationValue:function(l,i){var g=l.locator||l.key||l,f=i.ownerDocument||i,d,h,j=null;try{d=a._getXPathResult(g,i,f);while(h=d.iterateNext()){j=h.textContent||h.value||h.text||h.innerHTML||null;}return c.DataSchema.Base.parse.call(this,j,l);}catch(k){}return null;},_getXPathResult:function(k,f,s){if(!b.isUndefined(s.evaluate)){return s.evaluate(k,f,s.createNSResolver(f.ownerDocument?f.ownerDocument.documentElement:f.documentElement),0,null);}else{var p=[],r=k.split(/\b\/\b/),j=0,h=r.length,o,d,g,q;try{s.setProperty("SelectionLanguage","XPath");p=f.selectNodes(k);}catch(n){for(;j-1)&&(o.indexOf("]")>-1)){d=o.slice(o.indexOf("[")+1,o.indexOf("]"));d--;f=f.children[d];q=true;}else{if(o.indexOf("@")>-1){d=o.substr(o.indexOf("@"));f=d?f.getAttribute(d.replace("@","")):f;}else{if(-1=this.values.length){return undefined;}var e=this.values[this.index];this.index+=1;return e;},values:p};}},_parseField:function(f,d,e){if(f.schema){d[f.key]=a._parseResults.call(this,f.schema,e,{results:[],meta:{}}).results;}else{d[f.key||f]=a._getLocationValue.call(this,f,e);}},_parseMeta:function(h,g,f){if(b.isObject(h)){var e,d=g.ownerDocument||g;for(e in h){if(h.hasOwnProperty(e)){f.meta[e]=a._getLocationValue.call(this,h[e],d);}}}return f;},_parseResult:function(e,g){var d={},f;for(f=e.length-1;0<=f;f--){a._parseField.call(this,e[f],d,g);}return d;},_parseResults:function(g,d,h){if(g.resultListLocator&&b.isArray(g.resultFields)){var m=d.ownerDocument||d,l=g.resultFields,k=[],e,n,f,j=0;if(g.resultListLocator.match(/^[:\-\w]+$/)){f=d.getElementsByTagName(g.resultListLocator);for(j=f.length-1;0<=j;j--){k[j]=a._parseResult.call(this,l,f[j]);}}else{f=a._getXPathResult(g.resultListLocator,d,m);while(e=f.iterateNext()){k[j]=a._parseResult.call(this,l,e);j+=1;}}if(k.length){h.results=k;}else{h.error=new Error("XML schema result nodes retrieval failure");}}return h;}};c.DataSchema.XML=c.mix(a,c.DataSchema.Base);},"3.4.0",{requires:["dataschema-base"]}); \ No newline at end of file diff --git a/build/dataschema/dataschema-xml.js b/build/dataschema/dataschema-xml.js deleted file mode 100644 index 1bf0d371cd7..00000000000 --- a/build/dataschema/dataschema-xml.js +++ /dev/null @@ -1,293 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-xml', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with XML data. - * - * @module dataschema - * @submodule dataschema-xml - */ -var LANG = Y.Lang, - - /** - * XML subclass for the DataSchema Utility. - * @class DataSchema.XML - * @extends DataSchema.Base - * @static - */ - SchemaXML = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.XML static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given XML data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {XMLDoc} XML document. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var xmldoc = data, // unnecessary variables - data_out = {results:[],meta:{}}; - - if(xmldoc && xmldoc.nodeType && (9 === xmldoc.nodeType || 1 === xmldoc.nodeType || 11 === xmldoc.nodeType) && schema) { - // Parse results data - data_out = SchemaXML._parseResults.call(this, schema, xmldoc, data_out); - - // Parse meta data - data_out = SchemaXML._parseMeta.call(this, schema.metaFields, xmldoc, data_out); - } - else { - data_out.error = new Error("XML schema parse failure"); - } - - return data_out; - }, - - /** - * Get an XPath-specified value for a given field from an XML node or document. - * - * @method _getLocationValue - * @param field {String | Object} Field definition. - * @param context {Object} XML node or document to search within. - * @return {Object} Data value or null. - * @static - * @protected - */ - _getLocationValue: function(field, context) { - var locator = field.locator || field.key || field, - xmldoc = context.ownerDocument || context, - result, res, value = null; - - try { - result = SchemaXML._getXPathResult(locator, context, xmldoc); - while(res = result.iterateNext()) { - value = res.textContent || res.value || res.text || res.innerHTML || null; - } - - return Y.DataSchema.Base.parse.call(this, value, field); - } - catch(e) { - } - - return null; - }, - - /** - * Fetches the XPath-specified result for a given location in an XML node or document. - * - * @param locator {String} The XPath location. - * @param context {Object} XML node or document to search within. - * @param xmldoc {Object} XML document to resolve namespace. - * @return {Object} Data collection or null. - * @static - * @protected - */ - _getXPathResult: function(locator, context, xmldoc) { - // Standards mode - if (! LANG.isUndefined(xmldoc.evaluate)) { - return xmldoc.evaluate(locator, context, xmldoc.createNSResolver(context.ownerDocument ? context.ownerDocument.documentElement : context.documentElement), 0, null); - } - // IE mode - else { - var values=[], locatorArray = locator.split(/\b\/\b/), i=0, l=locatorArray.length, location, subloc, m, isNth; - - // XPath is supported - try { - // this fixes the IE 5.5+ issue where childnode selectors begin at 0 instead of 1 - xmldoc.setProperty("SelectionLanguage", "XPath"); - values = context.selectNodes(locator); - } - // Fallback for DOM nodes and fragments - catch (e) { - // Iterate over each locator piece - for (; i -1) && (location.indexOf("]") > -1)) { - subloc = location.slice(location.indexOf("[")+1, location.indexOf("]")); - //XPath is 1-based while DOM is 0-based - subloc--; - context = context.children[subloc]; - isNth = true; - } - // grab attribute value @ - else if (location.indexOf("@") > -1) { - subloc = location.substr(location.indexOf("@")); - context = subloc ? context.getAttribute(subloc.replace('@', '')) : context; - } - // grab that last instance of tagName - else if (-1 < location.indexOf("//")) { - subloc = context.getElementsByTagName(location.substr(2)); - context = subloc.length ? subloc[subloc.length - 1] : null; - } - // find the last matching location in children - else if (l != i + 1) { - for (m=context.childNodes.length-1; 0 <= m; m-=1) { - if (location === context.childNodes[m].tagName) { - context = context.childNodes[m]; - m = -1; - } - } - } - } - - if (context) { - // attribute - if (LANG.isString(context)) { - values[0] = {value: context}; - } - // nth child - else if (isNth) { - values[0] = {value: context.innerHTML}; - } - // all children - else { - values = Y.Array(context.childNodes, 0, true); - } - } - } - - // returning a mock-standard object for IE - return { - index: 0, - - iterateNext: function() { - if (this.index >= this.values.length) {return undefined;} - var result = this.values[this.index]; - this.index += 1; - return result; - }, - - values: values - }; - } - }, - - /** - * Schema-parsed result field. - * - * @method _parseField - * @param field {String | Object} Required. Field definition. - * @param result {Object} Required. Schema parsed data object. - * @param context {Object} Required. XML node or document to search within. - * @static - * @protected - */ - _parseField: function(field, result, context) { - if (field.schema) { - result[field.key] = SchemaXML._parseResults.call(this, field.schema, context, {results:[],meta:{}}).results; - } - else { - result[field.key || field] = SchemaXML._getLocationValue.call(this, field, context); - } - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param xmldoc_in {Object} XML document parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseMeta: function(metaFields, xmldoc_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, - xmldoc = xmldoc_in.ownerDocument || xmldoc_in; - - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - data_out.meta[key] = SchemaXML._getLocationValue.call(this, metaFields[key], xmldoc); - } - } - } - return data_out; - }, - - /** - * Schema-parsed result to add to results list. - * - * @method _parseResult - * @param fields {Array} Required. A collection of field definition. - * @param context {Object} Required. XML node or document to search within. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResult: function(fields, context) { - var result = {}, j; - - // Find each field value - for (j=fields.length-1; 0 <= j; j--) { - SchemaXML._parseField.call(this, fields[j], result, context); - } - - return result; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Object} Schema to parse against. - * @param context {Object} XML node or document to parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResults: function(schema, context, data_out) { - if (schema.resultListLocator && LANG.isArray(schema.resultFields)) { - var xmldoc = context.ownerDocument || context, - fields = schema.resultFields, - results = [], - node, result, nodeList, i=0; - - if (schema.resultListLocator.match(/^[:\-\w]+$/)) { - nodeList = context.getElementsByTagName(schema.resultListLocator); - - // loop through each result node - for (i=nodeList.length-1; 0 <= i; i--) { - results[i] = SchemaXML._parseResult.call(this, fields, nodeList[i]); - } - } - else { - nodeList = SchemaXML._getXPathResult(schema.resultListLocator, context, xmldoc); - - // loop through the nodelist - while (node = nodeList.iterateNext()) { - results[i] = SchemaXML._parseResult.call(this, fields, node); - i += 1; - } - } - - if (results.length) { - data_out.results = results; - } - else { - data_out.error = new Error("XML schema result nodes retrieval failure"); - } - } - return data_out; - } - }; - -Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); diff --git a/build/dataschema/dataschema.js b/build/dataschema/dataschema.js deleted file mode 100644 index 5a283438708..00000000000 --- a/build/dataschema/dataschema.js +++ /dev/null @@ -1,867 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('dataschema-base', function(Y) { - -/** - * The DataSchema utility provides a common configurable interface for widgets to - * apply a given schema to a variety of data. - * - * @module dataschema - */ - -/** - * Provides the base DataSchema implementation, which can be extended to - * create DataSchemas for specific data formats, such XML, JSON, text and - * arrays. - * - * @module dataschema - * @submodule dataschema-base - */ - -var LANG = Y.Lang, -/** - * Base class for the YUI DataSchema Utility. - * @class DataSchema.Base - * @static - */ - SchemaBase = { - /** - * Overridable method returns data as-is. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - return data; - }, - - /** - * Applies field parser, if defined - * - * @method parse - * @param value {Object} Original value. - * @param field {Object} Field. - * @return {Object} Type-converted value. - */ - parse: function(value, field) { - if(field.parser) { - var parser = (LANG.isFunction(field.parser)) ? - field.parser : Y.Parsers[field.parser+'']; - if(parser) { - value = parser.call(this, value); - } - else { - } - } - return value; - } -}; - -Y.namespace("DataSchema").Base = SchemaBase; -Y.namespace("Parsers"); - - -}, '3.4.0' ,{requires:['base']}); -YUI.add('dataschema-json', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with JSON data. - * - * @module dataschema - * @submodule dataschema-json - */ - -/** - * JSON subclass for the DataSchema Utility. - * @class DataSchema.JSON - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaJSON = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.JSON static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Utility function converts JSON locator strings into walkable paths - * - * @method DataSchema.JSON.getPath - * @param locator {String} JSON value locator. - * @return {String[]} Walkable path to data value. - * @static - */ - getPath: function(locator) { - var path = null, - keys = [], - i = 0; - - if (locator) { - // Strip the ["string keys"] and [1] array indexes - locator = locator. - replace(/\[(['"])(.*?)\1\]/g, - function (x,$1,$2) {keys[i]=$2;return '.@'+(i++);}). - replace(/\[(\d+)\]/g, - function (x,$1) {keys[i]=parseInt($1,10)|0;return '.@'+(i++);}). - replace(/^\./,''); // remove leading dot - - // Validate against problematic characters. - if (!/[^\w\.\$@]/.test(locator)) { - path = locator.split('.'); - for (i=path.length-1; i >= 0; --i) { - if (path[i].charAt(0) === '@') { - path[i] = keys[parseInt(path[i].substr(1),10)]; - } - } - } - else { - } - } - return path; - }, - - /** - * Utility function to walk a path and return the value located there. - * - * @method DataSchema.JSON.getLocationValue - * @param path {String[]} Locator path. - * @param data {String} Data to traverse. - * @return {Object} Data value at location. - * @static - */ - getLocationValue: function (path, data) { - var i = 0, - len = path.length; - for (;i=0; --i) { - record = {}; - result = array_in[i]; - if(result) { - // Cycle through simpleLocators - for (j=simplePaths.length-1; j>=0; --j) { - // Bug 1777850: The result might be an array instead of object - record[simplePaths[j].key] = Y.DataSchema.Base.parse.call(this, - (LANG.isUndefined(result[simplePaths[j].path]) ? - result[j] : result[simplePaths[j].path]), simplePaths[j]); - } - - // Cycle through complexLocators - for (j=complexPaths.length - 1; j>=0; --j) { - record[complexPaths[j].key] = Y.DataSchema.Base.parse.call(this, - (SchemaJSON.getLocationValue(complexPaths[j].path, result)), complexPaths[j] ); - } - - // Cycle through fieldParsers - for (j=fieldParsers.length-1; j>=0; --j) { - key = fieldParsers[j].key; - record[key] = fieldParsers[j].parser.call(this, record[key]); - // Safety net - if (LANG.isUndefined(record[key])) { - record[key] = null; - } - } - results[i] = record; - } - } - data_out.results = results; - return data_out; - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param metaFields {Object} Metafields definitions. - * @param json_in {Object} JSON to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Schema-parsed meta data. - * @static - * @protected - */ - _parseMeta: function(metaFields, json_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, path; - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - path = SchemaJSON.getPath(metaFields[key]); - if (path && json_in) { - data_out.meta[key] = SchemaJSON.getLocationValue(path, json_in); - } - } - } - } - else { - data_out.error = new Error("JSON meta data retrieval failure"); - } - return data_out; - } - }; - -Y.DataSchema.JSON = Y.mix(SchemaJSON, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base','json']}); -YUI.add('dataschema-xml', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with XML data. - * - * @module dataschema - * @submodule dataschema-xml - */ -var LANG = Y.Lang, - - /** - * XML subclass for the DataSchema Utility. - * @class DataSchema.XML - * @extends DataSchema.Base - * @static - */ - SchemaXML = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.XML static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given XML data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {XMLDoc} XML document. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var xmldoc = data, // unnecessary variables - data_out = {results:[],meta:{}}; - - if(xmldoc && xmldoc.nodeType && (9 === xmldoc.nodeType || 1 === xmldoc.nodeType || 11 === xmldoc.nodeType) && schema) { - // Parse results data - data_out = SchemaXML._parseResults.call(this, schema, xmldoc, data_out); - - // Parse meta data - data_out = SchemaXML._parseMeta.call(this, schema.metaFields, xmldoc, data_out); - } - else { - data_out.error = new Error("XML schema parse failure"); - } - - return data_out; - }, - - /** - * Get an XPath-specified value for a given field from an XML node or document. - * - * @method _getLocationValue - * @param field {String | Object} Field definition. - * @param context {Object} XML node or document to search within. - * @return {Object} Data value or null. - * @static - * @protected - */ - _getLocationValue: function(field, context) { - var locator = field.locator || field.key || field, - xmldoc = context.ownerDocument || context, - result, res, value = null; - - try { - result = SchemaXML._getXPathResult(locator, context, xmldoc); - while(res = result.iterateNext()) { - value = res.textContent || res.value || res.text || res.innerHTML || null; - } - - return Y.DataSchema.Base.parse.call(this, value, field); - } - catch(e) { - } - - return null; - }, - - /** - * Fetches the XPath-specified result for a given location in an XML node or document. - * - * @param locator {String} The XPath location. - * @param context {Object} XML node or document to search within. - * @param xmldoc {Object} XML document to resolve namespace. - * @return {Object} Data collection or null. - * @static - * @protected - */ - _getXPathResult: function(locator, context, xmldoc) { - // Standards mode - if (! LANG.isUndefined(xmldoc.evaluate)) { - return xmldoc.evaluate(locator, context, xmldoc.createNSResolver(context.ownerDocument ? context.ownerDocument.documentElement : context.documentElement), 0, null); - } - // IE mode - else { - var values=[], locatorArray = locator.split(/\b\/\b/), i=0, l=locatorArray.length, location, subloc, m, isNth; - - // XPath is supported - try { - // this fixes the IE 5.5+ issue where childnode selectors begin at 0 instead of 1 - xmldoc.setProperty("SelectionLanguage", "XPath"); - values = context.selectNodes(locator); - } - // Fallback for DOM nodes and fragments - catch (e) { - // Iterate over each locator piece - for (; i -1) && (location.indexOf("]") > -1)) { - subloc = location.slice(location.indexOf("[")+1, location.indexOf("]")); - //XPath is 1-based while DOM is 0-based - subloc--; - context = context.children[subloc]; - isNth = true; - } - // grab attribute value @ - else if (location.indexOf("@") > -1) { - subloc = location.substr(location.indexOf("@")); - context = subloc ? context.getAttribute(subloc.replace('@', '')) : context; - } - // grab that last instance of tagName - else if (-1 < location.indexOf("//")) { - subloc = context.getElementsByTagName(location.substr(2)); - context = subloc.length ? subloc[subloc.length - 1] : null; - } - // find the last matching location in children - else if (l != i + 1) { - for (m=context.childNodes.length-1; 0 <= m; m-=1) { - if (location === context.childNodes[m].tagName) { - context = context.childNodes[m]; - m = -1; - } - } - } - } - - if (context) { - // attribute - if (LANG.isString(context)) { - values[0] = {value: context}; - } - // nth child - else if (isNth) { - values[0] = {value: context.innerHTML}; - } - // all children - else { - values = Y.Array(context.childNodes, 0, true); - } - } - } - - // returning a mock-standard object for IE - return { - index: 0, - - iterateNext: function() { - if (this.index >= this.values.length) {return undefined;} - var result = this.values[this.index]; - this.index += 1; - return result; - }, - - values: values - }; - } - }, - - /** - * Schema-parsed result field. - * - * @method _parseField - * @param field {String | Object} Required. Field definition. - * @param result {Object} Required. Schema parsed data object. - * @param context {Object} Required. XML node or document to search within. - * @static - * @protected - */ - _parseField: function(field, result, context) { - if (field.schema) { - result[field.key] = SchemaXML._parseResults.call(this, field.schema, context, {results:[],meta:{}}).results; - } - else { - result[field.key || field] = SchemaXML._getLocationValue.call(this, field, context); - } - }, - - /** - * Parses results data according to schema - * - * @method _parseMeta - * @param xmldoc_in {Object} XML document parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseMeta: function(metaFields, xmldoc_in, data_out) { - if(LANG.isObject(metaFields)) { - var key, - xmldoc = xmldoc_in.ownerDocument || xmldoc_in; - - for(key in metaFields) { - if (metaFields.hasOwnProperty(key)) { - data_out.meta[key] = SchemaXML._getLocationValue.call(this, metaFields[key], xmldoc); - } - } - } - return data_out; - }, - - /** - * Schema-parsed result to add to results list. - * - * @method _parseResult - * @param fields {Array} Required. A collection of field definition. - * @param context {Object} Required. XML node or document to search within. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResult: function(fields, context) { - var result = {}, j; - - // Find each field value - for (j=fields.length-1; 0 <= j; j--) { - SchemaXML._parseField.call(this, fields[j], result, context); - } - - return result; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Object} Schema to parse against. - * @param context {Object} XML node or document to parse. - * @param data_out {Object} In-progress schema-parsed data to update. - * @return {Object} Schema-parsed data. - * @static - * @protected - */ - _parseResults: function(schema, context, data_out) { - if (schema.resultListLocator && LANG.isArray(schema.resultFields)) { - var xmldoc = context.ownerDocument || context, - fields = schema.resultFields, - results = [], - node, result, nodeList, i=0; - - if (schema.resultListLocator.match(/^[:\-\w]+$/)) { - nodeList = context.getElementsByTagName(schema.resultListLocator); - - // loop through each result node - for (i=nodeList.length-1; 0 <= i; i--) { - results[i] = SchemaXML._parseResult.call(this, fields, nodeList[i]); - } - } - else { - nodeList = SchemaXML._getXPathResult(schema.resultListLocator, context, xmldoc); - - // loop through the nodelist - while (node = nodeList.iterateNext()) { - results[i] = SchemaXML._parseResult.call(this, fields, node); - i += 1; - } - } - - if (results.length) { - data_out.results = results; - } - else { - data_out.error = new Error("XML schema result nodes retrieval failure"); - } - } - return data_out; - } - }; - -Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); -YUI.add('dataschema-array', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with data stored in arrays. - * - * @module dataschema - * @submodule dataschema-array - */ - -/** - * Array subclass for the DataSchema Utility. - * @class DataSchema.Array - * @extends DataSchema.Base - * @static - */ -var LANG = Y.Lang, - - SchemaArray = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Array static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given Array data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Array data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isArray(data_in)) { - if(schema && LANG.isArray(schema.resultFields)) { - // Parse results data - data_out = SchemaArray._parseResults.call(this, schema.resultFields, data_in, data_out); - } - else { - data_out.results = data_in; - } - } - else { - data_out.error = new Error("Array schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param fields {Array} Schema to parse against. - * @param array_in {Array} Array to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(fields, array_in, data_out) { - var results = [], - result, item, type, field, key, value, i, j; - - for(i=array_in.length-1; i>-1; i--) { - result = {}; - item = array_in[i]; - type = (LANG.isObject(item) && !LANG.isFunction(item)) ? 2 : (LANG.isArray(item)) ? 1 : (LANG.isString(item)) ? 0 : -1; - if(type > 0) { - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(item[key])) ? item[key] : item[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - else if(type === 0) { - result = item; - } - else { - //TODO: null or {}? - result = null; - } - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Array = Y.mix(SchemaArray, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); -YUI.add('dataschema-text', function(Y) { - -/** - * Provides a DataSchema implementation which can be used to work with delimited text data. - * - * @module dataschema - * @submodule dataschema-text - */ - -/** - * Text subclass for the DataSchema Utility. - * @class DataSchema.Text - * @extends DataSchema.Base - * @static - */ - -var LANG = Y.Lang, - - SchemaText = { - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSchema.Text static methods - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Applies a given schema to given delimited text data. - * - * @method apply - * @param schema {Object} Schema to apply. - * @param data {Object} Text data. - * @return {Object} Schema-parsed data. - * @static - */ - apply: function(schema, data) { - var data_in = data, - data_out = {results:[],meta:{}}; - - if(LANG.isString(data_in) && LANG.isString(schema.resultDelimiter)) { - // Parse results data - data_out = SchemaText._parseResults.call(this, schema, data_in, data_out); - } - else { - data_out.error = new Error("Text schema parse failure"); - } - - return data_out; - }, - - /** - * Schema-parsed list of results from full data - * - * @method _parseResults - * @param schema {Array} Schema to parse against. - * @param text_in {String} Text to parse. - * @param data_out {Object} In-progress parsed data to update. - * @return {Object} Parsed data object. - * @static - * @protected - */ - _parseResults: function(schema, text_in, data_out) { - var resultDelim = schema.resultDelimiter, - results = [], - results_in, fields_in, result, item, fields, field, key, value, i, j, - - // Delete final delimiter at end of string if there - tmpLength = text_in.length-resultDelim.length; - if(text_in.substr(tmpLength) == resultDelim) { - text_in = text_in.substr(0, tmpLength); - } - - // Split into results - results_in = text_in.split(schema.resultDelimiter); - - for(i=results_in.length-1; i>-1; i--) { - result = {}; - item = results_in[i]; - - if(LANG.isString(schema.fieldDelimiter)) { - fields_in = item.split(schema.fieldDelimiter); - - if(LANG.isArray(schema.resultFields)) { - fields = schema.resultFields; - for(j=fields.length-1; j>-1; j--) { - field = fields[j]; - key = (!LANG.isUndefined(field.key)) ? field.key : field; - value = (!LANG.isUndefined(fields_in[key])) ? fields_in[key] : fields_in[j]; - result[key] = Y.DataSchema.Base.parse.call(this, value, field); - } - } - - } - else { - result = item; - } - - results[i] = result; - } - data_out.results = results; - - return data_out; - } - }; - -Y.DataSchema.Text = Y.mix(SchemaText, Y.DataSchema.Base); - - -}, '3.4.0' ,{requires:['dataschema-base']}); - - -YUI.add('dataschema', function(Y){}, '3.4.0' ,{use:['dataschema-base','dataschema-json','dataschema-xml','dataschema-array','dataschema-text']}); - diff --git a/build/datasource/datasource-arrayschema-debug.js b/build/datasource/datasource-arrayschema-debug.js deleted file mode 100644 index 7d862e4fc83..00000000000 --- a/build/datasource/datasource-arrayschema-debug.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-arrayschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on array data. - * - * @module datasource - * @submodule datasource-arrayschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceArraySchema - * @extends Plugin.Base - */ -var DataSourceArraySchema = function() { - DataSourceArraySchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceArraySchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceArraySchema" - */ - NAME: "dataSourceArraySchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceArraySchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceArraySchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Array.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceArraySchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-array']}); diff --git a/build/datasource/datasource-arrayschema-min.js b/build/datasource/datasource-arrayschema-min.js deleted file mode 100644 index 73fd9b43de9..00000000000 --- a/build/datasource/datasource-arrayschema-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-arrayschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceArraySchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=(b.DataSource.IO&&(this.get("host") instanceof b.DataSource.IO)&&b.Lang.isString(f.data.responseText))?f.data.responseText:f.data,c=b.DataSchema.Array.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f));return new b.Do.Halt("DataSourceArraySchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceArraySchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-array"]}); \ No newline at end of file diff --git a/build/datasource/datasource-arrayschema.js b/build/datasource/datasource-arrayschema.js deleted file mode 100644 index 7d862e4fc83..00000000000 --- a/build/datasource/datasource-arrayschema.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-arrayschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on array data. - * - * @module datasource - * @submodule datasource-arrayschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceArraySchema - * @extends Plugin.Base - */ -var DataSourceArraySchema = function() { - DataSourceArraySchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceArraySchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceArraySchema" - */ - NAME: "dataSourceArraySchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceArraySchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceArraySchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Array.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceArraySchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-array']}); diff --git a/build/datasource/datasource-cache-debug.js b/build/datasource/datasource-cache-debug.js deleted file mode 100644 index 90f9eafeb27..00000000000 --- a/build/datasource/datasource-cache-debug.js +++ /dev/null @@ -1,166 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-cache', function(Y) { - -/** - * Plugs DataSource with caching functionality. - * - * @module datasource - * @submodule datasource-cache - */ - -/** - * DataSourceCache extension binds Cache to DataSource. - * @class DataSourceCacheExtension - */ -var DataSourceCacheExtension = function() { -}; - -Y.mix(DataSourceCacheExtension, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCacheExtension" - */ - NAME: "dataSourceCacheExtension" -}); - -DataSourceCacheExtension.prototype = { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defRequestFn", this._beforeDefRequestFn); - this.doBefore("_defResponseFn", this._beforeDefResponseFn); - }, - - /** - * First look for cached response, then send request to live data. - * - * @method _beforeDefRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefRequestFn: function(e) { - // Is response already in the Cache? - var entry = (this.retrieve(e.request)) || null; - if(entry && entry.response) { - this.get("host").fire("response", Y.mix(entry, e)); - return new Y.Do.Halt("DataSourceCache extension halted _defRequestFn"); - } - }, - - /** - * Adds data to cache before returning data. - * - * @method _beforeDefResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  cached (Object)
                                  True when response is cached.
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefResponseFn: function(e) { - // Add to Cache before returning - if(e.response && !e.cached) { - this.add(e.request, e.response); - } - } -}; - -Y.namespace("Plugin").DataSourceCacheExtension = DataSourceCacheExtension; - - - -/** - * DataSource plugin adds cache functionality. - * @class DataSourceCache - * @extends Cache - * @uses Plugin.Base, DataSourceCachePlugin - */ -function DataSourceCache(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base, Y.Plugin.DataSourceCacheExtension]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(DataSourceCache, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "dataSourceCache" -}); - - -Y.namespace("Plugin").DataSourceCache = DataSourceCache; - - -}, '3.4.0' ,{requires:['datasource-local', 'cache-base', 'plugin']}); diff --git a/build/datasource/datasource-cache-min.js b/build/datasource/datasource-cache-min.js deleted file mode 100644 index daa54a2380b..00000000000 --- a/build/datasource/datasource-cache-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-cache",function(c){var b=function(){};c.mix(b,{NS:"cache",NAME:"dataSourceCacheExtension"});b.prototype={initializer:function(d){this.doBefore("_defRequestFn",this._beforeDefRequestFn);this.doBefore("_defResponseFn",this._beforeDefResponseFn);},_beforeDefRequestFn:function(f){var d=(this.retrieve(f.request))||null;if(d&&d.response){this.get("host").fire("response",c.mix(d,f));return new c.Do.Halt("DataSourceCache extension halted _defRequestFn");}},_beforeDefResponseFn:function(d){if(d.response&&!d.cached){this.add(d.request,d.response);}}};c.namespace("Plugin").DataSourceCacheExtension=b;function a(f){var e=f&&f.cache?f.cache:c.Cache,g=c.Base.create("dataSourceCache",e,[c.Plugin.Base,c.Plugin.DataSourceCacheExtension]),d=new g(f);g.NS="tmpClass";return d;}c.mix(a,{NS:"cache",NAME:"dataSourceCache"});c.namespace("Plugin").DataSourceCache=a;},"3.4.0",{requires:["datasource-local","cache-base","plugin"]}); \ No newline at end of file diff --git a/build/datasource/datasource-cache.js b/build/datasource/datasource-cache.js deleted file mode 100644 index 90f9eafeb27..00000000000 --- a/build/datasource/datasource-cache.js +++ /dev/null @@ -1,166 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-cache', function(Y) { - -/** - * Plugs DataSource with caching functionality. - * - * @module datasource - * @submodule datasource-cache - */ - -/** - * DataSourceCache extension binds Cache to DataSource. - * @class DataSourceCacheExtension - */ -var DataSourceCacheExtension = function() { -}; - -Y.mix(DataSourceCacheExtension, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCacheExtension" - */ - NAME: "dataSourceCacheExtension" -}); - -DataSourceCacheExtension.prototype = { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defRequestFn", this._beforeDefRequestFn); - this.doBefore("_defResponseFn", this._beforeDefResponseFn); - }, - - /** - * First look for cached response, then send request to live data. - * - * @method _beforeDefRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefRequestFn: function(e) { - // Is response already in the Cache? - var entry = (this.retrieve(e.request)) || null; - if(entry && entry.response) { - this.get("host").fire("response", Y.mix(entry, e)); - return new Y.Do.Halt("DataSourceCache extension halted _defRequestFn"); - } - }, - - /** - * Adds data to cache before returning data. - * - * @method _beforeDefResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  cached (Object)
                                  True when response is cached.
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefResponseFn: function(e) { - // Add to Cache before returning - if(e.response && !e.cached) { - this.add(e.request, e.response); - } - } -}; - -Y.namespace("Plugin").DataSourceCacheExtension = DataSourceCacheExtension; - - - -/** - * DataSource plugin adds cache functionality. - * @class DataSourceCache - * @extends Cache - * @uses Plugin.Base, DataSourceCachePlugin - */ -function DataSourceCache(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base, Y.Plugin.DataSourceCacheExtension]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(DataSourceCache, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "dataSourceCache" -}); - - -Y.namespace("Plugin").DataSourceCache = DataSourceCache; - - -}, '3.4.0' ,{requires:['datasource-local', 'cache-base', 'plugin']}); diff --git a/build/datasource/datasource-debug.js b/build/datasource/datasource-debug.js deleted file mode 100644 index cf86137d19a..00000000000 --- a/build/datasource/datasource-debug.js +++ /dev/null @@ -1,1531 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-local', function(Y) { - -/** - * The DataSource utility provides a common configurable interface for widgets to - * access a variety of data, from JavaScript arrays to online database servers. - * - * @module datasource - */ - -/** - * Provides the base DataSource implementation, which can be extended to - * create DataSources for specific data protocols, such as the IO Utility, the - * Get Utility, or custom functions. - * - * @module datasource - * @submodule datasource-local - */ - -/** - * Base class for the DataSource Utility. - * @class DataSource.Local - * @extends Base - * @constructor - */ -var LANG = Y.Lang, - -DSLocal = function() { - DSLocal.superclass.constructor.apply(this, arguments); -}; - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSLocal, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceLocal" - */ - NAME: "dataSourceLocal", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - value: null - } - }, - - /** - * Global transaction counter. - * - * @property DataSource._tId - * @type Number - * @static - * @private - * @default 0 - */ - _tId: 0, - - /** - * Global in-progress transaction objects. - * - * @property DataSource.transactions - * @type Object - * @static - */ - transactions: {}, - - /** - * Returns data to callback. - * - * @method DataSource.issueCallback - * @param e {EventFacade} Event Facade. - * @param caller {DataSource} Calling DataSource instance. - * @static - */ - issueCallback: function (e, caller) { - var error = (e.error || e.response.error); - if(error) { - e.error = e.error || e.response.error; - caller.fire("error", e); - } - if(e.callback) { - var callbackFunc = (error && e.callback.failure) || e.callback.success; - if (callbackFunc) { - callbackFunc(e); - } - } - } -}); - -Y.extend(DSLocal, Y.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._initEvents(); - }, - - /** - * This method creates all the events for this module. - * @method _initEvents - * @private - */ - _initEvents: function() { - /** - * Fired when a data request is received. - * - * @event request - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @preventable _defRequestFn - */ - this.publish("request", {defaultFn: Y.bind("_defRequestFn", this), queuable:true}); - - /** - * Fired when raw data is received. - * - * @event data - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @preventable _defDataFn - */ - this.publish("data", {defaultFn: Y.bind("_defDataFn", this), queuable:true}); - - /** - * Fired when response is returned. - * - * @event response - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @preventable _defResponseFn - */ - this.publish("response", {defaultFn: Y.bind("_defResponseFn", this), queuable:true}); - - /** - * Fired when an error is encountered. - * - * @event error - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  - */ - - }, - - /** - * Manages request/response transaction. Must fire response - * event when response is received. This method should be implemented by - * subclasses to achieve more complex behavior such as accessing remote data. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facadewith the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var data = this.get("source"); - - // Problematic data - if(LANG.isUndefined(data)) { - e.error = new Error("Local source undefined"); - Y.log("Local source undefined", "error", "datasource-local"); - } - - this.fire("data", Y.mix({data:data}, e)); - Y.log("Transaction " + e.tId + " complete. Request: " + - Y.dump(e.request) + " . Response: " + Y.dump(e.response), "info", "datasource-local"); - }, - - /** - * Normalizes raw data into a response that includes results and meta properties. - * - * @method _defDataFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @protected - */ - _defDataFn: function(e) { - var data = e.data, - meta = e.meta, - response = { - results: (LANG.isArray(data)) ? data : [data], - meta: (meta) ? meta : {} - }; - - this.fire("response", Y.mix({response: response}, e)); - }, - - /** - * Sends data as a normalized response to callback. - * - * @method _defResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @protected - */ - _defResponseFn: function(e) { - // Send the response back to the callback - DSLocal.issueCallback(e, this); - }, - - /** - * Generates a unique transaction ID and fires request event. - * - * @method sendRequest - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Transaction ID. - */ - sendRequest: function(request) { - request = request || {}; - var tId = DSLocal._tId++; - this.fire("request", {tId:tId, request:request.request, callback:request.callback, cfg:request.cfg || {}}); - Y.log("Transaction " + tId + " sent request: " + Y.dump(request.request), "info", "datasource-local"); - return tId; - } -}); - -Y.namespace("DataSource").Local = DSLocal; - - -}, '3.4.0' ,{requires:['base']}); -YUI.add('datasource-io', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the IO Utility. - * - * @module datasource - * @submodule datasource-io - */ - -/** - * IO subclass for the DataSource Utility. - * @class DataSource.IO - * @extends DataSource.Local - * @constructor - */ -var DSIO = function() { - DSIO.superclass.constructor.apply(this, arguments); -}; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSIO, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceIO" - */ - NAME: "dataSourceIO", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * Pointer to IO Utility. - * - * @attribute io - * @type Y.io - * @default Y.io - */ - io: { - value: Y.io, - cloneDefaultValue: false - }, - - /** - * Default IO Config. - * - * @attribute ioConfig - * @type Object - * @default null - */ - ioConfig: { - value: null - } - } -}); - -Y.extend(DSIO, Y.DataSource.Local, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._queue = {interval:null, conn:null, requests:[]}; - }, - - /** - * IO success callback. - * - * @method successHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - successHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - this.fire("data", Y.mix({data:response}, e)); - Y.log("Received IO data response for \"" + e.request + "\"", "info", "datasource-io"); - if (defIOConfig && defIOConfig.on && defIOConfig.on.success) { - defIOConfig.on.success.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * IO failure callback. - * - * @method failureHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - failureHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error("IO data failure"); - Y.log("IO data failure", "error", "datasource-io"); - this.fire("data", Y.mix({data:response}, e)); - Y.log("Received IO data failure for \"" + e.request + "\"", "info", "datasource-io"); - if (defIOConfig && defIOConfig.on && defIOConfig.on.failure) { - defIOConfig.on.failure.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * @property _queue - * @description Object literal to manage asynchronous request/response - * cycles enabled if queue needs to be managed (asyncMode/ioConnMode): - *
                                  - *
                                  interval {Number}
                                  - *
                                  Interval ID of in-progress queue.
                                  - *
                                  conn
                                  - *
                                  In-progress connection identifier (if applicable).
                                  - *
                                  requests {Object[]}
                                  - *
                                  Array of queued request objects: {request:request, callback:callback}.
                                  - *
                                  - * @type Object - * @default {interval:null, conn:null, requests:[]} - * @private - */ - _queue: null, - - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - io = this.get("io"), - defIOConfig = this.get("ioConfig"), - request = e.request, - cfg = Y.merge(defIOConfig, e.cfg, { - on: Y.merge(defIOConfig, { - success: this.successHandler, - failure: this.failureHandler - }), - context: this, - "arguments": e - }); - - // Support for POST transactions - if(Y.Lang.isString(request)) { - if(cfg.method && (cfg.method.toUpperCase() === "POST")) { - cfg.data = cfg.data ? cfg.data+request : request; - } - else { - uri += request; - } - } - Y.DataSource.Local.transactions[e.tId] = io(uri, cfg); - return e.tId; - } -}); - -Y.DataSource.IO = DSIO; - - -}, '3.4.0' ,{requires:['datasource-local', 'io-base']}); -YUI.add('datasource-get', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the Get Utility. - * - * @module datasource - * @submodule datasource-get - */ - -/** - * Get Utility subclass for the DataSource Utility. - * @class DataSource.Get - * @extends DataSource.Local - * @constructor - */ -var DSGet = function() { - DSGet.superclass.constructor.apply(this, arguments); -}; - - -Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, { - /** - * Passes query string to Get Utility. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - get = this.get("get"), - guid = Y.guid().replace(/\-/g, '_'), - generateRequest = this.get( "generateRequestCallback" ), - o; - - /** - * Stores the most recent request id for validation against stale - * response handling. - * - * @property _last - * @type {String} - * @protected - */ - this._last = guid; - - // Dynamically add handler function with a closure to the callback stack - // for access to guid - YUI.Env.DataSource.callbacks[guid] = Y.bind(function(response) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - var process = this.get('asyncMode') !== "ignoreStaleResponses" || - this._last === guid; - - if (process) { - this.fire("data", Y.mix({ data: response }, e)); - } else { - Y.log("DataSource ignored stale response for id " + e.tId + "(" + e.request + ")", "info", "datasource-get"); - } - - }, this); - - // Add the callback param to the request url - uri += e.request + generateRequest.call( this, guid ); - - Y.log("DataSource is querying URL " + uri, "info", "datasource-get"); - - Y.DataSource.Local.transactions[e.tId] = get.script(uri, { - autopurge: true, - // Works in Firefox only.... - onFailure: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data failure"); - Y.log("Script node data failure", "error", "datasource-get"); - this.fire("data", e); - }, this, e), - onTimeout: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data timeout"); - Y.log("Script node data timeout", "error", "datasource-get"); - this.fire("data", e); - }, this, e) - }); - - return e.tId; - }, - - - /** - * Default method for adding callback param to url. See - * generateRequestCallback attribute. - * - * @method _generateRequest - * @param guid {String} unique identifier for callback function wrapper - * @protected - */ - _generateRequest: function (guid) { - return "&" + this.get("scriptCallbackParam") + - "=YUI.Env.DataSource.callbacks." + guid; - } - -}, { - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceGet" - */ - NAME: "dataSourceGet", - - - //////////////////////////////////////////////////////////////////////////// - // - // DataSource.Get Attributes - // - //////////////////////////////////////////////////////////////////////////// - ATTRS: { - /** - * Pointer to Get Utility. - * - * @attribute get - * @type Y.Get - * @default Y.Get - */ - get: { - value: Y.Get, - cloneDefaultValue: false - }, - - /** - * Defines request/response management in the following manner: - *
                                  - * - *
                                  ignoreStaleResponses
                                  - *
                                  Send all requests, but handle only the response for the most - * recently sent request.
                                  - *
                                  allowAll
                                  - *
                                  Send all requests and handle all responses.
                                  - *
                                  - * - * @attribute asyncMode - * @type String - * @default "allowAll" - */ - asyncMode: { - value: "allowAll" - }, - - /** - * Callback string parameter name sent to the remote script. By default, - * requests are sent to - * <URI>?<scriptCallbackParam>=callbackFunction - * - * @attribute scriptCallbackParam - * @type String - * @default "callback" - */ - scriptCallbackParam : { - value: "callback" - }, - - /** - * Accepts the DataSource instance and a callback ID, and returns a callback - * param/value string that gets appended to the script URI. Implementers - * can customize this string to match their server's query syntax. - * - * @attribute generateRequestCallback - * @type Function - */ - generateRequestCallback : { - value: function () { - return this._generateRequest.apply(this, arguments); - } - } - } -}); - -YUI.namespace("Env.DataSource.callbacks"); - - -}, '3.4.0' ,{requires:['datasource-local', 'get']}); -YUI.add('datasource-function', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data from a custom function. - * - * @module datasource - * @submodule datasource-function - */ - -/** - * Function subclass for the DataSource Utility. - * @class DataSource.Function - * @extends DataSource.Local - * @constructor - */ -var LANG = Y.Lang, - - DSFn = function() { - DSFn.superclass.constructor.apply(this, arguments); - }; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSFn, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceFunction" - */ - NAME: "dataSourceFunction", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - validator: LANG.isFunction - } - } -}); - -Y.extend(DSFn, Y.DataSource.Local, { - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var fn = this.get("source"), - response; - - if(fn) { - try { - response = fn(e.request, this, e); - this.fire("data", Y.mix({data:response}, e)); - } - catch(error) { - e.error = error; - Y.log("Function execution failure", "error", "datasource-function"); - this.fire("data", e); - } - } - else { - e.error = new Error("Function data failure"); - Y.log("Function data failure", "error", "datasource-function"); - this.fire("data", e); - } - - return e.tId; - } -}); - -Y.DataSource.Function = DSFn; - - - -}, '3.4.0' ,{requires:['datasource-local']}); -YUI.add('datasource-cache', function(Y) { - -/** - * Plugs DataSource with caching functionality. - * - * @module datasource - * @submodule datasource-cache - */ - -/** - * DataSourceCache extension binds Cache to DataSource. - * @class DataSourceCacheExtension - */ -var DataSourceCacheExtension = function() { -}; - -Y.mix(DataSourceCacheExtension, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCacheExtension" - */ - NAME: "dataSourceCacheExtension" -}); - -DataSourceCacheExtension.prototype = { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defRequestFn", this._beforeDefRequestFn); - this.doBefore("_defResponseFn", this._beforeDefResponseFn); - }, - - /** - * First look for cached response, then send request to live data. - * - * @method _beforeDefRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefRequestFn: function(e) { - // Is response already in the Cache? - var entry = (this.retrieve(e.request)) || null; - if(entry && entry.response) { - this.get("host").fire("response", Y.mix(entry, e)); - return new Y.Do.Halt("DataSourceCache extension halted _defRequestFn"); - } - }, - - /** - * Adds data to cache before returning data. - * - * @method _beforeDefResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  cached (Object)
                                  True when response is cached.
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefResponseFn: function(e) { - // Add to Cache before returning - if(e.response && !e.cached) { - this.add(e.request, e.response); - } - } -}; - -Y.namespace("Plugin").DataSourceCacheExtension = DataSourceCacheExtension; - - - -/** - * DataSource plugin adds cache functionality. - * @class DataSourceCache - * @extends Cache - * @uses Plugin.Base, DataSourceCachePlugin - */ -function DataSourceCache(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base, Y.Plugin.DataSourceCacheExtension]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(DataSourceCache, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "dataSourceCache" -}); - - -Y.namespace("Plugin").DataSourceCache = DataSourceCache; - - -}, '3.4.0' ,{requires:['datasource-local', 'cache-base', 'plugin']}); -YUI.add('datasource-jsonschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on JSON data. - * - * @module datasource - * @submodule datasource-jsonschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceJSONSchema - * @extends Plugin.Base - */ -var DataSourceJSONSchema = function() { - DataSourceJSONSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceJSONSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceJSONSchema" - */ - NAME: "dataSourceJSONSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceJSONSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceJSONSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. To accommodate XHR responses, - * will first look for data in data.responseText. Otherwise will just work - * with data. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = e.data ? (e.data.responseText ? e.data.responseText : e.data) : e.data, - response = Y.DataSchema.JSON.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-json']}); -YUI.add('datasource-xmlschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on XML data. - * - * @module datasource - * @submodule datasource-xmlschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceXMLSchema - * @extends Plugin.Base - */ -var DataSourceXMLSchema = function() { - DataSourceXMLSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceXMLSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceXMLSchema" - */ - NAME: "dataSourceXMLSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceXMLSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceXMLSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && e.data.responseXML && (e.data.responseXML.nodeType === 9)) ? e.data.responseXML : e.data, - response = Y.DataSchema.XML.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-xml']}); -YUI.add('datasource-arrayschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on array data. - * - * @module datasource - * @submodule datasource-arrayschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceArraySchema - * @extends Plugin.Base - */ -var DataSourceArraySchema = function() { - DataSourceArraySchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceArraySchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceArraySchema" - */ - NAME: "dataSourceArraySchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceArraySchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceArraySchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Array.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceArraySchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-array']}); -YUI.add('datasource-textschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on text data. - * - * @module datasource - * @submodule datasource-textschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceTextSchema - * @extends Plugin.Base - */ -var DataSourceTextSchema = function() { - DataSourceTextSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceTextSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceTextSchema" - */ - NAME: "dataSourceTextSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceTextSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceTextSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Text.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceTextSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-text']}); -YUI.add('datasource-polling', function(Y) { - -/** - * Extends DataSource with polling functionality. - * - * @module datasource - * @submodule datasource-polling - */ - -/** - * Adds polling to the DataSource Utility. - * @class Pollable - * @extends DataSource.Local - */ -function Pollable() { - this._intervals = {}; -} - -Pollable.prototype = { - - /** - * @property _intervals - * @description Hash of polling interval IDs that have been enabled, - * stored here to be able to clear all intervals. - * @private - */ - _intervals: null, - - /** - * Sets up a polling mechanism to send requests at set intervals and - * forward responses to given callback. - * - * @method setInterval - * @param msec {Number} Length of interval in milliseconds. - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Interval ID. - */ - setInterval: function(msec, callback) { - var x = Y.later(msec, this, this.sendRequest, [ callback ], true); - this._intervals[x.id] = x; - return x.id; - }, - - /** - * Disables polling mechanism associated with the given interval ID. - * - * @method clearInterval - * @param id {Number} Interval ID. - */ - clearInterval: function(id, key) { - // In case of being called by clearAllIntervals() - id = key || id; - if(this._intervals[id]) { - // Clear the interval - this._intervals[id].cancel(); - // Clear from tracker - delete this._intervals[id]; - } - }, - - /** - * Clears all intervals. - * - * @method clearAllIntervals - */ - clearAllIntervals: function() { - Y.each(this._intervals, this.clearInterval, this); - } -}; - -Y.augment(Y.DataSource.Local, Pollable); - - -}, '3.4.0' ,{requires:['datasource-local']}); - - -YUI.add('datasource', function(Y){}, '3.4.0' ,{use:['datasource-local','datasource-io','datasource-get','datasource-function','datasource-cache','datasource-jsonschema','datasource-xmlschema','datasource-arrayschema','datasource-textschema','datasource-polling']}); - diff --git a/build/datasource/datasource-function-debug.js b/build/datasource/datasource-function-debug.js deleted file mode 100644 index ca40552548d..00000000000 --- a/build/datasource/datasource-function-debug.js +++ /dev/null @@ -1,116 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-function', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data from a custom function. - * - * @module datasource - * @submodule datasource-function - */ - -/** - * Function subclass for the DataSource Utility. - * @class DataSource.Function - * @extends DataSource.Local - * @constructor - */ -var LANG = Y.Lang, - - DSFn = function() { - DSFn.superclass.constructor.apply(this, arguments); - }; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSFn, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceFunction" - */ - NAME: "dataSourceFunction", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - validator: LANG.isFunction - } - } -}); - -Y.extend(DSFn, Y.DataSource.Local, { - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var fn = this.get("source"), - response; - - if(fn) { - try { - response = fn(e.request, this, e); - this.fire("data", Y.mix({data:response}, e)); - } - catch(error) { - e.error = error; - Y.log("Function execution failure", "error", "datasource-function"); - this.fire("data", e); - } - } - else { - e.error = new Error("Function data failure"); - Y.log("Function data failure", "error", "datasource-function"); - this.fire("data", e); - } - - return e.tId; - } -}); - -Y.DataSource.Function = DSFn; - - - -}, '3.4.0' ,{requires:['datasource-local']}); diff --git a/build/datasource/datasource-function-min.js b/build/datasource/datasource-function-min.js deleted file mode 100644 index 8fd198edfc3..00000000000 --- a/build/datasource/datasource-function-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-function",function(b){var a=b.Lang,c=function(){c.superclass.constructor.apply(this,arguments);};b.mix(c,{NAME:"dataSourceFunction",ATTRS:{source:{validator:a.isFunction}}});b.extend(c,b.DataSource.Local,{_defRequestFn:function(h){var g=this.get("source"),d;if(g){try{d=g(h.request,this,h);this.fire("data",b.mix({data:d},h));}catch(f){h.error=f;this.fire("data",h);}}else{h.error=new Error("Function data failure");this.fire("data",h);}return h.tId;}});b.DataSource.Function=c;},"3.4.0",{requires:["datasource-local"]}); \ No newline at end of file diff --git a/build/datasource/datasource-function.js b/build/datasource/datasource-function.js deleted file mode 100644 index 91cdc3d483e..00000000000 --- a/build/datasource/datasource-function.js +++ /dev/null @@ -1,114 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-function', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data from a custom function. - * - * @module datasource - * @submodule datasource-function - */ - -/** - * Function subclass for the DataSource Utility. - * @class DataSource.Function - * @extends DataSource.Local - * @constructor - */ -var LANG = Y.Lang, - - DSFn = function() { - DSFn.superclass.constructor.apply(this, arguments); - }; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSFn, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceFunction" - */ - NAME: "dataSourceFunction", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - validator: LANG.isFunction - } - } -}); - -Y.extend(DSFn, Y.DataSource.Local, { - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var fn = this.get("source"), - response; - - if(fn) { - try { - response = fn(e.request, this, e); - this.fire("data", Y.mix({data:response}, e)); - } - catch(error) { - e.error = error; - this.fire("data", e); - } - } - else { - e.error = new Error("Function data failure"); - this.fire("data", e); - } - - return e.tId; - } -}); - -Y.DataSource.Function = DSFn; - - - -}, '3.4.0' ,{requires:['datasource-local']}); diff --git a/build/datasource/datasource-get-debug.js b/build/datasource/datasource-get-debug.js deleted file mode 100644 index 78b428eb1e4..00000000000 --- a/build/datasource/datasource-get-debug.js +++ /dev/null @@ -1,213 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-get', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the Get Utility. - * - * @module datasource - * @submodule datasource-get - */ - -/** - * Get Utility subclass for the DataSource Utility. - * @class DataSource.Get - * @extends DataSource.Local - * @constructor - */ -var DSGet = function() { - DSGet.superclass.constructor.apply(this, arguments); -}; - - -Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, { - /** - * Passes query string to Get Utility. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - get = this.get("get"), - guid = Y.guid().replace(/\-/g, '_'), - generateRequest = this.get( "generateRequestCallback" ), - o; - - /** - * Stores the most recent request id for validation against stale - * response handling. - * - * @property _last - * @type {String} - * @protected - */ - this._last = guid; - - // Dynamically add handler function with a closure to the callback stack - // for access to guid - YUI.Env.DataSource.callbacks[guid] = Y.bind(function(response) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - var process = this.get('asyncMode') !== "ignoreStaleResponses" || - this._last === guid; - - if (process) { - this.fire("data", Y.mix({ data: response }, e)); - } else { - Y.log("DataSource ignored stale response for id " + e.tId + "(" + e.request + ")", "info", "datasource-get"); - } - - }, this); - - // Add the callback param to the request url - uri += e.request + generateRequest.call( this, guid ); - - Y.log("DataSource is querying URL " + uri, "info", "datasource-get"); - - Y.DataSource.Local.transactions[e.tId] = get.script(uri, { - autopurge: true, - // Works in Firefox only.... - onFailure: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data failure"); - Y.log("Script node data failure", "error", "datasource-get"); - this.fire("data", e); - }, this, e), - onTimeout: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data timeout"); - Y.log("Script node data timeout", "error", "datasource-get"); - this.fire("data", e); - }, this, e) - }); - - return e.tId; - }, - - - /** - * Default method for adding callback param to url. See - * generateRequestCallback attribute. - * - * @method _generateRequest - * @param guid {String} unique identifier for callback function wrapper - * @protected - */ - _generateRequest: function (guid) { - return "&" + this.get("scriptCallbackParam") + - "=YUI.Env.DataSource.callbacks." + guid; - } - -}, { - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceGet" - */ - NAME: "dataSourceGet", - - - //////////////////////////////////////////////////////////////////////////// - // - // DataSource.Get Attributes - // - //////////////////////////////////////////////////////////////////////////// - ATTRS: { - /** - * Pointer to Get Utility. - * - * @attribute get - * @type Y.Get - * @default Y.Get - */ - get: { - value: Y.Get, - cloneDefaultValue: false - }, - - /** - * Defines request/response management in the following manner: - *
                                  - * - *
                                  ignoreStaleResponses
                                  - *
                                  Send all requests, but handle only the response for the most - * recently sent request.
                                  - *
                                  allowAll
                                  - *
                                  Send all requests and handle all responses.
                                  - *
                                  - * - * @attribute asyncMode - * @type String - * @default "allowAll" - */ - asyncMode: { - value: "allowAll" - }, - - /** - * Callback string parameter name sent to the remote script. By default, - * requests are sent to - * <URI>?<scriptCallbackParam>=callbackFunction - * - * @attribute scriptCallbackParam - * @type String - * @default "callback" - */ - scriptCallbackParam : { - value: "callback" - }, - - /** - * Accepts the DataSource instance and a callback ID, and returns a callback - * param/value string that gets appended to the script URI. Implementers - * can customize this string to match their server's query syntax. - * - * @attribute generateRequestCallback - * @type Function - */ - generateRequestCallback : { - value: function () { - return this._generateRequest.apply(this, arguments); - } - } - } -}); - -YUI.namespace("Env.DataSource.callbacks"); - - -}, '3.4.0' ,{requires:['datasource-local', 'get']}); diff --git a/build/datasource/datasource-get-min.js b/build/datasource/datasource-get-min.js deleted file mode 100644 index dceeb79d18d..00000000000 --- a/build/datasource/datasource-get-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-get",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.DataSource.Get=b.extend(a,b.DataSource.Local,{_defRequestFn:function(h){var g=this.get("source"),d=this.get("get"),c=b.guid().replace(/\-/g,"_"),f=this.get("generateRequestCallback"),i;this._last=c;YUI.Env.DataSource.callbacks[c]=b.bind(function(e){delete YUI.Env.DataSource.callbacks[c];delete b.DataSource.Local.transactions[h.tId];var j=this.get("asyncMode")!=="ignoreStaleResponses"||this._last===c;if(j){this.fire("data",b.mix({data:e},h));}else{}},this);g+=h.request+f.call(this,c);b.DataSource.Local.transactions[h.tId]=d.script(g,{autopurge:true,onFailure:b.bind(function(j,k){delete YUI.Env.DataSource.callbacks[c];delete b.DataSource.Local.transactions[j.tId];j.error=new Error(k.msg||"Script node data failure");this.fire("data",j);},this,h),onTimeout:b.bind(function(j,k){delete YUI.Env.DataSource.callbacks[c];delete b.DataSource.Local.transactions[j.tId];j.error=new Error(k.msg||"Script node data timeout");this.fire("data",j);},this,h)});return h.tId;},_generateRequest:function(c){return"&"+this.get("scriptCallbackParam")+"=YUI.Env.DataSource.callbacks."+c;}},{NAME:"dataSourceGet",ATTRS:{get:{value:b.Get,cloneDefaultValue:false},asyncMode:{value:"allowAll"},scriptCallbackParam:{value:"callback"},generateRequestCallback:{value:function(){return this._generateRequest.apply(this,arguments);}}}});YUI.namespace("Env.DataSource.callbacks");},"3.4.0",{requires:["datasource-local","get"]}); \ No newline at end of file diff --git a/build/datasource/datasource-get.js b/build/datasource/datasource-get.js deleted file mode 100644 index 3b6eb13b549..00000000000 --- a/build/datasource/datasource-get.js +++ /dev/null @@ -1,209 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-get', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the Get Utility. - * - * @module datasource - * @submodule datasource-get - */ - -/** - * Get Utility subclass for the DataSource Utility. - * @class DataSource.Get - * @extends DataSource.Local - * @constructor - */ -var DSGet = function() { - DSGet.superclass.constructor.apply(this, arguments); -}; - - -Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, { - /** - * Passes query string to Get Utility. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - get = this.get("get"), - guid = Y.guid().replace(/\-/g, '_'), - generateRequest = this.get( "generateRequestCallback" ), - o; - - /** - * Stores the most recent request id for validation against stale - * response handling. - * - * @property _last - * @type {String} - * @protected - */ - this._last = guid; - - // Dynamically add handler function with a closure to the callback stack - // for access to guid - YUI.Env.DataSource.callbacks[guid] = Y.bind(function(response) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - var process = this.get('asyncMode') !== "ignoreStaleResponses" || - this._last === guid; - - if (process) { - this.fire("data", Y.mix({ data: response }, e)); - } else { - } - - }, this); - - // Add the callback param to the request url - uri += e.request + generateRequest.call( this, guid ); - - - Y.DataSource.Local.transactions[e.tId] = get.script(uri, { - autopurge: true, - // Works in Firefox only.... - onFailure: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data failure"); - this.fire("data", e); - }, this, e), - onTimeout: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data timeout"); - this.fire("data", e); - }, this, e) - }); - - return e.tId; - }, - - - /** - * Default method for adding callback param to url. See - * generateRequestCallback attribute. - * - * @method _generateRequest - * @param guid {String} unique identifier for callback function wrapper - * @protected - */ - _generateRequest: function (guid) { - return "&" + this.get("scriptCallbackParam") + - "=YUI.Env.DataSource.callbacks." + guid; - } - -}, { - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceGet" - */ - NAME: "dataSourceGet", - - - //////////////////////////////////////////////////////////////////////////// - // - // DataSource.Get Attributes - // - //////////////////////////////////////////////////////////////////////////// - ATTRS: { - /** - * Pointer to Get Utility. - * - * @attribute get - * @type Y.Get - * @default Y.Get - */ - get: { - value: Y.Get, - cloneDefaultValue: false - }, - - /** - * Defines request/response management in the following manner: - *
                                  - * - *
                                  ignoreStaleResponses
                                  - *
                                  Send all requests, but handle only the response for the most - * recently sent request.
                                  - *
                                  allowAll
                                  - *
                                  Send all requests and handle all responses.
                                  - *
                                  - * - * @attribute asyncMode - * @type String - * @default "allowAll" - */ - asyncMode: { - value: "allowAll" - }, - - /** - * Callback string parameter name sent to the remote script. By default, - * requests are sent to - * <URI>?<scriptCallbackParam>=callbackFunction - * - * @attribute scriptCallbackParam - * @type String - * @default "callback" - */ - scriptCallbackParam : { - value: "callback" - }, - - /** - * Accepts the DataSource instance and a callback ID, and returns a callback - * param/value string that gets appended to the script URI. Implementers - * can customize this string to match their server's query syntax. - * - * @attribute generateRequestCallback - * @type Function - */ - generateRequestCallback : { - value: function () { - return this._generateRequest.apply(this, arguments); - } - } - } -}); - -YUI.namespace("Env.DataSource.callbacks"); - - -}, '3.4.0' ,{requires:['datasource-local', 'get']}); diff --git a/build/datasource/datasource-io-debug.js b/build/datasource/datasource-io-debug.js deleted file mode 100644 index 076ef3bc0f6..00000000000 --- a/build/datasource/datasource-io-debug.js +++ /dev/null @@ -1,202 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-io', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the IO Utility. - * - * @module datasource - * @submodule datasource-io - */ - -/** - * IO subclass for the DataSource Utility. - * @class DataSource.IO - * @extends DataSource.Local - * @constructor - */ -var DSIO = function() { - DSIO.superclass.constructor.apply(this, arguments); -}; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSIO, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceIO" - */ - NAME: "dataSourceIO", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * Pointer to IO Utility. - * - * @attribute io - * @type Y.io - * @default Y.io - */ - io: { - value: Y.io, - cloneDefaultValue: false - }, - - /** - * Default IO Config. - * - * @attribute ioConfig - * @type Object - * @default null - */ - ioConfig: { - value: null - } - } -}); - -Y.extend(DSIO, Y.DataSource.Local, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._queue = {interval:null, conn:null, requests:[]}; - }, - - /** - * IO success callback. - * - * @method successHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - successHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - this.fire("data", Y.mix({data:response}, e)); - Y.log("Received IO data response for \"" + e.request + "\"", "info", "datasource-io"); - if (defIOConfig && defIOConfig.on && defIOConfig.on.success) { - defIOConfig.on.success.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * IO failure callback. - * - * @method failureHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - failureHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error("IO data failure"); - Y.log("IO data failure", "error", "datasource-io"); - this.fire("data", Y.mix({data:response}, e)); - Y.log("Received IO data failure for \"" + e.request + "\"", "info", "datasource-io"); - if (defIOConfig && defIOConfig.on && defIOConfig.on.failure) { - defIOConfig.on.failure.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * @property _queue - * @description Object literal to manage asynchronous request/response - * cycles enabled if queue needs to be managed (asyncMode/ioConnMode): - *
                                  - *
                                  interval {Number}
                                  - *
                                  Interval ID of in-progress queue.
                                  - *
                                  conn
                                  - *
                                  In-progress connection identifier (if applicable).
                                  - *
                                  requests {Object[]}
                                  - *
                                  Array of queued request objects: {request:request, callback:callback}.
                                  - *
                                  - * @type Object - * @default {interval:null, conn:null, requests:[]} - * @private - */ - _queue: null, - - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - io = this.get("io"), - defIOConfig = this.get("ioConfig"), - request = e.request, - cfg = Y.merge(defIOConfig, e.cfg, { - on: Y.merge(defIOConfig, { - success: this.successHandler, - failure: this.failureHandler - }), - context: this, - "arguments": e - }); - - // Support for POST transactions - if(Y.Lang.isString(request)) { - if(cfg.method && (cfg.method.toUpperCase() === "POST")) { - cfg.data = cfg.data ? cfg.data+request : request; - } - else { - uri += request; - } - } - Y.DataSource.Local.transactions[e.tId] = io(uri, cfg); - return e.tId; - } -}); - -Y.DataSource.IO = DSIO; - - -}, '3.4.0' ,{requires:['datasource-local', 'io-base']}); diff --git a/build/datasource/datasource-io-min.js b/build/datasource/datasource-io-min.js deleted file mode 100644 index 5052cfe3667..00000000000 --- a/build/datasource/datasource-io-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-io",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NAME:"dataSourceIO",ATTRS:{io:{value:b.io,cloneDefaultValue:false},ioConfig:{value:null}}});b.extend(a,b.DataSource.Local,{initializer:function(c){this._queue={interval:null,conn:null,requests:[]};},successHandler:function(g,c,f){var d=this.get("ioConfig");delete b.DataSource.Local.transactions[f.tId];this.fire("data",b.mix({data:c},f));if(d&&d.on&&d.on.success){d.on.success.apply(d.context||b,arguments);}},failureHandler:function(g,c,f){var d=this.get("ioConfig");delete b.DataSource.Local.transactions[f.tId];f.error=new Error("IO data failure");this.fire("data",b.mix({data:c},f));if(d&&d.on&&d.on.failure){d.on.failure.apply(d.context||b,arguments);}},_queue:null,_defRequestFn:function(h){var g=this.get("source"),i=this.get("io"),d=this.get("ioConfig"),f=h.request,c=b.merge(d,h.cfg,{on:b.merge(d,{success:this.successHandler,failure:this.failureHandler}),context:this,"arguments":h});if(b.Lang.isString(f)){if(c.method&&(c.method.toUpperCase()==="POST")){c.data=c.data?c.data+f:f;}else{g+=f;}}b.DataSource.Local.transactions[h.tId]=i(g,c);return h.tId;}});b.DataSource.IO=a;},"3.4.0",{requires:["datasource-local","io-base"]}); \ No newline at end of file diff --git a/build/datasource/datasource-io.js b/build/datasource/datasource-io.js deleted file mode 100644 index c4eec34e51e..00000000000 --- a/build/datasource/datasource-io.js +++ /dev/null @@ -1,199 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-io', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the IO Utility. - * - * @module datasource - * @submodule datasource-io - */ - -/** - * IO subclass for the DataSource Utility. - * @class DataSource.IO - * @extends DataSource.Local - * @constructor - */ -var DSIO = function() { - DSIO.superclass.constructor.apply(this, arguments); -}; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSIO, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceIO" - */ - NAME: "dataSourceIO", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * Pointer to IO Utility. - * - * @attribute io - * @type Y.io - * @default Y.io - */ - io: { - value: Y.io, - cloneDefaultValue: false - }, - - /** - * Default IO Config. - * - * @attribute ioConfig - * @type Object - * @default null - */ - ioConfig: { - value: null - } - } -}); - -Y.extend(DSIO, Y.DataSource.Local, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._queue = {interval:null, conn:null, requests:[]}; - }, - - /** - * IO success callback. - * - * @method successHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - successHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - this.fire("data", Y.mix({data:response}, e)); - if (defIOConfig && defIOConfig.on && defIOConfig.on.success) { - defIOConfig.on.success.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * IO failure callback. - * - * @method failureHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - failureHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error("IO data failure"); - this.fire("data", Y.mix({data:response}, e)); - if (defIOConfig && defIOConfig.on && defIOConfig.on.failure) { - defIOConfig.on.failure.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * @property _queue - * @description Object literal to manage asynchronous request/response - * cycles enabled if queue needs to be managed (asyncMode/ioConnMode): - *
                                  - *
                                  interval {Number}
                                  - *
                                  Interval ID of in-progress queue.
                                  - *
                                  conn
                                  - *
                                  In-progress connection identifier (if applicable).
                                  - *
                                  requests {Object[]}
                                  - *
                                  Array of queued request objects: {request:request, callback:callback}.
                                  - *
                                  - * @type Object - * @default {interval:null, conn:null, requests:[]} - * @private - */ - _queue: null, - - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - io = this.get("io"), - defIOConfig = this.get("ioConfig"), - request = e.request, - cfg = Y.merge(defIOConfig, e.cfg, { - on: Y.merge(defIOConfig, { - success: this.successHandler, - failure: this.failureHandler - }), - context: this, - "arguments": e - }); - - // Support for POST transactions - if(Y.Lang.isString(request)) { - if(cfg.method && (cfg.method.toUpperCase() === "POST")) { - cfg.data = cfg.data ? cfg.data+request : request; - } - else { - uri += request; - } - } - Y.DataSource.Local.transactions[e.tId] = io(uri, cfg); - return e.tId; - } -}); - -Y.DataSource.IO = DSIO; - - -}, '3.4.0' ,{requires:['datasource-local', 'io-base']}); diff --git a/build/datasource/datasource-jsonschema-debug.js b/build/datasource/datasource-jsonschema-debug.js deleted file mode 100644 index cf554dc7cbc..00000000000 --- a/build/datasource/datasource-jsonschema-debug.js +++ /dev/null @@ -1,111 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-jsonschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on JSON data. - * - * @module datasource - * @submodule datasource-jsonschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceJSONSchema - * @extends Plugin.Base - */ -var DataSourceJSONSchema = function() { - DataSourceJSONSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceJSONSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceJSONSchema" - */ - NAME: "dataSourceJSONSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceJSONSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceJSONSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. To accommodate XHR responses, - * will first look for data in data.responseText. Otherwise will just work - * with data. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = e.data ? (e.data.responseText ? e.data.responseText : e.data) : e.data, - response = Y.DataSchema.JSON.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-json']}); diff --git a/build/datasource/datasource-jsonschema-min.js b/build/datasource/datasource-jsonschema-min.js deleted file mode 100644 index 8c83bcae0c4..00000000000 --- a/build/datasource/datasource-jsonschema-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-jsonschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceJSONSchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=f.data?(f.data.responseText?f.data.responseText:f.data):f.data,c=b.DataSchema.JSON.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f));return new b.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceJSONSchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-json"]}); \ No newline at end of file diff --git a/build/datasource/datasource-jsonschema.js b/build/datasource/datasource-jsonschema.js deleted file mode 100644 index cf554dc7cbc..00000000000 --- a/build/datasource/datasource-jsonschema.js +++ /dev/null @@ -1,111 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-jsonschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on JSON data. - * - * @module datasource - * @submodule datasource-jsonschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceJSONSchema - * @extends Plugin.Base - */ -var DataSourceJSONSchema = function() { - DataSourceJSONSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceJSONSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceJSONSchema" - */ - NAME: "dataSourceJSONSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceJSONSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceJSONSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. To accommodate XHR responses, - * will first look for data in data.responseText. Otherwise will just work - * with data. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = e.data ? (e.data.responseText ? e.data.responseText : e.data) : e.data, - response = Y.DataSchema.JSON.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-json']}); diff --git a/build/datasource/datasource-local-debug.js b/build/datasource/datasource-local-debug.js deleted file mode 100644 index 310bb19e3a0..00000000000 --- a/build/datasource/datasource-local-debug.js +++ /dev/null @@ -1,357 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-local', function(Y) { - -/** - * The DataSource utility provides a common configurable interface for widgets to - * access a variety of data, from JavaScript arrays to online database servers. - * - * @module datasource - */ - -/** - * Provides the base DataSource implementation, which can be extended to - * create DataSources for specific data protocols, such as the IO Utility, the - * Get Utility, or custom functions. - * - * @module datasource - * @submodule datasource-local - */ - -/** - * Base class for the DataSource Utility. - * @class DataSource.Local - * @extends Base - * @constructor - */ -var LANG = Y.Lang, - -DSLocal = function() { - DSLocal.superclass.constructor.apply(this, arguments); -}; - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSLocal, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceLocal" - */ - NAME: "dataSourceLocal", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - value: null - } - }, - - /** - * Global transaction counter. - * - * @property DataSource._tId - * @type Number - * @static - * @private - * @default 0 - */ - _tId: 0, - - /** - * Global in-progress transaction objects. - * - * @property DataSource.transactions - * @type Object - * @static - */ - transactions: {}, - - /** - * Returns data to callback. - * - * @method DataSource.issueCallback - * @param e {EventFacade} Event Facade. - * @param caller {DataSource} Calling DataSource instance. - * @static - */ - issueCallback: function (e, caller) { - var error = (e.error || e.response.error); - if(error) { - e.error = e.error || e.response.error; - caller.fire("error", e); - } - if(e.callback) { - var callbackFunc = (error && e.callback.failure) || e.callback.success; - if (callbackFunc) { - callbackFunc(e); - } - } - } -}); - -Y.extend(DSLocal, Y.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._initEvents(); - }, - - /** - * This method creates all the events for this module. - * @method _initEvents - * @private - */ - _initEvents: function() { - /** - * Fired when a data request is received. - * - * @event request - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @preventable _defRequestFn - */ - this.publish("request", {defaultFn: Y.bind("_defRequestFn", this), queuable:true}); - - /** - * Fired when raw data is received. - * - * @event data - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @preventable _defDataFn - */ - this.publish("data", {defaultFn: Y.bind("_defDataFn", this), queuable:true}); - - /** - * Fired when response is returned. - * - * @event response - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @preventable _defResponseFn - */ - this.publish("response", {defaultFn: Y.bind("_defResponseFn", this), queuable:true}); - - /** - * Fired when an error is encountered. - * - * @event error - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  - */ - - }, - - /** - * Manages request/response transaction. Must fire response - * event when response is received. This method should be implemented by - * subclasses to achieve more complex behavior such as accessing remote data. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facadewith the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var data = this.get("source"); - - // Problematic data - if(LANG.isUndefined(data)) { - e.error = new Error("Local source undefined"); - Y.log("Local source undefined", "error", "datasource-local"); - } - - this.fire("data", Y.mix({data:data}, e)); - Y.log("Transaction " + e.tId + " complete. Request: " + - Y.dump(e.request) + " . Response: " + Y.dump(e.response), "info", "datasource-local"); - }, - - /** - * Normalizes raw data into a response that includes results and meta properties. - * - * @method _defDataFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @protected - */ - _defDataFn: function(e) { - var data = e.data, - meta = e.meta, - response = { - results: (LANG.isArray(data)) ? data : [data], - meta: (meta) ? meta : {} - }; - - this.fire("response", Y.mix({response: response}, e)); - }, - - /** - * Sends data as a normalized response to callback. - * - * @method _defResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @protected - */ - _defResponseFn: function(e) { - // Send the response back to the callback - DSLocal.issueCallback(e, this); - }, - - /** - * Generates a unique transaction ID and fires request event. - * - * @method sendRequest - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Transaction ID. - */ - sendRequest: function(request) { - request = request || {}; - var tId = DSLocal._tId++; - this.fire("request", {tId:tId, request:request.request, callback:request.callback, cfg:request.cfg || {}}); - Y.log("Transaction " + tId + " sent request: " + Y.dump(request.request), "info", "datasource-local"); - return tId; - } -}); - -Y.namespace("DataSource").Local = DSLocal; - - -}, '3.4.0' ,{requires:['base']}); diff --git a/build/datasource/datasource-local-min.js b/build/datasource/datasource-local-min.js deleted file mode 100644 index e923a407b75..00000000000 --- a/build/datasource/datasource-local-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-local",function(c){var b=c.Lang,a=function(){a.superclass.constructor.apply(this,arguments);};c.mix(a,{NAME:"dataSourceLocal",ATTRS:{source:{value:null}},_tId:0,transactions:{},issueCallback:function(h,g){var f=(h.error||h.response.error);if(f){h.error=h.error||h.response.error;g.fire("error",h);}if(h.callback){var d=(f&&h.callback.failure)||h.callback.success;if(d){d(h);}}}});c.extend(a,c.Base,{initializer:function(d){this._initEvents();},_initEvents:function(){this.publish("request",{defaultFn:c.bind("_defRequestFn",this),queuable:true});this.publish("data",{defaultFn:c.bind("_defDataFn",this),queuable:true});this.publish("response",{defaultFn:c.bind("_defResponseFn",this),queuable:true});},_defRequestFn:function(f){var d=this.get("source");if(b.isUndefined(d)){f.error=new Error("Local source undefined");}this.fire("data",c.mix({data:d},f));},_defDataFn:function(h){var f=h.data,g=h.meta,d={results:(b.isArray(f))?f:[f],meta:(g)?g:{}};this.fire("response",c.mix({response:d},h));},_defResponseFn:function(d){a.issueCallback(d,this);},sendRequest:function(d){d=d||{};var e=a._tId++;this.fire("request",{tId:e,request:d.request,callback:d.callback,cfg:d.cfg||{}});return e;}});c.namespace("DataSource").Local=a;},"3.4.0",{requires:["base"]}); \ No newline at end of file diff --git a/build/datasource/datasource-local.js b/build/datasource/datasource-local.js deleted file mode 100644 index b171f479a67..00000000000 --- a/build/datasource/datasource-local.js +++ /dev/null @@ -1,353 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-local', function(Y) { - -/** - * The DataSource utility provides a common configurable interface for widgets to - * access a variety of data, from JavaScript arrays to online database servers. - * - * @module datasource - */ - -/** - * Provides the base DataSource implementation, which can be extended to - * create DataSources for specific data protocols, such as the IO Utility, the - * Get Utility, or custom functions. - * - * @module datasource - * @submodule datasource-local - */ - -/** - * Base class for the DataSource Utility. - * @class DataSource.Local - * @extends Base - * @constructor - */ -var LANG = Y.Lang, - -DSLocal = function() { - DSLocal.superclass.constructor.apply(this, arguments); -}; - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSLocal, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceLocal" - */ - NAME: "dataSourceLocal", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - value: null - } - }, - - /** - * Global transaction counter. - * - * @property DataSource._tId - * @type Number - * @static - * @private - * @default 0 - */ - _tId: 0, - - /** - * Global in-progress transaction objects. - * - * @property DataSource.transactions - * @type Object - * @static - */ - transactions: {}, - - /** - * Returns data to callback. - * - * @method DataSource.issueCallback - * @param e {EventFacade} Event Facade. - * @param caller {DataSource} Calling DataSource instance. - * @static - */ - issueCallback: function (e, caller) { - var error = (e.error || e.response.error); - if(error) { - e.error = e.error || e.response.error; - caller.fire("error", e); - } - if(e.callback) { - var callbackFunc = (error && e.callback.failure) || e.callback.success; - if (callbackFunc) { - callbackFunc(e); - } - } - } -}); - -Y.extend(DSLocal, Y.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._initEvents(); - }, - - /** - * This method creates all the events for this module. - * @method _initEvents - * @private - */ - _initEvents: function() { - /** - * Fired when a data request is received. - * - * @event request - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @preventable _defRequestFn - */ - this.publish("request", {defaultFn: Y.bind("_defRequestFn", this), queuable:true}); - - /** - * Fired when raw data is received. - * - * @event data - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @preventable _defDataFn - */ - this.publish("data", {defaultFn: Y.bind("_defDataFn", this), queuable:true}); - - /** - * Fired when response is returned. - * - * @event response - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @preventable _defResponseFn - */ - this.publish("response", {defaultFn: Y.bind("_defResponseFn", this), queuable:true}); - - /** - * Fired when an error is encountered. - * - * @event error - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  - */ - - }, - - /** - * Manages request/response transaction. Must fire response - * event when response is received. This method should be implemented by - * subclasses to achieve more complex behavior such as accessing remote data. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facadewith the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var data = this.get("source"); - - // Problematic data - if(LANG.isUndefined(data)) { - e.error = new Error("Local source undefined"); - } - - this.fire("data", Y.mix({data:data}, e)); - }, - - /** - * Normalizes raw data into a response that includes results and meta properties. - * - * @method _defDataFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @protected - */ - _defDataFn: function(e) { - var data = e.data, - meta = e.meta, - response = { - results: (LANG.isArray(data)) ? data : [data], - meta: (meta) ? meta : {} - }; - - this.fire("response", Y.mix({response: response}, e)); - }, - - /** - * Sends data as a normalized response to callback. - * - * @method _defResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @protected - */ - _defResponseFn: function(e) { - // Send the response back to the callback - DSLocal.issueCallback(e, this); - }, - - /** - * Generates a unique transaction ID and fires request event. - * - * @method sendRequest - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Transaction ID. - */ - sendRequest: function(request) { - request = request || {}; - var tId = DSLocal._tId++; - this.fire("request", {tId:tId, request:request.request, callback:request.callback, cfg:request.cfg || {}}); - return tId; - } -}); - -Y.namespace("DataSource").Local = DSLocal; - - -}, '3.4.0' ,{requires:['base']}); diff --git a/build/datasource/datasource-min.js b/build/datasource/datasource-min.js deleted file mode 100644 index 6db01edac8f..00000000000 --- a/build/datasource/datasource-min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-local",function(c){var b=c.Lang,a=function(){a.superclass.constructor.apply(this,arguments);};c.mix(a,{NAME:"dataSourceLocal",ATTRS:{source:{value:null}},_tId:0,transactions:{},issueCallback:function(h,g){var f=(h.error||h.response.error);if(f){h.error=h.error||h.response.error;g.fire("error",h);}if(h.callback){var d=(f&&h.callback.failure)||h.callback.success;if(d){d(h);}}}});c.extend(a,c.Base,{initializer:function(d){this._initEvents();},_initEvents:function(){this.publish("request",{defaultFn:c.bind("_defRequestFn",this),queuable:true});this.publish("data",{defaultFn:c.bind("_defDataFn",this),queuable:true});this.publish("response",{defaultFn:c.bind("_defResponseFn",this),queuable:true});},_defRequestFn:function(f){var d=this.get("source");if(b.isUndefined(d)){f.error=new Error("Local source undefined");}this.fire("data",c.mix({data:d},f));},_defDataFn:function(h){var f=h.data,g=h.meta,d={results:(b.isArray(f))?f:[f],meta:(g)?g:{}};this.fire("response",c.mix({response:d},h));},_defResponseFn:function(d){a.issueCallback(d,this);},sendRequest:function(d){d=d||{};var e=a._tId++;this.fire("request",{tId:e,request:d.request,callback:d.callback,cfg:d.cfg||{}});return e;}});c.namespace("DataSource").Local=a;},"3.4.0",{requires:["base"]});YUI.add("datasource-io",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NAME:"dataSourceIO",ATTRS:{io:{value:b.io,cloneDefaultValue:false},ioConfig:{value:null}}});b.extend(a,b.DataSource.Local,{initializer:function(c){this._queue={interval:null,conn:null,requests:[]};},successHandler:function(g,c,f){var d=this.get("ioConfig");delete b.DataSource.Local.transactions[f.tId];this.fire("data",b.mix({data:c},f));if(d&&d.on&&d.on.success){d.on.success.apply(d.context||b,arguments);}},failureHandler:function(g,c,f){var d=this.get("ioConfig");delete b.DataSource.Local.transactions[f.tId];f.error=new Error("IO data failure");this.fire("data",b.mix({data:c},f));if(d&&d.on&&d.on.failure){d.on.failure.apply(d.context||b,arguments);}},_queue:null,_defRequestFn:function(h){var g=this.get("source"),i=this.get("io"),d=this.get("ioConfig"),f=h.request,c=b.merge(d,h.cfg,{on:b.merge(d,{success:this.successHandler,failure:this.failureHandler}),context:this,"arguments":h});if(b.Lang.isString(f)){if(c.method&&(c.method.toUpperCase()==="POST")){c.data=c.data?c.data+f:f;}else{g+=f;}}b.DataSource.Local.transactions[h.tId]=i(g,c);return h.tId;}});b.DataSource.IO=a;},"3.4.0",{requires:["datasource-local","io-base"]});YUI.add("datasource-get",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.DataSource.Get=b.extend(a,b.DataSource.Local,{_defRequestFn:function(h){var g=this.get("source"),d=this.get("get"),c=b.guid().replace(/\-/g,"_"),f=this.get("generateRequestCallback"),i;this._last=c;YUI.Env.DataSource.callbacks[c]=b.bind(function(e){delete YUI.Env.DataSource.callbacks[c];delete b.DataSource.Local.transactions[h.tId];var j=this.get("asyncMode")!=="ignoreStaleResponses"||this._last===c;if(j){this.fire("data",b.mix({data:e},h));}else{}},this);g+=h.request+f.call(this,c);b.DataSource.Local.transactions[h.tId]=d.script(g,{autopurge:true,onFailure:b.bind(function(j,k){delete YUI.Env.DataSource.callbacks[c];delete b.DataSource.Local.transactions[j.tId];j.error=new Error(k.msg||"Script node data failure");this.fire("data",j);},this,h),onTimeout:b.bind(function(j,k){delete YUI.Env.DataSource.callbacks[c];delete b.DataSource.Local.transactions[j.tId];j.error=new Error(k.msg||"Script node data timeout");this.fire("data",j);},this,h)});return h.tId;},_generateRequest:function(c){return"&"+this.get("scriptCallbackParam")+"=YUI.Env.DataSource.callbacks."+c;}},{NAME:"dataSourceGet",ATTRS:{get:{value:b.Get,cloneDefaultValue:false},asyncMode:{value:"allowAll"},scriptCallbackParam:{value:"callback"},generateRequestCallback:{value:function(){return this._generateRequest.apply(this,arguments);}}}});YUI.namespace("Env.DataSource.callbacks");},"3.4.0",{requires:["datasource-local","get"]});YUI.add("datasource-function",function(b){var a=b.Lang,c=function(){c.superclass.constructor.apply(this,arguments);};b.mix(c,{NAME:"dataSourceFunction",ATTRS:{source:{validator:a.isFunction}}});b.extend(c,b.DataSource.Local,{_defRequestFn:function(h){var g=this.get("source"),d;if(g){try{d=g(h.request,this,h);this.fire("data",b.mix({data:d},h));}catch(f){h.error=f;this.fire("data",h);}}else{h.error=new Error("Function data failure");this.fire("data",h);}return h.tId;}});b.DataSource.Function=c;},"3.4.0",{requires:["datasource-local"]});YUI.add("datasource-cache",function(c){var b=function(){};c.mix(b,{NS:"cache",NAME:"dataSourceCacheExtension"});b.prototype={initializer:function(d){this.doBefore("_defRequestFn",this._beforeDefRequestFn);this.doBefore("_defResponseFn",this._beforeDefResponseFn);},_beforeDefRequestFn:function(f){var d=(this.retrieve(f.request))||null;if(d&&d.response){this.get("host").fire("response",c.mix(d,f));return new c.Do.Halt("DataSourceCache extension halted _defRequestFn");}},_beforeDefResponseFn:function(d){if(d.response&&!d.cached){this.add(d.request,d.response);}}};c.namespace("Plugin").DataSourceCacheExtension=b;function a(f){var e=f&&f.cache?f.cache:c.Cache,g=c.Base.create("dataSourceCache",e,[c.Plugin.Base,c.Plugin.DataSourceCacheExtension]),d=new g(f);g.NS="tmpClass";return d;}c.mix(a,{NS:"cache",NAME:"dataSourceCache"});c.namespace("Plugin").DataSourceCache=a;},"3.4.0",{requires:["datasource-local","cache-base","plugin"]});YUI.add("datasource-jsonschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceJSONSchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=f.data?(f.data.responseText?f.data.responseText:f.data):f.data,c=b.DataSchema.JSON.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f)); -return new b.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceJSONSchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-json"]});YUI.add("datasource-xmlschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceXMLSchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=(b.DataSource.IO&&(this.get("host") instanceof b.DataSource.IO)&&f.data.responseXML&&(f.data.responseXML.nodeType===9))?f.data.responseXML:f.data,c=b.DataSchema.XML.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f));return new b.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceXMLSchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-xml"]});YUI.add("datasource-arrayschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceArraySchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=(b.DataSource.IO&&(this.get("host") instanceof b.DataSource.IO)&&b.Lang.isString(f.data.responseText))?f.data.responseText:f.data,c=b.DataSchema.Array.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f));return new b.Do.Halt("DataSourceArraySchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceArraySchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-array"]});YUI.add("datasource-textschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceTextSchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=(b.DataSource.IO&&(this.get("host") instanceof b.DataSource.IO)&&b.Lang.isString(f.data.responseText))?f.data.responseText:f.data,c=b.DataSchema.Text.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f));return new b.Do.Halt("DataSourceTextSchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceTextSchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-text"]});YUI.add("datasource-polling",function(b){function a(){this._intervals={};}a.prototype={_intervals:null,setInterval:function(d,e){var c=b.later(d,this,this.sendRequest,[e],true);this._intervals[c.id]=c;return c.id;},clearInterval:function(d,c){d=c||d;if(this._intervals[d]){this._intervals[d].cancel();delete this._intervals[d];}},clearAllIntervals:function(){b.each(this._intervals,this.clearInterval,this);}};b.augment(b.DataSource.Local,a);},"3.4.0",{requires:["datasource-local"]});YUI.add("datasource",function(a){},"3.4.0",{use:["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"]}); \ No newline at end of file diff --git a/build/datasource/datasource-polling-debug.js b/build/datasource/datasource-polling-debug.js deleted file mode 100644 index fca1a9e52e0..00000000000 --- a/build/datasource/datasource-polling-debug.js +++ /dev/null @@ -1,98 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-polling', function(Y) { - -/** - * Extends DataSource with polling functionality. - * - * @module datasource - * @submodule datasource-polling - */ - -/** - * Adds polling to the DataSource Utility. - * @class Pollable - * @extends DataSource.Local - */ -function Pollable() { - this._intervals = {}; -} - -Pollable.prototype = { - - /** - * @property _intervals - * @description Hash of polling interval IDs that have been enabled, - * stored here to be able to clear all intervals. - * @private - */ - _intervals: null, - - /** - * Sets up a polling mechanism to send requests at set intervals and - * forward responses to given callback. - * - * @method setInterval - * @param msec {Number} Length of interval in milliseconds. - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Interval ID. - */ - setInterval: function(msec, callback) { - var x = Y.later(msec, this, this.sendRequest, [ callback ], true); - this._intervals[x.id] = x; - return x.id; - }, - - /** - * Disables polling mechanism associated with the given interval ID. - * - * @method clearInterval - * @param id {Number} Interval ID. - */ - clearInterval: function(id, key) { - // In case of being called by clearAllIntervals() - id = key || id; - if(this._intervals[id]) { - // Clear the interval - this._intervals[id].cancel(); - // Clear from tracker - delete this._intervals[id]; - } - }, - - /** - * Clears all intervals. - * - * @method clearAllIntervals - */ - clearAllIntervals: function() { - Y.each(this._intervals, this.clearInterval, this); - } -}; - -Y.augment(Y.DataSource.Local, Pollable); - - -}, '3.4.0' ,{requires:['datasource-local']}); diff --git a/build/datasource/datasource-polling-min.js b/build/datasource/datasource-polling-min.js deleted file mode 100644 index 479b3d2cd3f..00000000000 --- a/build/datasource/datasource-polling-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-polling",function(b){function a(){this._intervals={};}a.prototype={_intervals:null,setInterval:function(d,e){var c=b.later(d,this,this.sendRequest,[e],true);this._intervals[c.id]=c;return c.id;},clearInterval:function(d,c){d=c||d;if(this._intervals[d]){this._intervals[d].cancel();delete this._intervals[d];}},clearAllIntervals:function(){b.each(this._intervals,this.clearInterval,this);}};b.augment(b.DataSource.Local,a);},"3.4.0",{requires:["datasource-local"]}); \ No newline at end of file diff --git a/build/datasource/datasource-polling.js b/build/datasource/datasource-polling.js deleted file mode 100644 index fca1a9e52e0..00000000000 --- a/build/datasource/datasource-polling.js +++ /dev/null @@ -1,98 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-polling', function(Y) { - -/** - * Extends DataSource with polling functionality. - * - * @module datasource - * @submodule datasource-polling - */ - -/** - * Adds polling to the DataSource Utility. - * @class Pollable - * @extends DataSource.Local - */ -function Pollable() { - this._intervals = {}; -} - -Pollable.prototype = { - - /** - * @property _intervals - * @description Hash of polling interval IDs that have been enabled, - * stored here to be able to clear all intervals. - * @private - */ - _intervals: null, - - /** - * Sets up a polling mechanism to send requests at set intervals and - * forward responses to given callback. - * - * @method setInterval - * @param msec {Number} Length of interval in milliseconds. - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Interval ID. - */ - setInterval: function(msec, callback) { - var x = Y.later(msec, this, this.sendRequest, [ callback ], true); - this._intervals[x.id] = x; - return x.id; - }, - - /** - * Disables polling mechanism associated with the given interval ID. - * - * @method clearInterval - * @param id {Number} Interval ID. - */ - clearInterval: function(id, key) { - // In case of being called by clearAllIntervals() - id = key || id; - if(this._intervals[id]) { - // Clear the interval - this._intervals[id].cancel(); - // Clear from tracker - delete this._intervals[id]; - } - }, - - /** - * Clears all intervals. - * - * @method clearAllIntervals - */ - clearAllIntervals: function() { - Y.each(this._intervals, this.clearInterval, this); - } -}; - -Y.augment(Y.DataSource.Local, Pollable); - - -}, '3.4.0' ,{requires:['datasource-local']}); diff --git a/build/datasource/datasource-textschema-debug.js b/build/datasource/datasource-textschema-debug.js deleted file mode 100644 index 77cf6bc22fa..00000000000 --- a/build/datasource/datasource-textschema-debug.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-textschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on text data. - * - * @module datasource - * @submodule datasource-textschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceTextSchema - * @extends Plugin.Base - */ -var DataSourceTextSchema = function() { - DataSourceTextSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceTextSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceTextSchema" - */ - NAME: "dataSourceTextSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceTextSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceTextSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Text.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceTextSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-text']}); diff --git a/build/datasource/datasource-textschema-min.js b/build/datasource/datasource-textschema-min.js deleted file mode 100644 index db7aa671093..00000000000 --- a/build/datasource/datasource-textschema-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-textschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceTextSchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=(b.DataSource.IO&&(this.get("host") instanceof b.DataSource.IO)&&b.Lang.isString(f.data.responseText))?f.data.responseText:f.data,c=b.DataSchema.Text.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f));return new b.Do.Halt("DataSourceTextSchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceTextSchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-text"]}); \ No newline at end of file diff --git a/build/datasource/datasource-textschema.js b/build/datasource/datasource-textschema.js deleted file mode 100644 index 77cf6bc22fa..00000000000 --- a/build/datasource/datasource-textschema.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-textschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on text data. - * - * @module datasource - * @submodule datasource-textschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceTextSchema - * @extends Plugin.Base - */ -var DataSourceTextSchema = function() { - DataSourceTextSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceTextSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceTextSchema" - */ - NAME: "dataSourceTextSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceTextSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceTextSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Text.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceTextSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-text']}); diff --git a/build/datasource/datasource-xmlschema-debug.js b/build/datasource/datasource-xmlschema-debug.js deleted file mode 100644 index b5971786360..00000000000 --- a/build/datasource/datasource-xmlschema-debug.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-xmlschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on XML data. - * - * @module datasource - * @submodule datasource-xmlschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceXMLSchema - * @extends Plugin.Base - */ -var DataSourceXMLSchema = function() { - DataSourceXMLSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceXMLSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceXMLSchema" - */ - NAME: "dataSourceXMLSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceXMLSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceXMLSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && e.data.responseXML && (e.data.responseXML.nodeType === 9)) ? e.data.responseXML : e.data, - response = Y.DataSchema.XML.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-xml']}); diff --git a/build/datasource/datasource-xmlschema-min.js b/build/datasource/datasource-xmlschema-min.js deleted file mode 100644 index 5b839b34105..00000000000 --- a/build/datasource/datasource-xmlschema-min.js +++ /dev/null @@ -1,8 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add("datasource-xmlschema",function(b){var a=function(){a.superclass.constructor.apply(this,arguments);};b.mix(a,{NS:"schema",NAME:"dataSourceXMLSchema",ATTRS:{schema:{}}});b.extend(a,b.Plugin.Base,{initializer:function(c){this.doBefore("_defDataFn",this._beforeDefDataFn);},_beforeDefDataFn:function(f){var d=(b.DataSource.IO&&(this.get("host") instanceof b.DataSource.IO)&&f.data.responseXML&&(f.data.responseXML.nodeType===9))?f.data.responseXML:f.data,c=b.DataSchema.XML.apply.call(this,this.get("schema"),d);if(!c){c={meta:{},results:d};}this.get("host").fire("response",b.mix({response:c},f));return new b.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn");}});b.namespace("Plugin").DataSourceXMLSchema=a;},"3.4.0",{requires:["datasource-local","plugin","dataschema-xml"]}); \ No newline at end of file diff --git a/build/datasource/datasource-xmlschema.js b/build/datasource/datasource-xmlschema.js deleted file mode 100644 index b5971786360..00000000000 --- a/build/datasource/datasource-xmlschema.js +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-xmlschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on XML data. - * - * @module datasource - * @submodule datasource-xmlschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceXMLSchema - * @extends Plugin.Base - */ -var DataSourceXMLSchema = function() { - DataSourceXMLSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceXMLSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceXMLSchema" - */ - NAME: "dataSourceXMLSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceXMLSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceXMLSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && e.data.responseXML && (e.data.responseXML.nodeType === 9)) ? e.data.responseXML : e.data, - response = Y.DataSchema.XML.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-xml']}); diff --git a/build/datasource/datasource.js b/build/datasource/datasource.js deleted file mode 100644 index 2bc19980e5d..00000000000 --- a/build/datasource/datasource.js +++ /dev/null @@ -1,1518 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datasource-local', function(Y) { - -/** - * The DataSource utility provides a common configurable interface for widgets to - * access a variety of data, from JavaScript arrays to online database servers. - * - * @module datasource - */ - -/** - * Provides the base DataSource implementation, which can be extended to - * create DataSources for specific data protocols, such as the IO Utility, the - * Get Utility, or custom functions. - * - * @module datasource - * @submodule datasource-local - */ - -/** - * Base class for the DataSource Utility. - * @class DataSource.Local - * @extends Base - * @constructor - */ -var LANG = Y.Lang, - -DSLocal = function() { - DSLocal.superclass.constructor.apply(this, arguments); -}; - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSLocal, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceLocal" - */ - NAME: "dataSourceLocal", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - value: null - } - }, - - /** - * Global transaction counter. - * - * @property DataSource._tId - * @type Number - * @static - * @private - * @default 0 - */ - _tId: 0, - - /** - * Global in-progress transaction objects. - * - * @property DataSource.transactions - * @type Object - * @static - */ - transactions: {}, - - /** - * Returns data to callback. - * - * @method DataSource.issueCallback - * @param e {EventFacade} Event Facade. - * @param caller {DataSource} Calling DataSource instance. - * @static - */ - issueCallback: function (e, caller) { - var error = (e.error || e.response.error); - if(error) { - e.error = e.error || e.response.error; - caller.fire("error", e); - } - if(e.callback) { - var callbackFunc = (error && e.callback.failure) || e.callback.success; - if (callbackFunc) { - callbackFunc(e); - } - } - } -}); - -Y.extend(DSLocal, Y.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._initEvents(); - }, - - /** - * This method creates all the events for this module. - * @method _initEvents - * @private - */ - _initEvents: function() { - /** - * Fired when a data request is received. - * - * @event request - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @preventable _defRequestFn - */ - this.publish("request", {defaultFn: Y.bind("_defRequestFn", this), queuable:true}); - - /** - * Fired when raw data is received. - * - * @event data - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @preventable _defDataFn - */ - this.publish("data", {defaultFn: Y.bind("_defDataFn", this), queuable:true}); - - /** - * Fired when response is returned. - * - * @event response - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @preventable _defResponseFn - */ - this.publish("response", {defaultFn: Y.bind("_defResponseFn", this), queuable:true}); - - /** - * Fired when an error is encountered. - * - * @event error - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  - */ - - }, - - /** - * Manages request/response transaction. Must fire response - * event when response is received. This method should be implemented by - * subclasses to achieve more complex behavior such as accessing remote data. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facadewith the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var data = this.get("source"); - - // Problematic data - if(LANG.isUndefined(data)) { - e.error = new Error("Local source undefined"); - } - - this.fire("data", Y.mix({data:data}, e)); - }, - - /** - * Normalizes raw data into a response that includes results and meta properties. - * - * @method _defDataFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  - * @protected - */ - _defDataFn: function(e) { - var data = e.data, - meta = e.meta, - response = { - results: (LANG.isArray(data)) ? data : [data], - meta: (meta) ? meta : {} - }; - - this.fire("response", Y.mix({response: response}, e)); - }, - - /** - * Sends data as a normalized response to callback. - * - * @method _defResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Boolean)
                                  Error flag.
                                  - *
                                  - *
                                  - *
                                  - * @protected - */ - _defResponseFn: function(e) { - // Send the response back to the callback - DSLocal.issueCallback(e, this); - }, - - /** - * Generates a unique transaction ID and fires request event. - * - * @method sendRequest - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Transaction ID. - */ - sendRequest: function(request) { - request = request || {}; - var tId = DSLocal._tId++; - this.fire("request", {tId:tId, request:request.request, callback:request.callback, cfg:request.cfg || {}}); - return tId; - } -}); - -Y.namespace("DataSource").Local = DSLocal; - - -}, '3.4.0' ,{requires:['base']}); -YUI.add('datasource-io', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the IO Utility. - * - * @module datasource - * @submodule datasource-io - */ - -/** - * IO subclass for the DataSource Utility. - * @class DataSource.IO - * @extends DataSource.Local - * @constructor - */ -var DSIO = function() { - DSIO.superclass.constructor.apply(this, arguments); -}; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSIO, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceIO" - */ - NAME: "dataSourceIO", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.IO Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * Pointer to IO Utility. - * - * @attribute io - * @type Y.io - * @default Y.io - */ - io: { - value: Y.io, - cloneDefaultValue: false - }, - - /** - * Default IO Config. - * - * @attribute ioConfig - * @type Object - * @default null - */ - ioConfig: { - value: null - } - } -}); - -Y.extend(DSIO, Y.DataSource.Local, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this._queue = {interval:null, conn:null, requests:[]}; - }, - - /** - * IO success callback. - * - * @method successHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - successHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - this.fire("data", Y.mix({data:response}, e)); - if (defIOConfig && defIOConfig.on && defIOConfig.on.success) { - defIOConfig.on.success.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * IO failure callback. - * - * @method failureHandler - * @param id {String} Transaction ID. - * @param response {String} Response. - * @param e {Event.Facade} Event facade. - * @private - */ - failureHandler: function (id, response, e) { - var defIOConfig = this.get("ioConfig"); - - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error("IO data failure"); - this.fire("data", Y.mix({data:response}, e)); - if (defIOConfig && defIOConfig.on && defIOConfig.on.failure) { - defIOConfig.on.failure.apply(defIOConfig.context || Y, arguments); - } - }, - - /** - * @property _queue - * @description Object literal to manage asynchronous request/response - * cycles enabled if queue needs to be managed (asyncMode/ioConnMode): - *
                                  - *
                                  interval {Number}
                                  - *
                                  Interval ID of in-progress queue.
                                  - *
                                  conn
                                  - *
                                  In-progress connection identifier (if applicable).
                                  - *
                                  requests {Object[]}
                                  - *
                                  Array of queued request objects: {request:request, callback:callback}.
                                  - *
                                  - * @type Object - * @default {interval:null, conn:null, requests:[]} - * @private - */ - _queue: null, - - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - io = this.get("io"), - defIOConfig = this.get("ioConfig"), - request = e.request, - cfg = Y.merge(defIOConfig, e.cfg, { - on: Y.merge(defIOConfig, { - success: this.successHandler, - failure: this.failureHandler - }), - context: this, - "arguments": e - }); - - // Support for POST transactions - if(Y.Lang.isString(request)) { - if(cfg.method && (cfg.method.toUpperCase() === "POST")) { - cfg.data = cfg.data ? cfg.data+request : request; - } - else { - uri += request; - } - } - Y.DataSource.Local.transactions[e.tId] = io(uri, cfg); - return e.tId; - } -}); - -Y.DataSource.IO = DSIO; - - -}, '3.4.0' ,{requires:['datasource-local', 'io-base']}); -YUI.add('datasource-get', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data via the Get Utility. - * - * @module datasource - * @submodule datasource-get - */ - -/** - * Get Utility subclass for the DataSource Utility. - * @class DataSource.Get - * @extends DataSource.Local - * @constructor - */ -var DSGet = function() { - DSGet.superclass.constructor.apply(this, arguments); -}; - - -Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, { - /** - * Passes query string to Get Utility. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var uri = this.get("source"), - get = this.get("get"), - guid = Y.guid().replace(/\-/g, '_'), - generateRequest = this.get( "generateRequestCallback" ), - o; - - /** - * Stores the most recent request id for validation against stale - * response handling. - * - * @property _last - * @type {String} - * @protected - */ - this._last = guid; - - // Dynamically add handler function with a closure to the callback stack - // for access to guid - YUI.Env.DataSource.callbacks[guid] = Y.bind(function(response) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - var process = this.get('asyncMode') !== "ignoreStaleResponses" || - this._last === guid; - - if (process) { - this.fire("data", Y.mix({ data: response }, e)); - } else { - } - - }, this); - - // Add the callback param to the request url - uri += e.request + generateRequest.call( this, guid ); - - - Y.DataSource.Local.transactions[e.tId] = get.script(uri, { - autopurge: true, - // Works in Firefox only.... - onFailure: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data failure"); - this.fire("data", e); - }, this, e), - onTimeout: Y.bind(function(e, o) { - delete YUI.Env.DataSource.callbacks[guid]; - delete Y.DataSource.Local.transactions[e.tId]; - - e.error = new Error(o.msg || "Script node data timeout"); - this.fire("data", e); - }, this, e) - }); - - return e.tId; - }, - - - /** - * Default method for adding callback param to url. See - * generateRequestCallback attribute. - * - * @method _generateRequest - * @param guid {String} unique identifier for callback function wrapper - * @protected - */ - _generateRequest: function (guid) { - return "&" + this.get("scriptCallbackParam") + - "=YUI.Env.DataSource.callbacks." + guid; - } - -}, { - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceGet" - */ - NAME: "dataSourceGet", - - - //////////////////////////////////////////////////////////////////////////// - // - // DataSource.Get Attributes - // - //////////////////////////////////////////////////////////////////////////// - ATTRS: { - /** - * Pointer to Get Utility. - * - * @attribute get - * @type Y.Get - * @default Y.Get - */ - get: { - value: Y.Get, - cloneDefaultValue: false - }, - - /** - * Defines request/response management in the following manner: - *
                                  - * - *
                                  ignoreStaleResponses
                                  - *
                                  Send all requests, but handle only the response for the most - * recently sent request.
                                  - *
                                  allowAll
                                  - *
                                  Send all requests and handle all responses.
                                  - *
                                  - * - * @attribute asyncMode - * @type String - * @default "allowAll" - */ - asyncMode: { - value: "allowAll" - }, - - /** - * Callback string parameter name sent to the remote script. By default, - * requests are sent to - * <URI>?<scriptCallbackParam>=callbackFunction - * - * @attribute scriptCallbackParam - * @type String - * @default "callback" - */ - scriptCallbackParam : { - value: "callback" - }, - - /** - * Accepts the DataSource instance and a callback ID, and returns a callback - * param/value string that gets appended to the script URI. Implementers - * can customize this string to match their server's query syntax. - * - * @attribute generateRequestCallback - * @type Function - */ - generateRequestCallback : { - value: function () { - return this._generateRequest.apply(this, arguments); - } - } - } -}); - -YUI.namespace("Env.DataSource.callbacks"); - - -}, '3.4.0' ,{requires:['datasource-local', 'get']}); -YUI.add('datasource-function', function(Y) { - -/** - * Provides a DataSource implementation which can be used to retrieve data from a custom function. - * - * @module datasource - * @submodule datasource-function - */ - -/** - * Function subclass for the DataSource Utility. - * @class DataSource.Function - * @extends DataSource.Local - * @constructor - */ -var LANG = Y.Lang, - - DSFn = function() { - DSFn.superclass.constructor.apply(this, arguments); - }; - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function static properties - // - ///////////////////////////////////////////////////////////////////////////// -Y.mix(DSFn, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceFunction" - */ - NAME: "dataSourceFunction", - - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSource.Function Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - /** - * @attribute source - * @description Pointer to live data. - * @type MIXED - * @default null - */ - source: { - validator: LANG.isFunction - } - } -}); - -Y.extend(DSFn, Y.DataSource.Local, { - /** - * Passes query string to IO. Fires response event when - * response is received asynchronously. - * - * @method _defRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _defRequestFn: function(e) { - var fn = this.get("source"), - response; - - if(fn) { - try { - response = fn(e.request, this, e); - this.fire("data", Y.mix({data:response}, e)); - } - catch(error) { - e.error = error; - this.fire("data", e); - } - } - else { - e.error = new Error("Function data failure"); - this.fire("data", e); - } - - return e.tId; - } -}); - -Y.DataSource.Function = DSFn; - - - -}, '3.4.0' ,{requires:['datasource-local']}); -YUI.add('datasource-cache', function(Y) { - -/** - * Plugs DataSource with caching functionality. - * - * @module datasource - * @submodule datasource-cache - */ - -/** - * DataSourceCache extension binds Cache to DataSource. - * @class DataSourceCacheExtension - */ -var DataSourceCacheExtension = function() { -}; - -Y.mix(DataSourceCacheExtension, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCacheExtension" - */ - NAME: "dataSourceCacheExtension" -}); - -DataSourceCacheExtension.prototype = { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defRequestFn", this._beforeDefRequestFn); - this.doBefore("_defResponseFn", this._beforeDefResponseFn); - }, - - /** - * First look for cached response, then send request to live data. - * - * @method _beforeDefRequestFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object.
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefRequestFn: function(e) { - // Is response already in the Cache? - var entry = (this.retrieve(e.request)) || null; - if(entry && entry.response) { - this.get("host").fire("response", Y.mix(entry, e)); - return new Y.Do.Halt("DataSourceCache extension halted _defRequestFn"); - } - }, - - /** - * Adds data to cache before returning data. - * - * @method _beforeDefResponseFn - * @param e {Event.Facade} Event Facade with the following properties: - *
                                  - *
                                  tId (Number)
                                  Unique transaction ID.
                                  - *
                                  request (Object)
                                  The request.
                                  - *
                                  callback (Object)
                                  The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - *
                                  - *
                                  data (Object)
                                  Raw data.
                                  - *
                                  response (Object)
                                  Normalized response object with the following properties: - *
                                  - *
                                  cached (Object)
                                  True when response is cached.
                                  - *
                                  results (Object)
                                  Parsed results.
                                  - *
                                  meta (Object)
                                  Parsed meta data.
                                  - *
                                  error (Object)
                                  Error object.
                                  - *
                                  - *
                                  - *
                                  cfg (Object)
                                  Configuration object.
                                  - *
                                  - * @protected - */ - _beforeDefResponseFn: function(e) { - // Add to Cache before returning - if(e.response && !e.cached) { - this.add(e.request, e.response); - } - } -}; - -Y.namespace("Plugin").DataSourceCacheExtension = DataSourceCacheExtension; - - - -/** - * DataSource plugin adds cache functionality. - * @class DataSourceCache - * @extends Cache - * @uses Plugin.Base, DataSourceCachePlugin - */ -function DataSourceCache(config) { - var cache = config && config.cache ? config.cache : Y.Cache, - tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base, Y.Plugin.DataSourceCacheExtension]), - tmpinstance = new tmpclass(config); - tmpclass.NS = "tmpClass"; - return tmpinstance; -} - -Y.mix(DataSourceCache, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "cache" - */ - NS: "cache", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceCache" - */ - NAME: "dataSourceCache" -}); - - -Y.namespace("Plugin").DataSourceCache = DataSourceCache; - - -}, '3.4.0' ,{requires:['datasource-local', 'cache-base', 'plugin']}); -YUI.add('datasource-jsonschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on JSON data. - * - * @module datasource - * @submodule datasource-jsonschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceJSONSchema - * @extends Plugin.Base - */ -var DataSourceJSONSchema = function() { - DataSourceJSONSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceJSONSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceJSONSchema" - */ - NAME: "dataSourceJSONSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceJSONSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceJSONSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. To accommodate XHR responses, - * will first look for data in data.responseText. Otherwise will just work - * with data. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = e.data ? (e.data.responseText ? e.data.responseText : e.data) : e.data, - response = Y.DataSchema.JSON.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-json']}); -YUI.add('datasource-xmlschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on XML data. - * - * @module datasource - * @submodule datasource-xmlschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceXMLSchema - * @extends Plugin.Base - */ -var DataSourceXMLSchema = function() { - DataSourceXMLSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceXMLSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceXMLSchema" - */ - NAME: "dataSourceXMLSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceXMLSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceXMLSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && e.data.responseXML && (e.data.responseXML.nodeType === 9)) ? e.data.responseXML : e.data, - response = Y.DataSchema.XML.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceXMLSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceXMLSchema = DataSourceXMLSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-xml']}); -YUI.add('datasource-arrayschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on array data. - * - * @module datasource - * @submodule datasource-arrayschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceArraySchema - * @extends Plugin.Base - */ -var DataSourceArraySchema = function() { - DataSourceArraySchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceArraySchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceArraySchema" - */ - NAME: "dataSourceArraySchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceArraySchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceArraySchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Array.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceArraySchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceArraySchema = DataSourceArraySchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-array']}); -YUI.add('datasource-textschema', function(Y) { - -/** - * Extends DataSource with schema-parsing on text data. - * - * @module datasource - * @submodule datasource-textschema - */ - -/** - * Adds schema-parsing to the DataSource Utility. - * @class DataSourceTextSchema - * @extends Plugin.Base - */ -var DataSourceTextSchema = function() { - DataSourceTextSchema.superclass.constructor.apply(this, arguments); -}; - -Y.mix(DataSourceTextSchema, { - /** - * The namespace for the plugin. This will be the property on the host which - * references the plugin instance. - * - * @property NS - * @type String - * @static - * @final - * @value "schema" - */ - NS: "schema", - - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "dataSourceTextSchema" - */ - NAME: "dataSourceTextSchema", - - ///////////////////////////////////////////////////////////////////////////// - // - // DataSourceTextSchema Attributes - // - ///////////////////////////////////////////////////////////////////////////// - - ATTRS: { - schema: { - //value: {} - } - } -}); - -Y.extend(DataSourceTextSchema, Y.Plugin.Base, { - /** - * Internal init() handler. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.doBefore("_defDataFn", this._beforeDefDataFn); - }, - - /** - * Parses raw data into a normalized response. - * - * @method _beforeDefDataFn - * @param tId {Number} Unique transaction ID. - * @param request {Object} The request. - * @param callback {Object} The callback object with the following properties: - *
                                  - *
                                  success (Function)
                                  Success handler.
                                  - *
                                  failure (Function)
                                  Failure handler.
                                  - *
                                  - * @param data {Object} Raw data. - * @protected - */ - _beforeDefDataFn: function(e) { - var data = (Y.DataSource.IO && (this.get("host") instanceof Y.DataSource.IO) && Y.Lang.isString(e.data.responseText)) ? e.data.responseText : e.data, - response = Y.DataSchema.Text.apply.call(this, this.get("schema"), data); - - // Default - if(!response) { - response = { - meta: {}, - results: data - }; - } - - this.get("host").fire("response", Y.mix({response:response}, e)); - return new Y.Do.Halt("DataSourceTextSchema plugin halted _defDataFn"); - } -}); - -Y.namespace('Plugin').DataSourceTextSchema = DataSourceTextSchema; - - -}, '3.4.0' ,{requires:['datasource-local', 'plugin', 'dataschema-text']}); -YUI.add('datasource-polling', function(Y) { - -/** - * Extends DataSource with polling functionality. - * - * @module datasource - * @submodule datasource-polling - */ - -/** - * Adds polling to the DataSource Utility. - * @class Pollable - * @extends DataSource.Local - */ -function Pollable() { - this._intervals = {}; -} - -Pollable.prototype = { - - /** - * @property _intervals - * @description Hash of polling interval IDs that have been enabled, - * stored here to be able to clear all intervals. - * @private - */ - _intervals: null, - - /** - * Sets up a polling mechanism to send requests at set intervals and - * forward responses to given callback. - * - * @method setInterval - * @param msec {Number} Length of interval in milliseconds. - * @param request {Object} An object literal with the following properties: - *
                                  - *
                                  request
                                  - *
                                  The request to send to the live data source, if any.
                                  - *
                                  callback
                                  - *
                                  An object literal with the following properties: - *
                                  - *
                                  success
                                  - *
                                  The function to call when the data is ready.
                                  - *
                                  failure
                                  - *
                                  The function to call upon a response failure condition.
                                  - *
                                  argument
                                  - *
                                  Arbitrary data payload that will be passed back to the success and failure handlers.
                                  - *
                                  - *
                                  - *
                                  cfg
                                  - *
                                  Configuration object, if any.
                                  - *
                                  - * @return {Number} Interval ID. - */ - setInterval: function(msec, callback) { - var x = Y.later(msec, this, this.sendRequest, [ callback ], true); - this._intervals[x.id] = x; - return x.id; - }, - - /** - * Disables polling mechanism associated with the given interval ID. - * - * @method clearInterval - * @param id {Number} Interval ID. - */ - clearInterval: function(id, key) { - // In case of being called by clearAllIntervals() - id = key || id; - if(this._intervals[id]) { - // Clear the interval - this._intervals[id].cancel(); - // Clear from tracker - delete this._intervals[id]; - } - }, - - /** - * Clears all intervals. - * - * @method clearAllIntervals - */ - clearAllIntervals: function() { - Y.each(this._intervals, this.clearInterval, this); - } -}; - -Y.augment(Y.DataSource.Local, Pollable); - - -}, '3.4.0' ,{requires:['datasource-local']}); - - -YUI.add('datasource', function(Y){}, '3.4.0' ,{use:['datasource-local','datasource-io','datasource-get','datasource-function','datasource-cache','datasource-jsonschema','datasource-xmlschema','datasource-arrayschema','datasource-textschema','datasource-polling']}); - diff --git a/build/datatable-base/datatable-base.js b/build/datatable-base/datatable-base.js index 55765791ce4..d401208e809 100644 --- a/build/datatable-base/datatable-base.js +++ b/build/datatable-base/datatable-base.js @@ -16,7 +16,7 @@ var YLang = Y.Lang, DATATABLE = "datatable", COLUMN = "column", - + FOCUS = "focus", KEYDOWN = "keydown", MOUSEENTER = "mouseenter", @@ -44,7 +44,7 @@ var YLang = Y.Lang, TEMPLATE_TD = '
                                  {value}
                                  ', TEMPLATE_VALUE = '{value}', TEMPLATE_MSG = ''; - + /** @@ -91,7 +91,7 @@ Y.mix(Column, { valueFn: "_defaultId", readOnly: true }, - + /** * @attribute key * @description User-supplied identifier. Defaults to id. @@ -121,7 +121,7 @@ Y.mix(Column, { label: { valueFn: "_defaultLabel" }, - + /** * @attribute children * @description Array of child column definitions (for nested headers). @@ -130,7 +130,7 @@ Y.mix(Column, { children: { value: null }, - + /** * @attribute abbr * @description TH abbr attribute. @@ -146,7 +146,7 @@ Y.mix(Column, { readOnly: true, getter: "_getClassnames" }, - + // Column formatter formatter: {}, @@ -250,7 +250,7 @@ Y.extend(Column, Y.Widget, { * @type Number */ keyIndex: null, - + /** * @property headers * @description Array of TH IDs associated with this column, for TD "headers" @@ -267,7 +267,7 @@ Y.extend(Column, Y.Widget, { * @default 1 */ colSpan: 1, - + /** * Number of rows the header spans. Value is set by Columnset code. * @@ -292,7 +292,7 @@ Y.extend(Column, Y.Widget, { * @property thNode * @type Y.Node */ - + thNode: null, /*TODO @@ -300,9 +300,9 @@ Y.extend(Column, Y.Widget, { * * @property thLinerNode * @type Y.Node - + thLinerNode: null,*/ - + ///////////////////////////////////////////////////////////////////////////// // // METHODS @@ -486,7 +486,7 @@ Y.extend(Columnset, Y.Base, { _setDefinitions: function(definitions) { return Y.clone(definitions); }, - + ///////////////////////////////////////////////////////////////////////////// // // PROPERTIES @@ -954,7 +954,7 @@ Y.mix(DTBase, { ///////////////////////////////////////////////////////////////////////////// HTML_PARSER: { /*caption: function (srcNode) { - + }*/ } }); @@ -980,7 +980,7 @@ Y.extend(DTBase, Y.Widget, { * @default '
                                  {value}
                                  ' */ tdTemplate: TEMPLATE_TD, - + /** * @property _theadNode * @description Pointer to THEAD node. @@ -988,7 +988,7 @@ Y.extend(DTBase, Y.Widget, { * @private */ _theadNode: null, - + /** * @property _tbodyNode * @description Pointer to TBODY node. @@ -996,7 +996,7 @@ Y.extend(DTBase, Y.Widget, { * @private */ _tbodyNode: null, - + /** * @property _msgNode * @description Pointer to message display node. @@ -1047,7 +1047,7 @@ Y.extend(DTBase, Y.Widget, { rs.addTarget(this); return rs; }, - + /** * Updates the UI if Recordset is changed. * @@ -1056,7 +1056,6 @@ Y.extend(DTBase, Y.Widget, { * @protected */ _afterRecordsetChange: function (e) { - console.log('_afterRecordsetChange core'); this._uiSetRecordset(e.newVal); }, @@ -1108,7 +1107,7 @@ Y.extend(DTBase, Y.Widget, { destructor: function() { this.get("recordset").removeTarget(this); }, - + //////////////////////////////////////////////////////////////////////////// // // RENDER @@ -1256,7 +1255,7 @@ Y.extend(DTBase, Y.Widget, { "recordset:recordsChange": this._afterRecordsChange }); }, - + delegate: function(type) { //TODO: is this necessary? if(type==="dblclick") { @@ -1266,7 +1265,7 @@ Y.extend(DTBase, Y.Widget, { this.get("contentBox").delegate.apply(this.get("contentBox"), arguments); } }, - + //////////////////////////////////////////////////////////////////////////// // @@ -1343,10 +1342,10 @@ Y.extend(DTBase, Y.Widget, { len = tree.length, parent = thead.get("parentNode"), nextSibling = thead.next(); - + // Move THEAD off DOM thead.remove(); - + thead.get("children").remove(true); // Iterate tree of columns to add THEAD rows @@ -1357,12 +1356,12 @@ Y.extend(DTBase, Y.Widget, { // Column helpers needs _theadNode to exist //this._createColumnHelpers(); - + // Re-attach THEAD to DOM parent.insert(thead, nextSibling); }, - + /** * Creates and attaches header row element. * @@ -1376,7 +1375,7 @@ Y.extend(DTBase, Y.Widget, { o.tr = this._createTheadTrNode(o, isFirst, isLast); this._attachTheadTrNode(o); }, - + /** * Creates header row element. @@ -1447,7 +1446,7 @@ Y.extend(DTBase, Y.Widget, { */ _createTheadThNode: function(o) { var column = o.column; - + // Populate template object o.id = column.get("id");//TODO: validate 1 column ID per document o.colspan = column.colSpan; @@ -1462,7 +1461,7 @@ Y.extend(DTBase, Y.Widget, { //this._clearMinWidth(column); } */ - + return Ycreate(fromTemplate(this.thTemplate, o)); }, @@ -1545,7 +1544,7 @@ Y.extend(DTBase, Y.Widget, { o.rowindex = i; this._addTbodyTrNode(o); //TODO: sometimes rowindex != recordindex } - + // TBODY to DOM parent.insert(this._tbodyNode, nextSibling); }, @@ -1578,7 +1577,7 @@ Y.extend(DTBase, Y.Widget, { i, len, columnInfo; o.tr = Ycreate(fromTemplate(o.rowTemplate, { id: o.record.get('id') })); - + for (i = 0, len = columns.length; i < len; ++i) { columnInfo = columns[i]; o.column = columnInfo.column; @@ -1588,7 +1587,7 @@ Y.extend(DTBase, Y.Widget, { this._addTbodyTdNode(o); } - + return o.tr; }, @@ -1605,13 +1604,13 @@ Y.extend(DTBase, Y.Widget, { index = o.rowindex, nextSibling = tbody.get("children").item(index) || null, isOdd = (index % 2); - + if(isOdd) { tr.replaceClass(CLASS_EVEN, CLASS_ODD); } else { tr.replaceClass(CLASS_ODD, CLASS_EVEN); } - + tbody.insertBefore(tr, nextSibling); }, @@ -1626,7 +1625,7 @@ Y.extend(DTBase, Y.Widget, { o.td = this._createTbodyTdNode(o); this._attachTbodyTdNode(o); }, - + /** * Creates data cell element. * @@ -1641,7 +1640,7 @@ Y.extend(DTBase, Y.Widget, { return Ycreate(fromTemplate(this.tdTemplate, o)); }, - + /** * Attaches data cell element. * diff --git a/build/datatable/assets/datatable-base-core.css b/build/datatable/assets/datatable-base-core.css deleted file mode 100644 index 750626dad13..00000000000 --- a/build/datatable/assets/datatable-base-core.css +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -/* foundational CSS */ - -/* mask */ -.yui3-skin-sam .yui3-datatable-mask { - position:absolute; - z-index:9500; -} - -/* scrollable */ -.yui3-datatable-tmp { - position:absolute; - left:-9000px; -} - -.yui3-datatable-scrollable .yui3-datatable-bd { - overflow:auto; -} -.yui3-datatable-scrollable .yui3-datatable-hd { - overflow:hidden; - position:relative; /* for ie overflow bug http://rowanw.com/bugs/overflow_relative.htm */ -} - -.yui3-datatable-scrollable .yui3-datatable-bd thead tr, -.yui3-datatable-scrollable .yui3-datatable-bd thead th { - position:absolute; - left:-1500px; -} - -.yui3-datatable-scrollable tbody { - -moz-outline:none; -} - -/* sortable columns */ - -.yui3-skin-sam thead .yui3-datatable-sortable { - cursor:pointer; -} - -/* draggable columns */ -.yui3-skin-sam thead .yui3-datatable-draggable { - cursor: move; -} -.yui3-datatable-coltarget { - position: absolute; - z-index: 999; -} - -/* resizeable columns */ -.yui3-datatable-hd { - zoom:1; -} -th.yui3-datatable-resizeable .yui3-datatable-resizerliner { - position:relative; -} -.yui3-datatable-resizer { - position:absolute; - right:0; - bottom:0; - height:100%; - cursor:e-resize; - cursor:col-resize; - background-color:#CCC;opacity:0;filter: alpha(opacity=0); /* Bug 1952811: IE transparency z-index */ -} -.yui3-datatable-resizerproxy { - visibility:hidden; - position:absolute; - z-index:9000; - background-color:#CCC;opacity:0;filter: alpha(opacity=0); /* Bug 1952811: IE transparency z-index */ -} - -/* hidden columns */ -th.yui3-datatable-hidden .yui3-datatable-liner, -td.yui3-datatable-hidden .yui3-datatable-liner, -th.yui3-datatable-hidden .yui3-datatable-resizer { - /*TODO: document change from 2.5.2 to 2.6 - margin:0; - padding:0; - white-space:nowrap; - width:1px; - overflow:hidden;*/ - display:none; -} - -/* editing */ -.yui3-datatable-editor, .yui3-datatable-editor-shim { - position:absolute;z-index:9000; -} diff --git a/build/datatable/assets/datatable-core.css b/build/datatable/assets/datatable-core.css deleted file mode 100644 index fc91f57a4a1..00000000000 --- a/build/datatable/assets/datatable-core.css +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -/* foundational CSS */ - -/* mask */ -.yui-skin-sam .yui-dt-mask { - position:absolute; - z-index:9500; -} - -/* scrollable */ -.yui-dt-tmp { - position:absolute; - left:-9000px; -} - -.yui-dt-scrollable .yui-dt-bd { - overflow:auto; -} -.yui-dt-scrollable .yui-dt-hd { - overflow:hidden; - position:relative; /* for ie overflow bug http://rowanw.com/bugs/overflow_relative.htm */ -} - -.yui-dt-scrollable .yui-dt-bd thead tr, -.yui-dt-scrollable .yui-dt-bd thead th { - position:absolute; - left:-1500px; -} - -.yui-dt-scrollable tbody { - -moz-outline:none; -} - -/* sortable columns */ - -.yui-skin-sam thead .yui-dt-sortable { - cursor:pointer; -} - -/* draggable columns */ -.yui-skin-sam thead .yui-dt-draggable { - cursor: move; -} -.yui-dt-coltarget { - position: absolute; - z-index: 999; -} - -/* resizeable columns */ -.yui-dt-hd { - zoom:1; -} -th.yui-dt-resizeable .yui-dt-resizerliner { - position:relative; -} -.yui-dt-resizer { - position:absolute; - right:0; - bottom:0; - height:100%; - cursor:e-resize; - cursor:col-resize; - background-color:#CCC;opacity:0;filter: alpha(opacity=0); /* Bug 1952811: IE transparency z-index */ -} -.yui-dt-resizerproxy { - visibility:hidden; - position:absolute; - z-index:9000; - background-color:#CCC;opacity:0;filter: alpha(opacity=0); /* Bug 1952811: IE transparency z-index */ -} - -/* hidden columns */ -th.yui-dt-hidden .yui-dt-liner, -td.yui-dt-hidden .yui-dt-liner, -th.yui-dt-hidden .yui-dt-resizer { - /*TODO: document change from 2.5.2 to 2.6 - margin:0; - padding:0; - white-space:nowrap; - width:1px; - overflow:hidden;*/ - display:none; -} - -/* editing */ -.yui-dt-editor, .yui-dt-editor-shim { - position:absolute;z-index:9000; -} diff --git a/build/datatable/assets/skins/sam/datatable-base-skin.css b/build/datatable/assets/skins/sam/datatable-base-skin.css deleted file mode 100644 index 03e8f13e67f..00000000000 --- a/build/datatable/assets/skins/sam/datatable-base-skin.css +++ /dev/null @@ -1,244 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -/* basic skin styles */ -.yui3-skin-sam .yui3-datatable table { - margin:0;padding:0; - font-family:arial;font-size:inherit; - border-collapse:separate;*border-collapse:collapse;border-spacing:0; /* since ie6 and ie7 behave differently */ - border:1px solid #7F7F7F; -} -.yui3-skin-sam .yui3-datatable thead {border-spacing:0;} /* for safari bug */ - -.yui3-skin-sam .yui3-datatable caption { - color:#000000; - font-size:85%; - font-weight:normal; - font-style:italic; - line-height:1; - padding:1em 0pt; - text-align:center; -} - -.yui3-skin-sam .yui3-datatable th { - background:#D8D8DA url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0; /* header gradient */ -} -.yui3-skin-sam .yui3-datatable th, -.yui3-skin-sam .yui3-datatable th a { - font-weight:normal;text-decoration:none;color:#000; /* header text */ - vertical-align:bottom; -} -.yui3-skin-sam .yui3-datatable th { - margin:0;padding:0; - border:none; - border-right:1px solid #CBCBCB;/* inner column border */ -} -.yui3-skin-sam .yui3-datatable tr.yui3-datatable-first td { - border-top:1px solid #7F7F7F; /* tbody top border */ -} -.yui3-skin-sam .yui3-datatable th .yui3-datatable-liner { - white-space:nowrap; -} -.yui3-skin-sam .yui3-datatable-liner { - margin:0;padding:0; - padding:4px 10px 4px 10px; /* cell padding */ - overflow:visible; /*to make ths where the title is really long work*/ - border:0px solid black; -} -.yui3-skin-sam .yui3-datatable-coltarget { - width: 5px; - background-color: red; -} -.yui3-skin-sam .yui3-datatable td { - margin:0;padding:0; - border:none; - border-right:1px solid #CBCBCB; /* inner column border */ - text-align:left; -} -.yui3-skin-sam .yui3-datatable-list td { - border-right:none; /* disable inner column border in list mode */ -} -.yui3-skin-sam .yui3-datatable-resizer { - width:6px; -} - -/* mask */ -.yui3-skin-sam .yui3-datatable-mask { - background-color: #000; - opacity: .25; - filter: alpha(opacity=25); /* Set opacity in IE */ -} - -/* messaging */ -.yui3-skin-sam .yui3-datatable-message { - background-color:#FFF; -} - -/* scrolling */ -.yui3-skin-sam .yui3-datatable-scrollable table {border:none;} -.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-hd {border-left:1px solid #7F7F7F;border-top:1px solid #7F7F7F;border-right:1px solid #7F7F7F;} -.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-bd {border-left:1px solid #7F7F7F;border-bottom:1px solid #7F7F7F;border-right:1px solid #7F7F7F;background-color:#FFF;} -.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-data tr.yui3-datatable-last td {border-bottom:1px solid #7F7F7F;} - -/* sortable columns */ -.yui3-skin-sam th.yui3-datatable-asc, -.yui3-skin-sam th.yui3-datatable-desc { - background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -100px; /* sorted header gradient */ -} -.yui3-skin-sam th.yui3-datatable-sortable .yui3-datatable-liner { - padding-right:20px; /* room for arrow */ -} -.yui3-skin-sam th.yui3-datatable-asc .yui3-datatable-liner { - background:url(dt-arrow-up.png) no-repeat right; /* up arrow */ -} -.yui3-skin-sam th.yui3-datatable-desc .yui3-datatable-liner { - background:url(dt-arrow-dn.png) no-repeat right; /* down arrow */ -} - -/* editing */ -tbody .yui3-datatable-editable { - cursor:pointer; -} -.yui3-datatable-editor { - text-align:left; - background-color:#F2F2F2; - border:1px solid #808080; - padding:6px; -} -.yui3-datatable-editor label { - padding-left:4px;padding-right:6px; -} -.yui3-datatable-editor .yui3-datatable-button { - padding-top:6px;text-align:right; -} -.yui3-datatable-editor .yui3-datatable-button button { - background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0; - border:1px solid #999; - width:4em;height:1.8em; - margin-left:6px; -} -.yui3-datatable-editor .yui3-datatable-button button.yui3-datatable-default { - background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px; - background-color: #5584E0; - border:1px solid #304369; - color:#FFF -} -.yui3-datatable-editor .yui3-datatable-button button:hover { - background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1300px; - color:#000; -} -.yui3-datatable-editor .yui3-datatable-button button:active { - background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px; - color:#000; -} - -/* striping */ -.yui3-skin-sam td { background-color:transparent; } /* none */ -.yui3-skin-sam tr.yui3-datatable-even { background-color:#FFF; } /* white */ -.yui3-skin-sam tr.yui3-datatable-odd { background-color:#EDF5FF; } /* light blue */ -.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-asc, -.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-desc { background-color:#EDF5FF; } /* light blue sorted */ -.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-asc, -.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-desc { background-color:#DBEAFF; } /* dark blue sorted */ - -/* disable striping in list mode */ -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even { background-color:#FFF; } /* white */ -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd { background-color:#FFF; } /* white */ -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-asc, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-desc { background-color:#EDF5FF; } /* light blue sorted */ -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-asc, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-desc { background-color:#EDF5FF; } /* light blue sorted */ - -/* highlighting */ -.yui3-skin-sam th.yui3-datatable-highlighted, -.yui3-skin-sam th.yui3-datatable-highlighted a { - background-color:#B2D2FF; /* med blue hover */ -} -.yui3-skin-sam tr.yui3-datatable-highlighted, -.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-asc, -.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-desc, -.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-highlighted, -.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-highlighted { - cursor:pointer; - background-color:#B2D2FF; /* med blue hover */ -} - -/* enable highlighting in list mode */ -.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted, -.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted a { - background-color:#B2D2FF; /* med blue hover */ -} -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-asc, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-desc, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-highlighted, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-highlighted { - cursor:pointer; - background-color:#B2D2FF; /* med blue hover */ -} - -/* selection */ -.yui3-skin-sam th.yui3-datatable-selected, -.yui3-skin-sam th.yui3-datatable-selected a { - background-color:#446CD7; /* bright blue selected cell */ -} -.yui3-skin-sam tr.yui3-datatable-selected td, -.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-asc, -.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-desc { - background-color:#426FD9; /* bright blue selected row */ - color:#FFF; -} -.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-selected, -.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-selected { - background-color:#446CD7; /* bright blue selected cell */ - color:#FFF; -} - -/* enable selection in list mode */ -.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected, -.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected a { - background-color:#446CD7; /* bright blue selected cell */ -} -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-asc, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-desc { - background-color:#426FD9; /* bright blue selected row */ - color:#FFF; -} -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-selected, -.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-selected { - background-color:#446CD7; /* bright blue selected cell */ - color:#FFF; -} - -/* pagination */ -.yui3-skin-sam .yui3-datatable-paginator { - display:block;margin:6px 0;white-space:nowrap; -} -.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-first, -.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-last, -.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-selected { - padding:2px 6px; -} -.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-first, -.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-last { - text-decoration:none; -} -.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-previous, -.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-next { - display:none; -} -.yui3-skin-sam a.yui3-datatable-page { - border:1px solid #CBCBCB; - padding:2px 6px; - text-decoration:none; - background-color:#fff -} -.yui3-skin-sam .yui3-datatable-selected { - border:1px solid #fff; - background-color:#fff; -} diff --git a/build/datatable/assets/skins/sam/datatable-base.css b/build/datatable/assets/skins/sam/datatable-base.css deleted file mode 100644 index 377c5f2d0ce..00000000000 --- a/build/datatable/assets/skins/sam/datatable-base.css +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -.yui3-skin-sam .yui3-datatable-mask{position:absolute;z-index:9500}.yui3-datatable-tmp{position:absolute;left:-9000px}.yui3-datatable-scrollable .yui3-datatable-bd{overflow:auto}.yui3-datatable-scrollable .yui3-datatable-hd{overflow:hidden;position:relative}.yui3-datatable-scrollable .yui3-datatable-bd thead tr,.yui3-datatable-scrollable .yui3-datatable-bd thead th{position:absolute;left:-1500px}.yui3-datatable-scrollable tbody{-moz-outline:0}.yui3-skin-sam thead .yui3-datatable-sortable{cursor:pointer}.yui3-skin-sam thead .yui3-datatable-draggable{cursor:move}.yui3-datatable-coltarget{position:absolute;z-index:999}.yui3-datatable-hd{zoom:1}th.yui3-datatable-resizeable .yui3-datatable-resizerliner{position:relative}.yui3-datatable-resizer{position:absolute;right:0;bottom:0;height:100%;cursor:e-resize;cursor:col-resize;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}.yui3-datatable-resizerproxy{visibility:hidden;position:absolute;z-index:9000;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}th.yui3-datatable-hidden .yui3-datatable-liner,td.yui3-datatable-hidden .yui3-datatable-liner,th.yui3-datatable-hidden .yui3-datatable-resizer{display:none}.yui3-datatable-editor,.yui3-datatable-editor-shim{position:absolute;z-index:9000}.yui3-skin-sam .yui3-datatable table{margin:0;padding:0;font-family:arial;font-size:inherit;border-collapse:separate;*border-collapse:collapse;border-spacing:0;border:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable thead{border-spacing:0}.yui3-skin-sam .yui3-datatable caption{color:#000;font-size:85%;font-weight:normal;font-style:italic;line-height:1;padding:1em 0;text-align:center}.yui3-skin-sam .yui3-datatable th{background:#d8d8da url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0}.yui3-skin-sam .yui3-datatable th,.yui3-skin-sam .yui3-datatable th a{font-weight:normal;text-decoration:none;color:#000;vertical-align:bottom}.yui3-skin-sam .yui3-datatable th{margin:0;padding:0;border:0;border-right:1px solid #cbcbcb}.yui3-skin-sam .yui3-datatable tr.yui3-datatable-first td{border-top:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable th .yui3-datatable-liner{white-space:nowrap}.yui3-skin-sam .yui3-datatable-liner{margin:0;padding:0;padding:4px 10px 4px 10px;overflow:visible;border:0 solid black}.yui3-skin-sam .yui3-datatable-coltarget{width:5px;background-color:red}.yui3-skin-sam .yui3-datatable td{margin:0;padding:0;border:0;border-right:1px solid #cbcbcb;text-align:left}.yui3-skin-sam .yui3-datatable-list td{border-right:0}.yui3-skin-sam .yui3-datatable-resizer{width:6px}.yui3-skin-sam .yui3-datatable-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25)}.yui3-skin-sam .yui3-datatable-message{background-color:#FFF}.yui3-skin-sam .yui3-datatable-scrollable table{border:0}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-hd{border-left:1px solid #7f7f7f;border-top:1px solid #7f7f7f;border-right:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-bd{border-left:1px solid #7f7f7f;border-bottom:1px solid #7f7f7f;border-right:1px solid #7f7f7f;background-color:#FFF}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-data tr.yui3-datatable-last td{border-bottom:1px solid #7f7f7f}.yui3-skin-sam th.yui3-datatable-asc,.yui3-skin-sam th.yui3-datatable-desc{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -100px}.yui3-skin-sam th.yui3-datatable-sortable .yui3-datatable-liner{padding-right:20px}.yui3-skin-sam th.yui3-datatable-asc .yui3-datatable-liner{background:url(dt-arrow-up.png) no-repeat right}.yui3-skin-sam th.yui3-datatable-desc .yui3-datatable-liner{background:url(dt-arrow-dn.png) no-repeat right}tbody .yui3-datatable-editable{cursor:pointer}.yui3-datatable-editor{text-align:left;background-color:#f2f2f2;border:1px solid #808080;padding:6px}.yui3-datatable-editor label{padding-left:4px;padding-right:6px}.yui3-datatable-editor .yui3-datatable-button{padding-top:6px;text-align:right}.yui3-datatable-editor .yui3-datatable-button button{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;border:1px solid #999;width:4em;height:1.8em;margin-left:6px}.yui3-datatable-editor .yui3-datatable-button button.yui3-datatable-default{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px;background-color:#5584e0;border:1px solid #304369;color:#FFF}.yui3-datatable-editor .yui3-datatable-button button:hover{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1300px;color:#000}.yui3-datatable-editor .yui3-datatable-button button:active{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px;color:#000}.yui3-skin-sam td{background-color:transparent}.yui3-skin-sam tr.yui3-datatable-even{background-color:#FFF}.yui3-skin-sam tr.yui3-datatable-odd{background-color:#edf5ff}.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#dbeaff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even{background-color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd{background-color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam th.yui3-datatable-highlighted,.yui3-skin-sam th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-sam tr.yui3-datatable-highlighted,.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff} -.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff}.yui3-skin-sam th.yui3-datatable-selected,.yui3-skin-sam th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-sam tr.yui3-datatable-selected td,.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected,.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-sam .yui3-datatable-paginator{display:block;margin:6px 0;white-space:nowrap}.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-first,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-last,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-selected{padding:2px 6px}.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-first,.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-last{text-decoration:none}.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-previous,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-next{display:none}.yui3-skin-sam a.yui3-datatable-page{border:1px solid #cbcbcb;padding:2px 6px;text-decoration:none;background-color:#fff}.yui3-skin-sam .yui3-datatable-selected{border:1px solid #fff;background-color:#fff} diff --git a/build/datatable/assets/skins/sam/datatable.css b/build/datatable/assets/skins/sam/datatable.css deleted file mode 100644 index 377c5f2d0ce..00000000000 --- a/build/datatable/assets/skins/sam/datatable.css +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -.yui3-skin-sam .yui3-datatable-mask{position:absolute;z-index:9500}.yui3-datatable-tmp{position:absolute;left:-9000px}.yui3-datatable-scrollable .yui3-datatable-bd{overflow:auto}.yui3-datatable-scrollable .yui3-datatable-hd{overflow:hidden;position:relative}.yui3-datatable-scrollable .yui3-datatable-bd thead tr,.yui3-datatable-scrollable .yui3-datatable-bd thead th{position:absolute;left:-1500px}.yui3-datatable-scrollable tbody{-moz-outline:0}.yui3-skin-sam thead .yui3-datatable-sortable{cursor:pointer}.yui3-skin-sam thead .yui3-datatable-draggable{cursor:move}.yui3-datatable-coltarget{position:absolute;z-index:999}.yui3-datatable-hd{zoom:1}th.yui3-datatable-resizeable .yui3-datatable-resizerliner{position:relative}.yui3-datatable-resizer{position:absolute;right:0;bottom:0;height:100%;cursor:e-resize;cursor:col-resize;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}.yui3-datatable-resizerproxy{visibility:hidden;position:absolute;z-index:9000;background-color:#CCC;opacity:0;filter:alpha(opacity=0)}th.yui3-datatable-hidden .yui3-datatable-liner,td.yui3-datatable-hidden .yui3-datatable-liner,th.yui3-datatable-hidden .yui3-datatable-resizer{display:none}.yui3-datatable-editor,.yui3-datatable-editor-shim{position:absolute;z-index:9000}.yui3-skin-sam .yui3-datatable table{margin:0;padding:0;font-family:arial;font-size:inherit;border-collapse:separate;*border-collapse:collapse;border-spacing:0;border:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable thead{border-spacing:0}.yui3-skin-sam .yui3-datatable caption{color:#000;font-size:85%;font-weight:normal;font-style:italic;line-height:1;padding:1em 0;text-align:center}.yui3-skin-sam .yui3-datatable th{background:#d8d8da url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0}.yui3-skin-sam .yui3-datatable th,.yui3-skin-sam .yui3-datatable th a{font-weight:normal;text-decoration:none;color:#000;vertical-align:bottom}.yui3-skin-sam .yui3-datatable th{margin:0;padding:0;border:0;border-right:1px solid #cbcbcb}.yui3-skin-sam .yui3-datatable tr.yui3-datatable-first td{border-top:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable th .yui3-datatable-liner{white-space:nowrap}.yui3-skin-sam .yui3-datatable-liner{margin:0;padding:0;padding:4px 10px 4px 10px;overflow:visible;border:0 solid black}.yui3-skin-sam .yui3-datatable-coltarget{width:5px;background-color:red}.yui3-skin-sam .yui3-datatable td{margin:0;padding:0;border:0;border-right:1px solid #cbcbcb;text-align:left}.yui3-skin-sam .yui3-datatable-list td{border-right:0}.yui3-skin-sam .yui3-datatable-resizer{width:6px}.yui3-skin-sam .yui3-datatable-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25)}.yui3-skin-sam .yui3-datatable-message{background-color:#FFF}.yui3-skin-sam .yui3-datatable-scrollable table{border:0}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-hd{border-left:1px solid #7f7f7f;border-top:1px solid #7f7f7f;border-right:1px solid #7f7f7f}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-bd{border-left:1px solid #7f7f7f;border-bottom:1px solid #7f7f7f;border-right:1px solid #7f7f7f;background-color:#FFF}.yui3-skin-sam .yui3-datatable-scrollable .yui3-datatable-data tr.yui3-datatable-last td{border-bottom:1px solid #7f7f7f}.yui3-skin-sam th.yui3-datatable-asc,.yui3-skin-sam th.yui3-datatable-desc{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -100px}.yui3-skin-sam th.yui3-datatable-sortable .yui3-datatable-liner{padding-right:20px}.yui3-skin-sam th.yui3-datatable-asc .yui3-datatable-liner{background:url(dt-arrow-up.png) no-repeat right}.yui3-skin-sam th.yui3-datatable-desc .yui3-datatable-liner{background:url(dt-arrow-dn.png) no-repeat right}tbody .yui3-datatable-editable{cursor:pointer}.yui3-datatable-editor{text-align:left;background-color:#f2f2f2;border:1px solid #808080;padding:6px}.yui3-datatable-editor label{padding-left:4px;padding-right:6px}.yui3-datatable-editor .yui3-datatable-button{padding-top:6px;text-align:right}.yui3-datatable-editor .yui3-datatable-button button{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;border:1px solid #999;width:4em;height:1.8em;margin-left:6px}.yui3-datatable-editor .yui3-datatable-button button.yui3-datatable-default{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px;background-color:#5584e0;border:1px solid #304369;color:#FFF}.yui3-datatable-editor .yui3-datatable-button button:hover{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1300px;color:#000}.yui3-datatable-editor .yui3-datatable-button button:active{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px;color:#000}.yui3-skin-sam td{background-color:transparent}.yui3-skin-sam tr.yui3-datatable-even{background-color:#FFF}.yui3-skin-sam tr.yui3-datatable-odd{background-color:#edf5ff}.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#dbeaff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even{background-color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd{background-color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-desc{background-color:#edf5ff}.yui3-skin-sam th.yui3-datatable-highlighted,.yui3-skin-sam th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-sam tr.yui3-datatable-highlighted,.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff} -.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-highlighted a{background-color:#b2d2ff}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-highlighted td.yui3-datatable-desc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-highlighted,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-highlighted{cursor:pointer;background-color:#b2d2ff}.yui3-skin-sam th.yui3-datatable-selected,.yui3-skin-sam th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-sam tr.yui3-datatable-selected td,.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected,.yui3-skin-sam .yui3-datatable-list th.yui3-datatable-selected a{background-color:#446cd7}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-asc,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-selected td.yui3-datatable-desc{background-color:#426fd9;color:#FFF}.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-even td.yui3-datatable-selected,.yui3-skin-sam .yui3-datatable-list tr.yui3-datatable-odd td.yui3-datatable-selected{background-color:#446cd7;color:#FFF}.yui3-skin-sam .yui3-datatable-paginator{display:block;margin:6px 0;white-space:nowrap}.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-first,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-last,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-selected{padding:2px 6px}.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-first,.yui3-skin-sam .yui3-datatable-paginator a.yui3-datatable-last{text-decoration:none}.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-previous,.yui3-skin-sam .yui3-datatable-paginator .yui3-datatable-next{display:none}.yui3-skin-sam a.yui3-datatable-page{border:1px solid #cbcbcb;padding:2px 6px;text-decoration:none;background-color:#fff}.yui3-skin-sam .yui3-datatable-selected{border:1px solid #fff;background-color:#fff} diff --git a/build/datatable/assets/skins/sam/dt-arrow-dn.png b/build/datatable/assets/skins/sam/dt-arrow-dn.png deleted file mode 100644 index 85fda0bbca21cefc6b8cf1726bc83e43bff993c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp@K+M9#3?wzWV%32ZXMj(L>;M1%fy~Ir2;r~IJAo|5 zk|4ie28U-i(tsREPZ!6Kid)Guq>ddput17Y#X`7&C779+nL(zFDdZjVkv^az22WQ% Jmvv4FO#tWt9i9LH diff --git a/build/datatable/assets/skins/sam/dt-arrow-up.png b/build/datatable/assets/skins/sam/dt-arrow-up.png deleted file mode 100644 index 1c674316aed41943dae79b01583956db63c8be08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp@K+M9#3?wzWV%32ZXMj(L>;M1%fy}VT__niwAVJ2G zAirP+hi5m^fE-Cr7srr_TgeGo2?+@gd>DjQ2|6TYNiZ`ri2h~@(drDS1}b9kboFyt I=akR{0K var <--- LANG=Y.Lang,NODE=Y. - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("datatable-base",function(Y){ - [java] - [java] [WARNING] The symbol theadNode is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] },bindUI:function(){var ---> theadNode <--- =this._theadNode,tbodyNode=this._tbodyNode - [java] - [java] [WARNING] The symbol tbodyNode is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] ){var theadNode=this._theadNode, ---> tbodyNode <--- =this._tbodyNode,msgNode=this._msgNode - [java] - [java] [WARNING] The symbol msgNode is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] ._theadNode,tbodyNode=this._tbodyNode, ---> msgNode <--- =this._msgNode,contentBox=this.get - [java] - [java] [WARNING] The symbol contentBox is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] ._tbodyNode,msgNode=this._msgNode, ---> contentBox <--- =this.get("contentBox");this. - [java] - [java] [WARNING] The symbol o is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] length,ths=[],column, ---> o <--- ;for(;i YUI <--- .add("lang/datatable-base",function(Y){ - [echo] Running yuicompressor on C:\home\web\git\yui3\src\datatable\build_tmp\lang\datatable-base_en.js - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("lang/datatable-base_en",function(Y){ - -lint: - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-base-debug.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-base-min.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-base.js - [java] - OK - -local: - -deploybuild: - [copy] Copying 3 files to C:\home\web\git\yui3\build\datatable - -deployassets: - [copy] Copying 1 file to C:\home\web\git\yui3\build\datatable\assets - -deployskins: - [copy] Copying 1 file to C:\home\web\git\yui3\build\datatable\assets\skins\sam - [copy] Copying 4 files to C:\home\web\git\yui3\build\datatable\assets\skins\sam - -deploylang: - [copy] Copying 2 files to C:\home\web\git\yui3\build\datatable\lang - -deploydocs: - -deploy: - -all: - [echo] Starting Build For datatable-sort - [echo] Ant Properties - [echo] Home : C:/Program Files/apache-ant-1.8.1 - [echo] Ant Version : Apache Ant version 1.8.1 compiled on April 30 2010 - [echo] Build File : C:\home\web\git\yui3\src\datatable\build.sort.xml - [echo] Local Build Properties - [echo] version : 3 - [echo] srcdir : ../../ - [echo] builddir : ../../../builder/componentbuild - [echo] component : datatable-sort - [echo] component.basefilename : datatable-sort - [echo] component.basedir : C:\home\web\git\yui3\src\datatable - [echo] component.builddir : C:\home\web\git\yui3\src\datatable/build_tmp - [echo] Global Build Properties - [echo] global.build.base : C:\home\web\git\yui3\build - [echo] global.build.component : ../..//build/datatable - [echo] global.build.component.assets : C:\home\web\git\yui3\build\datatable\assets - -clean: - [delete] Deleting directory C:\home\web\git\yui3\src\datatable\build_tmp - -init: - [mkdir] Created dir: C:\home\web\git\yui3\src\datatable\build_tmp - --concatdebug: - [echo] Concatenating - [echo] Source Files : datatable-sort.js - [echo] In Source Dir : C:\home\web\git\yui3\src\datatable\js - [echo] To : C:\home\web\git\yui3\src\datatable/build_tmp/datatable-sort-debug.js - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp\ant - [delete] Deleting directory C:\home\web\git\yui3\src\datatable\build_tmp\ant - --registerdebug: - [echo] Wrapping C:\home\web\git\yui3\src\datatable/build_tmp/datatable-sort-debug.js in YUI.add module - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp - --prependdebug: - --appenddebug: - -builddebug: - --createcore: - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp - --loggerregex: - [echo] Replacing Logger Statements in C:\home\web\git\yui3\src\datatable/build_tmp/datatable-sort.js - -buildcore: - --rollupjs: - [echo] Rolling up datatable-sort-debug.js into datatable-debug.js - --concatskins: - --buildskins: - --rollupcss: - -buildskins: - --buildlangs: - [mkdir] Created dir: C:\home\web\git\yui3\src\datatable\build_tmp\lang - [echo] Wrapping C:\home\web\git\yui3\src\datatable\lang/datatable-sort_en.js in YUI.add, Y.Intl.add - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp\lang - [echo] Wrapping C:\home\web\git\yui3\src\datatable\lang/datatable-sort.js in YUI.add, Y.Intl.add - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp\lang - --rolluplangs: - -buildlangs: - -build: - -minify: - [echo] Running yuicompressor on C:\home\web\git\yui3\src\datatable/build_tmp/datatable-sort.js - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("datatable-sort",function(Y){ - [echo] Running yuicompressor on C:\home\web\git\yui3\src\datatable\build_tmp\lang\datatable-sort.js - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("lang/datatable-sort",function(Y){ - [echo] Running yuicompressor on C:\home\web\git\yui3\src\datatable\build_tmp\lang\datatable-sort_en.js - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("lang/datatable-sort_en",function(Y){ - -lint: - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-sort-debug.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-sort-min.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-sort.js - [java] - OK - -local: - -deploybuild: - [copy] Copying 3 files to C:\home\web\git\yui3\build\datatable - -deployassets: - -deployskins: - -deploylang: - [copy] Copying 2 files to C:\home\web\git\yui3\build\datatable\lang - -deploydocs: - -deploy: - -all: - [echo] Starting Build For datatable-colresize - [echo] Ant Properties - [echo] Home : C:/Program Files/apache-ant-1.8.1 - [echo] Ant Version : Apache Ant version 1.8.1 compiled on April 30 2010 - [echo] Build File : C:\home\web\git\yui3\src\datatable\build.colresize.xml - [echo] Local Build Properties - [echo] version : 3 - [echo] srcdir : ../../ - [echo] builddir : ../../../builder/componentbuild - [echo] component : datatable-colresize - [echo] component.basefilename : datatable-colresize - [echo] component.basedir : C:\home\web\git\yui3\src\datatable - [echo] component.builddir : C:\home\web\git\yui3\src\datatable/build_tmp - [echo] Global Build Properties - [echo] global.build.base : C:\home\web\git\yui3\build - [echo] global.build.component : ../..//build/datatable - [echo] global.build.component.assets : C:\home\web\git\yui3\build\datatable\assets - -clean: - [delete] Deleting directory C:\home\web\git\yui3\src\datatable\build_tmp - -init: - [mkdir] Created dir: C:\home\web\git\yui3\src\datatable\build_tmp - --concatdebug: - [echo] Concatenating - [echo] Source Files : datatable-colresize.js - [echo] In Source Dir : C:\home\web\git\yui3\src\datatable\js - [echo] To : C:\home\web\git\yui3\src\datatable/build_tmp/datatable-colresize-debug.js - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp\ant - [delete] Deleting directory C:\home\web\git\yui3\src\datatable\build_tmp\ant - --registerdebug: - [echo] Wrapping C:\home\web\git\yui3\src\datatable/build_tmp/datatable-colresize-debug.js in YUI.add module - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp - --prependdebug: - --appenddebug: - -builddebug: - --createcore: - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_tmp - --loggerregex: - [echo] Replacing Logger Statements in C:\home\web\git\yui3\src\datatable/build_tmp/datatable-colresize.js - -buildcore: - --rollupjs: - [echo] Rolling up datatable-colresize-debug.js into datatable-debug.js - --concatskins: - --buildskins: - --rollupcss: - -buildskins: - --buildlangs: - --rolluplangs: - -buildlangs: - -build: - -minify: - [echo] Running yuicompressor on C:\home\web\git\yui3\src\datatable/build_tmp/datatable-colresize.js - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("datatable-colresize",function(Y){ - -lint: - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-colresize-debug.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-colresize-min.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_tmp\datatable-colresize.js - [java] - OK - -local: - -deploybuild: - [copy] Copying 3 files to C:\home\web\git\yui3\build\datatable - -deployassets: - -deployskins: - -deploylang: - -deploydocs: - -deploy: - -all: - --registerall: - [echo] Adding Rollup ./build_rollup_tmp/datatable-debug.js using YUI.add - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_rollup_tmp - [echo] Adding Rollup ./build_rollup_tmp/datatable.js using YUI.add - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_rollup_tmp - [echo] Registering rollup info for lang files in ./build_rollup_tmp/lang/ using YUI.add - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_rollup_tmp\lang - [copy] Copying 1 file to C:\home\web\git\yui3\src\datatable\build_rollup_tmp\lang - --prependdebug: - --prepend: - --prependall: - --appenddebug: - --append: - --appendall: - --rollupjs: - --rolluplangs: - -buildmodules: - -build: - -minify: - [echo] Running yuicompressor on ./build_rollup_tmp/datatable.js - [java] - [java] [WARNING] Try to use a single 'var' statement per scope. - [java] });Y.Columnset=Columnset; ---> var <--- LANG=Y.Lang,NODE=Y. - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("datatable-base",function(Y){ - [java] - [java] [WARNING] The symbol theadNode is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] },bindUI:function(){var ---> theadNode <--- =this._theadNode,tbodyNode=this._tbodyNode - [java] - [java] [WARNING] The symbol tbodyNode is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] ){var theadNode=this._theadNode, ---> tbodyNode <--- =this._tbodyNode,msgNode=this._msgNode - [java] - [java] [WARNING] The symbol msgNode is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] ._theadNode,tbodyNode=this._tbodyNode, ---> msgNode <--- =this._msgNode,contentBox=this.get - [java] - [java] [WARNING] The symbol contentBox is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] ._tbodyNode,msgNode=this._msgNode, ---> contentBox <--- =this.get("contentBox");this. - [java] - [java] [WARNING] The symbol o is declared but is apparently never used. - [java] This code can probably be written in a more compact way. - [java] length,ths=[],column, ---> o <--- ;for(;i YUI <--- .add("lang/datatable-base",function(Y){ - [echo] Running yuicompressor on C:\home\web\git\yui3\src\datatable\build_rollup_tmp\lang\datatable_en.js - [java] - [java] [WARNING] Found an undeclared symbol: YUI - [java] ---> YUI <--- .add("lang/datatable-base_en",function(Y){ - -lint: - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_rollup_tmp\datatable-debug.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_rollup_tmp\datatable-min.js - [java] - OK - [java] Running JSLint on : C:\home\web\git\yui3\src\datatable\build_rollup_tmp\datatable.js - [java] - OK - -local: - -deploybuild: - [copy] Copying 3 files to C:\home\web\git\yui3\build\datatable - -deployassets: - -deployskins: - [copy] Copying 1 file to C:\home\web\git\yui3\build\datatable\assets\skins\sam - [copy] Copying 1 file to C:\home\web\git\yui3\build\datatable\assets\skins\sam diff --git a/build/datatable/datatable-base-debug.js b/build/datatable/datatable-base-debug.js deleted file mode 100644 index 52f4c921f7c..00000000000 --- a/build/datatable/datatable-base-debug.js +++ /dev/null @@ -1,1643 +0,0 @@ -/* -Copyright (c) 2010, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.com/yui/license.html -version: 3.4.0 -build: nightly -*/ -YUI.add('datatable-base', function(Y) { - -var YLang = Y.Lang, - YisValue = YLang.isValue, - Ysubstitute = Y.Lang.substitute, - YNode = Y.Node, - Ycreate = YNode.create, - YgetClassName = Y.ClassNameManager.getClassName, - - DATATABLE = "datatable", - COLUMN = "column", - - FOCUS = "focus", - KEYDOWN = "keydown", - MOUSEENTER = "mouseenter", - MOUSELEAVE = "mouseleave", - MOUSEUP = "mouseup", - MOUSEDOWN = "mousedown", - CLICK = "click", - DBLCLICK = "dblclick", - - CLASS_COLUMNS = YgetClassName(DATATABLE, "columns"), - CLASS_DATA = YgetClassName(DATATABLE, "data"), - CLASS_MSG = YgetClassName(DATATABLE, "msg"), - CLASS_LINER = YgetClassName(DATATABLE, "liner"), - CLASS_FIRST = YgetClassName(DATATABLE, "first"), - CLASS_LAST = YgetClassName(DATATABLE, "last"), - CLASS_EVEN = YgetClassName(DATATABLE, "even"), - CLASS_ODD = YgetClassName(DATATABLE, "odd"), - - TEMPLATE_TABLE = '
                                  ', - TEMPLATE_COL = '', - TEMPLATE_THEAD = '', - TEMPLATE_TBODY = '', - TEMPLATE_TH = '
                                  {value}
                                  ', - TEMPLATE_TR = '', - TEMPLATE_TD = '
                                  {value}
                                  ', - TEMPLATE_VALUE = '{value}', - TEMPLATE_MSG = ''; - - - -/** - * The Column class defines and manages attributes of Columns for DataTable. - * - * @class Column - * @extends Widget - * @constructor - */ -function Column(config) { - Column.superclass.constructor.apply(this, arguments); -} - -///////////////////////////////////////////////////////////////////////////// -// -// STATIC PROPERTIES -// -///////////////////////////////////////////////////////////////////////////// -Y.mix(Column, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "column" - */ - NAME: "column", - -///////////////////////////////////////////////////////////////////////////// -// -// ATTRIBUTES -// -///////////////////////////////////////////////////////////////////////////// - ATTRS: { - /** - * @attribute id - * @description Unique internal identifier, used to stamp ID on TH element. - * @type String - * @readOnly - */ - id: { - valueFn: "_defaultId", - readOnly: true - }, - - /** - * @attribute key - * @description User-supplied identifier. Defaults to id. - * @type String - */ - key: { - valueFn: "_defaultKey" - }, - - /** - * @attribute field - * @description Points to underlying data field (for sorting or formatting, - * for example). Useful when column doesn't hold any data itself, but is - * just a visual representation of data from another column or record field. - * Defaults to key. - * @type String - */ - field: { - valueFn: "_defaultField" - }, - - /** - * @attribute label - * @description Display label for column header. Defaults to key. - * @type String - */ - label: { - valueFn: "_defaultLabel" - }, - - /** - * @attribute children - * @description Array of child column definitions (for nested headers). - * @type String - */ - children: { - value: null - }, - - /** - * @attribute abbr - * @description TH abbr attribute. - * @type String - */ - abbr: { - value: "" - }, - - //TODO: support custom classnames - // TH CSS classnames - classnames: { - readOnly: true, - getter: "_getClassnames" - }, - - // Column formatter - formatter: {}, - - //requires datatable-sort - sortable: { - value: false - }, - //sortOptions:defaultDir, sortFn, field - - //TODO: support editable columns - // Column editor - editor: {}, - - //TODO: support resizeable columns - //TODO: support setting widths - // requires datatable-colresize - width: {}, - resizeable: {}, - minimized: {}, - minWidth: {}, - maxAutoWidth: {} - } -}); - -///////////////////////////////////////////////////////////////////////////// -// -// PROTOTYPE -// -///////////////////////////////////////////////////////////////////////////// -Y.extend(Column, Y.Widget, { - ///////////////////////////////////////////////////////////////////////////// - // - // ATTRIBUTE HELPERS - // - ///////////////////////////////////////////////////////////////////////////// - /** - * @method _defaultId - * @description Return ID for instance. - * @returns String - * @private - */ - _defaultId: function() { - return Y.guid(); - }, - - /** - * @method _defaultKey - * @description Return key for instance. Defaults to ID if one was not - * provided. - * @returns String - * @private - */ - _defaultKey: function(key) { - return key || Y.guid(); - }, - - /** - * @method _defaultField - * @description Return field for instance. Defaults to key if one was not - * provided. - * @returns String - * @private - */ - _defaultField: function(field) { - return field || this.get("key"); - }, - - /** - * @method _defaultLabel - * @description Return label for instance. Defaults to key if one was not - * provided. - * @returns String - * @private - */ - _defaultLabel: function(label) { - return label || this.get("key"); - }, - - /** - * Updates the UI if changes are made to abbr. - * - * @method _afterAbbrChange - * @param e {Event} Custom event for the attribute change. - * @private - */ - _afterAbbrChange: function (e) { - this._uiSetAbbr(e.newVal); - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // PROPERTIES - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Reference to Column's current position index within its Columnset's keys - * array, if applicable. This property only applies to non-nested and bottom- - * level child Columns. Value is set by Columnset code. - * - * @property keyIndex - * @type Number - */ - keyIndex: null, - - /** - * @property headers - * @description Array of TH IDs associated with this column, for TD "headers" - * attribute. Value is set by Columnset code - * @type String[] - */ - headers: null, - - /** - * Number of cells the header spans. Value is set by Columnset code. - * - * @property colSpan - * @type Number - * @default 1 - */ - colSpan: 1, - - /** - * Number of rows the header spans. Value is set by Columnset code. - * - * @property rowSpan - * @type Number - * @default 1 - */ - rowSpan: 1, - - /** - * Column's parent Column instance, if applicable. Value is set by Columnset - * code. - * - * @property parent - * @type Y.Column - */ - parent: null, - - /** - * The Node reference to the associated TH element. - * - * @property thNode - * @type Y.Node - */ - - thNode: null, - - /*TODO - * The Node reference to the associated liner element. - * - * @property thLinerNode - * @type Y.Node - - thLinerNode: null,*/ - - ///////////////////////////////////////////////////////////////////////////// - // - // METHODS - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Initializer. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - }, - - /** - * Destructor. - * - * @method destructor - * @private - */ - destructor: function() { - }, - - /** - * Returns classnames for Column. - * - * @method _getClassnames - * @private - */ - _getClassnames: function () { - return Y.ClassNameManager.getClassName(COLUMN, this.get("id")); - /*var allClasses; - - // Add CSS classes - if(lang.isString(oColumn.className)) { - // Single custom class - allClasses = [oColumn.className]; - } - else if(lang.isArray(oColumn.className)) { - // Array of custom classes - allClasses = oColumn.className; - } - else { - // no custom classes - allClasses = []; - } - - // Hook for setting width with via dynamic style uses key since ID is too disposable - allClasses[allClasses.length] = this.getId() + "-col-" +oColumn.getSanitizedKey(); - - // Column key - minus any chars other than "A-Z", "a-z", "0-9", "_", "-", ".", or ":" - allClasses[allClasses.length] = "yui-dt-col-" +oColumn.getSanitizedKey(); - - var isSortedBy = this.get("sortedBy") || {}; - // Sorted - if(oColumn.key === isSortedBy.key) { - allClasses[allClasses.length] = isSortedBy.dir || ''; - } - // Hidden - if(oColumn.hidden) { - allClasses[allClasses.length] = DT.CLASS_HIDDEN; - } - // Selected - if(oColumn.selected) { - allClasses[allClasses.length] = DT.CLASS_SELECTED; - } - // Sortable - if(oColumn.sortable) { - allClasses[allClasses.length] = DT.CLASS_SORTABLE; - } - // Resizeable - if(oColumn.resizeable) { - allClasses[allClasses.length] = DT.CLASS_RESIZEABLE; - } - // Editable - if(oColumn.editor) { - allClasses[allClasses.length] = DT.CLASS_EDITABLE; - } - - // Addtnl classes, including First/Last - if(aAddClasses) { - allClasses = allClasses.concat(aAddClasses); - } - - return allClasses.join(' ');*/ - }, - - //////////////////////////////////////////////////////////////////////////// - // - // SYNC - // - //////////////////////////////////////////////////////////////////////////// - /** - * Syncs UI to intial state. - * - * @method syncUI - * @private - */ - syncUI: function() { - this._uiSetAbbr(this.get("abbr")); - }, - - /** - * Updates abbr. - * - * @method _uiSetAbbr - * @param val {String} New abbr. - * @protected - */ - _uiSetAbbr: function(val) { - this.thNode.set("abbr", val); - } -}); - -Y.Column = Column; -/** - * The Columnset class defines and manages a collection of Columns. - * - * @class Columnset - * @extends Base - * @constructor - */ -function Columnset(config) { - Columnset.superclass.constructor.apply(this, arguments); -} - -///////////////////////////////////////////////////////////////////////////// -// -// STATIC PROPERTIES -// -///////////////////////////////////////////////////////////////////////////// -Y.mix(Columnset, { - /** - * Class name. - * - * @property NAME - * @type String - * @static - * @final - * @value "columnset" - */ - NAME: "columnset", - - ///////////////////////////////////////////////////////////////////////////// - // - // ATTRIBUTES - // - ///////////////////////////////////////////////////////////////////////////// - ATTRS: { - /** - * @attribute definitions - * @description Array of column definitions that will populate this Columnset. - * @type Array - */ - definitions: { - setter: "_setDefinitions" - } - - } -}); - -///////////////////////////////////////////////////////////////////////////// -// -// PROTOTYPE -// -///////////////////////////////////////////////////////////////////////////// -Y.extend(Columnset, Y.Base, { - ///////////////////////////////////////////////////////////////////////////// - // - // ATTRIBUTE HELPERS - // - ///////////////////////////////////////////////////////////////////////////// - /** - * @method _setDefinitions - * @description Clones definitions before setting. - * @param definitions {Array} Array of column definitions. - * @returns Array - * @private - */ - _setDefinitions: function(definitions) { - return Y.clone(definitions); - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // PROPERTIES - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Top-down tree representation of Column hierarchy. Used to create DOM - * elements. - * - * @property tree - * @type Y.Column[] - */ - tree: null, - - /** - * Hash of all Columns by ID. - * - * @property idHash - * @type Object - */ - idHash: null, - - /** - * Hash of all Columns by key. - * - * @property keyHash - * @type Object - */ - keyHash: null, - - /** - * Array of only Columns that are meant to be displayed in DOM. - * - * @property keys - * @type Y.Column[] - */ - keys: null, - - ///////////////////////////////////////////////////////////////////////////// - // - // METHODS - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Initializer. Generates all internal representations of the collection of - * Columns. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function() { - - // DOM tree representation of all Columns - var tree = [], - // Hash of all Columns by ID - idHash = {}, - // Hash of all Columns by key - keyHash = {}, - // Flat representation of only Columns that are meant to display data - keys = [], - // Original definitions - definitions = this.get("definitions"), - - self = this; - - // Internal recursive function to define Column instances - function parseColumns(depth, currentDefinitions, parent) { - var i=0, - len = currentDefinitions.length, - currentDefinition, - column, - currentChildren; - - // One level down - depth++; - - // Create corresponding dom node if not already there for this depth - if(!tree[depth]) { - tree[depth] = []; - } - - // Parse each node at this depth for attributes and any children - for(; i maxRowDepth) { - maxRowDepth = tmpRowDepth; - } - } - } - } - - // Count max row depth for each row - for(m=0; m' - */ - trTemplate: { - value: TEMPLATE_TR - } - }, - -///////////////////////////////////////////////////////////////////////////// -// -// TODO: HTML_PARSER -// -///////////////////////////////////////////////////////////////////////////// - HTML_PARSER: { - /*caption: function (srcNode) { - - }*/ - } -}); - -///////////////////////////////////////////////////////////////////////////// -// -// PROTOTYPE -// -///////////////////////////////////////////////////////////////////////////// -Y.extend(DTBase, Y.Widget, { - /** - * @property thTemplate - * @description Tokenized markup template for TH node creation. - * @type String - * @default '
                                  {value}
                                  ' - */ - thTemplate: TEMPLATE_TH, - - /** - * @property tdTemplate - * @description Tokenized markup template for TD node creation. - * @type String - * @default '
                                  {value}
                                  ' - */ - tdTemplate: TEMPLATE_TD, - - /** - * @property _theadNode - * @description Pointer to THEAD node. - * @type Y.Node - * @private - */ - _theadNode: null, - - /** - * @property _tbodyNode - * @description Pointer to TBODY node. - * @type Y.Node - * @private - */ - _tbodyNode: null, - - /** - * @property _msgNode - * @description Pointer to message display node. - * @type Y.Node - * @private - */ - _msgNode: null, - - ///////////////////////////////////////////////////////////////////////////// - // - // ATTRIBUTE HELPERS - // - ///////////////////////////////////////////////////////////////////////////// - /** - * @method _setColumnset - * @description Converts Array to Y.Columnset. - * @param columns {Array | Y.Columnset} - * @returns Y.Columnset - * @private - */ - _setColumnset: function(columns) { - return YLang.isArray(columns) ? new Y.Columnset({definitions:columns}) : columns; - }, - - /** - * Updates the UI if Columnset is changed. - * - * @method _afterColumnsetChange - * @param e {Event} Custom event for the attribute change. - * @protected - */ - _afterColumnsetChange: function (e) { - if(this.get("rendered")) { - this._uiSetColumnset(e.newVal); - } - }, - - /** - * @method _setRecordset - * @description Converts Array to Y.Recordset. - * @param records {Array | Y.Recordset} - * @returns Y.Recordset - * @private - */ - _setRecordset: function(rs) { - if(YLang.isArray(rs)) { - rs = new Y.Recordset({records:rs}); - } - - rs.addTarget(this); - return rs; - }, - - /** - * Updates the UI if Recordset is changed. - * - * @method _afterRecordsetChange - * @param e {Event} Custom event for the attribute change. - * @protected - */ - _afterRecordsetChange: function (e) { - if(this.get("rendered")) { - this._uiSetRecordset(e.newVal); - } - }, - - /** - * Updates the UI if summary is changed. - * - * @method _afterSummaryChange - * @param e {Event} Custom event for the attribute change. - * @protected - */ - _afterSummaryChange: function (e) { - if(this.get("rendered")) { - this._uiSetSummary(e.newVal); - } - }, - - /** - * Updates the UI if caption is changed. - * - * @method _afterCaptionChange - * @param e {Event} Custom event for the attribute change. - * @protected - */ - _afterCaptionChange: function (e) { - if(this.get("rendered")) { - this._uiSetCaption(e.newVal); - } - }, - - ///////////////////////////////////////////////////////////////////////////// - // - // METHODS - // - ///////////////////////////////////////////////////////////////////////////// - /** - * Initializer. - * - * @method initializer - * @param config {Object} Config object. - * @private - */ - initializer: function(config) { - this.after("columnsetChange", this._afterColumnsetChange); - this.after("recordsetChange", this._afterRecordsetChange); - this.after("summaryChange", this._afterSummaryChange); - this.after("captionChange", this._afterCaptionChange); - }, - - /** - * Destructor. - * - * @method destructor - * @private - */ - destructor: function() { - this.get("recordset").removeTarget(this); - }, - - //////////////////////////////////////////////////////////////////////////// - // - // RENDER - // - //////////////////////////////////////////////////////////////////////////// - - /** - * Renders UI. - * - * @method renderUI - * @private - */ - renderUI: function() { - // TABLE - return (this._addTableNode(this.get("contentBox")) && - // COLGROUP - this._addColgroupNode(this._tableNode) && - // THEAD - this._addTheadNode(this._tableNode) && - // Primary TBODY - this._addTbodyNode(this._tableNode) && - // Message TBODY - this._addMessageNode(this._tableNode) && - // CAPTION - this._addCaptionNode(this._tableNode)); - }, - - /** - * Creates and attaches TABLE element to given container. - * - * @method _addTableNode - * @param containerNode {Y.Node} Parent node. - * @protected - * @returns Y.Node - */ - _addTableNode: function(containerNode) { - if (!this._tableNode) { - this._tableNode = containerNode.appendChild(Ycreate(TEMPLATE_TABLE)); - } - return this._tableNode; - }, - - /** - * Creates and attaches COLGROUP element to given TABLE. - * - * @method _addColgroupNode - * @param tableNode {Y.Node} Parent node. - * @protected - * @returns Y.Node - */ - _addColgroupNode: function(tableNode) { - // Add COLs to DOCUMENT FRAGMENT - var len = this.get("columnset").keys.length, - i = 0, - allCols = [""]; - - for(; i"); - - // Create COLGROUP - this._colgroupNode = tableNode.insertBefore(Ycreate(allCols.join("")), tableNode.get("firstChild")); - - return this._colgroupNode; - }, - - /** - * Creates and attaches THEAD element to given container. - * - * @method _addTheadNode - * @param tableNode {Y.Node} Parent node. - * @protected - * @returns Y.Node - */ - _addTheadNode: function(tableNode) { - if(tableNode) { - this._theadNode = tableNode.insertBefore(Ycreate(TEMPLATE_THEAD), this._colgroupNode.next()); - return this._theadNode; - } - }, - - /** - * Creates and attaches TBODY element to given container. - * - * @method _addTbodyNode - * @param tableNode {Y.Node} Parent node. - * @protected - * @returns Y.Node - */ - _addTbodyNode: function(tableNode) { - this._tbodyNode = tableNode.appendChild(Ycreate(TEMPLATE_TBODY)); - return this._tbodyNode; - }, - - /** - * Creates and attaches message display element to given container. - * - * @method _addMessageNode - * @param tableNode {Y.Node} Parent node. - * @protected - * @returns Y.Node - */ - _addMessageNode: function(tableNode) { - this._msgNode = tableNode.insertBefore(Ycreate(TEMPLATE_MSG), this._tbodyNode); - return this._msgNode; - }, - - /** - * Creates and attaches CAPTION element to given container. - * - * @method _addCaptionNode - * @param tableNode {Y.Node} Parent node. - * @protected - * @returns Y.Node - */ - _addCaptionNode: function(tableNode) { - this._captionNode = tableNode.createCaption(); - return this._captionNode; - }, - - //////////////////////////////////////////////////////////////////////////// - // - // BIND - // - //////////////////////////////////////////////////////////////////////////// - - /** - * Binds events. - * - * @method bindUI - * @private - */ - bindUI: function() { - var theadFilter = "thead."+CLASS_COLUMNS+">tr>th", - tbodyFilter ="tbody."+CLASS_DATA+">tr>td", - msgFilter = "tbody."+CLASS_MSG+">tr>td"; - }, - - delegate: function(type) { - //TODO: is this necessary? - if(type==="dblclick") { - this.get("boundingBox").delegate.apply(this.get("boundingBox"), arguments); - } - else { - this.get("contentBox").delegate.apply(this.get("contentBox"), arguments); - } - }, - - - //////////////////////////////////////////////////////////////////////////// - // - // SYNC - // - //////////////////////////////////////////////////////////////////////////// - - /** - * Syncs UI to intial state. - * - * @method syncUI - * @private - */ - syncUI: function() { - // THEAD ROWS - this._uiSetColumnset(this.get("columnset")); - // DATA ROWS - this._uiSetRecordset(this.get("recordset")); - // SUMMARY - this._uiSetSummary(this.get("summary")); - // CAPTION - this._uiSetCaption(this.get("caption")); - }, - - /** - * Updates summary. - * - * @method _uiSetSummary - * @param val {String} New summary. - * @protected - */ - _uiSetSummary: function(val) { - val = YisValue(val) ? val : ""; - this._tableNode.set("summary", val); - }, - - /** - * Updates caption. - * - * @method _uiSetCaption - * @param val {String} New caption. - * @protected - */ - _uiSetCaption: function(val) { - val = YisValue(val) ? val : ""; - this._captionNode.setContent(val); - }, - - - //////////////////////////////////////////////////////////////////////////// - // - // THEAD/COLUMNSET FUNCTIONALITY - // - //////////////////////////////////////////////////////////////////////////// - /** - * Updates THEAD. - * - * @method _uiSetColumnset - * @param cs {Y.Columnset} New Columnset. - * @protected - */ - _uiSetColumnset: function(cs) { - var tree = cs.tree, - thead = this._theadNode, - i = 0, - len = tree.length, - parent = thead.get("parentNode"), - nextSibling = thead.next(); - - // Move THEAD off DOM - thead.remove(); - - thead.get("children").remove(true); - - // Iterate tree of columns to add THEAD rows - for(; i
                              • +
                                + From Div +

                                /open div---------

                                + +

                                {name}:{age} - {age * 5}

                                +
                                +

                                /close div---------

                                +
                                + + + + \ No newline at end of file From b5b8928894b5968959b4badefa5a4718fc429adf Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Mon, 15 Aug 2011 16:09:39 -0700 Subject: [PATCH 075/132] AUI-484 - Fixing JS error --- src/aui-base/js/aui-base.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/aui-base/js/aui-base.js b/src/aui-base/js/aui-base.js index f49463d4d70..a59bdfc35ef 100644 --- a/src/aui-base/js/aui-base.js +++ b/src/aui-base/js/aui-base.js @@ -239,15 +239,15 @@ A.mix( where = where || STR_END; if (where == STR_END) { - str = str.substr(0, length - ELLIPSIS.length) + ELLIPSIS; + str = str.substr(0, length - STR_ELLIPSIS.length) + STR_ELLIPSIS; } else if (where == STR_MIDDLE) { var middlePoint = Math.floor(length / 2); - str = str.substr(0, middlePoint) + ELLIPSIS + str.substr(strLength - middlePoint); + str = str.substr(0, middlePoint) + STR_ELLIPSIS + str.substr(strLength - middlePoint); } else if (where == STR_START) { - str = ELLIPSIS + str.substr(strLength - length); + str = STR_ELLIPSIS + str.substr(strLength - length); } } From 8fc44ca88783b4ac719b2381be8be771bb752fa3 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Mon, 15 Aug 2011 16:10:11 -0700 Subject: [PATCH 076/132] AUI-484 - Build files --- build/aui-base/aui-base-debug.js | 6 +++--- build/aui-base/aui-base-min.js | 2 +- build/aui-base/aui-base.js | 6 +++--- build/aui-template/aui-template-debug.js | 12 +++++++++--- build/aui-template/aui-template-min.js | 4 ++-- build/aui-template/aui-template.js | 12 +++++++++--- build/aui/aui-min.js | 2 +- build/aui/aui.js | 6 +++--- 8 files changed, 31 insertions(+), 19 deletions(-) diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index ae6f283cfb5..1738da2fb2e 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -721,15 +721,15 @@ A.mix( where = where || STR_END; if (where == STR_END) { - str = str.substr(0, length - ELLIPSIS.length) + ELLIPSIS; + str = str.substr(0, length - STR_ELLIPSIS.length) + STR_ELLIPSIS; } else if (where == STR_MIDDLE) { var middlePoint = Math.floor(length / 2); - str = str.substr(0, middlePoint) + ELLIPSIS + str.substr(strLength - middlePoint); + str = str.substr(0, middlePoint) + STR_ELLIPSIS + str.substr(strLength - middlePoint); } else if (where == STR_START) { - str = ELLIPSIS + str.substr(strLength - length); + str = STR_ELLIPSIS + str.substr(strLength - length); } } diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index eb4ba17bede..0155fb78df0 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,3 +1,3 @@ (function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true;}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var O=n.Lang,w=O.isArray,o=O.isFunction,h=O.isString,s=n.Array,L=n.namespace("Lang.String"),G=s.indexOf,y="",C=n.config.doc,D="firstChild",I="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,J=/<\/?[^>]+>/gi,H=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",N="end",f="#",M="middle",F="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var K in a){if(a.hasOwnProperty(K)){var E=a[K];m[E]=K;d.push(K);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(L,{camelize:n.cached(function(Q,P){var i=c;Q=String(Q);if(P){i=new RegExp(P+"([a-z])","gi");}return Q.replace(i,L._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(P,i){return P.indexOf(i)!=-1;},defaultValue:function(P,i){if(O.isUndefined(P)||P==y){if(O.isUndefined(i)){i=y;}P=i;}return P;},endsWith:function(Q,P){var i=(Q.length-P.length);return((i>=0)&&(Q.indexOf(P,i)==i));},escapeHTML:function(i){return i.replace(u,L._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(P,i){return v(i)(P);},padNumber:function(Q,R,i){var S=i?Number(Q).toFixed(i):String(Q);var P=S.indexOf(".");if(P==-1){P=S.length;}return L.repeat(p,Math.max(0,R-P))+S;},pluralize:function(P,i,R){var Q;if(P==1){Q=i;}else{Q=R||i+q;}return P+" "+Q;},remove:function(R,i,Q){var P=new RegExp(L.escapeRegEx(i),Q?x:y);return R.replace(P,y);},removeAll:function(P,i){return L.remove(P,i,true);},repeat:function(i,P){return new Array(P+1).join(i);},round:function(P,i){P=Number(P);if(O.isNumber(i)){i=Math.pow(10,i);P=Math.round(P*i)/i;}return P;},startsWith:function(P,i){return(P.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(P){var i=this;if(P){P=String(P).replace(J,y);}return P;},substr:function(P,Q,i){return String(P).substr(Q,i);},uncamelize:n.cached(function(P,i){i=i||" ";P=String(P);P=P.replace(H,"$1"+i+"$2$3");P=P.replace(b,"$1"+i+"$2"); -return P;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:O.trim,truncate:function(S,R,i){S=String(S);var Q=S.length;if(S&&Q>R){i=i||N;if(i==N){S=S.substr(0,R-ELLIPSIS.length)+ELLIPSIS;}else{if(i==M){var P=Math.floor(R/2);S=S.substr(0,P)+ELLIPSIS+S.substr(Q-P);}else{if(i==F){S=ELLIPSIS+S.substr(Q-R);}}}}return S;},undef:function(i){if(O.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(L.contains(i,B)){if(C&&!L.contains(i,r)){i=L._unescapeEntitiesUsingDom(i);}else{i=L.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,L._unescapeHTML);},_camelize:function(i,P){return P.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(P){var Q=m[P];if(!Q&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){Q=String.fromCharCode(i);}}return Q;},_unescapeEntitiesUsingDom:function(P){var i=L._unescapeNode;i[I]=P;if(i[g]){i[g]();}P=i.firstChild.nodeValue;i[I]=y;return P;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,R,Q){var P=i.slice((Q||R)+1||i.length);i.length=(R<0)?(i.length+R):R;return i.push.apply(i,P);},removeItem:function(i,Q){var P=G(i,Q);return s.remove(i,P);}});n.mix(O,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(P){var i=this;return String(P).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file +return P;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:O.trim,truncate:function(S,R,i){S=String(S);var Q=S.length;if(S&&Q>R){i=i||N;if(i==N){S=S.substr(0,R-l.length)+l;}else{if(i==M){var P=Math.floor(R/2);S=S.substr(0,P)+l+S.substr(Q-P);}else{if(i==F){S=l+S.substr(Q-R);}}}}return S;},undef:function(i){if(O.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(L.contains(i,B)){if(C&&!L.contains(i,r)){i=L._unescapeEntitiesUsingDom(i);}else{i=L.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,L._unescapeHTML);},_camelize:function(i,P){return P.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(P){var Q=m[P];if(!Q&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){Q=String.fromCharCode(i);}}return Q;},_unescapeEntitiesUsingDom:function(P){var i=L._unescapeNode;i[I]=P;if(i[g]){i[g]();}P=i.firstChild.nodeValue;i[I]=y;return P;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,R,Q){var P=i.slice((Q||R)+1||i.length);i.length=(R<0)?(i.length+R):R;return i.push.apply(i,P);},removeItem:function(i,Q){var P=G(i,Q);return s.remove(i,P);}});n.mix(O,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(P){var i=this;return String(P).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index ae6f283cfb5..1738da2fb2e 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -721,15 +721,15 @@ A.mix( where = where || STR_END; if (where == STR_END) { - str = str.substr(0, length - ELLIPSIS.length) + ELLIPSIS; + str = str.substr(0, length - STR_ELLIPSIS.length) + STR_ELLIPSIS; } else if (where == STR_MIDDLE) { var middlePoint = Math.floor(length / 2); - str = str.substr(0, middlePoint) + ELLIPSIS + str.substr(strLength - middlePoint); + str = str.substr(0, middlePoint) + STR_ELLIPSIS + str.substr(strLength - middlePoint); } else if (where == STR_START) { - str = ELLIPSIS + str.substr(strLength - length); + str = STR_ELLIPSIS + str.substr(strLength - length); } } diff --git a/build/aui-template/aui-template-debug.js b/build/aui-template/aui-template-debug.js index ace798a48f4..639149e8053 100644 --- a/build/aui-template/aui-template-debug.js +++ b/build/aui-template/aui-template-debug.js @@ -13,8 +13,7 @@ var Lang = A.Lang, REGEX_QUOTE = /'/g, REGEX_QUOTE_ESCAPED = /\\'/g, - REGEX_TPL_VAR = /\{([\w-.#]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g, - REGEX_TPL_VAR_SIMPLE = /\{([\w-.#]+)(?:(\:)([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g, + REGEX_TPL_VAR = /\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g, REGEX_TPL_SCRIPTLET = /\{\[((?:\\\]|.|\n)*?)\]\}/g, STR_BLANK = '', @@ -68,6 +67,7 @@ var Lang = A.Lang, STR_VALUES = 'values', STR_PARENT = 'parent', + STR_SPECIAL_I = '$i', STR_SPECIAL_INDEX = '$index', STR_SPECIAL_COUNT = '$count', STR_SPECIAL_LAST = '$last', @@ -105,7 +105,11 @@ var Lang = A.Lang, MAP_TPL_VALUES = { '.': 'this._getValidValues(values)', - '#': STR_SPECIAL_INDEX + '#': STR_SPECIAL_INDEX, + '$index': STR_SPECIAL_INDEX, + '$i': STR_SPECIAL_I, + '$count': STR_SPECIAL_COUNT, + '$last': STR_SPECIAL_LAST }, SRC_CREATE = {}; @@ -356,6 +360,7 @@ var Lang = A.Lang, STR_VALUES, STR_PARENT, STR_SPECIAL_INDEX, + STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, STR_WITHVALUES + STR_RETURN + expressionValue + STR_WITHCLOSE @@ -366,6 +371,7 @@ var Lang = A.Lang, STR_VALUES, STR_PARENT, STR_SPECIAL_INDEX, + STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, STR_WITHVALUES + expressionValue + STR_WITHCLOSE diff --git a/build/aui-template/aui-template-min.js b/build/aui-template/aui-template-min.js index a38235f7065..d2eb21dba8d 100644 --- a/build/aui-template/aui-template-min.js +++ b/build/aui-template/aui-template-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_TPL_VAR=/\{([\w-.#]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_VAR_SIMPLE=/\{([\w-.#]+)(?:(\:)([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX},SRC_CREATE={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(node,values){var instance=this;node=A.one(node);var rendered=null;if(node){rendered=A.Node.create(instance.parse(values));node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE;args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var exp=null; -var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){tpl=tpl.join(STR_BLANK);if(isObject(args[1])){config=args[1];}}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST},SRC_CREATE={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(node,values){var instance=this;node=A.one(node);var rendered=null;if(node){rendered=A.Node.create(instance.parse(values));node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE;args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK); +while(match=html.match(REGEX_TPL)){var exp=null;var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){tpl=tpl.join(STR_BLANK);if(isObject(args[1])){config=args[1];}}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); (function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true;}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var O=n.Lang,w=O.isArray,o=O.isFunction,h=O.isString,s=n.Array,L=n.namespace("Lang.String"),G=s.indexOf,y="",C=n.config.doc,D="firstChild",I="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,J=/<\/?[^>]+>/gi,H=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",N="end",f="#",M="middle",F="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var K in a){if(a.hasOwnProperty(K)){var E=a[K];m[E]=K;d.push(K);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(L,{camelize:n.cached(function(Q,P){var i=c;Q=String(Q);if(P){i=new RegExp(P+"([a-z])","gi");}return Q.replace(i,L._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(P,i){return P.indexOf(i)!=-1;},defaultValue:function(P,i){if(O.isUndefined(P)||P==y){if(O.isUndefined(i)){i=y;}P=i;}return P;},endsWith:function(Q,P){var i=(Q.length-P.length);return((i>=0)&&(Q.indexOf(P,i)==i));},escapeHTML:function(i){return i.replace(u,L._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(P,i){return v(i)(P);},padNumber:function(Q,R,i){var S=i?Number(Q).toFixed(i):String(Q);var P=S.indexOf(".");if(P==-1){P=S.length;}return L.repeat(p,Math.max(0,R-P))+S;},pluralize:function(P,i,R){var Q;if(P==1){Q=i;}else{Q=R||i+q;}return P+" "+Q;},remove:function(R,i,Q){var P=new RegExp(L.escapeRegEx(i),Q?x:y);return R.replace(P,y);},removeAll:function(P,i){return L.remove(P,i,true);},repeat:function(i,P){return new Array(P+1).join(i);},round:function(P,i){P=Number(P);if(O.isNumber(i)){i=Math.pow(10,i);P=Math.round(P*i)/i;}return P;},startsWith:function(P,i){return(P.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(P){var i=this;if(P){P=String(P).replace(J,y);}return P;},substr:function(P,Q,i){return String(P).substr(Q,i);},uncamelize:n.cached(function(P,i){i=i||" ";P=String(P);P=P.replace(H,"$1"+i+"$2$3");P=P.replace(b,"$1"+i+"$2"); -return P;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:O.trim,truncate:function(S,R,i){S=String(S);var Q=S.length;if(S&&Q>R){i=i||N;if(i==N){S=S.substr(0,R-ELLIPSIS.length)+ELLIPSIS;}else{if(i==M){var P=Math.floor(R/2);S=S.substr(0,P)+ELLIPSIS+S.substr(Q-P);}else{if(i==F){S=ELLIPSIS+S.substr(Q-R);}}}}return S;},undef:function(i){if(O.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(L.contains(i,B)){if(C&&!L.contains(i,r)){i=L._unescapeEntitiesUsingDom(i);}else{i=L.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,L._unescapeHTML);},_camelize:function(i,P){return P.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(P){var Q=m[P];if(!Q&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){Q=String.fromCharCode(i);}}return Q;},_unescapeEntitiesUsingDom:function(P){var i=L._unescapeNode;i[I]=P;if(i[g]){i[g]();}P=i.firstChild.nodeValue;i[I]=y;return P;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,R,Q){var P=i.slice((Q||R)+1||i.length);i.length=(R<0)?(i.length+R):R;return i.push.apply(i,P);},removeItem:function(i,Q){var P=G(i,Q);return s.remove(i,P);}});n.mix(O,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(P){var i=this;return String(P).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); +return P;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:O.trim,truncate:function(S,R,i){S=String(S);var Q=S.length;if(S&&Q>R){i=i||N;if(i==N){S=S.substr(0,R-l.length)+l;}else{if(i==M){var P=Math.floor(R/2);S=S.substr(0,P)+l+S.substr(Q-P);}else{if(i==F){S=l+S.substr(Q-R);}}}}return S;},undef:function(i){if(O.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(L.contains(i,B)){if(C&&!L.contains(i,r)){i=L._unescapeEntitiesUsingDom(i);}else{i=L.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,L._unescapeHTML);},_camelize:function(i,P){return P.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(P){var Q=m[P];if(!Q&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){Q=String.fromCharCode(i);}}return Q;},_unescapeEntitiesUsingDom:function(P){var i=L._unescapeNode;i[I]=P;if(i[g]){i[g]();}P=i.firstChild.nodeValue;i[I]=y;return P;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,R,Q){var P=i.slice((Q||R)+1||i.length);i.length=(R<0)?(i.length+R):R;return i.push.apply(i,P);},removeItem:function(i,Q){var P=G(i,Q);return s.remove(i,P);}});n.mix(O,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(P){var i=this;return String(P).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); diff --git a/build/aui/aui.js b/build/aui/aui.js index 82f7d6fa5fe..0bab5c62a9e 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -5435,15 +5435,15 @@ A.mix( where = where || STR_END; if (where == STR_END) { - str = str.substr(0, length - ELLIPSIS.length) + ELLIPSIS; + str = str.substr(0, length - STR_ELLIPSIS.length) + STR_ELLIPSIS; } else if (where == STR_MIDDLE) { var middlePoint = Math.floor(length / 2); - str = str.substr(0, middlePoint) + ELLIPSIS + str.substr(strLength - middlePoint); + str = str.substr(0, middlePoint) + STR_ELLIPSIS + str.substr(strLength - middlePoint); } else if (where == STR_START) { - str = ELLIPSIS + str.substr(strLength - length); + str = STR_ELLIPSIS + str.substr(strLength - length); } } From 61388615ef35500a78146bc1f1161aec5a1b0ef2 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Mon, 15 Aug 2011 16:20:38 -0700 Subject: [PATCH 077/132] AUI-484 - Demo source formatting --- demos/template/index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/demos/template/index.html b/demos/template/index.html index c42790a8c88..43b777b345f 100644 --- a/demos/template/index.html +++ b/demos/template/index.html @@ -354,6 +354,8 @@

                                Making extra methods available to the template

                                });

                                Getting a template from a node

                                +
                                tpl = A.Template.from('#divContainingTplMarkup');
                                + or
                                tpl = A.one('#divContainingTplMarkup').toTemplate();

                                Rendering a template to a node

                                @@ -400,7 +402,7 @@

                                Parse a template to a string without rendering

                                if (js) { var outputParent = renderOutput.ancestor(); renderOutput.remove(); - tpl.render(renderOutput, js, true); + tpl.render(renderOutput, js); outputParent.append(renderOutput); } }, 'input.render-button'); From ece9b1036140f8827f42b6b41ed7a71e8635f688 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Mon, 15 Aug 2011 18:15:06 -0700 Subject: [PATCH 078/132] AUI-484 - Updating render method --- build/aui-template/aui-template-debug.js | 8 +++----- build/aui-template/aui-template-min.js | 2 +- build/aui-template/aui-template.js | 8 +++----- demos/template/index.html | 4 ++-- src/aui-template/js/aui-template.js | 8 +++----- 5 files changed, 12 insertions(+), 18 deletions(-) diff --git a/build/aui-template/aui-template-debug.js b/build/aui-template/aui-template-debug.js index 639149e8053..5c9b09b96ea 100644 --- a/build/aui-template/aui-template-debug.js +++ b/build/aui-template/aui-template-debug.js @@ -158,16 +158,14 @@ var Lang = A.Lang, return instance._parentTpl.compiled.call(instance, values, {}, 1, 1, 1); }, - render: function(node, values) { + render: function(values, node) { var instance = this; - node = A.one(node); + var rendered = A.Node.create(instance.parse(values)); - var rendered = null; + node = node && A.one(node); if (node) { - rendered = A.Node.create(instance.parse(values)); - node.setContent(rendered); } diff --git a/build/aui-template/aui-template-min.js b/build/aui-template/aui-template-min.js index d2eb21dba8d..b5be9c45b98 100644 --- a/build/aui-template/aui-template-min.js +++ b/build/aui-template/aui-template-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST},SRC_CREATE={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(node,values){var instance=this;node=A.one(node);var rendered=null;if(node){rendered=A.Node.create(instance.parse(values));node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE;args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK); +AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST},SRC_CREATE={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE;args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK); while(match=html.match(REGEX_TPL)){var exp=null;var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){tpl=tpl.join(STR_BLANK);if(isObject(args[1])){config=args[1];}}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;iGetting a template from a node
                                tpl = A.one('#divContainingTplMarkup').toTemplate();

                                Rendering a template to a node

                                -
                                tpl.render('#outputContainer', {name: 'Nate', age: 31});
                                +
                                tpl.render({name: 'Nate', age: 31}, '#outputContainer');
                                or
                                A.one('#outputContainer').renderTemplate(['This is my name: {name}'], {name: 'Nate', age: 31});
                                @@ -402,7 +402,7 @@

                                Parse a template to a string without rendering

                                if (js) { var outputParent = renderOutput.ancestor(); renderOutput.remove(); - tpl.render(renderOutput, js); + tpl.render(js, renderOutput); outputParent.append(renderOutput); } }, 'input.render-button'); diff --git a/src/aui-template/js/aui-template.js b/src/aui-template/js/aui-template.js index 4639e6414fc..88362a6749c 100644 --- a/src/aui-template/js/aui-template.js +++ b/src/aui-template/js/aui-template.js @@ -157,16 +157,14 @@ var Lang = A.Lang, return instance._parentTpl.compiled.call(instance, values, {}, 1, 1, 1); }, - render: function(node, values) { + render: function(values, node) { var instance = this; - node = A.one(node); + var rendered = A.Node.create(instance.parse(values)); - var rendered = null; + node = node && A.one(node); if (node) { - rendered = A.Node.create(instance.parse(values)); - node.setContent(rendered); } From c5f1eba3c9c277e98511fe13e219a94ddf9e9245 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Tue, 16 Aug 2011 07:04:15 -0700 Subject: [PATCH 079/132] AUI-484 - Demo formatting --- demos/template/index.html | 77 +++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 16 deletions(-) diff --git a/demos/template/index.html b/demos/template/index.html index 24db6f98eaf..35c5a4de8d6 100644 --- a/demos/template/index.html +++ b/demos/template/index.html @@ -206,6 +206,60 @@

                                Javascript object

                                +
                                +

                                Rendering from an Element

                                +

                                You can place your template markup on the page in a couple of different formats. You can place it as a hidden div, inside of an input/textarea, or in a script element (if you use a script element, you MUST set the type="" attribute to something other than "text/javascript"; we use type="aui/template").

                                +

                                +
                                +
                                +

                                Template markup

                                + +

                                Script tag

                                +
                                +<script id="scriptTPL" type="aui/template">
                                +	<tpl for=".">
                                +		{#} {.}
                                +	</tpl>
                                +</script>
                                + +

                                Hidden Div

                                +
                                +<div class="aui-helper-hidden" id="divTPL">
                                +	<tpl for=".">
                                +		{#} {.}
                                +	</tpl>
                                +</div>
                                + +

                                Hidden Textarea

                                +
                                +<textarea class="aui-helper-hidden" id="textareaTPL">
                                +	<tpl for=".">
                                +		{#} {.}
                                +	</tpl>
                                +</textarea>
                                +
                                +
                                +
                                +
                                +

                                Javascript object

                                +

                                Script tag

                                +
                                +var scriptTPL = A.one('#scriptTPL').toTemplate();
                                +scriptTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');
                                + +

                                Hidden Div

                                +
                                +var divTPL = A.one('#divTPL').toTemplate();
                                +divTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');
                                + +

                                Hidden Textarea

                                +
                                +var textareaTPL = A.one('#textareaTPL').toTemplate();
                                +textareaTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');
                                +
                                +
                                +
                                +

                                Embedding JavaScript

                                You can embed arbitrary JS code into your templates using scriptlets. The result of the scriptlet expression is embedded into the template. A scriptlet is demarked with the special {[ syntax ]}. Scriptlets can accept any valid JS expression, but are also passed the following variables: @@ -227,9 +281,7 @@

                                Template markup

                                <div class="scriptlet-row" style="background-color: {[$index % 2 === 0 ? '#98C0F4' : '#DFE8F6']};"> {name} - {[ A.getClassName(values.name, 'styled', 'element') ]} </div> -</tpl> - - +</tpl>
                                @@ -241,8 +293,7 @@

                                Javascript object

                                {name: 'Kevin', age: 15}, {name: 'Arnie', age: 14}, {name: 'Alice', age: 22} -] - +]
                                @@ -271,16 +322,14 @@

                                Template markup

                                 <tpl for="devs">
                                 	{#}. {.}<tpl if="!$last">,</tpl>
                                -</tpl>
                                -					
                                +</tpl>

                                Javascript object

                                -{devs: ['Nate', 'Eduardo', 'Iliyan', 'Bruno', 'Jon', 'Aaron']}
                                -					
                                +{devs: ['Nate', 'Eduardo', 'Iliyan', 'Bruno', 'Jon', 'Aaron']}
                                @@ -301,8 +350,7 @@

                                Template markup

                                 <tpl for="rows">
                                 	<div style="background-color: {[ $i % 2 ? '#ccc' : '']}; border-bottom: {[ !$last ? '1px solid #555' : '']}">{#}. {.}</div>
                                -</tpl>
                                -					
                                +</tpl>
                                @@ -321,8 +369,7 @@

                                Javascript object

                                rows[rows.length] = getRandomString(i); }; return obj; -})(); - +})();
                                @@ -412,14 +459,12 @@

                                Parse a template to a string without rendering

                                From Div -

                                /open div---------

                                {name}:{age} - {age * 5}

                                -

                                /close div---------

                                - + From eecf32fd99e94226511172d3a356e173ad5339ca Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Tue, 16 Aug 2011 10:39:27 -0700 Subject: [PATCH 083/132] AUI-484 - Adding Globals support and default NS support --- build/aui-template/aui-template-debug.js | 83 ++++++++++++++++++++--- build/aui-template/aui-template-min.js | 4 +- build/aui-template/aui-template.js | 83 ++++++++++++++++++++--- src/aui-template/js/aui-template.js | 84 +++++++++++++++++++++--- 4 files changed, 225 insertions(+), 29 deletions(-) diff --git a/build/aui-template/aui-template-debug.js b/build/aui-template/aui-template-debug.js index 5c9b09b96ea..627841916d9 100644 --- a/build/aui-template/aui-template-debug.js +++ b/build/aui-template/aui-template-debug.js @@ -7,11 +7,13 @@ var Lang = A.Lang, isString = Lang.isString, isObject = Lang.isObject, isValue = Lang.isValue, + isUndefined = Lang.isUndefined, REGEX_TPL = /]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/, REGEX_NEWLINE = /\r\n|\n/g, REGEX_QUOTE = /'/g, REGEX_QUOTE_ESCAPED = /\\'/g, + REGEX_PREFIX_GLOBAL_REPLACE = /^(?!\$)/, REGEX_TPL_VAR = /\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g, REGEX_TPL_SCRIPTLET = /\{\[((?:\\\]|.|\n)*?)\]\}/g, @@ -28,6 +30,7 @@ var Lang = A.Lang, STR_BRACE_CLOSE = '}', STR_PAREN_OPEN = '(', STR_PAREN_CLOSE = ')', + STR_GLOBAL_SYMBOL = '$', STR_JOIN_OPEN = STR_QUOTE + STR_COMMA, STR_JOIN_CLOSE = STR_COMMA + STR_QUOTE, @@ -35,7 +38,7 @@ var Lang = A.Lang, STR_JOIN_GROUP_OPEN = STR_JOIN_OPEN + STR_PAREN_OPEN, STR_JOIN_GROUP_CLOSE = STR_PAREN_CLOSE + STR_JOIN_CLOSE, - STR_COMPILE_TPL_ARGS = 'values, parent, $index, $i, $count, $last', + STR_COMPILE_TPL_ARGS = 'values, parent, $index, $i, $count, $last, $ns, $ans, $yns', BUFFER_HTML = ['', null, ''], @@ -51,6 +54,8 @@ var Lang = A.Lang, STR_QUOTE + '].join("");};' ], + BUFFER_GLOBAL_PROP = ['MAP_GLOBALS["', null, '"]'], + BUFFER_VALUES_LOOKUP = [ 'values["', null, @@ -71,6 +76,9 @@ var Lang = A.Lang, STR_SPECIAL_INDEX = '$index', STR_SPECIAL_COUNT = '$count', STR_SPECIAL_LAST = '$last', + STR_SPECIAL_ANS = '$ans', + STR_SPECIAL_NS = '$ns', + STR_SPECIAL_YNS = '$yns', STR_RETURN = 'return ', STR_WITHVALUES = 'with(values){ ', STR_WITHCLOSE = '; }', @@ -109,10 +117,18 @@ var Lang = A.Lang, '$index': STR_SPECIAL_INDEX, '$i': STR_SPECIAL_I, '$count': STR_SPECIAL_COUNT, - '$last': STR_SPECIAL_LAST + '$last': STR_SPECIAL_LAST, + '$ans': STR_SPECIAL_ANS, + '$ns': STR_SPECIAL_NS, + '$yns': STR_SPECIAL_YNS }, - SRC_CREATE = {}; + MAP_GLOBALS = {}, + + SRC_CREATE = {}, + + AUI_NS = A.getClassName(STR_BLANK), + YUI_NS = A.ClassNameManager.getClassName(STR_BLANK); var Template = function(html, src) { var instance = this; @@ -188,6 +204,10 @@ var Lang = A.Lang, var body = BUFFER_COMPILED_TPL_FN.join(STR_BLANK); + var $yns = instance.$yns; + var $ans = instance.$ans; + var $ns = instance.$ns; + eval(body); tpl.compiled = function(values, parent, $index, $i, $count, $last) { @@ -197,7 +217,7 @@ var Lang = A.Lang, var testFn = tpl.testFn; - if (!testFn || testFn.call(instance, values, parent, $index, $i, $count, $last)) { + if (!testFn || testFn.call(instance, values, parent, $index, $i, $count, $last, $ns, $ans, $yns)) { var subValues = values; var tplFn = tpl.tplFn; @@ -217,7 +237,7 @@ var Lang = A.Lang, var last = (index == length); var subValue = subValues[i]; - buffer[buffer.length] = compiledTplFn.call(instance, subValue, parent, index, i, length, last); + buffer[buffer.length] = compiledTplFn.call(instance, subValue, parent, index, i, length, last, $ns, $ans, $yns); if (execFn) { execFn.call(instance, subValues[i]); @@ -227,7 +247,7 @@ var Lang = A.Lang, subTpl = buffer.join(STR_BLANK); } else { - subTpl = compiledTplFn.call(instance, subValues, parent, $index, $i, $count, $last); + subTpl = compiledTplFn.call(instance, subValues, parent, $index, $i, $count, $last, $ns, $ans, $yns); } } @@ -241,13 +261,13 @@ var Lang = A.Lang, return STR_JOIN_GROUP_OPEN + code.replace(REGEX_QUOTE_ESCAPED, STR_QUOTE) + STR_JOIN_GROUP_CLOSE; }, - _compileSubTpl: function(id, values, parent, $index, $i, $count, $last) { + _compileSubTpl: function(id, values, parent, $index, $i, $count, $last, $ns, $ans, $yns) { var instance = this; var length; var tpl = instance.tpls[id]; - return tpl.compiled.call(instance, values, parent, $index, $i, $count, $last); + return tpl.compiled.call(instance, values, parent, $index, $i, $count, $last, $ns, $ans, $yns); }, _compileTpl: function(match, name, methodName, args, math, offset, str) { @@ -268,6 +288,12 @@ var Lang = A.Lang, else if (name.indexOf(STR_DOT) > -1) { value = TOKEN_VALUES_PROP + name; } + else if (name.indexOf(STR_GLOBAL_SYMBOL) === 0 && (name in MAP_GLOBALS)) { + BUFFER_GLOBAL_PROP[1] = name; + + value = BUFFER_GLOBAL_PROP.join(STR_BLANK); + + } else { BUFFER_VALUES_LOOKUP[1] = name; @@ -335,7 +361,6 @@ var Lang = A.Lang, html = BUFFER_HTML.join(STR_BLANK); while (match = html.match(REGEX_TPL)) { - var exp = null; var testFn = null; var execFn = null; var tplFn = null; @@ -361,6 +386,9 @@ var Lang = A.Lang, STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, + STR_SPECIAL_NS, + STR_SPECIAL_ANS, + STR_SPECIAL_YNS, STR_WITHVALUES + STR_RETURN + expressionValue + STR_WITHCLOSE ); } @@ -372,6 +400,9 @@ var Lang = A.Lang, STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, + STR_SPECIAL_NS, + STR_SPECIAL_ANS, + STR_SPECIAL_YNS, STR_WITHVALUES + expressionValue + STR_WITHCLOSE ); } @@ -448,9 +479,43 @@ var Lang = A.Lang, } return tpl; + }, + + $ans: AUI_NS, + $yns: YUI_NS + }; + + var TEMPLATE_PROTO = Template.prototype; + + TEMPLATE_PROTO.$ns = AUI_NS; + + var globalVar = function(key, value) { + var retVal = null; + + if (isUndefined(value) && key) { + retVal = MAP_GLOBALS[key]; + } + else { + if (key) { + key = String(key).replace(REGEX_PREFIX_GLOBAL_REPLACE, STR_GLOBAL_SYMBOL); + + if (value !== null) { + MAP_GLOBALS[key] = value; + retVal = value; + } + else { + delete MAP_GLOBALS[key]; + } + } } + + return retVal; }; + Template.globalVar = TEMPLATE_PROTO.globalVar = globalVar; + + Template._GLOBALS = MAP_GLOBALS; + var NODE_PROTO = A.Node.prototype; NODE_PROTO.toTemplate = function() { diff --git a/build/aui-template/aui-template-min.js b/build/aui-template/aui-template-min.js index b5be9c45b98..9129a5cba69 100644 --- a/build/aui-template/aui-template-min.js +++ b/build/aui-template/aui-template-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST},SRC_CREATE={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE;args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK); -while(match=html.match(REGEX_TPL)){var exp=null;var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){tpl=tpl.join(STR_BLANK);if(isObject(args[1])){config=args[1];}}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_PREFIX_GLOBAL_REPLACE=/^(?!\$)/,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_GLOBAL_SYMBOL="$",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last, $ns, $ans, $yns",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_GLOBAL_PROP=['MAP_GLOBALS["',null,'"]'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_SPECIAL_ANS="$ans",STR_SPECIAL_NS="$ns",STR_SPECIAL_YNS="$yns",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST,"$ans":STR_SPECIAL_ANS,"$ns":STR_SPECIAL_NS,"$yns":STR_SPECIAL_YNS},MAP_GLOBALS={},SRC_CREATE={},AUI_NS=A.getClassName(STR_BLANK),YUI_NS=A.ClassNameManager.getClassName(STR_BLANK);var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);var $yns=instance.$yns;var $ans=instance.$ans;var $ns=instance.$ns;eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last,$ns,$ans,$yns)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{if(name.indexOf(STR_GLOBAL_SYMBOL)===0&&(name in MAP_GLOBALS)){BUFFER_GLOBAL_PROP[1]=name;value=BUFFER_GLOBAL_PROP.join(STR_BLANK);}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE; +args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){tpl=tpl.join(STR_BLANK);if(isObject(args[1])){config=args[1];}}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/, REGEX_NEWLINE = /\r\n|\n/g, REGEX_QUOTE = /'/g, REGEX_QUOTE_ESCAPED = /\\'/g, + REGEX_PREFIX_GLOBAL_REPLACE = /^(?!\$)/, REGEX_TPL_VAR = /\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g, REGEX_TPL_SCRIPTLET = /\{\[((?:\\\]|.|\n)*?)\]\}/g, @@ -28,6 +30,7 @@ var Lang = A.Lang, STR_BRACE_CLOSE = '}', STR_PAREN_OPEN = '(', STR_PAREN_CLOSE = ')', + STR_GLOBAL_SYMBOL = '$', STR_JOIN_OPEN = STR_QUOTE + STR_COMMA, STR_JOIN_CLOSE = STR_COMMA + STR_QUOTE, @@ -35,7 +38,7 @@ var Lang = A.Lang, STR_JOIN_GROUP_OPEN = STR_JOIN_OPEN + STR_PAREN_OPEN, STR_JOIN_GROUP_CLOSE = STR_PAREN_CLOSE + STR_JOIN_CLOSE, - STR_COMPILE_TPL_ARGS = 'values, parent, $index, $i, $count, $last', + STR_COMPILE_TPL_ARGS = 'values, parent, $index, $i, $count, $last, $ns, $ans, $yns', BUFFER_HTML = ['', null, ''], @@ -51,6 +54,8 @@ var Lang = A.Lang, STR_QUOTE + '].join("");};' ], + BUFFER_GLOBAL_PROP = ['MAP_GLOBALS["', null, '"]'], + BUFFER_VALUES_LOOKUP = [ 'values["', null, @@ -71,6 +76,9 @@ var Lang = A.Lang, STR_SPECIAL_INDEX = '$index', STR_SPECIAL_COUNT = '$count', STR_SPECIAL_LAST = '$last', + STR_SPECIAL_ANS = '$ans', + STR_SPECIAL_NS = '$ns', + STR_SPECIAL_YNS = '$yns', STR_RETURN = 'return ', STR_WITHVALUES = 'with(values){ ', STR_WITHCLOSE = '; }', @@ -109,10 +117,18 @@ var Lang = A.Lang, '$index': STR_SPECIAL_INDEX, '$i': STR_SPECIAL_I, '$count': STR_SPECIAL_COUNT, - '$last': STR_SPECIAL_LAST + '$last': STR_SPECIAL_LAST, + '$ans': STR_SPECIAL_ANS, + '$ns': STR_SPECIAL_NS, + '$yns': STR_SPECIAL_YNS }, - SRC_CREATE = {}; + MAP_GLOBALS = {}, + + SRC_CREATE = {}, + + AUI_NS = A.getClassName(STR_BLANK), + YUI_NS = A.ClassNameManager.getClassName(STR_BLANK); var Template = function(html, src) { var instance = this; @@ -188,6 +204,10 @@ var Lang = A.Lang, var body = BUFFER_COMPILED_TPL_FN.join(STR_BLANK); + var $yns = instance.$yns; + var $ans = instance.$ans; + var $ns = instance.$ns; + eval(body); tpl.compiled = function(values, parent, $index, $i, $count, $last) { @@ -197,7 +217,7 @@ var Lang = A.Lang, var testFn = tpl.testFn; - if (!testFn || testFn.call(instance, values, parent, $index, $i, $count, $last)) { + if (!testFn || testFn.call(instance, values, parent, $index, $i, $count, $last, $ns, $ans, $yns)) { var subValues = values; var tplFn = tpl.tplFn; @@ -217,7 +237,7 @@ var Lang = A.Lang, var last = (index == length); var subValue = subValues[i]; - buffer[buffer.length] = compiledTplFn.call(instance, subValue, parent, index, i, length, last); + buffer[buffer.length] = compiledTplFn.call(instance, subValue, parent, index, i, length, last, $ns, $ans, $yns); if (execFn) { execFn.call(instance, subValues[i]); @@ -227,7 +247,7 @@ var Lang = A.Lang, subTpl = buffer.join(STR_BLANK); } else { - subTpl = compiledTplFn.call(instance, subValues, parent, $index, $i, $count, $last); + subTpl = compiledTplFn.call(instance, subValues, parent, $index, $i, $count, $last, $ns, $ans, $yns); } } @@ -241,13 +261,13 @@ var Lang = A.Lang, return STR_JOIN_GROUP_OPEN + code.replace(REGEX_QUOTE_ESCAPED, STR_QUOTE) + STR_JOIN_GROUP_CLOSE; }, - _compileSubTpl: function(id, values, parent, $index, $i, $count, $last) { + _compileSubTpl: function(id, values, parent, $index, $i, $count, $last, $ns, $ans, $yns) { var instance = this; var length; var tpl = instance.tpls[id]; - return tpl.compiled.call(instance, values, parent, $index, $i, $count, $last); + return tpl.compiled.call(instance, values, parent, $index, $i, $count, $last, $ns, $ans, $yns); }, _compileTpl: function(match, name, methodName, args, math, offset, str) { @@ -268,6 +288,12 @@ var Lang = A.Lang, else if (name.indexOf(STR_DOT) > -1) { value = TOKEN_VALUES_PROP + name; } + else if (name.indexOf(STR_GLOBAL_SYMBOL) === 0 && (name in MAP_GLOBALS)) { + BUFFER_GLOBAL_PROP[1] = name; + + value = BUFFER_GLOBAL_PROP.join(STR_BLANK); + + } else { BUFFER_VALUES_LOOKUP[1] = name; @@ -335,7 +361,6 @@ var Lang = A.Lang, html = BUFFER_HTML.join(STR_BLANK); while (match = html.match(REGEX_TPL)) { - var exp = null; var testFn = null; var execFn = null; var tplFn = null; @@ -361,6 +386,9 @@ var Lang = A.Lang, STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, + STR_SPECIAL_NS, + STR_SPECIAL_ANS, + STR_SPECIAL_YNS, STR_WITHVALUES + STR_RETURN + expressionValue + STR_WITHCLOSE ); } @@ -372,6 +400,9 @@ var Lang = A.Lang, STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, + STR_SPECIAL_NS, + STR_SPECIAL_ANS, + STR_SPECIAL_YNS, STR_WITHVALUES + expressionValue + STR_WITHCLOSE ); } @@ -448,9 +479,43 @@ var Lang = A.Lang, } return tpl; + }, + + $ans: AUI_NS, + $yns: YUI_NS + }; + + var TEMPLATE_PROTO = Template.prototype; + + TEMPLATE_PROTO.$ns = AUI_NS; + + var globalVar = function(key, value) { + var retVal = null; + + if (isUndefined(value) && key) { + retVal = MAP_GLOBALS[key]; + } + else { + if (key) { + key = String(key).replace(REGEX_PREFIX_GLOBAL_REPLACE, STR_GLOBAL_SYMBOL); + + if (value !== null) { + MAP_GLOBALS[key] = value; + retVal = value; + } + else { + delete MAP_GLOBALS[key]; + } + } } + + return retVal; }; + Template.globalVar = TEMPLATE_PROTO.globalVar = globalVar; + + Template._GLOBALS = MAP_GLOBALS; + var NODE_PROTO = A.Node.prototype; NODE_PROTO.toTemplate = function() { diff --git a/src/aui-template/js/aui-template.js b/src/aui-template/js/aui-template.js index afec3ddde2f..c2bda2a1e51 100644 --- a/src/aui-template/js/aui-template.js +++ b/src/aui-template/js/aui-template.js @@ -6,11 +6,13 @@ var Lang = A.Lang, isString = Lang.isString, isObject = Lang.isObject, isValue = Lang.isValue, + isUndefined = Lang.isUndefined, REGEX_TPL = /]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/, REGEX_NEWLINE = /\r\n|\n/g, REGEX_QUOTE = /'/g, REGEX_QUOTE_ESCAPED = /\\'/g, + REGEX_PREFIX_GLOBAL_REPLACE = /^(?!\$)/, REGEX_TPL_VAR = /\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g, REGEX_TPL_SCRIPTLET = /\{\[((?:\\\]|.|\n)*?)\]\}/g, @@ -27,6 +29,7 @@ var Lang = A.Lang, STR_BRACE_CLOSE = '}', STR_PAREN_OPEN = '(', STR_PAREN_CLOSE = ')', + STR_GLOBAL_SYMBOL = '$', STR_JOIN_OPEN = STR_QUOTE + STR_COMMA, STR_JOIN_CLOSE = STR_COMMA + STR_QUOTE, @@ -34,7 +37,7 @@ var Lang = A.Lang, STR_JOIN_GROUP_OPEN = STR_JOIN_OPEN + STR_PAREN_OPEN, STR_JOIN_GROUP_CLOSE = STR_PAREN_CLOSE + STR_JOIN_CLOSE, - STR_COMPILE_TPL_ARGS = 'values, parent, $index, $i, $count, $last', + STR_COMPILE_TPL_ARGS = 'values, parent, $index, $i, $count, $last, $ns, $ans, $yns', BUFFER_HTML = ['', null, ''], @@ -50,6 +53,8 @@ var Lang = A.Lang, STR_QUOTE + '].join("");};' ], + BUFFER_GLOBAL_PROP = ['MAP_GLOBALS["', null, '"]'], + BUFFER_VALUES_LOOKUP = [ 'values["', null, @@ -70,6 +75,9 @@ var Lang = A.Lang, STR_SPECIAL_INDEX = '$index', STR_SPECIAL_COUNT = '$count', STR_SPECIAL_LAST = '$last', + STR_SPECIAL_ANS = '$ans', + STR_SPECIAL_NS = '$ns', + STR_SPECIAL_YNS = '$yns', STR_RETURN = 'return ', STR_WITHVALUES = 'with(values){ ', STR_WITHCLOSE = '; }', @@ -108,10 +116,18 @@ var Lang = A.Lang, '$index': STR_SPECIAL_INDEX, '$i': STR_SPECIAL_I, '$count': STR_SPECIAL_COUNT, - '$last': STR_SPECIAL_LAST + '$last': STR_SPECIAL_LAST, + '$ans': STR_SPECIAL_ANS, + '$ns': STR_SPECIAL_NS, + '$yns': STR_SPECIAL_YNS }, - SRC_CREATE = {}; + MAP_GLOBALS = {}, + + SRC_CREATE = {}, + + AUI_NS = A.getClassName(STR_BLANK), + YUI_NS = A.ClassNameManager.getClassName(STR_BLANK); var Template = function(html, src) { var instance = this; @@ -187,6 +203,10 @@ var Lang = A.Lang, var body = BUFFER_COMPILED_TPL_FN.join(STR_BLANK); + var $yns = instance.$yns; + var $ans = instance.$ans; + var $ns = instance.$ns; + eval(body); tpl.compiled = function(values, parent, $index, $i, $count, $last) { @@ -196,7 +216,7 @@ var Lang = A.Lang, var testFn = tpl.testFn; - if (!testFn || testFn.call(instance, values, parent, $index, $i, $count, $last)) { + if (!testFn || testFn.call(instance, values, parent, $index, $i, $count, $last, $ns, $ans, $yns)) { var subValues = values; var tplFn = tpl.tplFn; @@ -216,7 +236,7 @@ var Lang = A.Lang, var last = (index == length); var subValue = subValues[i]; - buffer[buffer.length] = compiledTplFn.call(instance, subValue, parent, index, i, length, last); + buffer[buffer.length] = compiledTplFn.call(instance, subValue, parent, index, i, length, last, $ns, $ans, $yns); if (execFn) { execFn.call(instance, subValues[i]); @@ -226,7 +246,7 @@ var Lang = A.Lang, subTpl = buffer.join(STR_BLANK); } else { - subTpl = compiledTplFn.call(instance, subValues, parent, $index, $i, $count, $last); + subTpl = compiledTplFn.call(instance, subValues, parent, $index, $i, $count, $last, $ns, $ans, $yns); } } @@ -240,13 +260,13 @@ var Lang = A.Lang, return STR_JOIN_GROUP_OPEN + code.replace(REGEX_QUOTE_ESCAPED, STR_QUOTE) + STR_JOIN_GROUP_CLOSE; }, - _compileSubTpl: function(id, values, parent, $index, $i, $count, $last) { + _compileSubTpl: function(id, values, parent, $index, $i, $count, $last, $ns, $ans, $yns) { var instance = this; var length; var tpl = instance.tpls[id]; - return tpl.compiled.call(instance, values, parent, $index, $i, $count, $last); + return tpl.compiled.call(instance, values, parent, $index, $i, $count, $last, $ns, $ans, $yns); }, _compileTpl: function(match, name, methodName, args, math, offset, str) { @@ -267,6 +287,12 @@ var Lang = A.Lang, else if (name.indexOf(STR_DOT) > -1) { value = TOKEN_VALUES_PROP + name; } + else if (name.indexOf(STR_GLOBAL_SYMBOL) === 0 && (name in MAP_GLOBALS)) { + BUFFER_GLOBAL_PROP[1] = name; + + value = BUFFER_GLOBAL_PROP.join(STR_BLANK); + + } else { BUFFER_VALUES_LOOKUP[1] = name; @@ -359,6 +385,9 @@ var Lang = A.Lang, STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, + STR_SPECIAL_NS, + STR_SPECIAL_ANS, + STR_SPECIAL_YNS, STR_WITHVALUES + STR_RETURN + expressionValue + STR_WITHCLOSE ); } @@ -370,6 +399,9 @@ var Lang = A.Lang, STR_SPECIAL_I, STR_SPECIAL_COUNT, STR_SPECIAL_LAST, + STR_SPECIAL_NS, + STR_SPECIAL_ANS, + STR_SPECIAL_YNS, STR_WITHVALUES + expressionValue + STR_WITHCLOSE ); } @@ -446,9 +478,43 @@ var Lang = A.Lang, } return tpl; + }, + + $ans: AUI_NS, + $yns: YUI_NS + }; + + var TEMPLATE_PROTO = Template.prototype; + + TEMPLATE_PROTO.$ns = AUI_NS; + + var globalVar = function(key, value) { + var retVal = null; + + if (isUndefined(value) && key) { + retVal = MAP_GLOBALS[key]; + } + else { + if (key) { + key = String(key).replace(REGEX_PREFIX_GLOBAL_REPLACE, STR_GLOBAL_SYMBOL); + + if (value !== null) { + MAP_GLOBALS[key] = value; + retVal = value; + } + else { + delete MAP_GLOBALS[key]; + } + } } + + return retVal; }; + Template.globalVar = TEMPLATE_PROTO.globalVar = globalVar; + + Template._GLOBALS = MAP_GLOBALS; + var NODE_PROTO = A.Node.prototype; NODE_PROTO.toTemplate = function() { @@ -463,7 +529,7 @@ var Lang = A.Lang, } if (tpl && data) { - tpl.render(data, instance); + tpl.render(instance, data); } return instance; From bb65be608b02d058fb9ecd07f69690b26c08fd0a Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Tue, 16 Aug 2011 14:42:20 -0700 Subject: [PATCH 084/132] AUI-484 - Adding nl2br to string formatting methods --- build/aui-base/aui-base-debug.js | 7 +++++++ build/aui-base/aui-base-min.js | 4 ++-- build/aui-base/aui-base.js | 7 +++++++ build/aui/aui-min.js | 4 ++-- build/aui/aui.js | 7 +++++++ src/aui-base/js/aui-base.js | 7 +++++++ 6 files changed, 32 insertions(+), 4 deletions(-) diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index cd285ea02ca..d7132f5610f 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -498,6 +498,7 @@ var Lang = A.Lang, NORMALIZE = 'normalize', REGEX_DASH = /-([a-z])/gi, REGEX_ESCAPE_REGEX = /([.*+?^$(){}|[\]\/\\])/g, + REGEX_NL2BR = /\r?\n/g, REGEX_STRIP_SCRIPTS = /(?:)((\n|\r|.)*?)(?:<\/script>)/gi, REGEX_STRIP_TAGS = /<\/?[^>]+>/gi, REGEX_UNCAMELIZE = /([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g, @@ -614,6 +615,12 @@ A.mix( return cachedMathFn(mathArgs)(value); }, + nl2br: function(str) { + var instance = this; + + return String(str).replace(REGEX_NL2BR, '
                                '); + }, + padNumber: function(num, length, precision) { var str = precision ? Number(num).toFixed(precision) : String(num); var index = str.indexOf('.'); diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index df6470c7e0a..6f12674b239 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,3 +1,3 @@ (function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true;}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; -})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var O=n.Lang,w=O.isArray,o=O.isFunction,h=O.isString,s=n.Array,L=n.namespace("Lang.String"),G=s.indexOf,y="",C=n.config.doc,D="firstChild",I="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,J=/<\/?[^>]+>/gi,H=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",N="end",f="#",M="middle",F="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var K in a){if(a.hasOwnProperty(K)){var E=a[K];m[E]=K;d.push(K);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(L,{camelize:n.cached(function(Q,P){var i=c;Q=String(Q);if(P){i=new RegExp(P+"([a-z])","gi");}return Q.replace(i,L._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(P,i){return P.indexOf(i)!=-1;},defaultValue:function(P,i){if(O.isUndefined(P)||P==y){if(O.isUndefined(i)){i=y;}P=i;}return P;},endsWith:function(Q,P){var i=(Q.length-P.length);return((i>=0)&&(Q.indexOf(P,i)==i));},escapeHTML:function(i){return i.replace(u,L._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(P,i){return v(i)(P);},padNumber:function(Q,R,i){var S=i?Number(Q).toFixed(i):String(Q);var P=S.indexOf(".");if(P==-1){P=S.length;}return L.repeat(p,Math.max(0,R-P))+S;},pluralize:function(P,i,R){var Q;if(P==1){Q=i;}else{Q=R||i+q;}return P+" "+Q;},remove:function(R,i,Q){var P=new RegExp(L.escapeRegEx(i),Q?x:y);return R.replace(P,y);},removeAll:function(P,i){return L.remove(P,i,true);},repeat:function(i,P){return new Array(P+1).join(i);},round:function(P,i){P=Number(P);if(O.isNumber(i)){i=Math.pow(10,i);P=Math.round(P*i)/i;}return P;},startsWith:function(P,i){return(P.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(P){var i=this;if(P){P=String(P).replace(J,y);}return P;},substr:function(P,Q,i){return String(P).substr(Q,i);},uncamelize:n.cached(function(P,i){i=i||" ";P=String(P);P=P.replace(H,"$1"+i+"$2$3");P=P.replace(b,"$1"+i+"$2"); -return P;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:O.trim,truncate:function(S,R,i){S=String(S);var Q=S.length;if(S&&Q>R){i=i||N;if(i==N){S=S.substr(0,R-l.length)+l;}else{if(i==M){var P=Math.floor(R/2);S=S.substr(0,P)+l+S.substr(Q-P);}else{if(i==F){S=l+S.substr(Q-R);}}}}return S;},undef:function(i){if(O.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(L.contains(i,B)){if(C&&!L.contains(i,r)){i=L._unescapeEntitiesUsingDom(i);}else{i=L.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,L._unescapeHTML);},_camelize:function(i,P){return P.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(P){var Q=m[P];if(!Q&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){Q=String.fromCharCode(i);}}return Q;},_unescapeEntitiesUsingDom:function(P){var i=L._unescapeNode;i[I]=P;if(i[g]){i[g]();}P=i.firstChild.nodeValue;i[I]=y;return P;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,R,Q){var P=i.slice((Q||R)+1||i.length);i.length=(R<0)?(i.length+R):R;return i.push.apply(i,P);},removeItem:function(i,Q){var P=G(i,Q);return s.remove(i,P);}});n.mix(O,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(P){var i=this;return String(P).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file +})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index cd285ea02ca..d7132f5610f 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -498,6 +498,7 @@ var Lang = A.Lang, NORMALIZE = 'normalize', REGEX_DASH = /-([a-z])/gi, REGEX_ESCAPE_REGEX = /([.*+?^$(){}|[\]\/\\])/g, + REGEX_NL2BR = /\r?\n/g, REGEX_STRIP_SCRIPTS = /(?:)((\n|\r|.)*?)(?:<\/script>)/gi, REGEX_STRIP_TAGS = /<\/?[^>]+>/gi, REGEX_UNCAMELIZE = /([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g, @@ -614,6 +615,12 @@ A.mix( return cachedMathFn(mathArgs)(value); }, + nl2br: function(str) { + var instance = this; + + return String(str).replace(REGEX_NL2BR, '
                                '); + }, + padNumber: function(num, length, precision) { var str = precision ? Number(num).toFixed(precision) : String(num); var index = str.indexOf('.'); diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index 5f05411451a..a710b66d48b 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -11,5 +11,5 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ },"3.4.0");YUI.add("get",function(e){var B=e.UA,p=e.Lang,b="text/javascript",v="text/css",I="stylesheet",s="script",q="autopurge",A="utf-8",w="link",C="async",h=true,l={script:h,css:!(B.webkit||B.gecko)},z={},r=0,g,u=function(J){var K=J.timer;if(K){clearTimeout(K);J.timer=null;}},m=function(M,J,P,N){var K=N||e.config.win,O=K.document,Q=O.createElement(M),L;if(P){e.mix(J,P);}for(L in J){if(J[L]&&J.hasOwnProperty(L)){Q.setAttribute(L,J[L]);}}return Q;},k=function(K,L,J){return m(w,{id:e.guid(),type:v,rel:I,href:K},J,L);},E=function(K,L,J){return m(s,{id:e.guid(),type:b,src:K},J,L);},a=function(K,L,J){return{tId:K.tId,win:K.win,data:K.data,nodes:K.nodes,msg:L,statusText:J,purge:function(){d(this.tId);}};},o=function(N,M,J){var L=z[N],K=L&&L.onEnd;L.finished=true;if(K){K.call(L.context,a(L,M,J));}},F=function(M,L){var K=z[M],J=K.onFailure;u(K);if(J){J.call(K.context,a(K,L));}o(M,L,"failure");},y=function(J){F(J,"transaction "+J+" was aborted");},x=function(L){var J=z[L],K=J.onSuccess;u(J);if(J.aborted){y(L);}else{if(K){K.call(J.context,a(J));}o(L,undefined,"OK");}},H=function(J,M){var K=z[M],L=(p.isString(J))?K.win.document.getElementById(J):J;if(!L){F(M,"target node not found: "+J);}return L;},d=function(O){var K,R,S,T,L,Q,P,N,M,J=z[O];if(J){K=J.nodes;M=K.length;for(N=0;N0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); (function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true;}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; -})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var O=n.Lang,w=O.isArray,o=O.isFunction,h=O.isString,s=n.Array,L=n.namespace("Lang.String"),G=s.indexOf,y="",C=n.config.doc,D="firstChild",I="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,J=/<\/?[^>]+>/gi,H=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",N="end",f="#",M="middle",F="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var K in a){if(a.hasOwnProperty(K)){var E=a[K];m[E]=K;d.push(K);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(L,{camelize:n.cached(function(Q,P){var i=c;Q=String(Q);if(P){i=new RegExp(P+"([a-z])","gi");}return Q.replace(i,L._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(P,i){return P.indexOf(i)!=-1;},defaultValue:function(P,i){if(O.isUndefined(P)||P==y){if(O.isUndefined(i)){i=y;}P=i;}return P;},endsWith:function(Q,P){var i=(Q.length-P.length);return((i>=0)&&(Q.indexOf(P,i)==i));},escapeHTML:function(i){return i.replace(u,L._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(P,i){return v(i)(P);},padNumber:function(Q,R,i){var S=i?Number(Q).toFixed(i):String(Q);var P=S.indexOf(".");if(P==-1){P=S.length;}return L.repeat(p,Math.max(0,R-P))+S;},pluralize:function(P,i,R){var Q;if(P==1){Q=i;}else{Q=R||i+q;}return P+" "+Q;},remove:function(R,i,Q){var P=new RegExp(L.escapeRegEx(i),Q?x:y);return R.replace(P,y);},removeAll:function(P,i){return L.remove(P,i,true);},repeat:function(i,P){return new Array(P+1).join(i);},round:function(P,i){P=Number(P);if(O.isNumber(i)){i=Math.pow(10,i);P=Math.round(P*i)/i;}return P;},startsWith:function(P,i){return(P.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(P){var i=this;if(P){P=String(P).replace(J,y);}return P;},substr:function(P,Q,i){return String(P).substr(Q,i);},uncamelize:n.cached(function(P,i){i=i||" ";P=String(P);P=P.replace(H,"$1"+i+"$2$3");P=P.replace(b,"$1"+i+"$2"); -return P;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:O.trim,truncate:function(S,R,i){S=String(S);var Q=S.length;if(S&&Q>R){i=i||N;if(i==N){S=S.substr(0,R-l.length)+l;}else{if(i==M){var P=Math.floor(R/2);S=S.substr(0,P)+l+S.substr(Q-P);}else{if(i==F){S=l+S.substr(Q-R);}}}}return S;},undef:function(i){if(O.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(L.contains(i,B)){if(C&&!L.contains(i,r)){i=L._unescapeEntitiesUsingDom(i);}else{i=L.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,L._unescapeHTML);},_camelize:function(i,P){return P.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(P){var Q=m[P];if(!Q&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){Q=String.fromCharCode(i);}}return Q;},_unescapeEntitiesUsingDom:function(P){var i=L._unescapeNode;i[I]=P;if(i[g]){i[g]();}P=i.firstChild.nodeValue;i[I]=y;return P;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,R,Q){var P=i.slice((Q||R)+1||i.length);i.length=(R<0)?(i.length+R):R;return i.push.apply(i,P);},removeItem:function(i,Q){var P=G(i,Q);return s.remove(i,P);}});n.mix(O,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(P){var i=this;return String(P).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); +})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); diff --git a/build/aui/aui.js b/build/aui/aui.js index 04e2ccb862e..2b0967511cb 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -5212,6 +5212,7 @@ var Lang = A.Lang, NORMALIZE = 'normalize', REGEX_DASH = /-([a-z])/gi, REGEX_ESCAPE_REGEX = /([.*+?^$(){}|[\]\/\\])/g, + REGEX_NL2BR = /\r?\n/g, REGEX_STRIP_SCRIPTS = /(?:)((\n|\r|.)*?)(?:<\/script>)/gi, REGEX_STRIP_TAGS = /<\/?[^>]+>/gi, REGEX_UNCAMELIZE = /([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g, @@ -5328,6 +5329,12 @@ A.mix( return cachedMathFn(mathArgs)(value); }, + nl2br: function(str) { + var instance = this; + + return String(str).replace(REGEX_NL2BR, '
                                '); + }, + padNumber: function(num, length, precision) { var str = precision ? Number(num).toFixed(precision) : String(num); var index = str.indexOf('.'); diff --git a/src/aui-base/js/aui-base.js b/src/aui-base/js/aui-base.js index a59bdfc35ef..8d9119f6b81 100644 --- a/src/aui-base/js/aui-base.js +++ b/src/aui-base/js/aui-base.js @@ -16,6 +16,7 @@ var Lang = A.Lang, NORMALIZE = 'normalize', REGEX_DASH = /-([a-z])/gi, REGEX_ESCAPE_REGEX = /([.*+?^$(){}|[\]\/\\])/g, + REGEX_NL2BR = /\r?\n/g, REGEX_STRIP_SCRIPTS = /(?:)((\n|\r|.)*?)(?:<\/script>)/gi, REGEX_STRIP_TAGS = /<\/?[^>]+>/gi, REGEX_UNCAMELIZE = /([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g, @@ -132,6 +133,12 @@ A.mix( return cachedMathFn(mathArgs)(value); }, + nl2br: function(str) { + var instance = this; + + return String(str).replace(REGEX_NL2BR, '
                                '); + }, + padNumber: function(num, length, precision) { var str = precision ? Number(num).toFixed(precision) : String(num); var index = str.indexOf('.'); From 981250e97eaf4af8983fef6bebfd264244a9ffeb Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Tue, 16 Aug 2011 20:36:18 -0700 Subject: [PATCH 085/132] AUI-484 - Adding static registry methods --- build/aui-template/aui-template-debug.js | 92 +++++++++++++++++++----- build/aui-template/aui-template-min.js | 4 +- build/aui-template/aui-template.js | 92 +++++++++++++++++++----- src/aui-template/js/aui-template.js | 92 +++++++++++++++++++----- 4 files changed, 221 insertions(+), 59 deletions(-) diff --git a/build/aui-template/aui-template-debug.js b/build/aui-template/aui-template-debug.js index 627841916d9..5365bedd20e 100644 --- a/build/aui-template/aui-template-debug.js +++ b/build/aui-template/aui-template-debug.js @@ -128,7 +128,10 @@ var Lang = A.Lang, SRC_CREATE = {}, AUI_NS = A.getClassName(STR_BLANK), - YUI_NS = A.ClassNameManager.getClassName(STR_BLANK); + YUI_NS = A.ClassNameManager.getClassName(STR_BLANK), + + _INSTANCES = {}, + _SNIPPETS = {}; var Template = function(html, src) { var instance = this; @@ -445,11 +448,14 @@ var Lang = A.Lang, var tpl = args[0]; if (isArray(tpl)) { - tpl = tpl.join(STR_BLANK); - - if (isObject(args[1])) { + if (isObject(tpl[tpl.length - 1])) { + config = tpl.pop(); + } + else if (isObject(args[1])) { config = args[1]; } + + tpl = tpl.join(STR_BLANK); } else if (args.length > 1) { var buffer = []; @@ -543,26 +549,74 @@ var Lang = A.Lang, ] ); - Template.from = function(node) { - node = A.one(node); + A.mix( + Template, + { + from: function(node) { + node = A.one(node); - var content = STR_BLANK; + var content = STR_BLANK; - if (node) { - node = node.getDOM(); + if (node) { + node = node.getDOM(); - var nodeName = String(node && node.nodeName).toLowerCase(); + var nodeName = String(node && node.nodeName).toLowerCase(); - if (nodeName != 'script') { - content = node.value || node.innerHTML; - } - else { - content = node.text || node.textContent || node.innerHTML; - } - } + if (nodeName != 'script') { + content = node.value || node.innerHTML; + } + else { + content = node.text || node.textContent || node.innerHTML; + } + } - return new Template(content); - }; + return new Template(content); + }, + + get: function(key) { + var snippet; + var template = _INSTANCES[key]; + + if (!template && (snippet = _SNIPPETS[key])) { + template = new Template(snippet); + + _INSTANCES[key] = template; + } + + return template; + }, + + parse: function(key, data) { + var template = Template.get(key); + + return template && template.parse(data); + }, + + register: function(key, value) { + var instance = this; + + var tpl = value; + + if (A.instanceOf(value, Template) && !(key in _INSTANCES)) { + _INSTANCES[key] = value; + } + else if (!(key in _SNIPPETS)) { + _SNIPPETS[key] = value; + } + + return value; + }, + + render: function(key, data, node) { + var template = Template.get(key); + + return template && template.render(data, node); + }, + + _SNIPPETS: _SNIPPETS, + _INSTANCES: _INSTANCES + } + ); A.Template = Template; diff --git a/build/aui-template/aui-template-min.js b/build/aui-template/aui-template-min.js index 9129a5cba69..7ae1a95a300 100644 --- a/build/aui-template/aui-template-min.js +++ b/build/aui-template/aui-template-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,isUndefined=Lang.isUndefined,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_PREFIX_GLOBAL_REPLACE=/^(?!\$)/,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_GLOBAL_SYMBOL="$",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last, $ns, $ans, $yns",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_GLOBAL_PROP=['MAP_GLOBALS["',null,'"]'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_SPECIAL_ANS="$ans",STR_SPECIAL_NS="$ns",STR_SPECIAL_YNS="$yns",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST,"$ans":STR_SPECIAL_ANS,"$ns":STR_SPECIAL_NS,"$yns":STR_SPECIAL_YNS},MAP_GLOBALS={},SRC_CREATE={},AUI_NS=A.getClassName(STR_BLANK),YUI_NS=A.ClassNameManager.getClassName(STR_BLANK);var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);var $yns=instance.$yns;var $ans=instance.$ans;var $ns=instance.$ns;eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last,$ns,$ans,$yns)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{if(name.indexOf(STR_GLOBAL_SYMBOL)===0&&(name in MAP_GLOBALS)){BUFFER_GLOBAL_PROP[1]=name;value=BUFFER_GLOBAL_PROP.join(STR_BLANK);}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE; -args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){tpl=tpl.join(STR_BLANK);if(isObject(args[1])){config=args[1];}}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_PREFIX_GLOBAL_REPLACE=/^(?!\$)/,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_GLOBAL_SYMBOL="$",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last, $ns, $ans, $yns",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_GLOBAL_PROP=['MAP_GLOBALS["',null,'"]'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_SPECIAL_ANS="$ans",STR_SPECIAL_NS="$ns",STR_SPECIAL_YNS="$yns",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST,"$ans":STR_SPECIAL_ANS,"$ns":STR_SPECIAL_NS,"$yns":STR_SPECIAL_YNS},MAP_GLOBALS={},SRC_CREATE={},AUI_NS=A.getClassName(STR_BLANK),YUI_NS=A.ClassNameManager.getClassName(STR_BLANK),_INSTANCES={},_SNIPPETS={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);var $yns=instance.$yns;var $ans=instance.$ans;var $ns=instance.$ns;eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last,$ns,$ans,$yns)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{if(name.indexOf(STR_GLOBAL_SYMBOL)===0&&(name in MAP_GLOBALS)){BUFFER_GLOBAL_PROP[1]=name;value=BUFFER_GLOBAL_PROP.join(STR_BLANK);}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE; +args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){if(isObject(tpl[tpl.length-1])){config=tpl.pop();}else{if(isObject(args[1])){config=args[1];}}tpl=tpl.join(STR_BLANK);}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i 1) { var buffer = []; @@ -543,26 +549,74 @@ var Lang = A.Lang, ] ); - Template.from = function(node) { - node = A.one(node); + A.mix( + Template, + { + from: function(node) { + node = A.one(node); - var content = STR_BLANK; + var content = STR_BLANK; - if (node) { - node = node.getDOM(); + if (node) { + node = node.getDOM(); - var nodeName = String(node && node.nodeName).toLowerCase(); + var nodeName = String(node && node.nodeName).toLowerCase(); - if (nodeName != 'script') { - content = node.value || node.innerHTML; - } - else { - content = node.text || node.textContent || node.innerHTML; - } - } + if (nodeName != 'script') { + content = node.value || node.innerHTML; + } + else { + content = node.text || node.textContent || node.innerHTML; + } + } - return new Template(content); - }; + return new Template(content); + }, + + get: function(key) { + var snippet; + var template = _INSTANCES[key]; + + if (!template && (snippet = _SNIPPETS[key])) { + template = new Template(snippet); + + _INSTANCES[key] = template; + } + + return template; + }, + + parse: function(key, data) { + var template = Template.get(key); + + return template && template.parse(data); + }, + + register: function(key, value) { + var instance = this; + + var tpl = value; + + if (A.instanceOf(value, Template) && !(key in _INSTANCES)) { + _INSTANCES[key] = value; + } + else if (!(key in _SNIPPETS)) { + _SNIPPETS[key] = value; + } + + return value; + }, + + render: function(key, data, node) { + var template = Template.get(key); + + return template && template.render(data, node); + }, + + _SNIPPETS: _SNIPPETS, + _INSTANCES: _INSTANCES + } + ); A.Template = Template; diff --git a/src/aui-template/js/aui-template.js b/src/aui-template/js/aui-template.js index c2bda2a1e51..3daf1400583 100644 --- a/src/aui-template/js/aui-template.js +++ b/src/aui-template/js/aui-template.js @@ -127,7 +127,10 @@ var Lang = A.Lang, SRC_CREATE = {}, AUI_NS = A.getClassName(STR_BLANK), - YUI_NS = A.ClassNameManager.getClassName(STR_BLANK); + YUI_NS = A.ClassNameManager.getClassName(STR_BLANK), + + _INSTANCES = {}, + _SNIPPETS = {}; var Template = function(html, src) { var instance = this; @@ -444,11 +447,14 @@ var Lang = A.Lang, var tpl = args[0]; if (isArray(tpl)) { - tpl = tpl.join(STR_BLANK); - - if (isObject(args[1])) { + if (isObject(tpl[tpl.length - 1])) { + config = tpl.pop(); + } + else if (isObject(args[1])) { config = args[1]; } + + tpl = tpl.join(STR_BLANK); } else if (args.length > 1) { var buffer = []; @@ -542,25 +548,73 @@ var Lang = A.Lang, ] ); - Template.from = function(node) { - node = A.one(node); + A.mix( + Template, + { + from: function(node) { + node = A.one(node); - var content = STR_BLANK; + var content = STR_BLANK; - if (node) { - node = node.getDOM(); + if (node) { + node = node.getDOM(); - var nodeName = String(node && node.nodeName).toLowerCase(); + var nodeName = String(node && node.nodeName).toLowerCase(); - if (nodeName != 'script') { - content = node.value || node.innerHTML; - } - else { - content = node.text || node.textContent || node.innerHTML; - } - } + if (nodeName != 'script') { + content = node.value || node.innerHTML; + } + else { + content = node.text || node.textContent || node.innerHTML; + } + } - return new Template(content); - }; + return new Template(content); + }, + + get: function(key) { + var snippet; + var template = _INSTANCES[key]; + + if (!template && (snippet = _SNIPPETS[key])) { + template = new Template(snippet); + + _INSTANCES[key] = template; + } + + return template; + }, + + parse: function(key, data) { + var template = Template.get(key); + + return template && template.parse(data); + }, + + register: function(key, value) { + var instance = this; + + var tpl = value; + + if (A.instanceOf(value, Template) && !(key in _INSTANCES)) { + _INSTANCES[key] = value; + } + else if (!(key in _SNIPPETS)) { + _SNIPPETS[key] = value; + } + + return value; + }, + + render: function(key, data, node) { + var template = Template.get(key); + + return template && template.render(data, node); + }, + + _SNIPPETS: _SNIPPETS, + _INSTANCES: _INSTANCES + } + ); A.Template = Template; \ No newline at end of file From 6aa1faf550542f70a3b500432d075899515935d4 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Wed, 17 Aug 2011 08:05:11 -0700 Subject: [PATCH 086/132] AUI-484 - Source formatting --- build/aui-template/aui-template-debug.js | 16 ++++++---------- build/aui-template/aui-template-min.js | 4 ++-- build/aui-template/aui-template.js | 16 ++++++---------- src/aui-template/js/aui-template.js | 16 ++++++---------- 4 files changed, 20 insertions(+), 32 deletions(-) diff --git a/build/aui-template/aui-template-debug.js b/build/aui-template/aui-template-debug.js index 5365bedd20e..49009f9dbc8 100644 --- a/build/aui-template/aui-template-debug.js +++ b/build/aui-template/aui-template-debug.js @@ -130,8 +130,7 @@ var Lang = A.Lang, AUI_NS = A.getClassName(STR_BLANK), YUI_NS = A.ClassNameManager.getClassName(STR_BLANK), - _INSTANCES = {}, - _SNIPPETS = {}; + _INSTANCES = {}; var Template = function(html, src) { var instance = this; @@ -574,11 +573,10 @@ var Lang = A.Lang, }, get: function(key) { - var snippet; var template = _INSTANCES[key]; - if (!template && (snippet = _SNIPPETS[key])) { - template = new Template(snippet); + if (template && !A.instanceOf(template, Template)) { + template = new Template(template); _INSTANCES[key] = template; } @@ -597,12 +595,11 @@ var Lang = A.Lang, var tpl = value; - if (A.instanceOf(value, Template) && !(key in _INSTANCES)) { + if (!(key in _INSTANCES) && + (Lang.isArray(value) || A.instanceOf(value, Template))) { + _INSTANCES[key] = value; } - else if (!(key in _SNIPPETS)) { - _SNIPPETS[key] = value; - } return value; }, @@ -613,7 +610,6 @@ var Lang = A.Lang, return template && template.render(data, node); }, - _SNIPPETS: _SNIPPETS, _INSTANCES: _INSTANCES } ); diff --git a/build/aui-template/aui-template-min.js b/build/aui-template/aui-template-min.js index 7ae1a95a300..18a3bae286a 100644 --- a/build/aui-template/aui-template-min.js +++ b/build/aui-template/aui-template-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,isUndefined=Lang.isUndefined,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_PREFIX_GLOBAL_REPLACE=/^(?!\$)/,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_GLOBAL_SYMBOL="$",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last, $ns, $ans, $yns",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_GLOBAL_PROP=['MAP_GLOBALS["',null,'"]'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_SPECIAL_ANS="$ans",STR_SPECIAL_NS="$ns",STR_SPECIAL_YNS="$yns",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST,"$ans":STR_SPECIAL_ANS,"$ns":STR_SPECIAL_NS,"$yns":STR_SPECIAL_YNS},MAP_GLOBALS={},SRC_CREATE={},AUI_NS=A.getClassName(STR_BLANK),YUI_NS=A.ClassNameManager.getClassName(STR_BLANK),_INSTANCES={},_SNIPPETS={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);var $yns=instance.$yns;var $ans=instance.$ans;var $ns=instance.$ns;eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last,$ns,$ans,$yns)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{if(name.indexOf(STR_GLOBAL_SYMBOL)===0&&(name in MAP_GLOBALS)){BUFFER_GLOBAL_PROP[1]=name;value=BUFFER_GLOBAL_PROP.join(STR_BLANK);}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE; -args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){if(isObject(tpl[tpl.length-1])){config=tpl.pop();}else{if(isObject(args[1])){config=args[1];}}tpl=tpl.join(STR_BLANK);}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_PREFIX_GLOBAL_REPLACE=/^(?!\$)/,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_GLOBAL_SYMBOL="$",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last, $ns, $ans, $yns",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_GLOBAL_PROP=['MAP_GLOBALS["',null,'"]'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_SPECIAL_ANS="$ans",STR_SPECIAL_NS="$ns",STR_SPECIAL_YNS="$yns",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST,"$ans":STR_SPECIAL_ANS,"$ns":STR_SPECIAL_NS,"$yns":STR_SPECIAL_YNS},MAP_GLOBALS={},SRC_CREATE={},AUI_NS=A.getClassName(STR_BLANK),YUI_NS=A.ClassNameManager.getClassName(STR_BLANK),_INSTANCES={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);var $yns=instance.$yns;var $ans=instance.$ans;var $ns=instance.$ns;eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last,$ns,$ans,$yns)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{if(name.indexOf(STR_GLOBAL_SYMBOL)===0&&(name in MAP_GLOBALS)){BUFFER_GLOBAL_PROP[1]=name;value=BUFFER_GLOBAL_PROP.join(STR_BLANK);}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE; +args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){if(isObject(tpl[tpl.length-1])){config=tpl.pop();}else{if(isObject(args[1])){config=args[1];}}tpl=tpl.join(STR_BLANK);}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i Date: Wed, 17 Aug 2011 13:59:16 -0300 Subject: [PATCH 087/132] AUI-485 Addin aui-tpl-snippets module --- demos/tpl-snippets/index.html | 65 +++++++++++++++++++ .../build.aui-tpl-snippets-base.properties | 10 +++ .../build.aui-tpl-snippets-base.xml | 7 ++ .../build.aui-tpl-snippets-select.properties | 10 +++ .../build.aui-tpl-snippets-select.xml | 7 ++ src/aui-tpl-snippets/build.properties | 10 +++ src/aui-tpl-snippets/build.xml | 7 ++ .../js/aui-tpl-snippets-base.js | 14 ++++ .../js/aui-tpl-snippets-select.js | 10 +++ 9 files changed, 140 insertions(+) create mode 100644 demos/tpl-snippets/index.html create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-base.properties create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-base.xml create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-select.properties create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-select.xml create mode 100644 src/aui-tpl-snippets/build.properties create mode 100644 src/aui-tpl-snippets/build.xml create mode 100644 src/aui-tpl-snippets/js/aui-tpl-snippets-base.js create mode 100644 src/aui-tpl-snippets/js/aui-tpl-snippets-select.js diff --git a/demos/tpl-snippets/index.html b/demos/tpl-snippets/index.html new file mode 100644 index 00000000000..74174618412 --- /dev/null +++ b/demos/tpl-snippets/index.html @@ -0,0 +1,65 @@ + + + + + + + + + + + + + +
                                +

                                Alloy - TplSnippets Demo

                                + +

                                A.Template.get('select')

                                +
                                +
                                +
                                + + + + + \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-base.properties b/src/aui-tpl-snippets/build.aui-tpl-snippets-base.properties new file mode 100644 index 00000000000..d6ee18a539a --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-base.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-tpl-snippets +global.build.component=${srcdir}/build/aui-tpl-snippets + +component=aui-tpl-snippets-base +component.jsfiles=aui-tpl-snippets-base.js +component.requires=aui-template +component.skinnable=false \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-base.xml b/src/aui-tpl-snippets/build.aui-tpl-snippets-base.xml new file mode 100644 index 00000000000..5ccaeeecb98 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-base.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-select.properties b/src/aui-tpl-snippets/build.aui-tpl-snippets-select.properties new file mode 100644 index 00000000000..f117719a266 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-select.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-tpl-snippets +global.build.component=${srcdir}/build/aui-tpl-snippets + +component=aui-tpl-snippets-select +component.jsfiles=aui-tpl-snippets-select.js +component.requires=aui-tpl-snippets-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-select.xml b/src/aui-tpl-snippets/build.aui-tpl-snippets-select.xml new file mode 100644 index 00000000000..f7ebded5d23 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-select.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.properties b/src/aui-tpl-snippets/build.properties new file mode 100644 index 00000000000..44f6e1150c6 --- /dev/null +++ b/src/aui-tpl-snippets/build.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../../ +global.build.component=${srcdir}/build/aui-tpl-snippets + +component.rollup.modules.buildfiles=build.aui-tpl-snippets-base.xml, build.aui-tpl-snippets-select.xml +component.rollup=true +component.skinnable=false +component.use=aui-tpl-snippets-base,aui-tpl-snippets-select +component=aui-tpl-snippets \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.xml b/src/aui-tpl-snippets/build.xml new file mode 100644 index 00000000000..be8b941f516 --- /dev/null +++ b/src/aui-tpl-snippets/build.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js new file mode 100644 index 00000000000..daaf9b4c590 --- /dev/null +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js @@ -0,0 +1,14 @@ +var Lang = A.Lang, + + AArray = A.Array, + + _SPACE = ' ', + _EMPTY_STR = ''; + +A.TplSnippets = { + getClassName: function(auiCssClass, cssClass) { + var prefix = _SPACE + A.getClassName(_EMPTY_STR); + + return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + } +}; \ No newline at end of file diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-select.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-select.js new file mode 100644 index 00000000000..baa559083bd --- /dev/null +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-select.js @@ -0,0 +1,10 @@ +A.Template.register( + 'select', + [ + '' + ] +); \ No newline at end of file From ecbae9621697431956db92d58db391d5535aae88 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Wed, 17 Aug 2011 13:59:25 -0300 Subject: [PATCH 088/132] Build files --- build/aui-base/aui-base-debug.js | 15 ++++---- build/aui-base/aui-base-min.js | 4 +-- build/aui-base/aui-base.js | 15 ++++---- .../aui-tpl-snippets-base-debug.js | 17 ++++++++++ .../aui-tpl-snippets-base-min.js | 1 + .../aui-tpl-snippets/aui-tpl-snippets-base.js | 17 ++++++++++ .../aui-tpl-snippets-debug.js | 34 +++++++++++++++++++ .../aui-tpl-snippets/aui-tpl-snippets-min.js | 1 + .../aui-tpl-snippets-select-debug.js | 13 +++++++ .../aui-tpl-snippets-select-min.js | 1 + .../aui-tpl-snippets-select.js | 13 +++++++ build/aui-tpl-snippets/aui-tpl-snippets.js | 34 +++++++++++++++++++ build/aui/aui-min.js | 4 +-- build/aui/aui.js | 15 ++++---- 14 files changed, 159 insertions(+), 25 deletions(-) create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-base-min.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-base.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-debug.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-min.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-select-min.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-select.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets.js diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index d7132f5610f..f8b2b70eb5d 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -12,7 +12,7 @@ alloy: { combine: false, modules: { - 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, + 'aui-aria': {requires:['aui-base','plugin'], skinnable:false}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, @@ -20,7 +20,7 @@ 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, + 'aui-classnamemanager': {skinnable:false, requires:['classnamemanager'], condition: {trigger: 'classnamemanager', test: function(){return true;}}}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -35,7 +35,7 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -62,9 +62,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, - 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, - 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, + 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, + 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, + 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -75,6 +75,7 @@ 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} @@ -850,4 +851,4 @@ A.mix( } ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); +}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index 6f12674b239..4ab53e38423 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,3 +1,3 @@ -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true;}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index d7132f5610f..f8b2b70eb5d 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -12,7 +12,7 @@ alloy: { combine: false, modules: { - 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, + 'aui-aria': {requires:['aui-base','plugin'], skinnable:false}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, @@ -20,7 +20,7 @@ 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, + 'aui-classnamemanager': {skinnable:false, requires:['classnamemanager'], condition: {trigger: 'classnamemanager', test: function(){return true;}}}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -35,7 +35,7 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -62,9 +62,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, - 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, - 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, + 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, + 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, + 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -75,6 +75,7 @@ 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} @@ -850,4 +851,4 @@ A.mix( } ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); +}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js new file mode 100644 index 00000000000..cbabd9d6a51 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js @@ -0,0 +1,17 @@ +AUI.add('aui-tpl-snippets-base', function(A) { +var Lang = A.Lang, + + AArray = A.Array, + + _SPACE = ' ', + _EMPTY_STR = ''; + +A.TplSnippets = { + getClassName: function(auiCssClass, cssClass) { + var prefix = _SPACE + A.getClassName(_EMPTY_STR); + + return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + } +}; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js new file mode 100644 index 00000000000..31dfbf77173 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js @@ -0,0 +1 @@ +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base.js b/build/aui-tpl-snippets/aui-tpl-snippets-base.js new file mode 100644 index 00000000000..cbabd9d6a51 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base.js @@ -0,0 +1,17 @@ +AUI.add('aui-tpl-snippets-base', function(A) { +var Lang = A.Lang, + + AArray = A.Array, + + _SPACE = ' ', + _EMPTY_STR = ''; + +A.TplSnippets = { + getClassName: function(auiCssClass, cssClass) { + var prefix = _SPACE + A.getClassName(_EMPTY_STR); + + return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + } +}; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js new file mode 100644 index 00000000000..573900e6c75 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js @@ -0,0 +1,34 @@ +AUI.add('aui-tpl-snippets-base', function(A) { +var Lang = A.Lang, + + AArray = A.Array, + + _SPACE = ' ', + _EMPTY_STR = ''; + +A.TplSnippets = { + getClassName: function(auiCssClass, cssClass) { + var prefix = _SPACE + A.getClassName(_EMPTY_STR); + + return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + } +}; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); +AUI.add('aui-tpl-snippets-select', function(A) { +A.Template.register( + 'select', + [ + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); + + +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}); + diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-min.js new file mode 100644 index 00000000000..8dc0308a5dc --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-min.js @@ -0,0 +1 @@ +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{use:["aui-tpl-snippets-base","aui-tpl-snippets-select"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js new file mode 100644 index 00000000000..bd333cf9c5d --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js @@ -0,0 +1,13 @@ +AUI.add('aui-tpl-snippets-select', function(A) { +A.Template.register( + 'select', + [ + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js new file mode 100644 index 00000000000..e6b8afaf16e --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js @@ -0,0 +1 @@ +AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select.js b/build/aui-tpl-snippets/aui-tpl-snippets-select.js new file mode 100644 index 00000000000..bd333cf9c5d --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select.js @@ -0,0 +1,13 @@ +AUI.add('aui-tpl-snippets-select', function(A) { +A.Template.register( + 'select', + [ + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets.js b/build/aui-tpl-snippets/aui-tpl-snippets.js new file mode 100644 index 00000000000..573900e6c75 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets.js @@ -0,0 +1,34 @@ +AUI.add('aui-tpl-snippets-base', function(A) { +var Lang = A.Lang, + + AArray = A.Array, + + _SPACE = ' ', + _EMPTY_STR = ''; + +A.TplSnippets = { + getClassName: function(auiCssClass, cssClass) { + var prefix = _SPACE + A.getClassName(_EMPTY_STR); + + return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + } +}; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); +AUI.add('aui-tpl-snippets-select', function(A) { +A.Template.register( + 'select', + [ + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); + + +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}); + diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index a710b66d48b..e3d8d9d0fe6 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,6 +10,6 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ }};b.Queue=t;YUI.Env._loaderQueue=YUI.Env._loaderQueue||new t();var m="__",p=Object.prototype.hasOwnProperty,l=b.Lang.isObject;b.cached=function(x,v,w){v||(v={});return function(y){var z=arguments.length>1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true;}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); diff --git a/build/aui/aui.js b/build/aui/aui.js index 2b0967511cb..b421e7ff08e 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4726,7 +4726,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b alloy: { combine: false, modules: { - 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, + 'aui-aria': {requires:['aui-base','plugin'], skinnable:false}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, @@ -4734,7 +4734,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, + 'aui-classnamemanager': {skinnable:false, requires:['classnamemanager'], condition: {trigger: 'classnamemanager', test: function(){return true;}}}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -4749,7 +4749,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -4776,9 +4776,9 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, - 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, - 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, + 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, + 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, + 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -4789,6 +4789,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} @@ -5564,4 +5565,4 @@ A.mix( } ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); +}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); From dbac6339c6922cb59efe6571f8db5fff6e4f0c06 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Wed, 17 Aug 2011 14:49:01 -0300 Subject: [PATCH 089/132] AUI-485 Adding aui-tpl-snippets input and textarea snippets --- demos/tpl-snippets/index.html | 44 +++++++++++++++++++ .../build.aui-tpl-snippets-input.properties | 10 +++++ .../build.aui-tpl-snippets-input.xml | 7 +++ ...build.aui-tpl-snippets-textarea.properties | 10 +++++ .../build.aui-tpl-snippets-textarea.xml | 7 +++ src/aui-tpl-snippets/build.properties | 4 +- .../js/aui-tpl-snippets-input.js | 9 ++++ .../js/aui-tpl-snippets-textarea.js | 9 ++++ 8 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-input.properties create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-input.xml create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.properties create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.xml create mode 100644 src/aui-tpl-snippets/js/aui-tpl-snippets-input.js create mode 100644 src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js diff --git a/demos/tpl-snippets/index.html b/demos/tpl-snippets/index.html index 74174618412..e68862c60a3 100644 --- a/demos/tpl-snippets/index.html +++ b/demos/tpl-snippets/index.html @@ -14,6 +14,11 @@ #wrapper { padding: 10px; } + + .aui-label-simple-class { + font-weight: bold; + display: block; + } @@ -25,6 +30,14 @@

                                Alloy - TplSnippets Demo

                                A.Template.get('select')

                                + +

                                A.Template.get('input')

                                +

                                +
                                + +

                                A.Template.get('textarea')

                                +

                                +
                                diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-input.properties b/src/aui-tpl-snippets/build.aui-tpl-snippets-input.properties new file mode 100644 index 00000000000..03d065b8989 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-input.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-tpl-snippets +global.build.component=${srcdir}/build/aui-tpl-snippets + +component=aui-tpl-snippets-input +component.jsfiles=aui-tpl-snippets-input.js +component.requires=aui-tpl-snippets-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-input.xml b/src/aui-tpl-snippets/build.aui-tpl-snippets-input.xml new file mode 100644 index 00000000000..3189ae550a9 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-input.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.properties b/src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.properties new file mode 100644 index 00000000000..4677d5c1fb4 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-tpl-snippets +global.build.component=${srcdir}/build/aui-tpl-snippets + +component=aui-tpl-snippets-textarea +component.jsfiles=aui-tpl-snippets-textarea.js +component.requires=aui-tpl-snippets-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.xml b/src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.xml new file mode 100644 index 00000000000..814088a5ead --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-textarea.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.properties b/src/aui-tpl-snippets/build.properties index 44f6e1150c6..98e6257174a 100644 --- a/src/aui-tpl-snippets/build.properties +++ b/src/aui-tpl-snippets/build.properties @@ -3,8 +3,8 @@ srcdir=../../ global.build.component=${srcdir}/build/aui-tpl-snippets -component.rollup.modules.buildfiles=build.aui-tpl-snippets-base.xml, build.aui-tpl-snippets-select.xml +component.rollup.modules.buildfiles=build.aui-tpl-snippets-base.xml, build.aui-tpl-snippets-select.xml, build.aui-tpl-snippets-input.xml, build.aui-tpl-snippets-textarea.xml component.rollup=true component.skinnable=false -component.use=aui-tpl-snippets-base,aui-tpl-snippets-select +component.use=aui-tpl-snippets-base,aui-tpl-snippets-select,aui-tpl-snippets-input,aui-tpl-snippets-textarea component=aui-tpl-snippets \ No newline at end of file diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-input.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-input.js new file mode 100644 index 00000000000..e2958d3850c --- /dev/null +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-input.js @@ -0,0 +1,9 @@ +A.Template.register( + 'input', + [ + '', + '', + '', + '' + ] +); \ No newline at end of file diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js new file mode 100644 index 00000000000..5aa293aa448 --- /dev/null +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js @@ -0,0 +1,9 @@ +A.Template.register( + 'textarea', + [ + '', + '', + '', + '' + ] +); \ No newline at end of file From 9136784e11cefadfed2eefad8cb2884fd43614f2 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Wed, 17 Aug 2011 14:53:18 -0300 Subject: [PATCH 090/132] Build files --- build/aui-base/aui-base-debug.js | 2 +- build/aui-base/aui-base-min.js | 2 +- build/aui-base/aui-base.js | 2 +- .../aui-tpl-snippets-debug.js | 26 ++++++++++++++++++- .../aui-tpl-snippets-input-debug.js | 12 +++++++++ .../aui-tpl-snippets-input-min.js | 1 + .../aui-tpl-snippets-input.js | 12 +++++++++ .../aui-tpl-snippets/aui-tpl-snippets-min.js | 2 +- .../aui-tpl-snippets-textarea-debug.js | 12 +++++++++ .../aui-tpl-snippets-textarea-min.js | 1 + .../aui-tpl-snippets-textarea.js | 12 +++++++++ build/aui-tpl-snippets/aui-tpl-snippets.js | 26 ++++++++++++++++++- build/aui/aui-min.js | 2 +- build/aui/aui.js | 2 +- 14 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-input-min.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-input.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-textarea.js diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index f8b2b70eb5d..66c1093a7c6 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -75,7 +75,7 @@ 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, - 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index 4ab53e38423..2cb24dbd0ab 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,3 +1,3 @@ -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index f8b2b70eb5d..66c1093a7c6 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -75,7 +75,7 @@ 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, - 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js index 573900e6c75..38a2693205c 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js @@ -27,8 +27,32 @@ A.Template.register( ] ); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +AUI.add('aui-tpl-snippets-input', function(A) { +A.Template.register( + 'input', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +AUI.add('aui-tpl-snippets-textarea', function(A) { +A.Template.register( + 'textarea', + [ + '', + '', + '', + '' + ] +); + }, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js new file mode 100644 index 00000000000..4de1187f4a4 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js @@ -0,0 +1,12 @@ +AUI.add('aui-tpl-snippets-input', function(A) { +A.Template.register( + 'input', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js new file mode 100644 index 00000000000..d27d7ded79b --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js @@ -0,0 +1 @@ +AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input.js b/build/aui-tpl-snippets/aui-tpl-snippets-input.js new file mode 100644 index 00000000000..4de1187f4a4 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input.js @@ -0,0 +1,12 @@ +AUI.add('aui-tpl-snippets-input', function(A) { +A.Template.register( + 'input', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-min.js index 8dc0308a5dc..e4853dcb575 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{use:["aui-tpl-snippets-base","aui-tpl-snippets-select"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js new file mode 100644 index 00000000000..837cb9d47fe --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js @@ -0,0 +1,12 @@ +AUI.add('aui-tpl-snippets-textarea', function(A) { +A.Template.register( + 'textarea', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js new file mode 100644 index 00000000000..e090652732f --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js @@ -0,0 +1 @@ +AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js new file mode 100644 index 00000000000..837cb9d47fe --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js @@ -0,0 +1,12 @@ +AUI.add('aui-tpl-snippets-textarea', function(A) { +A.Template.register( + 'textarea', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets.js b/build/aui-tpl-snippets/aui-tpl-snippets.js index 573900e6c75..38a2693205c 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets.js @@ -27,8 +27,32 @@ A.Template.register( ] ); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +AUI.add('aui-tpl-snippets-input', function(A) { +A.Template.register( + 'input', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +AUI.add('aui-tpl-snippets-textarea', function(A) { +A.Template.register( + 'textarea', + [ + '', + '', + '', + '' + ] +); + }, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}); diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index e3d8d9d0fe6..ba413aa62b9 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,6 +10,6 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ }};b.Queue=t;YUI.Env._loaderQueue=YUI.Env._loaderQueue||new t();var m="__",p=Object.prototype.hasOwnProperty,l=b.Lang.isObject;b.cached=function(x,v,w){v||(v={});return function(y){var z=arguments.length>1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); diff --git a/build/aui/aui.js b/build/aui/aui.js index b421e7ff08e..d27dce4c2f7 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4789,7 +4789,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, - 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select'], skinnable:false}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} From e9cf22fceff4638a0ce535c8d3e1ba5c6a350b9b Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Mon, 8 Aug 2011 16:56:54 -0300 Subject: [PATCH 091/132] AUI-461 Source formatting --- demos/diagram-builder/index.html | 19 ------------------- .../js/aui-diagram-builder-base.js | 5 ++++- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index c7a64bacfb9..e90ed557b65 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -44,25 +44,6 @@ .aui-diagram-builder-anchor-node.yui3-dd-dragging { } -/* .aui-diagram-builder-anchor-hover, - .aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid { - background: #fff !important; - border: 3px solid #484A4C !important; - width: 9px !important; - height: 9px !important; - }*/ - -/* .aui-diagram-builder-anchor-node.yui3-dd-drop-over { - background: #F7F3E8; - border: 2px solid #747E80; - -moz-transform: scale(1.3); - -moz-transition:-moz-transform 0.4s ease-in-out; - -moz-transition: background-color 0.4s linear; - -webkit-transform: scale(1.3); - -webkit-transition:-moz-transform 0.4s ease-in-out; - -webkit-transition: background-color 0.4s linear; - }*/ - .log { width: 300px; font-size: 10px; diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-base.js b/src/aui-diagram-builder/js/aui-diagram-builder-base.js index 4247c723811..22fd9f62bb4 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-base.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-base.js @@ -537,7 +537,10 @@ var DiagramBuilderBase = A.Component.create( var canvas = instance.canvas; canvas.appendChild(instance.dropContainer); - contentBox.appendChild(canvas); + + if (!canvas.inDoc()) { + contentBox.appendChild(canvas); + } }, _renderPropertyList: function() { From 9d51338684aa6cd73a0138bb89ea468440ab77ed Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Mon, 8 Aug 2011 16:57:01 -0300 Subject: [PATCH 092/132] Build files --- build/aui-diagram-builder/aui-diagram-builder-base-debug.js | 5 ++++- build/aui-diagram-builder/aui-diagram-builder-base-min.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-base.js | 5 ++++- build/aui-diagram-builder/aui-diagram-builder-debug.js | 5 ++++- build/aui-diagram-builder/aui-diagram-builder-min.js | 4 ++-- build/aui-diagram-builder/aui-diagram-builder.js | 5 ++++- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js index 4e3cef7cd37..70ba2e90e05 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js @@ -538,7 +538,10 @@ var DiagramBuilderBase = A.Component.create( var canvas = instance.canvas; canvas.appendChild(instance.dropContainer); - contentBox.appendChild(canvas); + + if (!canvas.inDoc()) { + contentBox.appendChild(canvas); + } }, _renderPropertyList: function() { diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-min.js b/build/aui-diagram-builder/aui-diagram-builder-base-min.js index 5fedc925c83..f558a69a22a 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-min.js @@ -1,2 +1,2 @@ AUI.add("aui-diagram-builder-base",function(ad){var S=ad.Lang,d=S.isArray,ap=S.isBoolean,K=S.isNumber,B=S.isObject,at=S.isString,H=function(A){return(A instanceof ad.ArrayList);},Q=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,U="add",k="addNode",aC="auto",L="availableField",P="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Y="cancel",aa="canvas",aq="clearfix",aq="clearfix",a="container",ab="content",u="contentBox",O="contentNode",E="createDocumentFragment",y="diagram",F="diagram-builder-base",Z="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",p="helper",V="icon",v="iconClass",aj="id",af="label",ah="list",N="maxFields",r="node",ac="propertyList",ax="rendered",al="save",q="settings",M="tab",G="tabView",b="tabs",e="tabview",J="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",h="#",aB=" ",z="_",x=w(y,aw,am,aa),aE=w(y,aw,am,ay,a),C=w(y,aw,am,ao),ag=w(y,aw,am,ao,o),c=w(y,aw,am,ao,V),T=w(y,aw,am,ao,af),f=w(y,aw,am,t,a),ai=w(y,aw,am,M,U),I=w(y,aw,am,M,q),m=w(y,aw,am,b,a),W=w(y,aw,am,b,a,ab),au=w(y,aw,am,J,a),ae=w(p,aq),ae=w(p,aq),l=w(V),av=w(e,ab),aA=w(e,ah);var i=ad.Component.create({NAME:L,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!Q(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(L,A);}return aF;},validator:Q,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return P+z+ao+z+A;},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ad.one(A).getData(L);},prototype:{FIELD_ITEM_TEMPLATE:'
                              • '+''+'
                                '+"
                              • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+T);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);}}});ad.AvailableField=i;var R=function(){};R.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||H(A);}},maxFields:{value:Infinity,validator:K}};ad.mix(R.prototype,{_setFields:function(aF){var A=this;if(H(aF)){return aF;}else{return A.createFields(aF);}},_updateFields:function(aF){var A=this;A.set(t,aF);},addField:function(aF){var A=this;if(A.get(t).size()
                                ',TOOLBAR_CONTAINER_TEMPLATE:'
                                ',FIELDS_CONTAINER_TEMPLATE:'
                                  ',CANVAS_TEMPLATE:'
                                  ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(aa);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(P));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(O);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,K(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Y);},_handleSaveEvent:function(){var A=this;A.fire(al); -},_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);aF.appendChild(aG);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file +},_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);if(!aG.inDoc()){aF.appendChild(aG);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-base.js b/build/aui-diagram-builder/aui-diagram-builder-base.js index 4e3cef7cd37..70ba2e90e05 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base.js @@ -538,7 +538,10 @@ var DiagramBuilderBase = A.Component.create( var canvas = instance.canvas; canvas.appendChild(instance.dropContainer); - contentBox.appendChild(canvas); + + if (!canvas.inDoc()) { + contentBox.appendChild(canvas); + } }, _renderPropertyList: function() { diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 4f9f7b9d461..1dbde58c31e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -538,7 +538,10 @@ var DiagramBuilderBase = A.Component.create( var canvas = instance.canvas; canvas.appendChild(instance.dropContainer); - contentBox.appendChild(canvas); + + if (!canvas.inDoc()) { + contentBox.appendChild(canvas); + } }, _renderPropertyList: function() { diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index 76887a20336..41493f626e0 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,6 +1,6 @@ AUI.add("aui-diagram-builder-base",function(ad){var S=ad.Lang,d=S.isArray,ap=S.isBoolean,K=S.isNumber,B=S.isObject,at=S.isString,H=function(A){return(A instanceof ad.ArrayList);},Q=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,U="add",k="addNode",aC="auto",L="availableField",P="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Y="cancel",aa="canvas",aq="clearfix",aq="clearfix",a="container",ab="content",u="contentBox",O="contentNode",E="createDocumentFragment",y="diagram",F="diagram-builder-base",Z="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",p="helper",V="icon",v="iconClass",aj="id",af="label",ah="list",N="maxFields",r="node",ac="propertyList",ax="rendered",al="save",q="settings",M="tab",G="tabView",b="tabs",e="tabview",J="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",h="#",aB=" ",z="_",x=w(y,aw,am,aa),aE=w(y,aw,am,ay,a),C=w(y,aw,am,ao),ag=w(y,aw,am,ao,o),c=w(y,aw,am,ao,V),T=w(y,aw,am,ao,af),f=w(y,aw,am,t,a),ai=w(y,aw,am,M,U),I=w(y,aw,am,M,q),m=w(y,aw,am,b,a),W=w(y,aw,am,b,a,ab),au=w(y,aw,am,J,a),ae=w(p,aq),ae=w(p,aq),l=w(V),av=w(e,ab),aA=w(e,ah);var i=ad.Component.create({NAME:L,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!Q(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(L,A);}return aF;},validator:Q,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return P+z+ao+z+A;},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ad.one(A).getData(L);},prototype:{FIELD_ITEM_TEMPLATE:'
                                • '+''+'
                                  '+"
                                • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+T);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);}}});ad.AvailableField=i;var R=function(){};R.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||H(A);}},maxFields:{value:Infinity,validator:K}};ad.mix(R.prototype,{_setFields:function(aF){var A=this;if(H(aF)){return aF;}else{return A.createFields(aF);}},_updateFields:function(aF){var A=this;A.set(t,aF);},addField:function(aF){var A=this;if(A.get(t).size()
                                  ',TOOLBAR_CONTAINER_TEMPLATE:'
                                  ',FIELDS_CONTAINER_TEMPLATE:'
                                    ',CANVAS_TEMPLATE:'
                                    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(aa);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(P));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(O);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,K(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Y);},_handleSaveEvent:function(){var A=this;A.fire(al); -},_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);aF.appendChild(aG);},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                    ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                    ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag(); -A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A; +},_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);if(!aG.inDoc()){aF.appendChild(aG);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                    ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                    ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments); +A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A; },prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                    ',CONTROLS_TEMPLATE:'
                                    ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,}); au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                    ',NODE_TEMPLATE:'
                                    ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index 4f9f7b9d461..1dbde58c31e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -538,7 +538,10 @@ var DiagramBuilderBase = A.Component.create( var canvas = instance.canvas; canvas.appendChild(instance.dropContainer); - contentBox.appendChild(canvas); + + if (!canvas.inDoc()) { + contentBox.appendChild(canvas); + } }, _renderPropertyList: function() { From 7f1d46e266906c039a7157891a19d54c70815bbf Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Mon, 8 Aug 2011 20:41:50 -0300 Subject: [PATCH 093/132] AUI-461 Layout tweaks on aui-diagram-builder --- demos/diagram-builder/index.html | 4 ++-- .../assets/aui-diagram-builder-base-core.css | 6 +++--- .../sam/aui-diagram-builder-base-skin.css | 2 +- .../js/aui-diagram-builder-base.js | 20 +++++++++++++++---- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index e90ed557b65..db709f17f30 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -82,7 +82,7 @@

                                    Alloy - diagram-builder-base Demo

                                    -
                                    +
                                    • @@ -100,7 +100,7 @@

                                      Alloy - diagram-builder-base Demo

                                    -
                                    +
                                    diff --git a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index a6814d4d828..b56fa351e57 100644 --- a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -35,7 +35,7 @@ .aui-diagram-builder-base-content { background-color: #f1f1f1; - padding-left: 260px; + /*padding-left: 260px;*/ } .aui-diagram-builder-base-tabs-container .aui-tabview-list { @@ -44,8 +44,8 @@ .aui-diagram-builder-base-tabs-container { float: left; - margin-left: -260px; - width: 260px; + /*margin-left: -260px;*/ + /*width: 260px;*/ } .aui-diagram-builder-base-canvas { diff --git a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css index b73816e10ec..e8b09602d06 100644 --- a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css +++ b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css @@ -17,7 +17,7 @@ border-radius: 4px; } -.aui-diagram-builder-base-canvas { +.aui-diagram-builder-base-drop-container { position: relative; background-image: url(checker-bg.png); outline: 0; diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-base.js b/src/aui-diagram-builder/js/aui-diagram-builder-base.js index 22fd9f62bb4..afe702f17ab 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-base.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-base.js @@ -32,6 +32,7 @@ var Lang = A.Lang, CANVAS = 'canvas', CLEARFIX = 'clearfix', CLEARFIX = 'clearfix', + COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', @@ -54,9 +55,11 @@ var Lang = A.Lang, ICON_CLASS = 'iconClass', ID = 'id', LABEL = 'label', + LAYOUT = 'layout', LIST = 'list', MAX_FIELDS = 'maxFields', NODE = 'node', + PARENT_NODE = 'parentNode', PROPERTY_LIST = 'propertyList', RENDERED = 'rendered', SAVE = 'save', @@ -76,6 +79,7 @@ var Lang = A.Lang, _SPACE = ' ', _UNDERLINE = '_', + CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), @@ -91,8 +95,11 @@ var Lang = A.Lang, CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), + CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), + CSS_W15 = AgetClassName('w15'), + CSS_W85 = AgetClassName('w85'); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -426,7 +433,7 @@ var DiagramBuilderBase = A.Component.create( DROP_CONTAINER_TEMPLATE: '
                                    ', TOOLBAR_CONTAINER_TEMPLATE: '
                                    ', FIELDS_CONTAINER_TEMPLATE: '
                                      ', - CANVAS_TEMPLATE: '
                                      ', + CANVAS_TEMPLATE: '
                                      ', fieldsNode: null, propertyList: null, @@ -489,7 +496,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX); + contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -538,7 +545,10 @@ var DiagramBuilderBase = A.Component.create( canvas.appendChild(instance.dropContainer); - if (!canvas.inDoc()) { + if (canvas.inDoc()) { + canvas.get(PARENT_NODE).appendChild(canvas); + } + else { contentBox.appendChild(canvas); } }, @@ -572,6 +582,8 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); + tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); instance.settingsNode = tabView.getTab(1).get(CONTENT_NODE); From 2601b91632c771f06224347856c409641075187b Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Mon, 8 Aug 2011 20:42:12 -0300 Subject: [PATCH 094/132] Build files --- .../assets/aui-diagram-builder-base-core.css | 6 +++--- .../sam/aui-diagram-builder-base-skin.css | 2 +- .../skins/sam/aui-diagram-builder-base.css | 2 +- .../assets/skins/sam/aui-diagram-builder.css | 2 +- .../aui-diagram-builder-base-debug.js | 20 +++++++++++++++---- .../aui-diagram-builder-base-min.js | 4 ++-- .../aui-diagram-builder-base.js | 20 +++++++++++++++---- .../aui-diagram-builder-debug.js | 20 +++++++++++++++---- .../aui-diagram-builder-min.js | 6 +++--- .../aui-diagram-builder.js | 20 +++++++++++++++---- 10 files changed, 75 insertions(+), 27 deletions(-) diff --git a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index a6814d4d828..b56fa351e57 100644 --- a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -35,7 +35,7 @@ .aui-diagram-builder-base-content { background-color: #f1f1f1; - padding-left: 260px; + /*padding-left: 260px;*/ } .aui-diagram-builder-base-tabs-container .aui-tabview-list { @@ -44,8 +44,8 @@ .aui-diagram-builder-base-tabs-container { float: left; - margin-left: -260px; - width: 260px; + /*margin-left: -260px;*/ + /*width: 260px;*/ } .aui-diagram-builder-base-canvas { diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css index b73816e10ec..e8b09602d06 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css @@ -17,7 +17,7 @@ border-radius: 4px; } -.aui-diagram-builder-base-canvas { +.aui-diagram-builder-base-drop-container { position: relative; background-image: url(checker-bg.png); outline: 0; diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css index 83a52f17500..8c19a3fd08a 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css @@ -1 +1 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1;padding-left:260px}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{float:left;margin-left:-260px;width:260px}.aui-diagram-builder-base-canvas{background-color:#f5f5f5;position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-canvas{position:relative;background-image:url(checker-bg.png);outline:0;border-left:1px solid #ccc;border-right:1px solid #bbb;border-bottom:1px solid #bbb;border-top:1px solid #ccc}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{float:left}.aui-diagram-builder-base-canvas{background-color:#f5f5f5;position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-drop-container{position:relative;background-image:url(checker-bg.png);outline:0;border-left:1px solid #ccc;border-right:1px solid #bbb;border-bottom:1px solid #bbb;border-top:1px solid #ccc}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css index 669ccc4755d..78136133ef7 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css @@ -1,2 +1,2 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1;padding-left:260px}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{float:left;margin-left:-260px;width:260px}.aui-diagram-builder-base-canvas{background-color:#f5f5f5;position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-canvas{position:relative;background-image:url(checker-bg.png);outline:0;border-left:1px solid #ccc;border-right:1px solid #bbb;border-bottom:1px solid #bbb;border-top:1px solid #ccc}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{float:left}.aui-diagram-builder-base-canvas{background-color:#f5f5f5;position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-drop-container{position:relative;background-image:url(checker-bg.png);outline:0;border-left:1px solid #ccc;border-right:1px solid #bbb;border-bottom:1px solid #bbb;border-top:1px solid #ccc}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js index 70ba2e90e05..ff6e0cf7d5e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js @@ -33,6 +33,7 @@ var Lang = A.Lang, CANVAS = 'canvas', CLEARFIX = 'clearfix', CLEARFIX = 'clearfix', + COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', @@ -55,9 +56,11 @@ var Lang = A.Lang, ICON_CLASS = 'iconClass', ID = 'id', LABEL = 'label', + LAYOUT = 'layout', LIST = 'list', MAX_FIELDS = 'maxFields', NODE = 'node', + PARENT_NODE = 'parentNode', PROPERTY_LIST = 'propertyList', RENDERED = 'rendered', SAVE = 'save', @@ -77,6 +80,7 @@ var Lang = A.Lang, _SPACE = ' ', _UNDERLINE = '_', + CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), @@ -92,8 +96,11 @@ var Lang = A.Lang, CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), + CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), + CSS_W15 = AgetClassName('w15'), + CSS_W85 = AgetClassName('w85'); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -427,7 +434,7 @@ var DiagramBuilderBase = A.Component.create( DROP_CONTAINER_TEMPLATE: '
                                      ', TOOLBAR_CONTAINER_TEMPLATE: '
                                      ', FIELDS_CONTAINER_TEMPLATE: '
                                        ', - CANVAS_TEMPLATE: '
                                        ', + CANVAS_TEMPLATE: '
                                        ', fieldsNode: null, propertyList: null, @@ -490,7 +497,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX); + contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -539,7 +546,10 @@ var DiagramBuilderBase = A.Component.create( canvas.appendChild(instance.dropContainer); - if (!canvas.inDoc()) { + if (canvas.inDoc()) { + canvas.get(PARENT_NODE).appendChild(canvas); + } + else { contentBox.appendChild(canvas); } }, @@ -573,6 +583,8 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); + tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); instance.settingsNode = tabView.getTab(1).get(CONTENT_NODE); diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-min.js b/build/aui-diagram-builder/aui-diagram-builder-base-min.js index f558a69a22a..2d79a38e9db 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-diagram-builder-base",function(ad){var S=ad.Lang,d=S.isArray,ap=S.isBoolean,K=S.isNumber,B=S.isObject,at=S.isString,H=function(A){return(A instanceof ad.ArrayList);},Q=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,U="add",k="addNode",aC="auto",L="availableField",P="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Y="cancel",aa="canvas",aq="clearfix",aq="clearfix",a="container",ab="content",u="contentBox",O="contentNode",E="createDocumentFragment",y="diagram",F="diagram-builder-base",Z="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",p="helper",V="icon",v="iconClass",aj="id",af="label",ah="list",N="maxFields",r="node",ac="propertyList",ax="rendered",al="save",q="settings",M="tab",G="tabView",b="tabs",e="tabview",J="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",h="#",aB=" ",z="_",x=w(y,aw,am,aa),aE=w(y,aw,am,ay,a),C=w(y,aw,am,ao),ag=w(y,aw,am,ao,o),c=w(y,aw,am,ao,V),T=w(y,aw,am,ao,af),f=w(y,aw,am,t,a),ai=w(y,aw,am,M,U),I=w(y,aw,am,M,q),m=w(y,aw,am,b,a),W=w(y,aw,am,b,a,ab),au=w(y,aw,am,J,a),ae=w(p,aq),ae=w(p,aq),l=w(V),av=w(e,ab),aA=w(e,ah);var i=ad.Component.create({NAME:L,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!Q(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(L,A);}return aF;},validator:Q,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return P+z+ao+z+A;},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ad.one(A).getData(L);},prototype:{FIELD_ITEM_TEMPLATE:'
                                      • '+''+'
                                        '+"
                                      • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+T);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);}}});ad.AvailableField=i;var R=function(){};R.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||H(A);}},maxFields:{value:Infinity,validator:K}};ad.mix(R.prototype,{_setFields:function(aF){var A=this;if(H(aF)){return aF;}else{return A.createFields(aF);}},_updateFields:function(aF){var A=this;A.set(t,aF);},addField:function(aF){var A=this;if(A.get(t).size()
                                        ',TOOLBAR_CONTAINER_TEMPLATE:'
                                        ',FIELDS_CONTAINER_TEMPLATE:'
                                          ',CANVAS_TEMPLATE:'
                                          ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(aa);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(P));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(O);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,K(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Y);},_handleSaveEvent:function(){var A=this;A.fire(al); -},_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);if(!aG.inDoc()){aF.appendChild(aG);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(ai){var X=ai.Lang,d=X.isArray,aw=X.isBoolean,P=X.isNumber,F=X.isObject,az=X.isString,M=function(A){return(A instanceof ai.ArrayList);},V=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,Z="add",n="addNode",aJ="auto",Q="availableField",U="availableFields",aG="availableFieldsDragConfig",at="base",v="boundingBox",aD="builder",ad="cancel",af="canvas",ax="clearfix",ax="clearfix",e="column",a="container",ag="content",y="contentBox",T="contentNode",I="createDocumentFragment",D="diagram",J="diagram-builder-base",ae="disk",r="draggable",aF="drop",aq="dropConfig",ac="dropContainer",av="field",w="fields",q="fieldsContainer",au="height",s="helper",s="helper",aa="icon",z="iconClass",ap="id",ak="label",x="layout",ao="list",S="maxFields",u="node",f="parentNode",ah="propertyList",aE="rendered",ar="save",t="settings",R="tab",L="tabView",b="tabs",g="tabview",O="toolbar",l="toolbarContainer",B=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",m=B(e),C=B(D,aD,at,af),aL=B(D,aD,at,aF,a),G=B(D,aD,at,av),al=B(D,aD,at,av,r),c=B(D,aD,at,av,aa),Y=B(D,aD,at,av,ak),h=B(D,aD,at,w,a),an=B(D,aD,at,R,Z),N=B(D,aD,at,R,t),p=B(D,aD,at,b,a),ab=B(D,aD,at,b,a,ag),aB=B(D,aD,at,O,a),aj=B(s,ax),aj=B(s,ax),o=B(aa),K=B(x),aC=B(g,ag),aH=B(g,ao),aA=B("w15"),am=B("w85");var k=ai.Component.create({NAME:Q,ATTRS:{draggable:{value:true,validator:aw},label:{validator:az},iconClass:{validator:az},id:{value:ai.guid(),setter:"_setId",validator:az},node:{valueFn:function(aM){var A=this;if(!V(aM)){aM=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aM.setData(Q,A);}return aM;},validator:V,writeOnce:true},type:{value:u,validator:az}},EXTENDS:ai.Base,buildNodeId:function(A){return U+E+av+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(Q);},prototype:{FIELD_ITEM_TEMPLATE:'
                                        • '+''+'
                                          '+"
                                        • ",initializer:function(){var A=this;var aM=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(i+Y);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(ak));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(u).toggleClass(al,aM);},_uiSetId:function(aM){var A=this;A.get(u).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});ai.AvailableField=k;var W=function(){};W.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:P}};ai.mix(W.prototype,{_setFields:function(aM){var A=this;if(M(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(w,aM);},addField:function(aM){var A=this;if(A.get(w).size()
                                          ',TOOLBAR_CONTAINER_TEMPLATE:'
                                          ',FIELDS_CONTAINER_TEMPLATE:'
                                            ',CANVAS_TEMPLATE:'
                                            ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.dropContainer=A.get(ac);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(l);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(w);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(U));},syncUI:function(){var A=this;var aM=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(aj).addClass(K);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(T);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this;A.dropContainer.setStyle(au,P(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0); +},_handleCancelEvent:function(){var A=this;A.fire(ad);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(y);var aN=A.canvas;aN.appendChild(A.dropContainer);if(aN.inDoc()){aN.get(f).appendChild(aN);}else{aM.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new ai.TabView(A.get(L));aM.get(v).addClass(m).addClass(aA);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(T);A.settingsNode=aM.getTab(1).get(T);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(O)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(H(aP)?aP:new ai.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,groups:[U],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[U],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+al},aM||{});},_setPropertyList:function(aM){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(v);var aQ=aO.one(i+aH);var aN={after:{activeTabChange:ai.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(i+p),contentBox:aO.one(i+ab),bubbleTargets:aM,contentNode:aO.one(i+aC),cssClass:p,listNode:aQ,render:aM.get(y)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[n]},{cssClass:N,label:A[t]}];}return ai.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return ai.merge({activeState:false,bubbleTargets:aM,children:[{handler:ai.bind(aM._handleSaveEvent,aM),label:A[ar],icon:ae},{handler:ai.bind(aM._handleCancelEvent,aM),label:A[ad]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=ai.getDoc().invoke(I);aK.each(aO,function(aP){aM.appendChild(aP.get(u));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=ay;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-base.js b/build/aui-diagram-builder/aui-diagram-builder-base.js index 70ba2e90e05..ff6e0cf7d5e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base.js @@ -33,6 +33,7 @@ var Lang = A.Lang, CANVAS = 'canvas', CLEARFIX = 'clearfix', CLEARFIX = 'clearfix', + COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', @@ -55,9 +56,11 @@ var Lang = A.Lang, ICON_CLASS = 'iconClass', ID = 'id', LABEL = 'label', + LAYOUT = 'layout', LIST = 'list', MAX_FIELDS = 'maxFields', NODE = 'node', + PARENT_NODE = 'parentNode', PROPERTY_LIST = 'propertyList', RENDERED = 'rendered', SAVE = 'save', @@ -77,6 +80,7 @@ var Lang = A.Lang, _SPACE = ' ', _UNDERLINE = '_', + CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), @@ -92,8 +96,11 @@ var Lang = A.Lang, CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), + CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), + CSS_W15 = AgetClassName('w15'), + CSS_W85 = AgetClassName('w85'); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -427,7 +434,7 @@ var DiagramBuilderBase = A.Component.create( DROP_CONTAINER_TEMPLATE: '
                                            ', TOOLBAR_CONTAINER_TEMPLATE: '
                                            ', FIELDS_CONTAINER_TEMPLATE: '
                                              ', - CANVAS_TEMPLATE: '
                                              ', + CANVAS_TEMPLATE: '
                                              ', fieldsNode: null, propertyList: null, @@ -490,7 +497,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX); + contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -539,7 +546,10 @@ var DiagramBuilderBase = A.Component.create( canvas.appendChild(instance.dropContainer); - if (!canvas.inDoc()) { + if (canvas.inDoc()) { + canvas.get(PARENT_NODE).appendChild(canvas); + } + else { contentBox.appendChild(canvas); } }, @@ -573,6 +583,8 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); + tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); instance.settingsNode = tabView.getTab(1).get(CONTENT_NODE); diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 1dbde58c31e..d02b1093132 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -33,6 +33,7 @@ var Lang = A.Lang, CANVAS = 'canvas', CLEARFIX = 'clearfix', CLEARFIX = 'clearfix', + COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', @@ -55,9 +56,11 @@ var Lang = A.Lang, ICON_CLASS = 'iconClass', ID = 'id', LABEL = 'label', + LAYOUT = 'layout', LIST = 'list', MAX_FIELDS = 'maxFields', NODE = 'node', + PARENT_NODE = 'parentNode', PROPERTY_LIST = 'propertyList', RENDERED = 'rendered', SAVE = 'save', @@ -77,6 +80,7 @@ var Lang = A.Lang, _SPACE = ' ', _UNDERLINE = '_', + CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), @@ -92,8 +96,11 @@ var Lang = A.Lang, CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), + CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), + CSS_W15 = AgetClassName('w15'), + CSS_W85 = AgetClassName('w85'); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -427,7 +434,7 @@ var DiagramBuilderBase = A.Component.create( DROP_CONTAINER_TEMPLATE: '
                                              ', TOOLBAR_CONTAINER_TEMPLATE: '
                                              ', FIELDS_CONTAINER_TEMPLATE: '
                                                ', - CANVAS_TEMPLATE: '
                                                ', + CANVAS_TEMPLATE: '
                                                ', fieldsNode: null, propertyList: null, @@ -490,7 +497,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX); + contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -539,7 +546,10 @@ var DiagramBuilderBase = A.Component.create( canvas.appendChild(instance.dropContainer); - if (!canvas.inDoc()) { + if (canvas.inDoc()) { + canvas.get(PARENT_NODE).appendChild(canvas); + } + else { contentBox.appendChild(canvas); } }, @@ -573,6 +583,8 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); + tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); instance.settingsNode = tabView.getTab(1).get(CONTENT_NODE); diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index 41493f626e0..d6bf190afb8 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,6 +1,6 @@ -AUI.add("aui-diagram-builder-base",function(ad){var S=ad.Lang,d=S.isArray,ap=S.isBoolean,K=S.isNumber,B=S.isObject,at=S.isString,H=function(A){return(A instanceof ad.ArrayList);},Q=function(A){return(A instanceof ad.Node);},D=function(A){return(A instanceof ad.AvailableField);},aD=ad.Array,U="add",k="addNode",aC="auto",L="availableField",P="availableFields",az="availableFieldsDragConfig",am="base",s="boundingBox",aw="builder",Y="cancel",aa="canvas",aq="clearfix",aq="clearfix",a="container",ab="content",u="contentBox",O="contentNode",E="createDocumentFragment",y="diagram",F="diagram-builder-base",Z="disk",o="draggable",ay="drop",ak="dropConfig",X="dropContainer",ao="field",t="fields",n="fieldsContainer",an="height",p="helper",p="helper",V="icon",v="iconClass",aj="id",af="label",ah="list",N="maxFields",r="node",ac="propertyList",ax="rendered",al="save",q="settings",M="tab",G="tabView",b="tabs",e="tabview",J="toolbar",j="toolbarContainer",w=ad.getClassName,aB=" ",g=".",h="#",aB=" ",z="_",x=w(y,aw,am,aa),aE=w(y,aw,am,ay,a),C=w(y,aw,am,ao),ag=w(y,aw,am,ao,o),c=w(y,aw,am,ao,V),T=w(y,aw,am,ao,af),f=w(y,aw,am,t,a),ai=w(y,aw,am,M,U),I=w(y,aw,am,M,q),m=w(y,aw,am,b,a),W=w(y,aw,am,b,a,ab),au=w(y,aw,am,J,a),ae=w(p,aq),ae=w(p,aq),l=w(V),av=w(e,ab),aA=w(e,ah);var i=ad.Component.create({NAME:L,ATTRS:{draggable:{value:true,validator:ap},label:{validator:at},iconClass:{validator:at},id:{value:ad.guid(),setter:"_setId",validator:at},node:{valueFn:function(aF){var A=this;if(!Q(aF)){aF=ad.Node.create(ad.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(v)}));aF.setData(L,A);}return aF;},validator:Q,writeOnce:true},type:{value:r,validator:at}},EXTENDS:ad.Base,buildNodeId:function(A){return P+z+ao+z+A;},getAvailableFieldById:function(A){return ad.AvailableField.getAvailableFieldByNode(h+ad.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ad.one(A).getData(L);},prototype:{FIELD_ITEM_TEMPLATE:'
                                              • '+''+'
                                                '+"
                                              • ",initializer:function(){var A=this;var aF=A.get(r);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aF.one(g+T);A._uiSetDraggable(A.get(o));A._uiSetId(A.get(aj));A._uiSetLabel(A.get(af));},_afterDraggableChange:function(aF){var A=this;A._uiSetDraggable(aF.newVal);},_afterIdChange:function(aF){var A=this;A._uiSetId(aF.newVal);},_afterLabelChange:function(aF){var A=this;A._uiSetLabel(aF.newVal);},_setId:function(A){return ad.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aF){var A=this;A.get(r).toggleClass(ag,aF);},_uiSetId:function(aF){var A=this;A.get(r).set(aj,aF);},_uiSetLabel:function(aF){var A=this;A.labelNode.setContent(aF);}}});ad.AvailableField=i;var R=function(){};R.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||H(A);}},maxFields:{value:Infinity,validator:K}};ad.mix(R.prototype,{_setFields:function(aF){var A=this;if(H(aF)){return aF;}else{return A.createFields(aF);}},_updateFields:function(aF){var A=this;A.set(t,aF);},addField:function(aF){var A=this;if(A.get(t).size()
                                                ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                ',FIELDS_CONTAINER_TEMPLATE:'
                                                  ',CANVAS_TEMPLATE:'
                                                  ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(aa);A.dropContainer=A.get(X);A.fieldsContainer=A.get(n);A.toolbarContainer=A.get(j);},isAvailableFieldsDrag:function(aG){var A=this;var aF=A.availableFieldsDrag;return(aG===aF.dd);},plotFields:function(){var aF=this;var A=aF.get(t);A.each(function(aG){aF.plotField(aG);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(P));},syncUI:function(){var A=this;var aF=A.get(u);A._setupDrop();A._setupAvailableFieldsDrag();aF.addClass(ae);},_afterActiveTabChange:function(aG){var A=this;var aF=aG.newVal.get(O);if(A.get(ax)&&(aF===A.settingsNode)){A._renderSettings();}},_afterRender:function(aF){var A=this;A.plotFields();},_afterUiSetHeight:function(aF){var A=this;A.dropContainer.setStyle(an,K(aF)?aF+A.DEF_UNIT:aF);},_defCancelFn:function(aF){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(Y);},_handleSaveEvent:function(){var A=this;A.fire(al); -},_renderCanvas:function(){var A=this;var aF=A.get(u);var aG=A.canvas;aG.appendChild(A.dropContainer);if(!aG.inDoc()){aF.appendChild(aG);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ad.PropertyList(A.get(ac)).render(A.settingsNode);A.propertyList.get(s).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aF=new ad.TabView(A.get(G));A.tabView=aF;A.fieldsNode=aF.getTab(0).get(O);A.settingsNode=aF.getTab(1).get(O);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ad.Toolbar(A.get(J)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ad.DD.Drop(A.get(ak));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ad.DD.Delegate(A.get(az));},_setAvailableFields:function(aG){var aF=this;var A=[];aD.each(aG,function(aI,aH){A.push(D(aI)?aI:new ad.AvailableField(aI));});return A;},_setDropConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,groups:[P],node:A.dropContainer},aF||{});},_setAvailableFieldsDragConfig:function(aF){var A=this;return ad.merge({bubbleTargets:A,container:A.get(s),dragConfig:{groups:[P],plugins:[{cfg:{moveOnEnd:false},fn:ad.Plugin.DDProxy}]},nodes:g+ag},aF||{});},_setPropertyList:function(aF){var A=this;return ad.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aC}},aF);},_setTabView:function(aI){var aF=this;var aH=aF.get(s);var aJ=aH.one(g+aA);var aG={after:{activeTabChange:ad.bind(aF._afterActiveTabChange,aF)},boundingBox:aH.one(g+m),contentBox:aH.one(g+W),bubbleTargets:aF,contentNode:aH.one(g+av),cssClass:m,listNode:aJ,render:aF.get(u)};if(!aJ){var A=aF.getStrings();aG.items=[{cssClass:ai,label:A[k]},{cssClass:I,label:A[q]}];}return ad.merge(aG,aI);},_setToolbar:function(aG){var aF=this;var A=aF.getStrings();return ad.merge({activeState:false,bubbleTargets:aF,children:[{handler:ad.bind(aF._handleSaveEvent,aF),label:A[al],icon:Z},{handler:ad.bind(aF._handleCancelEvent,aF),label:A[Y]}]},aG);},_uiSetAvailableFields:function(aH){var A=this;var aG=A.fieldsNode;if(aG){var aF=ad.getDoc().invoke(E);aD.each(aH,function(aI){aF.appendChild(aI.get(r));});aG.setContent(A.fieldsContainer.setContent(aF));}},_uiSetFields:function(aF){var A=this;if(A.get(ax)){A.plotFields();}}}});ad.DiagramBuilderBase=ar;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                  ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                  ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments); -A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A; +AUI.add("aui-diagram-builder-base",function(ai){var X=ai.Lang,d=X.isArray,aw=X.isBoolean,P=X.isNumber,F=X.isObject,az=X.isString,M=function(A){return(A instanceof ai.ArrayList);},V=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,Z="add",n="addNode",aJ="auto",Q="availableField",U="availableFields",aG="availableFieldsDragConfig",at="base",v="boundingBox",aD="builder",ad="cancel",af="canvas",ax="clearfix",ax="clearfix",e="column",a="container",ag="content",y="contentBox",T="contentNode",I="createDocumentFragment",D="diagram",J="diagram-builder-base",ae="disk",r="draggable",aF="drop",aq="dropConfig",ac="dropContainer",av="field",w="fields",q="fieldsContainer",au="height",s="helper",s="helper",aa="icon",z="iconClass",ap="id",ak="label",x="layout",ao="list",S="maxFields",u="node",f="parentNode",ah="propertyList",aE="rendered",ar="save",t="settings",R="tab",L="tabView",b="tabs",g="tabview",O="toolbar",l="toolbarContainer",B=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",m=B(e),C=B(D,aD,at,af),aL=B(D,aD,at,aF,a),G=B(D,aD,at,av),al=B(D,aD,at,av,r),c=B(D,aD,at,av,aa),Y=B(D,aD,at,av,ak),h=B(D,aD,at,w,a),an=B(D,aD,at,R,Z),N=B(D,aD,at,R,t),p=B(D,aD,at,b,a),ab=B(D,aD,at,b,a,ag),aB=B(D,aD,at,O,a),aj=B(s,ax),aj=B(s,ax),o=B(aa),K=B(x),aC=B(g,ag),aH=B(g,ao),aA=B("w15"),am=B("w85");var k=ai.Component.create({NAME:Q,ATTRS:{draggable:{value:true,validator:aw},label:{validator:az},iconClass:{validator:az},id:{value:ai.guid(),setter:"_setId",validator:az},node:{valueFn:function(aM){var A=this;if(!V(aM)){aM=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aM.setData(Q,A);}return aM;},validator:V,writeOnce:true},type:{value:u,validator:az}},EXTENDS:ai.Base,buildNodeId:function(A){return U+E+av+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(Q);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                • '+''+'
                                                  '+"
                                                • ",initializer:function(){var A=this;var aM=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(i+Y);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(ak));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(u).toggleClass(al,aM);},_uiSetId:function(aM){var A=this;A.get(u).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});ai.AvailableField=k;var W=function(){};W.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:P}};ai.mix(W.prototype,{_setFields:function(aM){var A=this;if(M(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(w,aM);},addField:function(aM){var A=this;if(A.get(w).size()
                                                  ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                  ',FIELDS_CONTAINER_TEMPLATE:'
                                                    ',CANVAS_TEMPLATE:'
                                                    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.dropContainer=A.get(ac);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(l);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(w);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(U));},syncUI:function(){var A=this;var aM=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(aj).addClass(K);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(T);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this;A.dropContainer.setStyle(au,P(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0); +},_handleCancelEvent:function(){var A=this;A.fire(ad);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(y);var aN=A.canvas;aN.appendChild(A.dropContainer);if(aN.inDoc()){aN.get(f).appendChild(aN);}else{aM.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new ai.TabView(A.get(L));aM.get(v).addClass(m).addClass(aA);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(T);A.settingsNode=aM.getTab(1).get(T);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(O)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(H(aP)?aP:new ai.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,groups:[U],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[U],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+al},aM||{});},_setPropertyList:function(aM){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(v);var aQ=aO.one(i+aH);var aN={after:{activeTabChange:ai.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(i+p),contentBox:aO.one(i+ab),bubbleTargets:aM,contentNode:aO.one(i+aC),cssClass:p,listNode:aQ,render:aM.get(y)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[n]},{cssClass:N,label:A[t]}];}return ai.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return ai.merge({activeState:false,bubbleTargets:aM,children:[{handler:ai.bind(aM._handleSaveEvent,aM),label:A[ar],icon:ae},{handler:ai.bind(aM._handleCancelEvent,aM),label:A[ad]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=ai.getDoc().invoke(I);aK.each(aO,function(aP){aM.appendChild(aP.get(u));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=ay;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                    ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                    ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this; +au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A; },prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                    ',CONTROLS_TEMPLATE:'
                                                    ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,}); au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                                    ',NODE_TEMPLATE:'
                                                    ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index 1dbde58c31e..d02b1093132 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -33,6 +33,7 @@ var Lang = A.Lang, CANVAS = 'canvas', CLEARFIX = 'clearfix', CLEARFIX = 'clearfix', + COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', @@ -55,9 +56,11 @@ var Lang = A.Lang, ICON_CLASS = 'iconClass', ID = 'id', LABEL = 'label', + LAYOUT = 'layout', LIST = 'list', MAX_FIELDS = 'maxFields', NODE = 'node', + PARENT_NODE = 'parentNode', PROPERTY_LIST = 'propertyList', RENDERED = 'rendered', SAVE = 'save', @@ -77,6 +80,7 @@ var Lang = A.Lang, _SPACE = ' ', _UNDERLINE = '_', + CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), @@ -92,8 +96,11 @@ var Lang = A.Lang, CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), + CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), + CSS_W15 = AgetClassName('w15'), + CSS_W85 = AgetClassName('w85'); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -427,7 +434,7 @@ var DiagramBuilderBase = A.Component.create( DROP_CONTAINER_TEMPLATE: '
                                                    ', TOOLBAR_CONTAINER_TEMPLATE: '
                                                    ', FIELDS_CONTAINER_TEMPLATE: '
                                                      ', - CANVAS_TEMPLATE: '
                                                      ', + CANVAS_TEMPLATE: '
                                                      ', fieldsNode: null, propertyList: null, @@ -490,7 +497,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX); + contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -539,7 +546,10 @@ var DiagramBuilderBase = A.Component.create( canvas.appendChild(instance.dropContainer); - if (!canvas.inDoc()) { + if (canvas.inDoc()) { + canvas.get(PARENT_NODE).appendChild(canvas); + } + else { contentBox.appendChild(canvas); } }, @@ -573,6 +583,8 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); + tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); instance.settingsNode = tabView.getTab(1).get(CONTENT_NODE); From fc982b2398c28f76a5ddd0c04ad63076bd44c039 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 9 Aug 2011 14:32:23 -0300 Subject: [PATCH 095/132] AUI-461 Layout tweaks on aui-diagram-builder --- demos/diagram-builder/index.html | 100 +++++++++--------- .../assets/aui-diagram-builder-base-core.css | 15 ++- .../sam/aui-diagram-builder-base-skin.css | 14 +-- .../js/aui-diagram-builder-base.js | 43 +++++--- 4 files changed, 99 insertions(+), 73 deletions(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index db709f17f30..96ddbf4bb58 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -82,7 +82,7 @@

                                                      Alloy - diagram-builder-base Demo

                                                      -
                                                      +
                                                      • @@ -100,8 +100,10 @@

                                                        Alloy - diagram-builder-base Demo

                                                      -
                                                      -
                                                      +
                                                      +
                                                      +
                                                      +
                                                      @@ -1491,52 +1493,52 @@

                                                      Alloy - diagram-builder-base Demo

                                                      A.one('#json1').setContent( A.JSON.stringify(diagramBuilder1.toJSON()) ); }); - // diagramBuilder2 = new A.WorkflowDesigner( - // { - // after: { - // cancel: function(event) { - // console.log('cancel', event); - // }, - // - // save: function(event) { - // console.log('save', event); - // }, - // - // addField: function(event) { - // // console.log('addField', event); - // } - // }, - // availableFields: availableFields, - // - // fields: [ - // { - // bodyContent: 'Node1', - // xy: [200, 200] - // }, - // { - // bodyContent: 'Node2' - // } - // ], - // // fields: new A.ArrayList([{a:1}, {a:2}]), - // - // // propertyList: { - // // recordset: [ - // // { - // // name: 'Text1', - // // value: 'Text value' - // // }, - // // { - // // name: 'Text2', - // // value: 'Text value' - // // }, - // // { - // // name: 'Text3', - // // value: 'Text value' - // // } - // // ] - // // } - // } - // ).render('#diagramBuilder2'); + diagramBuilder2 = new A.WorkflowDesigner( + { + after: { + cancel: function(event) { + console.log('cancel', event); + }, + + save: function(event) { + console.log('save', event); + }, + + addField: function(event) { + // console.log('addField', event); + } + }, + availableFields: availableFields, + + fields: [ + { + bodyContent: 'Node1', + xy: [200, 200] + }, + { + bodyContent: 'Node2' + } + ], + // fields: new A.ArrayList([{a:1}, {a:2}]), + + // propertyList: { + // recordset: [ + // { + // name: 'Text1', + // value: 'Text value' + // }, + // { + // name: 'Text2', + // value: 'Text value' + // }, + // { + // name: 'Text3', + // value: 'Text value' + // } + // ] + // } + } + ).render('#diagramBuilder2'); // diagramBuilder2.set('height', 1000); // diagramBuilder2.set('fields', [1,2]); diff --git a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index b56fa351e57..0ad6d4fd08d 100644 --- a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -43,13 +43,11 @@ } .aui-diagram-builder-base-tabs-container { - float: left; - /*margin-left: -260px;*/ - /*width: 260px;*/ + position: absolute; + width: 260px; } .aui-diagram-builder-base-canvas { - background-color: #f5f5f5; position: relative; } @@ -57,6 +55,15 @@ margin: 5px; } +.aui-diagram-builder-base-content { + min-height: 400px; +} + + +.aui-diagram-builder-base-content-container { + padding-left: 260px; +} + .aui-diagram-builder-base-tabs-container-content { } diff --git a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css index e8b09602d06..36cc962934e 100644 --- a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css +++ b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css @@ -17,16 +17,15 @@ border-radius: 4px; } -.aui-diagram-builder-base-drop-container { - position: relative; +.aui-diagram-builder-base-canvas { background-image: url(checker-bg.png); - outline: 0; - border-left: 1px solid #CCCCCC; - border-right: 1px solid #BBBBBB; - + outline: 0; + z-index: 100; border-bottom: 1px solid #BBBBBB; + border-right: 1px solid #BBBBBB; border-top: 1px solid #CCCCCC; + overflow: hidden; } .aui-diagram-builder-base-field-icon { @@ -34,6 +33,9 @@ height: 30px; } +.aui-diagram-builder-base-drop-container { +} + .aui-diagram-node-task-icon { background: url(menu-task.png) no-repeat scroll center center transparent; } diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-base.js b/src/aui-diagram-builder/js/aui-diagram-builder-base.js index afe702f17ab..61e4067e22c 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-base.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-base.js @@ -31,11 +31,11 @@ var Lang = A.Lang, CANCEL = 'cancel', CANVAS = 'canvas', CLEARFIX = 'clearfix', - CLEARFIX = 'clearfix', COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', + CONTENT_CONTAINER = 'contentContainer', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -50,7 +50,6 @@ var Lang = A.Lang, FIELDS_CONTAINER = 'fieldsContainer', HEIGHT = 'height', HELPER = 'helper', - HELPER = 'helper', ICON = 'icon', ICON_CLASS = 'iconClass', ID = 'id', @@ -81,6 +80,7 @@ var Lang = A.Lang, CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), + CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -93,13 +93,10 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), - CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), - CSS_W15 = AgetClassName('w15'), - CSS_W85 = AgetClassName('w85'); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -168,7 +165,7 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                    • ' + + FIELD_ITEM_TEMPLATE: '
                                                    • ' + '' + '
                                                      ' + '
                                                    • ', @@ -369,6 +366,12 @@ var DiagramBuilderBase = A.Component.create( validator: isObject }, + contentContainer: { + valueFn: function() { + return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + } + }, + dropContainer: { valueFn: function() { return A.Node.create(this.DROP_CONTAINER_TEMPLATE); @@ -419,6 +422,7 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, @@ -430,10 +434,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { + CONTENT_CONTAINER_TEMPLATE: '
                                                      ', DROP_CONTAINER_TEMPLATE: '
                                                      ', TOOLBAR_CONTAINER_TEMPLATE: '
                                                      ', FIELDS_CONTAINER_TEMPLATE: '
                                                        ', - CANVAS_TEMPLATE: '
                                                        ', + CANVAS_TEMPLATE: '
                                                        ', fieldsNode: null, propertyList: null, @@ -457,6 +462,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); instance.canvas = instance.get(CANVAS); + instance.contentContainer = instance.get(CONTENT_CONTAINER); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -496,7 +502,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); + contentBox.addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -517,6 +523,7 @@ var DiagramBuilderBase = A.Component.create( _afterUiSetHeight: function(val) { var instance = this; + instance.contentContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); instance.dropContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); }, @@ -542,14 +549,22 @@ var DiagramBuilderBase = A.Component.create( var instance = this; var contentBox = instance.get(CONTENT_BOX); var canvas = instance.canvas; + var contentContainer = instance.contentContainer; + var dropContainer = instance.dropContainer; - canvas.appendChild(instance.dropContainer); + if (!canvas.inDoc()) { + contentContainer.appendChild(canvas); + } + + if (!dropContainer.inDoc()) { + canvas.appendChild(dropContainer); + } - if (canvas.inDoc()) { - canvas.get(PARENT_NODE).appendChild(canvas); + if (contentContainer.inDoc()) { + contentContainer.get(PARENT_NODE).append(contentContainer); } else { - contentBox.appendChild(canvas); + contentBox.appendChild(contentContainer); } }, @@ -582,7 +597,7 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); - tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + tabView.get(BOUNDING_BOX); instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); From b98cb5b0e3ae1f3570b5049cb3a585cc26591c40 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 9 Aug 2011 14:32:47 -0300 Subject: [PATCH 096/132] Build files --- .../assets/aui-diagram-builder-base-core.css | 15 +++++-- .../sam/aui-diagram-builder-base-skin.css | 14 +++--- .../skins/sam/aui-diagram-builder-base.css | 2 +- .../assets/skins/sam/aui-diagram-builder.css | 2 +- .../aui-diagram-builder-base-debug.js | 43 +++++++++++++------ .../aui-diagram-builder-base-min.js | 4 +- .../aui-diagram-builder-base.js | 43 +++++++++++++------ .../aui-diagram-builder-debug.js | 43 +++++++++++++------ .../aui-diagram-builder-min.js | 12 +++--- .../aui-diagram-builder.js | 43 +++++++++++++------ 10 files changed, 145 insertions(+), 76 deletions(-) diff --git a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index b56fa351e57..0ad6d4fd08d 100644 --- a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -43,13 +43,11 @@ } .aui-diagram-builder-base-tabs-container { - float: left; - /*margin-left: -260px;*/ - /*width: 260px;*/ + position: absolute; + width: 260px; } .aui-diagram-builder-base-canvas { - background-color: #f5f5f5; position: relative; } @@ -57,6 +55,15 @@ margin: 5px; } +.aui-diagram-builder-base-content { + min-height: 400px; +} + + +.aui-diagram-builder-base-content-container { + padding-left: 260px; +} + .aui-diagram-builder-base-tabs-container-content { } diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css index e8b09602d06..36cc962934e 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css @@ -17,16 +17,15 @@ border-radius: 4px; } -.aui-diagram-builder-base-drop-container { - position: relative; +.aui-diagram-builder-base-canvas { background-image: url(checker-bg.png); - outline: 0; - border-left: 1px solid #CCCCCC; - border-right: 1px solid #BBBBBB; - + outline: 0; + z-index: 100; border-bottom: 1px solid #BBBBBB; + border-right: 1px solid #BBBBBB; border-top: 1px solid #CCCCCC; + overflow: hidden; } .aui-diagram-builder-base-field-icon { @@ -34,6 +33,9 @@ height: 30px; } +.aui-diagram-builder-base-drop-container { +} + .aui-diagram-node-task-icon { background: url(menu-task.png) no-repeat scroll center center transparent; } diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css index 8c19a3fd08a..baa71dc2b51 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css @@ -1 +1 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{float:left}.aui-diagram-builder-base-canvas{background-color:#f5f5f5;position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-drop-container{position:relative;background-image:url(checker-bg.png);outline:0;border-left:1px solid #ccc;border-right:1px solid #bbb;border-bottom:1px solid #bbb;border-top:1px solid #ccc}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{position:absolute;width:260px}.aui-diagram-builder-base-canvas{position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-content{min-height:400px}.aui-diagram-builder-base-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css index 78136133ef7..2f1d40e547b 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css @@ -1,2 +1,2 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{float:left}.aui-diagram-builder-base-canvas{background-color:#f5f5f5;position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-drop-container{position:relative;background-image:url(checker-bg.png);outline:0;border-left:1px solid #ccc;border-right:1px solid #bbb;border-bottom:1px solid #bbb;border-top:1px solid #ccc}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{position:absolute;width:260px}.aui-diagram-builder-base-canvas{position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-content{min-height:400px}.aui-diagram-builder-base-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js index ff6e0cf7d5e..67d00c9f5aa 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js @@ -32,11 +32,11 @@ var Lang = A.Lang, CANCEL = 'cancel', CANVAS = 'canvas', CLEARFIX = 'clearfix', - CLEARFIX = 'clearfix', COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', + CONTENT_CONTAINER = 'contentContainer', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -51,7 +51,6 @@ var Lang = A.Lang, FIELDS_CONTAINER = 'fieldsContainer', HEIGHT = 'height', HELPER = 'helper', - HELPER = 'helper', ICON = 'icon', ICON_CLASS = 'iconClass', ID = 'id', @@ -82,6 +81,7 @@ var Lang = A.Lang, CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), + CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -94,13 +94,10 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), - CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), - CSS_W15 = AgetClassName('w15'), - CSS_W85 = AgetClassName('w85'); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -169,7 +166,7 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                      • ' + + FIELD_ITEM_TEMPLATE: '
                                                      • ' + '' + '
                                                        ' + '
                                                      • ', @@ -370,6 +367,12 @@ var DiagramBuilderBase = A.Component.create( validator: isObject }, + contentContainer: { + valueFn: function() { + return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + } + }, + dropContainer: { valueFn: function() { return A.Node.create(this.DROP_CONTAINER_TEMPLATE); @@ -420,6 +423,7 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, @@ -431,10 +435,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { + CONTENT_CONTAINER_TEMPLATE: '
                                                        ', DROP_CONTAINER_TEMPLATE: '
                                                        ', TOOLBAR_CONTAINER_TEMPLATE: '
                                                        ', FIELDS_CONTAINER_TEMPLATE: '
                                                          ', - CANVAS_TEMPLATE: '
                                                          ', + CANVAS_TEMPLATE: '
                                                          ', fieldsNode: null, propertyList: null, @@ -458,6 +463,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); instance.canvas = instance.get(CANVAS); + instance.contentContainer = instance.get(CONTENT_CONTAINER); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -497,7 +503,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); + contentBox.addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -518,6 +524,7 @@ var DiagramBuilderBase = A.Component.create( _afterUiSetHeight: function(val) { var instance = this; + instance.contentContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); instance.dropContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); }, @@ -543,14 +550,22 @@ var DiagramBuilderBase = A.Component.create( var instance = this; var contentBox = instance.get(CONTENT_BOX); var canvas = instance.canvas; + var contentContainer = instance.contentContainer; + var dropContainer = instance.dropContainer; - canvas.appendChild(instance.dropContainer); + if (!canvas.inDoc()) { + contentContainer.appendChild(canvas); + } + + if (!dropContainer.inDoc()) { + canvas.appendChild(dropContainer); + } - if (canvas.inDoc()) { - canvas.get(PARENT_NODE).appendChild(canvas); + if (contentContainer.inDoc()) { + contentContainer.get(PARENT_NODE).append(contentContainer); } else { - contentBox.appendChild(canvas); + contentBox.appendChild(contentContainer); } }, @@ -583,7 +598,7 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); - tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + tabView.get(BOUNDING_BOX); instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-min.js b/build/aui-diagram-builder/aui-diagram-builder-base-min.js index 2d79a38e9db..f2e0ab42007 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-diagram-builder-base",function(ai){var X=ai.Lang,d=X.isArray,aw=X.isBoolean,P=X.isNumber,F=X.isObject,az=X.isString,M=function(A){return(A instanceof ai.ArrayList);},V=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,Z="add",n="addNode",aJ="auto",Q="availableField",U="availableFields",aG="availableFieldsDragConfig",at="base",v="boundingBox",aD="builder",ad="cancel",af="canvas",ax="clearfix",ax="clearfix",e="column",a="container",ag="content",y="contentBox",T="contentNode",I="createDocumentFragment",D="diagram",J="diagram-builder-base",ae="disk",r="draggable",aF="drop",aq="dropConfig",ac="dropContainer",av="field",w="fields",q="fieldsContainer",au="height",s="helper",s="helper",aa="icon",z="iconClass",ap="id",ak="label",x="layout",ao="list",S="maxFields",u="node",f="parentNode",ah="propertyList",aE="rendered",ar="save",t="settings",R="tab",L="tabView",b="tabs",g="tabview",O="toolbar",l="toolbarContainer",B=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",m=B(e),C=B(D,aD,at,af),aL=B(D,aD,at,aF,a),G=B(D,aD,at,av),al=B(D,aD,at,av,r),c=B(D,aD,at,av,aa),Y=B(D,aD,at,av,ak),h=B(D,aD,at,w,a),an=B(D,aD,at,R,Z),N=B(D,aD,at,R,t),p=B(D,aD,at,b,a),ab=B(D,aD,at,b,a,ag),aB=B(D,aD,at,O,a),aj=B(s,ax),aj=B(s,ax),o=B(aa),K=B(x),aC=B(g,ag),aH=B(g,ao),aA=B("w15"),am=B("w85");var k=ai.Component.create({NAME:Q,ATTRS:{draggable:{value:true,validator:aw},label:{validator:az},iconClass:{validator:az},id:{value:ai.guid(),setter:"_setId",validator:az},node:{valueFn:function(aM){var A=this;if(!V(aM)){aM=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aM.setData(Q,A);}return aM;},validator:V,writeOnce:true},type:{value:u,validator:az}},EXTENDS:ai.Base,buildNodeId:function(A){return U+E+av+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(Q);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                        • '+''+'
                                                          '+"
                                                        • ",initializer:function(){var A=this;var aM=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(i+Y);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(ak));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(u).toggleClass(al,aM);},_uiSetId:function(aM){var A=this;A.get(u).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});ai.AvailableField=k;var W=function(){};W.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:P}};ai.mix(W.prototype,{_setFields:function(aM){var A=this;if(M(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(w,aM);},addField:function(aM){var A=this;if(A.get(w).size()
                                                          ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                          ',FIELDS_CONTAINER_TEMPLATE:'
                                                            ',CANVAS_TEMPLATE:'
                                                            ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.dropContainer=A.get(ac);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(l);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(w);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(U));},syncUI:function(){var A=this;var aM=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(aj).addClass(K);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(T);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this;A.dropContainer.setStyle(au,P(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0); -},_handleCancelEvent:function(){var A=this;A.fire(ad);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(y);var aN=A.canvas;aN.appendChild(A.dropContainer);if(aN.inDoc()){aN.get(f).appendChild(aN);}else{aM.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new ai.TabView(A.get(L));aM.get(v).addClass(m).addClass(aA);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(T);A.settingsNode=aM.getTab(1).get(T);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(O)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(H(aP)?aP:new ai.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,groups:[U],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[U],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+al},aM||{});},_setPropertyList:function(aM){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(v);var aQ=aO.one(i+aH);var aN={after:{activeTabChange:ai.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(i+p),contentBox:aO.one(i+ab),bubbleTargets:aM,contentNode:aO.one(i+aC),cssClass:p,listNode:aQ,render:aM.get(y)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[n]},{cssClass:N,label:A[t]}];}return ai.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return ai.merge({activeState:false,bubbleTargets:aM,children:[{handler:ai.bind(aM._handleSaveEvent,aM),label:A[ar],icon:ae},{handler:ai.bind(aM._handleCancelEvent,aM),label:A[ad]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=ai.getDoc().invoke(I);aK.each(aO,function(aP){aM.appendChild(aP.get(u));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=ay;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(aj){var Y=aj.Lang,d=Y.isArray,ax=Y.isBoolean,Q=Y.isNumber,G=Y.isObject,aA=Y.isString,N=function(A){return(A instanceof aj.ArrayList);},W=function(A){return(A instanceof aj.Node);},I=function(A){return(A instanceof aj.AvailableField);},aK=aj.Array,aa="add",o="addNode",aJ="auto",R="availableField",V="availableFields",aG="availableFieldsDragConfig",au="base",w="boundingBox",aD="builder",ae="cancel",ag="canvas",ay="clearfix",f="column",a="container",ah="content",z="contentBox",e="contentContainer",U="contentNode",J="createDocumentFragment",E="diagram",K="diagram-builder-base",af="disk",s="draggable",aF="drop",aq="dropConfig",ad="dropContainer",aw="field",x="fields",r="fieldsContainer",av="height",t="helper",ab="icon",B="iconClass",ap="id",al="label",y="layout",ao="list",T="maxFields",v="node",g="parentNode",ai="propertyList",aE="rendered",ar="save",u="settings",S="tab",M="tabView",b="tabs",h="tabview",P="toolbar",m="toolbarContainer",C=aj.getClassName,aI=" ",j=".",k="#",aI=" ",F="_",n=C(f),D=C(E,aD,au,ag),at=C(E,aD,au,ah,a),aL=C(E,aD,au,aF,a),H=C(E,aD,au,aw),am=C(E,aD,au,aw,s),c=C(E,aD,au,aw,ab),Z=C(E,aD,au,aw,al),i=C(E,aD,au,x,a),an=C(E,aD,au,S,aa),O=C(E,aD,au,S,u),q=C(E,aD,au,b,a),ac=C(E,aD,au,b,a,ah),aB=C(E,aD,au,P,a),ak=C(t,ay),p=C(ab),L=C(y),aC=C(h,ah),aH=C(h,ao);var l=aj.Component.create({NAME:R,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aA},iconClass:{validator:aA},id:{value:aj.guid(),setter:"_setId",validator:aA},node:{valueFn:function(aM){var A=this;if(!W(aM)){aM=aj.Node.create(aj.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(B)}));aM.setData(R,A);}return aM;},validator:W,writeOnce:true},type:{value:v,validator:aA}},EXTENDS:aj.Base,buildNodeId:function(A){return V+F+aw+F+A;},getAvailableFieldById:function(A){return aj.AvailableField.getAvailableFieldByNode(k+aj.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return aj.one(A).getData(R);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                          • '+''+'
                                                            '+"
                                                          • ",initializer:function(){var A=this;var aM=A.get(v);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(j+Z);A._uiSetDraggable(A.get(s));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(al));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return aj.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(v).toggleClass(am,aM);},_uiSetId:function(aM){var A=this;A.get(v).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});aj.AvailableField=l;var X=function(){};X.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||N(A);}},maxFields:{value:Infinity,validator:Q}};aj.mix(X.prototype,{_setFields:function(aM){var A=this;if(N(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(x,aM);},addField:function(aM){var A=this;if(A.get(x).size()
                                                            ',DROP_CONTAINER_TEMPLATE:'
                                                            ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                            ',FIELDS_CONTAINER_TEMPLATE:'
                                                              ',CANVAS_TEMPLATE:'
                                                              ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(ag);A.contentContainer=A.get(e);A.dropContainer=A.get(ad);A.fieldsContainer=A.get(r);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(x);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(V));},syncUI:function(){var A=this;var aM=A.get(z);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(L);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(U);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this; +A.contentContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);A.dropContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ae);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(z);var aN=A.canvas;var aO=A.contentContainer;var aP=A.dropContainer;if(!aN.inDoc()){aO.appendChild(aN);}if(!aP.inDoc()){aN.appendChild(aP);}if(aO.inDoc()){aO.get(g).append(aO);}else{aM.appendChild(aO);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new aj.PropertyList(A.get(ai)).render(A.settingsNode);A.propertyList.get(w).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new aj.TabView(A.get(M));aM.get(w);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(U);A.settingsNode=aM.getTab(1).get(U);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new aj.Toolbar(A.get(P)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new aj.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new aj.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(I(aP)?aP:new aj.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,groups:[V],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,container:A.get(w),dragConfig:{groups:[V],plugins:[{cfg:{moveOnEnd:false},fn:aj.Plugin.DDProxy}]},nodes:j+am},aM||{});},_setPropertyList:function(aM){var A=this;return aj.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(w);var aQ=aO.one(j+aH);var aN={after:{activeTabChange:aj.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(j+q),contentBox:aO.one(j+ac),bubbleTargets:aM,contentNode:aO.one(j+aC),cssClass:q,listNode:aQ,render:aM.get(z)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[o]},{cssClass:O,label:A[u]}];}return aj.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return aj.merge({activeState:false,bubbleTargets:aM,children:[{handler:aj.bind(aM._handleSaveEvent,aM),label:A[ar],icon:af},{handler:aj.bind(aM._handleCancelEvent,aM),label:A[ae]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=aj.getDoc().invoke(J);aK.each(aO,function(aP){aM.appendChild(aP.get(v));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});aj.DiagramBuilderBase=az;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-base.js b/build/aui-diagram-builder/aui-diagram-builder-base.js index ff6e0cf7d5e..67d00c9f5aa 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base.js @@ -32,11 +32,11 @@ var Lang = A.Lang, CANCEL = 'cancel', CANVAS = 'canvas', CLEARFIX = 'clearfix', - CLEARFIX = 'clearfix', COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', + CONTENT_CONTAINER = 'contentContainer', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -51,7 +51,6 @@ var Lang = A.Lang, FIELDS_CONTAINER = 'fieldsContainer', HEIGHT = 'height', HELPER = 'helper', - HELPER = 'helper', ICON = 'icon', ICON_CLASS = 'iconClass', ID = 'id', @@ -82,6 +81,7 @@ var Lang = A.Lang, CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), + CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -94,13 +94,10 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), - CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), - CSS_W15 = AgetClassName('w15'), - CSS_W85 = AgetClassName('w85'); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -169,7 +166,7 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                            • ' + + FIELD_ITEM_TEMPLATE: '
                                                            • ' + '' + '
                                                              ' + '
                                                            • ', @@ -370,6 +367,12 @@ var DiagramBuilderBase = A.Component.create( validator: isObject }, + contentContainer: { + valueFn: function() { + return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + } + }, + dropContainer: { valueFn: function() { return A.Node.create(this.DROP_CONTAINER_TEMPLATE); @@ -420,6 +423,7 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, @@ -431,10 +435,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { + CONTENT_CONTAINER_TEMPLATE: '
                                                              ', DROP_CONTAINER_TEMPLATE: '
                                                              ', TOOLBAR_CONTAINER_TEMPLATE: '
                                                              ', FIELDS_CONTAINER_TEMPLATE: '
                                                                ', - CANVAS_TEMPLATE: '
                                                                ', + CANVAS_TEMPLATE: '
                                                                ', fieldsNode: null, propertyList: null, @@ -458,6 +463,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); instance.canvas = instance.get(CANVAS); + instance.contentContainer = instance.get(CONTENT_CONTAINER); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -497,7 +503,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); + contentBox.addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -518,6 +524,7 @@ var DiagramBuilderBase = A.Component.create( _afterUiSetHeight: function(val) { var instance = this; + instance.contentContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); instance.dropContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); }, @@ -543,14 +550,22 @@ var DiagramBuilderBase = A.Component.create( var instance = this; var contentBox = instance.get(CONTENT_BOX); var canvas = instance.canvas; + var contentContainer = instance.contentContainer; + var dropContainer = instance.dropContainer; - canvas.appendChild(instance.dropContainer); + if (!canvas.inDoc()) { + contentContainer.appendChild(canvas); + } + + if (!dropContainer.inDoc()) { + canvas.appendChild(dropContainer); + } - if (canvas.inDoc()) { - canvas.get(PARENT_NODE).appendChild(canvas); + if (contentContainer.inDoc()) { + contentContainer.get(PARENT_NODE).append(contentContainer); } else { - contentBox.appendChild(canvas); + contentBox.appendChild(contentContainer); } }, @@ -583,7 +598,7 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); - tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + tabView.get(BOUNDING_BOX); instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index d02b1093132..2bb0a93d05e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -32,11 +32,11 @@ var Lang = A.Lang, CANCEL = 'cancel', CANVAS = 'canvas', CLEARFIX = 'clearfix', - CLEARFIX = 'clearfix', COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', + CONTENT_CONTAINER = 'contentContainer', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -51,7 +51,6 @@ var Lang = A.Lang, FIELDS_CONTAINER = 'fieldsContainer', HEIGHT = 'height', HELPER = 'helper', - HELPER = 'helper', ICON = 'icon', ICON_CLASS = 'iconClass', ID = 'id', @@ -82,6 +81,7 @@ var Lang = A.Lang, CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), + CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -94,13 +94,10 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), - CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), - CSS_W15 = AgetClassName('w15'), - CSS_W85 = AgetClassName('w85'); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -169,7 +166,7 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                              • ' + + FIELD_ITEM_TEMPLATE: '
                                                              • ' + '' + '
                                                                ' + '
                                                              • ', @@ -370,6 +367,12 @@ var DiagramBuilderBase = A.Component.create( validator: isObject }, + contentContainer: { + valueFn: function() { + return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + } + }, + dropContainer: { valueFn: function() { return A.Node.create(this.DROP_CONTAINER_TEMPLATE); @@ -420,6 +423,7 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, @@ -431,10 +435,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { + CONTENT_CONTAINER_TEMPLATE: '
                                                                ', DROP_CONTAINER_TEMPLATE: '
                                                                ', TOOLBAR_CONTAINER_TEMPLATE: '
                                                                ', FIELDS_CONTAINER_TEMPLATE: '
                                                                  ', - CANVAS_TEMPLATE: '
                                                                  ', + CANVAS_TEMPLATE: '
                                                                  ', fieldsNode: null, propertyList: null, @@ -458,6 +463,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); instance.canvas = instance.get(CANVAS); + instance.contentContainer = instance.get(CONTENT_CONTAINER); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -497,7 +503,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); + contentBox.addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -518,6 +524,7 @@ var DiagramBuilderBase = A.Component.create( _afterUiSetHeight: function(val) { var instance = this; + instance.contentContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); instance.dropContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); }, @@ -543,14 +550,22 @@ var DiagramBuilderBase = A.Component.create( var instance = this; var contentBox = instance.get(CONTENT_BOX); var canvas = instance.canvas; + var contentContainer = instance.contentContainer; + var dropContainer = instance.dropContainer; - canvas.appendChild(instance.dropContainer); + if (!canvas.inDoc()) { + contentContainer.appendChild(canvas); + } + + if (!dropContainer.inDoc()) { + canvas.appendChild(dropContainer); + } - if (canvas.inDoc()) { - canvas.get(PARENT_NODE).appendChild(canvas); + if (contentContainer.inDoc()) { + contentContainer.get(PARENT_NODE).append(contentContainer); } else { - contentBox.appendChild(canvas); + contentBox.appendChild(contentContainer); } }, @@ -583,7 +598,7 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); - tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + tabView.get(BOUNDING_BOX); instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index d6bf190afb8..50c1ea5e009 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,6 +1,6 @@ -AUI.add("aui-diagram-builder-base",function(ai){var X=ai.Lang,d=X.isArray,aw=X.isBoolean,P=X.isNumber,F=X.isObject,az=X.isString,M=function(A){return(A instanceof ai.ArrayList);},V=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,Z="add",n="addNode",aJ="auto",Q="availableField",U="availableFields",aG="availableFieldsDragConfig",at="base",v="boundingBox",aD="builder",ad="cancel",af="canvas",ax="clearfix",ax="clearfix",e="column",a="container",ag="content",y="contentBox",T="contentNode",I="createDocumentFragment",D="diagram",J="diagram-builder-base",ae="disk",r="draggable",aF="drop",aq="dropConfig",ac="dropContainer",av="field",w="fields",q="fieldsContainer",au="height",s="helper",s="helper",aa="icon",z="iconClass",ap="id",ak="label",x="layout",ao="list",S="maxFields",u="node",f="parentNode",ah="propertyList",aE="rendered",ar="save",t="settings",R="tab",L="tabView",b="tabs",g="tabview",O="toolbar",l="toolbarContainer",B=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",m=B(e),C=B(D,aD,at,af),aL=B(D,aD,at,aF,a),G=B(D,aD,at,av),al=B(D,aD,at,av,r),c=B(D,aD,at,av,aa),Y=B(D,aD,at,av,ak),h=B(D,aD,at,w,a),an=B(D,aD,at,R,Z),N=B(D,aD,at,R,t),p=B(D,aD,at,b,a),ab=B(D,aD,at,b,a,ag),aB=B(D,aD,at,O,a),aj=B(s,ax),aj=B(s,ax),o=B(aa),K=B(x),aC=B(g,ag),aH=B(g,ao),aA=B("w15"),am=B("w85");var k=ai.Component.create({NAME:Q,ATTRS:{draggable:{value:true,validator:aw},label:{validator:az},iconClass:{validator:az},id:{value:ai.guid(),setter:"_setId",validator:az},node:{valueFn:function(aM){var A=this;if(!V(aM)){aM=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aM.setData(Q,A);}return aM;},validator:V,writeOnce:true},type:{value:u,validator:az}},EXTENDS:ai.Base,buildNodeId:function(A){return U+E+av+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(Q);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                • '+''+'
                                                                  '+"
                                                                • ",initializer:function(){var A=this;var aM=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(i+Y);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(ak));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(u).toggleClass(al,aM);},_uiSetId:function(aM){var A=this;A.get(u).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});ai.AvailableField=k;var W=function(){};W.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:P}};ai.mix(W.prototype,{_setFields:function(aM){var A=this;if(M(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(w,aM);},addField:function(aM){var A=this;if(A.get(w).size()
                                                                  ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                  ',FIELDS_CONTAINER_TEMPLATE:'
                                                                    ',CANVAS_TEMPLATE:'
                                                                    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.dropContainer=A.get(ac);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(l);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(w);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(U));},syncUI:function(){var A=this;var aM=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(aj).addClass(K);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(T);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this;A.dropContainer.setStyle(au,P(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0); -},_handleCancelEvent:function(){var A=this;A.fire(ad);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(y);var aN=A.canvas;aN.appendChild(A.dropContainer);if(aN.inDoc()){aN.get(f).appendChild(aN);}else{aM.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new ai.TabView(A.get(L));aM.get(v).addClass(m).addClass(aA);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(T);A.settingsNode=aM.getTab(1).get(T);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(O)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(H(aP)?aP:new ai.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,groups:[U],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[U],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+al},aM||{});},_setPropertyList:function(aM){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(v);var aQ=aO.one(i+aH);var aN={after:{activeTabChange:ai.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(i+p),contentBox:aO.one(i+ab),bubbleTargets:aM,contentNode:aO.one(i+aC),cssClass:p,listNode:aQ,render:aM.get(y)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[n]},{cssClass:N,label:A[t]}];}return ai.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return ai.merge({activeState:false,bubbleTargets:aM,children:[{handler:ai.bind(aM._handleSaveEvent,aM),label:A[ar],icon:ae},{handler:ai.bind(aM._handleCancelEvent,aM),label:A[ad]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=ai.getDoc().invoke(I);aK.each(aO,function(aP){aM.appendChild(aP.get(u));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=ay;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                    ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                    ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this; -au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A; -},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                    ',CONTROLS_TEMPLATE:'
                                                                    ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,}); -au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                                                    ',NODE_TEMPLATE:'
                                                                    ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(aj){var Y=aj.Lang,d=Y.isArray,ax=Y.isBoolean,Q=Y.isNumber,G=Y.isObject,aA=Y.isString,N=function(A){return(A instanceof aj.ArrayList);},W=function(A){return(A instanceof aj.Node);},I=function(A){return(A instanceof aj.AvailableField);},aK=aj.Array,aa="add",o="addNode",aJ="auto",R="availableField",V="availableFields",aG="availableFieldsDragConfig",au="base",w="boundingBox",aD="builder",ae="cancel",ag="canvas",ay="clearfix",f="column",a="container",ah="content",z="contentBox",e="contentContainer",U="contentNode",J="createDocumentFragment",E="diagram",K="diagram-builder-base",af="disk",s="draggable",aF="drop",aq="dropConfig",ad="dropContainer",aw="field",x="fields",r="fieldsContainer",av="height",t="helper",ab="icon",B="iconClass",ap="id",al="label",y="layout",ao="list",T="maxFields",v="node",g="parentNode",ai="propertyList",aE="rendered",ar="save",u="settings",S="tab",M="tabView",b="tabs",h="tabview",P="toolbar",m="toolbarContainer",C=aj.getClassName,aI=" ",j=".",k="#",aI=" ",F="_",n=C(f),D=C(E,aD,au,ag),at=C(E,aD,au,ah,a),aL=C(E,aD,au,aF,a),H=C(E,aD,au,aw),am=C(E,aD,au,aw,s),c=C(E,aD,au,aw,ab),Z=C(E,aD,au,aw,al),i=C(E,aD,au,x,a),an=C(E,aD,au,S,aa),O=C(E,aD,au,S,u),q=C(E,aD,au,b,a),ac=C(E,aD,au,b,a,ah),aB=C(E,aD,au,P,a),ak=C(t,ay),p=C(ab),L=C(y),aC=C(h,ah),aH=C(h,ao);var l=aj.Component.create({NAME:R,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aA},iconClass:{validator:aA},id:{value:aj.guid(),setter:"_setId",validator:aA},node:{valueFn:function(aM){var A=this;if(!W(aM)){aM=aj.Node.create(aj.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(B)}));aM.setData(R,A);}return aM;},validator:W,writeOnce:true},type:{value:v,validator:aA}},EXTENDS:aj.Base,buildNodeId:function(A){return V+F+aw+F+A;},getAvailableFieldById:function(A){return aj.AvailableField.getAvailableFieldByNode(k+aj.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return aj.one(A).getData(R);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                  • '+''+'
                                                                    '+"
                                                                  • ",initializer:function(){var A=this;var aM=A.get(v);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(j+Z);A._uiSetDraggable(A.get(s));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(al));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return aj.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(v).toggleClass(am,aM);},_uiSetId:function(aM){var A=this;A.get(v).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});aj.AvailableField=l;var X=function(){};X.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||N(A);}},maxFields:{value:Infinity,validator:Q}};aj.mix(X.prototype,{_setFields:function(aM){var A=this;if(N(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(x,aM);},addField:function(aM){var A=this;if(A.get(x).size()
                                                                    ',DROP_CONTAINER_TEMPLATE:'
                                                                    ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                    ',FIELDS_CONTAINER_TEMPLATE:'
                                                                      ',CANVAS_TEMPLATE:'
                                                                      ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(ag);A.contentContainer=A.get(e);A.dropContainer=A.get(ad);A.fieldsContainer=A.get(r);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(x);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(V));},syncUI:function(){var A=this;var aM=A.get(z);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(L);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(U);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this; +A.contentContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);A.dropContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ae);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(z);var aN=A.canvas;var aO=A.contentContainer;var aP=A.dropContainer;if(!aN.inDoc()){aO.appendChild(aN);}if(!aP.inDoc()){aN.appendChild(aP);}if(aO.inDoc()){aO.get(g).append(aO);}else{aM.appendChild(aO);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new aj.PropertyList(A.get(ai)).render(A.settingsNode);A.propertyList.get(w).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new aj.TabView(A.get(M));aM.get(w);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(U);A.settingsNode=aM.getTab(1).get(U);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new aj.Toolbar(A.get(P)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new aj.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new aj.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(I(aP)?aP:new aj.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,groups:[V],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,container:A.get(w),dragConfig:{groups:[V],plugins:[{cfg:{moveOnEnd:false},fn:aj.Plugin.DDProxy}]},nodes:j+am},aM||{});},_setPropertyList:function(aM){var A=this;return aj.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(w);var aQ=aO.one(j+aH);var aN={after:{activeTabChange:aj.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(j+q),contentBox:aO.one(j+ac),bubbleTargets:aM,contentNode:aO.one(j+aC),cssClass:q,listNode:aQ,render:aM.get(z)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[o]},{cssClass:O,label:A[u]}];}return aj.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return aj.merge({activeState:false,bubbleTargets:aM,children:[{handler:aj.bind(aM._handleSaveEvent,aM),label:A[ar],icon:af},{handler:aj.bind(aM._handleCancelEvent,aM),label:A[ae]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=aj.getDoc().invoke(J);aK.each(aO,function(aP){aM.appendChild(aP.get(v));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});aj.DiagramBuilderBase=az;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                      ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                      ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af); +A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx); +},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                      ',CONTROLS_TEMPLATE:'
                                                                      ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,}); +au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                                                      ',NODE_TEMPLATE:'
                                                                      ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index d02b1093132..2bb0a93d05e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -32,11 +32,11 @@ var Lang = A.Lang, CANCEL = 'cancel', CANVAS = 'canvas', CLEARFIX = 'clearfix', - CLEARFIX = 'clearfix', COLUMN = 'column', CONTAINER = 'container', CONTENT = 'content', CONTENT_BOX = 'contentBox', + CONTENT_CONTAINER = 'contentContainer', CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', @@ -51,7 +51,6 @@ var Lang = A.Lang, FIELDS_CONTAINER = 'fieldsContainer', HEIGHT = 'height', HELPER = 'helper', - HELPER = 'helper', ICON = 'icon', ICON_CLASS = 'iconClass', ID = 'id', @@ -82,6 +81,7 @@ var Lang = A.Lang, CSS_COLUMN = AgetClassName(COLUMN), CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), + CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), @@ -94,13 +94,10 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), - CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), CSS_TABVIEW_CONTENT = AgetClassName(TABVIEW, CONTENT), - CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST), - CSS_W15 = AgetClassName('w15'), - CSS_W85 = AgetClassName('w85'); + CSS_TABVIEW_LIST = AgetClassName(TABVIEW, LIST); var AvailableField = A.Component.create({ NAME: AVAILABLE_FIELD, @@ -169,7 +166,7 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                                    • ' + + FIELD_ITEM_TEMPLATE: '
                                                                    • ' + '' + '
                                                                      ' + '
                                                                    • ', @@ -370,6 +367,12 @@ var DiagramBuilderBase = A.Component.create( validator: isObject }, + contentContainer: { + valueFn: function() { + return A.Node.create(this.CONTENT_CONTAINER_TEMPLATE); + } + }, + dropContainer: { valueFn: function() { return A.Node.create(this.DROP_CONTAINER_TEMPLATE); @@ -420,6 +423,7 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, @@ -431,10 +435,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { + CONTENT_CONTAINER_TEMPLATE: '
                                                                      ', DROP_CONTAINER_TEMPLATE: '
                                                                      ', TOOLBAR_CONTAINER_TEMPLATE: '
                                                                      ', FIELDS_CONTAINER_TEMPLATE: '
                                                                        ', - CANVAS_TEMPLATE: '
                                                                        ', + CANVAS_TEMPLATE: '
                                                                        ', fieldsNode: null, propertyList: null, @@ -458,6 +463,7 @@ var DiagramBuilderBase = A.Component.create( instance.after(instance._afterUiSetHeight, instance, '_uiSetHeight'); instance.canvas = instance.get(CANVAS); + instance.contentContainer = instance.get(CONTENT_CONTAINER); instance.dropContainer = instance.get(DROP_CONTAINER); instance.fieldsContainer = instance.get(FIELDS_CONTAINER); instance.toolbarContainer = instance.get(TOOLBAR_CONTAINER); @@ -497,7 +503,7 @@ var DiagramBuilderBase = A.Component.create( instance._setupDrop(); instance._setupAvailableFieldsDrag(); - contentBox.addClass(CSS_HELPER_CLEARFIX).addClass(CSS_LAYOUT); + contentBox.addClass(CSS_LAYOUT); }, _afterActiveTabChange: function(event) { @@ -518,6 +524,7 @@ var DiagramBuilderBase = A.Component.create( _afterUiSetHeight: function(val) { var instance = this; + instance.contentContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); instance.dropContainer.setStyle(HEIGHT, isNumber(val) ? val + instance.DEF_UNIT : val); }, @@ -543,14 +550,22 @@ var DiagramBuilderBase = A.Component.create( var instance = this; var contentBox = instance.get(CONTENT_BOX); var canvas = instance.canvas; + var contentContainer = instance.contentContainer; + var dropContainer = instance.dropContainer; - canvas.appendChild(instance.dropContainer); + if (!canvas.inDoc()) { + contentContainer.appendChild(canvas); + } + + if (!dropContainer.inDoc()) { + canvas.appendChild(dropContainer); + } - if (canvas.inDoc()) { - canvas.get(PARENT_NODE).appendChild(canvas); + if (contentContainer.inDoc()) { + contentContainer.get(PARENT_NODE).append(contentContainer); } else { - contentBox.appendChild(canvas); + contentBox.appendChild(contentContainer); } }, @@ -583,7 +598,7 @@ var DiagramBuilderBase = A.Component.create( instance.get(TAB_VIEW) ); - tabView.get(BOUNDING_BOX).addClass(CSS_COLUMN).addClass(CSS_W15); + tabView.get(BOUNDING_BOX); instance.tabView = tabView; instance.fieldsNode = tabView.getTab(0).get(CONTENT_NODE); From 8a3d6d28929edef24d3bd4a19fb361ef455525d0 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 16 Aug 2011 20:51:00 -0300 Subject: [PATCH 097/132] AUI-461 Adding diagram-builder-connector css --- .../assets/aui-diagram-builder-connector-core.css | 0 .../assets/skins/sam/aui-diagram-builder-connector-skin.css | 0 .../assets/skins/sam/aui-diagram-builder-connector.css | 1 + .../assets/aui-diagram-builder-connector-core.css | 0 .../assets/skins/sam/aui-diagram-builder-connector-skin.css | 0 5 files changed, 1 insertion(+) create mode 100644 build/aui-diagram-builder/assets/aui-diagram-builder-connector-core.css create mode 100644 build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector-skin.css create mode 100644 build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector.css create mode 100644 src/aui-diagram-builder/assets/aui-diagram-builder-connector-core.css create mode 100644 src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector-skin.css diff --git a/build/aui-diagram-builder/assets/aui-diagram-builder-connector-core.css b/build/aui-diagram-builder/assets/aui-diagram-builder-connector-core.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector-skin.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector-skin.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector.css new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector.css @@ -0,0 +1 @@ + diff --git a/src/aui-diagram-builder/assets/aui-diagram-builder-connector-core.css b/src/aui-diagram-builder/assets/aui-diagram-builder-connector-core.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector-skin.css b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-connector-skin.css new file mode 100644 index 00000000000..e69de29bb2d From f61ca46617a83a7dc134cb5eeeaa6b97bef85fb9 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Wed, 17 Aug 2011 11:56:58 -0700 Subject: [PATCH 098/132] AUI-486 - AUI AutoComplete _onContainerClick throws error --- build/aui-autocomplete/aui-autocomplete-debug.js | 2 +- build/aui-autocomplete/aui-autocomplete-min.js | 2 +- build/aui-autocomplete/aui-autocomplete.js | 2 +- src/aui-autocomplete/js/aui-autocomplete.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/aui-autocomplete/aui-autocomplete-debug.js b/build/aui-autocomplete/aui-autocomplete-debug.js index b84ed47d558..1ac654ccf16 100644 --- a/build/aui-autocomplete/aui-autocomplete-debug.js +++ b/build/aui-autocomplete/aui-autocomplete-debug.js @@ -1203,7 +1203,7 @@ var AutoComplete = A.Component.create( target = target.get('parentNode'); if (target) { - tagName.get('nodeName').toLowerCase(); + tagName = target.get('nodeName').toLowerCase(); } } }, diff --git a/build/aui-autocomplete/aui-autocomplete-min.js b/build/aui-autocomplete/aui-autocomplete-min.js index 7e32ead8134..098f728565c 100644 --- a/build/aui-autocomplete/aui-autocomplete-min.js +++ b/build/aui-autocomplete/aui-autocomplete-min.js @@ -1,3 +1,3 @@ AUI.add("aui-autocomplete",function(j){var P=j.Lang,r=P.isArray,i=P.isString,E=P.isNull,l=P.isFunction,O=j.getClassName,Q=j.Event.KeyMap,B="alert",y="content",G="helper",H="hidden",w="icon",M="item",C="list",o="loading",x="autocomplete",I="reset",K="results",t="selected",p="circle-triangle-b",z=B,e=o,d=O(x,t),J=O(G,H),h=O(x,C,M),F=O(G,I),a=O(x,K),q=O(x,K,y),c="BACKSPACE",m="TAB",b="ENTER",D="ALT",g="ESC",n="UP",v="DOWN",N="RIGHT",f="WIN_IME",s={node:null,points:["tl","bl"]},L="boundingBox",u="contentBox";var k=j.Component.create({NAME:x,ATTRS:{alwaysShowContainer:{value:false},autoHighlight:{value:true},applyLocalFilter:{value:null},button:{value:true},dataSource:{value:null},dataSourceType:{value:null},delimChar:{value:null,setter:function(A){if(i(A)&&(A.length>0)){A=[A];}else{if(!r(A)){A=j.Attribute.INVALID_VALUE;}}return A;}},forceSelection:{value:false},input:{value:null},matchKey:{value:0},maxResultsDisplayed:{value:10},minQueryLength:{value:1},queryDelay:{value:0.2,getter:function(A){return A*1000;}},queryInterval:{value:0.5,getter:function(A){return A*1000;}},queryMatchCase:{value:false},queryMatchContains:{value:false},queryQuestionMark:{value:true},schema:{value:null},schemaType:{value:"",validator:i},suppressInputUpdate:{value:false},typeAhead:{value:false},typeAheadDelay:{value:0.2,getter:function(A){return A*1000;}},uniqueName:{value:null}},prototype:{initializer:function(R){var A=this;A._overlayAlign=j.mix({},s);A._createDataSource();},renderUI:function(){var A=this;A._renderInput();A._renderOverlay();},bindUI:function(){var A=this;var R=A.button;var S=A.inputNode;A.dataSource.on("request",j.bind(R.set,R,w,e));S.on("blur",A._onTextboxBlur,A);S.on("focus",A._onTextboxFocus,A);S.on("keydown",A._onTextboxKeyDown,A);S.on("keypress",A._onTextboxKeyPress,A);S.on("keyup",A._onTextboxKeyUp,A);var T=A.overlay.get(L);T.on("click",A._onContainerClick,A);T.on("mouseout",A._onContainerMouseout,A);T.on("mouseover",A._onContainerMouseover,A);T.on("scroll",A._onContainerScroll,A);A.publish("containerCollapse");A.publish("containerExpand");A.publish("containerPopulate");A.publish("dataError");A.publish("dataRequest");A.publish("dataReturn");A.publish("itemArrowFrom");A.publish("itemArrowTo");A.publish("itemMouseOut");A.publish("itemMouseOver");A.publish("itemSelect");A.publish("selectionEnforce");A.publish("textboxBlur");A.publish("textboxChange");A.publish("textboxFocus");A.publish("textboxKey");A.publish("typeAhead");A.publish("unmatchedItemSelect");A.overlay.after("visibleChange",A._realignContainer,A);},syncUI:function(){var A=this;A.inputNode.setAttribute("autocomplete","off");},destructor:function(){var A=this;A.overlay.destroy();},doBeforeExpandContainer:function(){return true;},doBeforeLoadData:function(A){return true;},filterResults:function(ab){var ah=this;var S=ab.callback;var T=ab.request;var R=ab.response;if(S&&S.argument&&S.argument.query){T=S.argument.query;}if(T){var ag=ah.dataSource;var ad=R.results;var A=[];var V=false;var U=ah.get("matchKey");var ae=ah.get("queryMatchCase");var Z=ah.get("queryMatchContains");var Y=(T=="*");var aa=ah.get("schema.resultFields");for(var ac=ad.length-1;ac>=0;ac--){var X=ad[ac];var af=null;if(i(X)){af=X;}else{if(r(X)){af=X[0];}else{if(aa){af=X[U||aa[0]];}}}if(i(af)){var W=-1;if(ae){W=af.indexOf(decodeURIComponent(T));}else{W=af.toLowerCase().indexOf(decodeURIComponent(T).toLowerCase());}if((Y)||(!Z&&(W===0))||(Z&&(W>-1))){A.unshift(X);}}}R.results=A;}return R;},formatResult:function(R,S,A){return A||"";},generateRequest:function(A){return{request:A};},handleResponse:function(S){var R=this;R._populateList(S);var A=p;if(S.error){A=z;}R.button.set(w,A);},sendQuery:function(R){var A=this;A.set("focused",null);var S=R;if(A.get("delimChar")){R=A.inputNode.get("value")+R;}A._sendQuery(S);},_clearInterval:function(){var A=this;if(A._queryIntervalId){clearInterval(A._queryIntervalId);A._queryIntervalId=null;}},_clearSelection:function(){var R=this;var S=R.get("delimChar");var A={previous:"",query:R.inputNode.get("value")};if(S){A=R._extractQuery(R.inputNode.get("value"));}R.fire("selectionEnforce",A.query);},_createDataSource:function(){var A=this;A._queryTask=j.debounce(A.sendQuery,A.get("queryDelay"),A);var W=A.get("dataSource");var U=W;var V=A.get("dataSourceType");if(!(W instanceof j.DataSource.Local)){if(!V){V="Local";if(l(U)){V="Function";}else{if(i(U)){V="IO";}}}W=new j.DataSource[V]({source:U});}W.on("error",A.handleResponse,A);W.after("response",A.handleResponse,A);V=W.name;if(V=="dataSourceLocal"){A.set("applyLocalFilter",true);}A.set("dataSource",W);A.set("dataSource",V);A.dataSource=W;var T=A.get("schema");if(T){if(T.fn){A.dataSource.plug(T);}else{var R=A.get("schemaType");var S={array:j.Plugin.DataSourceArraySchema,json:j.Plugin.DataSourceJSONSchema,text:j.Plugin.DataSourceTextSchema,xml:j.Plugin.DataSourceXMLSchema};R=R.toLowerCase()||"array";A.dataSource.plug({fn:S[R],cfg:{schema:T}});}}A.set("schema",T);},_enableIntervalDetection:function(){var A=this;var R=A.get("queryInterval");if(!A._queryIntervalId&&R){A._queryInterval=setInterval(j.bind(A._onInterval,A),R);}},_extractQuery:function(U){var Y=this;var W=Y.get("delimChar");var A=-1;var S=W.length-1;var X,V,T;for(;S>=0;S--){X=U.lastIndexOf(W[S]);if(X>A){A=X;}}if(W[S]==" "){for(var R=W.length-1;R>=0;R--){if(U[A-1]==W[R]){A--;break;}}}if(A>-1){V=A+1;while(U.charAt(V)==" "){V+=1;}T=U.substring(0,V);U=U.substring(V);}else{T="";}return{previous:T,query:U};},_focus:function(){var A=this;setTimeout(function(){A.inputNode.focus();},0);},_jumpSelection:function(){var A=this;if(A._elCurListItem){A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}},_moveSelection:function(ad){var aa=this;if(aa.overlay.get("visible")){var ae=aa._elCurListItem;var R=-1;if(ae){R=Number(ae.getAttribute("data-listItemIndex"));}var S=R-1;if(Q.isKey(ad,v)){S=R+1;}if(S==-1){S=aa._displayedItems-1;}if(S>=aa._displayedItems){S=0;}if(S<-2){return;}if(ae){aa._toggleHighlight(ae,"from");aa.fire("itemArrowFrom",ae); -}if(S==-1){if(aa.get("delimChar")){aa.inputNode.set("value",aa._pastSelections+aa._currentQuery);}else{aa.inputNode.set("value",aa._currentQuery);}return;}if(S==-2){aa._toggleContainer(false);return;}var W=aa.resultList.get("childNodes").item(S);var U=aa.overlay.get(u);var Y=U.getStyle("overflow");var ab=U.getStyle("overflowY");var T=(Y=="auto")||(Y=="scroll")||(ab=="auto")||(ab=="scroll");if(T&&(S>-1)&&(Sac){A=(V-Z);}else{if(Vac){A=(V-Z);}}}if(A>-1){U.set("scrollTop",A);}}aa._toggleHighlight(W,"to");aa.fire("itemArrowTo",W);if(aa.get("typeAhead")){aa._updateValue(W);}}},_onButtonMouseDown:function(R){var A=this;R.halt();A._focus();A._sendQuery(A.inputNode.get("value")+"*");},_onContainerClick:function(S){var A=this;var T=S.target;var R=T.get("nodeName").toLowerCase();S.halt();while(T&&(R!="table")){switch(R){case"body":return;case"li":A._toggleHighlight(T,"to");A._selectItem(T);return;default:break;}T=T.get("parentNode");if(T){R.get("nodeName").toLowerCase();}}},_onContainerMouseout:function(S){var A=this;var T=S.target;var R=T.get("nodeName").toLowerCase();while(T&&(R!="table")){switch(R){case"body":return;case"li":A._toggleHighlight(T,"from");A.fire("itemMouseOut",T);break;case"ul":A._toggleHighlight(A._elCurListItem,"to");break;case"div":if(T.hasClass(a)){A._overContainer=false;return;}break;default:break;}T=T.get("parentNode");if(T){R=T.get("nodeName").toLowerCase();}}},_onContainerMouseover:function(S){var A=this;var T=S.target;var R=T.get("nodeName").toLowerCase();while(T&&(R!="table")){switch(R){case"body":return;case"li":A._toggleHighlight(T,"to");A.fire("itemMouseOut",T);break;case"div":if(T.hasClass(a)){A._overContainer=true;return;}break;default:break;}T=T.get("parentNode");if(T){R=T.get("nodeName").toLowerCase();}}},_onContainerScroll:function(R){var A=this;A._focus();},_onInterval:function(){var A=this;var S=A.inputNode.get("value");var R=A._lastValue;if(S!=R){A._lastValue=S;A._sendQuery(S);}},_onTextboxBlur:function(T){var A=this;if(!A._overContainer||Q.isKey(A._keyCode,m)){if(!A._itemSelected){var S=A._textMatchesOption();var R=A.overlay.get("visible");if(!R||(R&&E(S))){if(A.get("forceSelection")){A._clearSelection();}else{A.fire("unmatchedItemSelect",A._currentQuery);}}else{if(A.get("forceSelection")){A._selectItem(S);}}}A._clearInterval();A.blur();if(A._initInputValue!==A.inputNode.get("value")){A.fire("textboxChange");}A.fire("textboxBlur");A._toggleContainer(false);}else{A._focus();}},_onTextboxFocus:function(R){var A=this;if(!A.get("focused")){A.inputNode.setAttribute("autocomplete","off");A.focus();A._initInputValue=A.inputNode.get("value");A.fire("textboxFocus");}},_onTextboxKeyDown:function(R){var A=this;var S=R.keyCode;if(A._typeAheadDelayId!=-1){clearTimeout(A._typeAheadDelayId);}if(R.isKey(m)){if(A._elCurListItem){if(A.get("delimChar")&&A._keyCode!=S){if(A.overlay.get("visible")){R.halt();}}A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}else{if(R.isKey(b)){if(A._elCurListItem){if(A._keyCode!=S){if(A.overlay.get("visible")){R.halt();}}A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}else{if(R.isKey(g)){A._toggleContainer(false);}else{if(R.isKey(n)){if(A.overlay.get("visible")){R.halt();A._moveSelection(S);}}else{if(R.isKey(N)){A._jumpSelection();}else{if(R.isKey(v)){if(A.overlay.get("visible")){R.halt();A._moveSelection(S);}}else{A._itemSelected=false;A._toggleHighlight(A._elCurListItem,"from");A.fire("textboxKey",S);}}}}}}if(R.isKey(D)){A._enableIntervalDetection();}A._keyCode=S;},_onTextboxKeyPress:function(R){var A=this;var S=R.keyCode;if(R.isKey(m)){if(A.overlay.get("visible")){if(A.get("delimChar")){R.halt();}if(A._elCurListItem){A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}}else{if(R.isKey(b)){if(A.overlay.get("visible")){R.halt();if(A._elCurListItem){A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}}}if(R.isKey(f)){A._enableIntervalDetection();}},_onTextboxKeyUp:function(S){var A=this;var R=A.inputNode;var T=R.get("value");if(S.isSpecialKey()&&!S.isKey(c)){return;}A._queryTask(T);},_populateList:function(A){var ab=this;if(ab._typeAheadDelayId!=-1){clearTimeout(ab._typeAheadDelayId);}var W=A.request;var U=A.response;var ae=A.callback;var T=(W=="*");if(ae&&ae.argument&&ae.argument.query){A.request=W=ae.argument.query;}var Z=ab.doBeforeLoadData(A);if(Z&&!A.error){ab.fire("dataReturn",A);var Y=ab.get("focused");if(T||Y||Y===null){var X=decodeURIComponent(W);ab._currentQuery=X;ab._itemSelected=false;var S=A.response.results;var ad=Math.min(S.length,ab.get("maxResultsDisplayed"));var V=ab.get("schema.resultFields");var ac=ab.get("matchKey");if(!ac&&V){ac=V[0];}else{ac=ac||0;}if(ad>0){var aa=ab.resultList.get("childNodes");aa.each(function(aj,ai,ah){if(ai-1)&&(Sac){A=(V-Z);}else{if(Vac){A=(V-Z);}}}if(A>-1){U.set("scrollTop",A);}}aa._toggleHighlight(W,"to");aa.fire("itemArrowTo",W);if(aa.get("typeAhead")){aa._updateValue(W);}}},_onButtonMouseDown:function(R){var A=this;R.halt();A._focus();A._sendQuery(A.inputNode.get("value")+"*");},_onContainerClick:function(S){var A=this;var T=S.target;var R=T.get("nodeName").toLowerCase();S.halt();while(T&&(R!="table")){switch(R){case"body":return;case"li":A._toggleHighlight(T,"to");A._selectItem(T);return;default:break;}T=T.get("parentNode");if(T){R=T.get("nodeName").toLowerCase();}}},_onContainerMouseout:function(S){var A=this;var T=S.target;var R=T.get("nodeName").toLowerCase();while(T&&(R!="table")){switch(R){case"body":return;case"li":A._toggleHighlight(T,"from");A.fire("itemMouseOut",T);break;case"ul":A._toggleHighlight(A._elCurListItem,"to");break;case"div":if(T.hasClass(a)){A._overContainer=false;return;}break;default:break;}T=T.get("parentNode");if(T){R=T.get("nodeName").toLowerCase();}}},_onContainerMouseover:function(S){var A=this;var T=S.target;var R=T.get("nodeName").toLowerCase();while(T&&(R!="table")){switch(R){case"body":return;case"li":A._toggleHighlight(T,"to");A.fire("itemMouseOut",T);break;case"div":if(T.hasClass(a)){A._overContainer=true;return;}break;default:break;}T=T.get("parentNode");if(T){R=T.get("nodeName").toLowerCase();}}},_onContainerScroll:function(R){var A=this;A._focus();},_onInterval:function(){var A=this;var S=A.inputNode.get("value");var R=A._lastValue;if(S!=R){A._lastValue=S;A._sendQuery(S);}},_onTextboxBlur:function(T){var A=this;if(!A._overContainer||Q.isKey(A._keyCode,m)){if(!A._itemSelected){var S=A._textMatchesOption();var R=A.overlay.get("visible");if(!R||(R&&E(S))){if(A.get("forceSelection")){A._clearSelection();}else{A.fire("unmatchedItemSelect",A._currentQuery);}}else{if(A.get("forceSelection")){A._selectItem(S);}}}A._clearInterval();A.blur();if(A._initInputValue!==A.inputNode.get("value")){A.fire("textboxChange");}A.fire("textboxBlur");A._toggleContainer(false);}else{A._focus();}},_onTextboxFocus:function(R){var A=this;if(!A.get("focused")){A.inputNode.setAttribute("autocomplete","off");A.focus();A._initInputValue=A.inputNode.get("value");A.fire("textboxFocus");}},_onTextboxKeyDown:function(R){var A=this;var S=R.keyCode;if(A._typeAheadDelayId!=-1){clearTimeout(A._typeAheadDelayId);}if(R.isKey(m)){if(A._elCurListItem){if(A.get("delimChar")&&A._keyCode!=S){if(A.overlay.get("visible")){R.halt();}}A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}else{if(R.isKey(b)){if(A._elCurListItem){if(A._keyCode!=S){if(A.overlay.get("visible")){R.halt();}}A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}else{if(R.isKey(g)){A._toggleContainer(false);}else{if(R.isKey(n)){if(A.overlay.get("visible")){R.halt();A._moveSelection(S);}}else{if(R.isKey(N)){A._jumpSelection();}else{if(R.isKey(v)){if(A.overlay.get("visible")){R.halt();A._moveSelection(S);}}else{A._itemSelected=false;A._toggleHighlight(A._elCurListItem,"from");A.fire("textboxKey",S);}}}}}}if(R.isKey(D)){A._enableIntervalDetection();}A._keyCode=S;},_onTextboxKeyPress:function(R){var A=this;var S=R.keyCode;if(R.isKey(m)){if(A.overlay.get("visible")){if(A.get("delimChar")){R.halt();}if(A._elCurListItem){A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}}else{if(R.isKey(b)){if(A.overlay.get("visible")){R.halt();if(A._elCurListItem){A._selectItem(A._elCurListItem);}else{A._toggleContainer(false);}}}}if(R.isKey(f)){A._enableIntervalDetection();}},_onTextboxKeyUp:function(S){var A=this;var R=A.inputNode;var T=R.get("value");if(S.isSpecialKey()&&!S.isKey(c)){return;}A._queryTask(T);},_populateList:function(A){var ab=this;if(ab._typeAheadDelayId!=-1){clearTimeout(ab._typeAheadDelayId);}var W=A.request;var U=A.response;var ae=A.callback;var T=(W=="*");if(ae&&ae.argument&&ae.argument.query){A.request=W=ae.argument.query;}var Z=ab.doBeforeLoadData(A);if(Z&&!A.error){ab.fire("dataReturn",A);var Y=ab.get("focused");if(T||Y||Y===null){var X=decodeURIComponent(W);ab._currentQuery=X;ab._itemSelected=false;var S=A.response.results;var ad=Math.min(S.length,ab.get("maxResultsDisplayed"));var V=ab.get("schema.resultFields");var ac=ab.get("matchKey");if(!ac&&V){ac=V[0];}else{ac=ac||0;}if(ad>0){var aa=ab.resultList.get("childNodes");aa.each(function(aj,ai,ah){if(ai';}R.html(S.join(""));},_renderOverlay:function(){var A=this;var T=A._overlayAlign;T.node=A.inputNode;var S=new j.OverlayBase({align:T,bodyContent:"
                                                                          ",visible:false,width:A.inputNode.get("offsetWidth")});var R=S.get(u);S.get(L).addClass(a);R.addClass(q);S.render(document.body);S.addTarget(A);A.overlay=S;A.resultList=R.one("ul");A.resultList.addClass(F);A._renderListElements();},_selectItem:function(R){var A=this;A._itemSelected=true;A._updateValue(R);A._pastSelections=A.inputNode.get("value");A._clearInterval();A.fire("itemSelect",R,R._resultData);A._toggleContainer(false);},_sendQuery:function(V){var R=this;if(R.get("disabled")){R._toggleContainer(false);return;}var T=R.get("delimChar");var S=R.get("minQueryLength");if(T){var A=R._extractQuery(V);V=A.query;R._pastSelections=A.previous;}if((V&&(V.length0)){R._queryTask.cancel();R._toggleContainer(false);return;}V=encodeURIComponent(V);if(R.get("applyLocalFilter")){R.dataSource.on("response",R.filterResults,R);}var U=R.generateRequest(V);R.fire("dataRequest",V,U);R.dataSource.sendRequest(U);},_textMatchesOption:function(){var A=this;var R=null;var V=A._displayedItems;var W=A.resultList.get("childNodes");for(var T=0;T Date: Wed, 17 Aug 2011 20:00:15 -0300 Subject: [PATCH 099/132] AUI-489 Adding Ace Editor Wrapper for Alloy --- .gitmodules | 3 + demos/ace-editor/index.html | 57 +++++ .../build.aui-ace-editor-base.properties | 10 + .../build.aui-ace-editor-base.xml | 7 + ...ace-editor-cockpit-uncompressed.properties | 10 + ...ld.aui-ace-editor-cockpit-uncompressed.xml | 7 + .../build.aui-ace-editor-cockpit.properties | 10 + .../build.aui-ace-editor-cockpit.xml | 7 + ...aui-ace-editor-keybinding-emacs.properties | 10 + .../build.aui-ace-editor-keybinding-emacs.xml | 7 + ...d.aui-ace-editor-keybinding-vim.properties | 10 + .../build.aui-ace-editor-keybinding-vim.xml | 7 + ...build.aui-ace-editor-mode-c_cpp.properties | 10 + .../build.aui-ace-editor-mode-c_cpp.xml | 7 + ...ild.aui-ace-editor-mode-clojure.properties | 10 + .../build.aui-ace-editor-mode-clojure.xml | 7 + ...uild.aui-ace-editor-mode-coffee.properties | 10 + .../build.aui-ace-editor-mode-coffee.xml | 7 + ...uild.aui-ace-editor-mode-csharp.properties | 10 + .../build.aui-ace-editor-mode-csharp.xml | 7 + .../build.aui-ace-editor-mode-css.properties | 10 + .../build.aui-ace-editor-mode-css.xml | 7 + ...uild.aui-ace-editor-mode-groovy.properties | 10 + .../build.aui-ace-editor-mode-groovy.xml | 7 + .../build.aui-ace-editor-mode-html.properties | 10 + .../build.aui-ace-editor-mode-html.xml | 7 + .../build.aui-ace-editor-mode-java.properties | 10 + .../build.aui-ace-editor-mode-java.xml | 7 + ....aui-ace-editor-mode-javascript.properties | 10 + .../build.aui-ace-editor-mode-javascript.xml | 17 ++ .../build.aui-ace-editor-mode-json.properties | 10 + .../build.aui-ace-editor-mode-json.xml | 7 + ...build.aui-ace-editor-mode-ocaml.properties | 10 + .../build.aui-ace-editor-mode-ocaml.xml | 7 + .../build.aui-ace-editor-mode-perl.properties | 10 + .../build.aui-ace-editor-mode-perl.xml | 7 + .../build.aui-ace-editor-mode-php.properties | 10 + .../build.aui-ace-editor-mode-php.xml | 7 + ...uild.aui-ace-editor-mode-python.properties | 10 + .../build.aui-ace-editor-mode-python.xml | 7 + .../build.aui-ace-editor-mode-ruby.properties | 10 + .../build.aui-ace-editor-mode-ruby.xml | 7 + .../build.aui-ace-editor-mode-scad.properties | 10 + .../build.aui-ace-editor-mode-scad.xml | 7 + ...build.aui-ace-editor-mode-scala.properties | 10 + .../build.aui-ace-editor-mode-scala.xml | 7 + .../build.aui-ace-editor-mode-scss.properties | 10 + .../build.aui-ace-editor-mode-scss.xml | 7 + .../build.aui-ace-editor-mode-svg.properties | 10 + .../build.aui-ace-editor-mode-svg.xml | 7 + ...ild.aui-ace-editor-mode-textile.properties | 10 + .../build.aui-ace-editor-mode-textile.xml | 7 + .../build.aui-ace-editor-mode-xml.properties | 10 + .../build.aui-ace-editor-mode-xml.xml | 7 + ...ild.aui-ace-editor-theme-clouds.properties | 10 + .../build.aui-ace-editor-theme-clouds.xml | 7 + ...ce-editor-theme-clouds_midnight.properties | 10 + ...d.aui-ace-editor-theme-clouds_midnight.xml | 7 + ...ild.aui-ace-editor-theme-cobalt.properties | 10 + .../build.aui-ace-editor-theme-cobalt.xml | 7 + ...ace-editor-theme-crimson_editor.properties | 10 + ...ld.aui-ace-editor-theme-crimson_editor.xml | 7 + ...build.aui-ace-editor-theme-dawn.properties | 10 + .../build.aui-ace-editor-theme-dawn.xml | 7 + ...ld.aui-ace-editor-theme-eclipse.properties | 10 + .../build.aui-ace-editor-theme-eclipse.xml | 7 + ...i-ace-editor-theme-idle_fingers.properties | 10 + ...uild.aui-ace-editor-theme-idle_fingers.xml | 7 + ...d.aui-ace-editor-theme-kr_theme.properties | 10 + .../build.aui-ace-editor-theme-kr_theme.xml | 7 + ....aui-ace-editor-theme-merbivore.properties | 10 + .../build.aui-ace-editor-theme-merbivore.xml | 7 + ...ace-editor-theme-merbivore_soft.properties | 10 + ...ld.aui-ace-editor-theme-merbivore_soft.xml | 7 + ...ce-editor-theme-mono_industrial.properties | 10 + ...d.aui-ace-editor-theme-mono_industrial.xml | 7 + ...ld.aui-ace-editor-theme-monokai.properties | 10 + .../build.aui-ace-editor-theme-monokai.xml | 7 + ...ace-editor-theme-pastel_on_dark.properties | 10 + ...ld.aui-ace-editor-theme-pastel_on_dark.xml | 7 + ...ace-editor-theme-solarized_dark.properties | 10 + ...ld.aui-ace-editor-theme-solarized_dark.xml | 7 + ...ce-editor-theme-solarized_light.properties | 10 + ...d.aui-ace-editor-theme-solarized_light.xml | 7 + ...d.aui-ace-editor-theme-textmate.properties | 10 + .../build.aui-ace-editor-theme-textmate.xml | 7 + ...d.aui-ace-editor-theme-twilight.properties | 10 + .../build.aui-ace-editor-theme-twilight.xml | 7 + ...ui-ace-editor-theme-vibrant_ink.properties | 10 + ...build.aui-ace-editor-theme-vibrant_ink.xml | 7 + ...ld.aui-ace-editor-worker-coffee.properties | 10 + .../build.aui-ace-editor-worker-coffee.xml | 7 + ...build.aui-ace-editor-worker-css.properties | 10 + .../build.aui-ace-editor-worker-css.xml | 7 + ...ui-ace-editor-worker-javascript.properties | 10 + ...build.aui-ace-editor-worker-javascript.xml | 7 + src/aui-ace-editor/build.properties | 8 + src/aui-ace-editor/build.xml | 7 + src/aui-ace-editor/js/aui-ace-editor-base.js | 221 ++++++++++++++++++ 99 files changed, 1105 insertions(+) create mode 100644 demos/ace-editor/index.html create mode 100644 src/aui-ace-editor/build.aui-ace-editor-base.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-base.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-clojure.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-clojure.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-coffee.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-coffee.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-csharp.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-csharp.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-css.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-css.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-groovy.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-groovy.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-html.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-html.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-java.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-java.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-javascript.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-javascript.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-json.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-json.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-perl.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-perl.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-php.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-php.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-python.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-python.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-ruby.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-ruby.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-scad.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-scad.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-scala.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-scala.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-scss.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-scss.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-svg.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-svg.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-textile.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-textile.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-xml.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-mode-xml.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-clouds.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-clouds.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-dawn.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-dawn.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-monokai.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-monokai.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-textmate.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-textmate.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-twilight.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-twilight.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-worker-coffee.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-worker-coffee.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-worker-css.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-worker-css.xml create mode 100644 src/aui-ace-editor/build.aui-ace-editor-worker-javascript.properties create mode 100644 src/aui-ace-editor/build.aui-ace-editor-worker-javascript.xml create mode 100644 src/aui-ace-editor/build.properties create mode 100644 src/aui-ace-editor/build.xml create mode 100644 src/aui-ace-editor/js/aui-ace-editor-base.js diff --git a/.gitmodules b/.gitmodules index 4ddb65f9e68..56edb3651fe 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/yui3"] path = lib/yui3 url = git://github.com/liferay/yui3.git +[submodule "lib/ace"] + path = lib/ace + url = git://github.com/ajaxorg/ace.git diff --git a/demos/ace-editor/index.html b/demos/ace-editor/index.html new file mode 100644 index 00000000000..65c5e95d56c --- /dev/null +++ b/demos/ace-editor/index.html @@ -0,0 +1,57 @@ + + + + + + + + + + + +
                                                                          +

                                                                          Alloy Ace Editor Wrapper

                                                                          + +
                                                                          +
                                                                          + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-base.properties b/src/aui-ace-editor/build.aui-ace-editor-base.properties new file mode 100644 index 00000000000..f92ba8aa9f8 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-base.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-base +component.jsfiles=${basedir}/../../lib/ace/build/src/ace.js,aui-ace-editor-base.js +component.requires=aui-component, aui-node +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-base.xml b/src/aui-ace-editor/build.aui-ace-editor-base.xml new file mode 100644 index 00000000000..136c10b83ef --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-base.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties b/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties new file mode 100644 index 00000000000..a0cbdc4cf06 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-cockpit-uncompressed +component.jsfiles=${basedir}/../../lib/ace/build/src/cockpit-uncompressed.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml b/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml new file mode 100644 index 00000000000..8d708b40c82 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit.properties b/src/aui-ace-editor/build.aui-ace-editor-cockpit.properties new file mode 100644 index 00000000000..7aa398f08bb --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-cockpit.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-cockpit +component.jsfiles=${basedir}/../../lib/ace/build/src/cockpit.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit.xml b/src/aui-ace-editor/build.aui-ace-editor-cockpit.xml new file mode 100644 index 00000000000..1f1ea623e20 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-cockpit.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.properties b/src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.properties new file mode 100644 index 00000000000..ba62386f153 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-keybinding-emacs +component.jsfiles=${basedir}/../../lib/ace/build/src/keybinding-emacs.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.xml b/src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.xml new file mode 100644 index 00000000000..c6abdbce389 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-keybinding-emacs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.properties b/src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.properties new file mode 100644 index 00000000000..35bc8ceac3b --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-keybinding-vim +component.jsfiles=${basedir}/../../lib/ace/build/src/keybinding-vim.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.xml b/src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.xml new file mode 100644 index 00000000000..d310ce8f50c --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-keybinding-vim.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.properties new file mode 100644 index 00000000000..11d91e40c75 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-c_cpp +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-c_cpp.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.xml new file mode 100644 index 00000000000..258ff3a2617 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-c_cpp.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-clojure.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-clojure.properties new file mode 100644 index 00000000000..cd811d5810c --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-clojure.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-clojure +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-clojure.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-clojure.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-clojure.xml new file mode 100644 index 00000000000..f8b90de2aa7 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-clojure.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-coffee.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-coffee.properties new file mode 100644 index 00000000000..f570ddb3ba0 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-coffee.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-coffee +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-coffee.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-coffee.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-coffee.xml new file mode 100644 index 00000000000..9312f5f6b68 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-coffee.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-csharp.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-csharp.properties new file mode 100644 index 00000000000..582bc796ecf --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-csharp.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-csharp +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-csharp.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-csharp.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-csharp.xml new file mode 100644 index 00000000000..6ff6b9e3b5f --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-csharp.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-css.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-css.properties new file mode 100644 index 00000000000..7677c66d6d4 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-css.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-css +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-css.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-css.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-css.xml new file mode 100644 index 00000000000..ee3d4af0272 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-css.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-groovy.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-groovy.properties new file mode 100644 index 00000000000..395cdd6bb41 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-groovy.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-groovy +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-groovy.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-groovy.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-groovy.xml new file mode 100644 index 00000000000..0a153d95a90 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-groovy.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-html.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-html.properties new file mode 100644 index 00000000000..d2afca14af4 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-html.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-html +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-html.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-html.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-html.xml new file mode 100644 index 00000000000..adf8a6e19b8 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-html.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-java.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-java.properties new file mode 100644 index 00000000000..786122f2f4c --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-java.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-java +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-java.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-java.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-java.xml new file mode 100644 index 00000000000..a153b94216e --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-java.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-javascript.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-javascript.properties new file mode 100644 index 00000000000..f74ca5bea87 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-javascript.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-javascript +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-javascript.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-javascript.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-javascript.xml new file mode 100644 index 00000000000..868f5adac1c --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-javascript.xml @@ -0,0 +1,17 @@ + + + + + + + + + Removing worker functionality from JavaScript Mode + + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-json.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-json.properties new file mode 100644 index 00000000000..1bb15d00977 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-json.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-json +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-json.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-json.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-json.xml new file mode 100644 index 00000000000..bfa0ba90ccf --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-json.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.properties new file mode 100644 index 00000000000..f01b0036f4c --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-ocaml +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-ocaml.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.xml new file mode 100644 index 00000000000..e35377aa3b0 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-ocaml.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-perl.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-perl.properties new file mode 100644 index 00000000000..9b18ea9702f --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-perl.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-perl +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-perl.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-perl.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-perl.xml new file mode 100644 index 00000000000..d40a27b7909 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-perl.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-php.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-php.properties new file mode 100644 index 00000000000..ddb75e40337 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-php.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-php +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-php.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-php.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-php.xml new file mode 100644 index 00000000000..ef868082309 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-php.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-python.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-python.properties new file mode 100644 index 00000000000..8358c03ea3f --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-python.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-python +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-python.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-python.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-python.xml new file mode 100644 index 00000000000..ed84c875ed0 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-python.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-ruby.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-ruby.properties new file mode 100644 index 00000000000..84f81f43b11 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-ruby.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-ruby +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-ruby.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-ruby.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-ruby.xml new file mode 100644 index 00000000000..2736f0400ff --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-ruby.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-scad.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-scad.properties new file mode 100644 index 00000000000..20a61118dee --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-scad.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-scad +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-scad.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-scad.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-scad.xml new file mode 100644 index 00000000000..1e39f20ff3c --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-scad.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-scala.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-scala.properties new file mode 100644 index 00000000000..513e25b33a6 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-scala.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-scala +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-scala.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-scala.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-scala.xml new file mode 100644 index 00000000000..061f870e488 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-scala.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-scss.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-scss.properties new file mode 100644 index 00000000000..8d16f146538 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-scss.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-scss +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-scss.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-scss.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-scss.xml new file mode 100644 index 00000000000..9752752f570 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-scss.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-svg.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-svg.properties new file mode 100644 index 00000000000..02b88221a19 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-svg.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-svg +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-svg.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-svg.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-svg.xml new file mode 100644 index 00000000000..973a123bdac --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-svg.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-textile.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-textile.properties new file mode 100644 index 00000000000..d81c907bee0 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-textile.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-textile +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-textile.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-textile.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-textile.xml new file mode 100644 index 00000000000..38a6e6670d1 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-textile.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-xml.properties b/src/aui-ace-editor/build.aui-ace-editor-mode-xml.properties new file mode 100644 index 00000000000..601fa2f02c5 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-xml.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-mode-xml +component.jsfiles=${basedir}/../../lib/ace/build/src/mode-xml.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-mode-xml.xml b/src/aui-ace-editor/build.aui-ace-editor-mode-xml.xml new file mode 100644 index 00000000000..7df231285eb --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-mode-xml.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-clouds.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds.properties new file mode 100644 index 00000000000..212a4526cfb --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-clouds +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-clouds.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-clouds.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds.xml new file mode 100644 index 00000000000..2d4c1a3a697 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.properties new file mode 100644 index 00000000000..28acbccf983 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-clouds_midnight +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-clouds_midnight.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.xml new file mode 100644 index 00000000000..0e48c537983 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-clouds_midnight.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.properties new file mode 100644 index 00000000000..2f0f23eb376 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-cobalt +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-cobalt.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.xml new file mode 100644 index 00000000000..4026869384d --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-cobalt.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.properties new file mode 100644 index 00000000000..6ee51ce90bc --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-crimson_editor +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-crimson_editor.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.xml new file mode 100644 index 00000000000..3c8885a12ac --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-crimson_editor.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-dawn.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-dawn.properties new file mode 100644 index 00000000000..3f7e6066855 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-dawn.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-dawn +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-dawn.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-dawn.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-dawn.xml new file mode 100644 index 00000000000..74131be811d --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-dawn.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.properties new file mode 100644 index 00000000000..157c635fb5c --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-eclipse +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-eclipse.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.xml new file mode 100644 index 00000000000..1a92f32d714 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-eclipse.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.properties new file mode 100644 index 00000000000..86a29f9fe16 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-idle_fingers +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-idle_fingers.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.xml new file mode 100644 index 00000000000..22884d4d118 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-idle_fingers.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.properties new file mode 100644 index 00000000000..dc4c3345e3b --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-kr_theme +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-kr_theme.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.xml new file mode 100644 index 00000000000..744835f313e --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-kr_theme.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.properties new file mode 100644 index 00000000000..2c850c6d559 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-merbivore +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-merbivore.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.xml new file mode 100644 index 00000000000..5e4d863df62 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.properties new file mode 100644 index 00000000000..4b11c068382 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-merbivore_soft +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-merbivore_soft.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.xml new file mode 100644 index 00000000000..c7bf33f86eb --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-merbivore_soft.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.properties new file mode 100644 index 00000000000..21c8cc6c4e1 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-mono_industrial +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-mono_industrial.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.xml new file mode 100644 index 00000000000..4346b2af7d4 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-mono_industrial.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-monokai.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-monokai.properties new file mode 100644 index 00000000000..376af42b185 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-monokai.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-monokai +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-monokai.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-monokai.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-monokai.xml new file mode 100644 index 00000000000..00d7f873219 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-monokai.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.properties new file mode 100644 index 00000000000..9701609a582 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-pastel_on_dark +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-pastel_on_dark.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.xml new file mode 100644 index 00000000000..d46220f2591 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-pastel_on_dark.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.properties new file mode 100644 index 00000000000..e0466f40564 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-solarized_dark +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-solarized_dark.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.xml new file mode 100644 index 00000000000..a732ba98f79 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_dark.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.properties new file mode 100644 index 00000000000..3ffe5c18c91 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-solarized_light +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-solarized_light.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.xml new file mode 100644 index 00000000000..ee61f5e0329 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-solarized_light.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-textmate.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-textmate.properties new file mode 100644 index 00000000000..c1b350fd528 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-textmate.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-textmate +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-textmate.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-textmate.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-textmate.xml new file mode 100644 index 00000000000..f1538222809 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-textmate.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-twilight.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-twilight.properties new file mode 100644 index 00000000000..c289c455094 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-twilight.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-twilight +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-twilight.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-twilight.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-twilight.xml new file mode 100644 index 00000000000..e4f340f31cb --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-twilight.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.properties b/src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.properties new file mode 100644 index 00000000000..9c72f2a1197 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-theme-vibrant_ink +component.jsfiles=${basedir}/../../lib/ace/build/src/theme-vibrant_ink.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.xml b/src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.xml new file mode 100644 index 00000000000..706f10bc55f --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-theme-vibrant_ink.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-worker-coffee.properties b/src/aui-ace-editor/build.aui-ace-editor-worker-coffee.properties new file mode 100644 index 00000000000..f27260a4858 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-worker-coffee.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-worker-coffee +component.jsfiles=${basedir}/../../lib/ace/build/src/worker-coffee.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-worker-coffee.xml b/src/aui-ace-editor/build.aui-ace-editor-worker-coffee.xml new file mode 100644 index 00000000000..555f6d451bd --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-worker-coffee.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-worker-css.properties b/src/aui-ace-editor/build.aui-ace-editor-worker-css.properties new file mode 100644 index 00000000000..9895c63c5a5 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-worker-css.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-worker-css +component.jsfiles=${basedir}/../../lib/ace/build/src/worker-css.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-worker-css.xml b/src/aui-ace-editor/build.aui-ace-editor-worker-css.xml new file mode 100644 index 00000000000..28d11473dee --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-worker-css.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-worker-javascript.properties b/src/aui-ace-editor/build.aui-ace-editor-worker-javascript.properties new file mode 100644 index 00000000000..0e360ec4187 --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-worker-javascript.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-ace-editor +global.build.component=${srcdir}/build/aui-ace-editor + +component=aui-ace-editor-worker-javascript +component.jsfiles=${basedir}/../../lib/ace/build/src/worker-javascript.js +component.requires=aui-ace-editor-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-worker-javascript.xml b/src/aui-ace-editor/build.aui-ace-editor-worker-javascript.xml new file mode 100644 index 00000000000..1d62e28812b --- /dev/null +++ b/src/aui-ace-editor/build.aui-ace-editor-worker-javascript.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/build.properties b/src/aui-ace-editor/build.properties new file mode 100644 index 00000000000..d4ac339ba48 --- /dev/null +++ b/src/aui-ace-editor/build.properties @@ -0,0 +1,8 @@ +#Wed Aug 17 19:33:51 BRT 2011 +srcdir=../../ +global.build.component=${srcdir}/build/aui-ace-editor +component.rollup.modules.buildfiles=build.aui-ace-editor-base.xml,build.aui-ace-editor-mode-xml.xml,build.aui-ace-editor-mode-php.xml,build.aui-ace-editor-theme-solarized_dark.xml,build.aui-ace-editor-mode-ocaml.xml,build.aui-ace-editor-theme-idle_fingers.xml,build.aui-ace-editor-mode-html.xml,build.aui-ace-editor-mode-coffee.xml,build.aui-ace-editor-worker-css.xml,build.aui-ace-editor-mode-ruby.xml,build.aui-ace-editor-theme-monokai.xml,build.aui-ace-editor-mode-javascript.xml,build.aui-ace-editor-keybinding-emacs.xml,build.aui-ace-editor-mode-python.xml,build.aui-ace-editor-theme-dawn.xml,build.aui-ace-editor-theme-vibrant_ink.xml,build.aui-ace-editor-mode-java.xml,build.aui-ace-editor-mode-svg.xml,build.aui-ace-editor-theme-merbivore.xml,build.aui-ace-editor-theme-mono_industrial.xml,build.aui-ace-editor-theme-solarized_light.xml,build.aui-ace-editor-mode-json.xml,build.aui-ace-editor-mode-textile.xml,build.aui-ace-editor-mode-perl.xml,build.aui-ace-editor-mode-scad.xml,build.aui-ace-editor-theme-kr_theme.xml,build.aui-ace-editor-mode-c_cpp.xml,build.aui-ace-editor-cockpit.xml,build.aui-ace-editor-theme-clouds.xml,build.aui-ace-editor-mode-scss.xml,build.aui-ace-editor-worker-coffee.xml,build.aui-ace-editor-theme-clouds_midnight.xml,build.aui-ace-editor-theme-eclipse.xml,build.aui-ace-editor-theme-cobalt.xml,build.aui-ace-editor-theme-crimson_editor.xml,build.aui-ace-editor-cockpit-uncompressed.xml,build.aui-ace-editor-worker-javascript.xml,build.aui-ace-editor-theme-pastel_on_dark.xml,build.aui-ace-editor-mode-css.xml,build.aui-ace-editor-mode-csharp.xml,build.aui-ace-editor-mode-scala.xml,build.aui-ace-editor-theme-merbivore_soft.xml,build.aui-ace-editor-mode-clojure.xml,build.aui-ace-editor-keybinding-vim.xml,build.aui-ace-editor-theme-twilight.xml,build.aui-ace-editor-mode-groovy.xml,build.aui-ace-editor-theme-textmate.xml +component.rollup=true +component=aui-ace-editor +component.skinnable=false +component.use=aui-ace-editor-base,aui-ace-editor-mode-xml,aui-ace-editor-mode-php,aui-ace-editor-theme-solarized_dark,aui-ace-editor-mode-ocaml,aui-ace-editor-theme-idle_fingers,aui-ace-editor-mode-html,aui-ace-editor-mode-coffee,aui-ace-editor-worker-css,aui-ace-editor-mode-ruby,aui-ace-editor-theme-monokai,aui-ace-editor-mode-javascript,aui-ace-editor-keybinding-emacs,aui-ace-editor-mode-python,aui-ace-editor-theme-dawn,aui-ace-editor-theme-vibrant_ink,aui-ace-editor-mode-java,aui-ace-editor-mode-svg,aui-ace-editor-theme-merbivore,aui-ace-editor-theme-mono_industrial,aui-ace-editor-theme-solarized_light,aui-ace-editor-mode-json,aui-ace-editor-mode-textile,aui-ace-editor-mode-perl,aui-ace-editor-mode-scad,aui-ace-editor-theme-kr_theme,aui-ace-editor-mode-c_cpp,aui-ace-editor-cockpit,aui-ace-editor-theme-clouds,aui-ace-editor-mode-scss,aui-ace-editor-worker-coffee,aui-ace-editor-theme-clouds_midnight,aui-ace-editor-theme-eclipse,aui-ace-editor-theme-cobalt,aui-ace-editor-theme-crimson_editor,aui-ace-editor-cockpit-uncompressed,aui-ace-editor-worker-javascript,aui-ace-editor-theme-pastel_on_dark,aui-ace-editor-mode-css,aui-ace-editor-mode-csharp,aui-ace-editor-mode-scala,aui-ace-editor-theme-merbivore_soft,aui-ace-editor-mode-clojure,aui-ace-editor-keybinding-vim,aui-ace-editor-theme-twilight,aui-ace-editor-mode-groovy,aui-ace-editor-theme-textmate diff --git a/src/aui-ace-editor/build.xml b/src/aui-ace-editor/build.xml new file mode 100644 index 00000000000..be8b941f516 --- /dev/null +++ b/src/aui-ace-editor/build.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-ace-editor/js/aui-ace-editor-base.js b/src/aui-ace-editor/js/aui-ace-editor-base.js new file mode 100644 index 00000000000..72ef3f92af0 --- /dev/null +++ b/src/aui-ace-editor/js/aui-ace-editor-base.js @@ -0,0 +1,221 @@ +var Lang = A.Lang, + + BOUNDING_BOX = 'boundingBox', + CONTENT_BOX = 'contentBox', + EMPTY_STR = '', + HEIGHT = 'height', + WIDTH = 'width', + + NAME = 'ace-ditor'; + +var AceEditor = A.Component.create( + { + NAME: NAME, + + EXTENDS: A.Widget, + + ATTRS: { + + height: { + value: 400 + }, + + highlightActiveLine: { + lazyAdd: false, + getter: '_getHighlightActiveLine', + setter: '_setHighlightActiveLine', + value: true + }, + + readOnly: { + lazyAdd: false, + getter: '_getReadOnly', + setter: '_setReadOnly', + value: false + }, + + showPrintMargin: { + lazyAdd: false, + getter: '_getShowPrintMargin', + setter: '_setShowPrintMargin', + value: true + }, + + tabSize: { + lazyAdd: false, + getter: '_getTabSize', + setter: '_setTabSize', + value: 4 + }, + + useSoftTabs: { + lazyAdd: false, + getter: '_getUseSoftTabs', + setter: '_setUseSoftTabs', + value: true + }, + + useWrapMode: { + lazyAdd: false, + getter: '_getUseWrapMode', + setter: '_setUseWrapMode', + value: true + }, + + value: { + lazyAdd: false, + getter: '_getValue', + setter: '_setValue', + value: EMPTY_STR, + }, + + width: { + value: 800 + } + + }, + + UI_ATTRS: [HEIGHT, WIDTH], + + prototype: { + + getEditor: function() { + var instance = this; + + if (!instance.editor) { + var boundingBox = instance.get(BOUNDING_BOX); + + instance.editor = ace.edit(boundingBox.getDOM()); + } + + return instance.editor; + }, + + getSelection: function() { + var instance = this; + + return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange()) + }, + + getSession: function() { + var instance = this; + + return instance.getEditor().getSession(); + }, + + gotoLine: function(line) { + var instance = this; + + instance.getEditor().gotoLine(line); + }, + + insert: function(text) { + var instance = this; + + instance.getEditor().insert(text); + }, + + _getHighlightActiveLine: function() { + var instance = this; + + return instance.getEditor().getHighlightActiveLine(); + }, + + _getReadOnly: function() { + var instance = this; + + return instance.getEditor().getReadOnly(); + }, + + _getShowPrintMargin: function() { + var instance = this; + + return instance.getEditor().getShowPrintMargin(); + }, + + _getTabSize: function() { + var instance = this; + + return instance.getSession().getTabSize(); + }, + + _getUseSoftTabs: function() { + var instance = this; + + return instance.getSession().getUseSoftTabs(); + }, + + _getUseWrapMode: function() { + var instance = this; + + return instance.getSession().getUseWrapMode(); + }, + + _getValue: function() { + var instance = this; + + return instance.getSession().getValue(); + }, + + _setHighlightActiveLine: function(value) { + var instance = this; + + instance.getEditor().setHighlightActiveLine(value); + }, + + _setReadOnly: function(value) { + var instance = this; + + instance.getEditor().setReadOnly(value) + }, + + _setShowPrintMargin: function(value) { + var instance = this; + + instance.getEditor().setShowPrintMargin(value); + }, + + _setTabSize: function(value) { + var instance = this; + + instance.getSession().setTabSize(value); + }, + + _setUseSoftTabs: function(value) { + var instance = this; + + instance.getSession().setUseSoftTabs(value); + }, + + _setUseWrapMode: function(value) { + var instance = this; + + instance.getSession().setUseWrapMode(value); + }, + + _setValue: function(value) { + var instance = this; + + instance.getSession().setValue(value); + }, + + _uiSetHeight: function() { + var instance = this; + + A.AceEditor.superclass._uiSetHeight.apply(instance, arguments); + + instance.getEditor().resize(); + }, + + _uiSetWidth: function() { + var instance = this; + + A.AceEditor.superclass._uiSetWidth.apply(instance, arguments); + + instance.getEditor().resize(); + } + } + } +); + +A.AceEditor = AceEditor; \ No newline at end of file From 95b8972a2d76c76ac77e5f9cba6a7c92433bf531 Mon Sep 17 00:00:00 2001 From: "bruno.basto" Date: Wed, 17 Aug 2011 20:01:02 -0300 Subject: [PATCH 100/132] AUI-489 Build files --- .../aui-ace-editor-base-debug.js | 225 ++ .../aui-ace-editor/aui-ace-editor-base-min.js | 32 + build/aui-ace-editor/aui-ace-editor-base.js | 225 ++ .../aui-ace-editor-cockpit-debug.js | 4 + .../aui-ace-editor-cockpit-min.js | 6 + ...i-ace-editor-cockpit-uncompressed-debug.js | 2507 ++++++++++++++ ...aui-ace-editor-cockpit-uncompressed-min.js | 9 + .../aui-ace-editor-cockpit-uncompressed.js | 2507 ++++++++++++++ .../aui-ace-editor/aui-ace-editor-cockpit.js | 4 + build/aui-ace-editor/aui-ace-editor-debug.js | 2916 +++++++++++++++++ .../aui-ace-editor-keybinding-emacs-debug.js | 4 + .../aui-ace-editor-keybinding-emacs-min.js | 1 + .../aui-ace-editor-keybinding-emacs.js | 4 + .../aui-ace-editor-keybinding-vim-debug.js | 4 + .../aui-ace-editor-keybinding-vim-min.js | 1 + .../aui-ace-editor-keybinding-vim.js | 4 + build/aui-ace-editor/aui-ace-editor-min.js | 132 + .../aui-ace-editor-mode-c_cpp-debug.js | 4 + .../aui-ace-editor-mode-c_cpp-min.js | 2 + .../aui-ace-editor-mode-c_cpp.js | 4 + .../aui-ace-editor-mode-clojure-debug.js | 4 + .../aui-ace-editor-mode-clojure-min.js | 2 + .../aui-ace-editor-mode-clojure.js | 4 + .../aui-ace-editor-mode-coffee-debug.js | 4 + .../aui-ace-editor-mode-coffee-min.js | 2 + .../aui-ace-editor-mode-coffee.js | 4 + .../aui-ace-editor-mode-csharp-debug.js | 4 + .../aui-ace-editor-mode-csharp-min.js | 2 + .../aui-ace-editor-mode-csharp.js | 4 + .../aui-ace-editor-mode-css-debug.js | 4 + .../aui-ace-editor-mode-css-min.js | 2 + .../aui-ace-editor/aui-ace-editor-mode-css.js | 4 + .../aui-ace-editor-mode-groovy-debug.js | 4 + .../aui-ace-editor-mode-groovy-min.js | 3 + .../aui-ace-editor-mode-groovy.js | 4 + .../aui-ace-editor-mode-html-debug.js | 4 + .../aui-ace-editor-mode-html-min.js | 4 + .../aui-ace-editor-mode-html.js | 4 + .../aui-ace-editor-mode-java-debug.js | 4 + .../aui-ace-editor-mode-java-min.js | 3 + .../aui-ace-editor-mode-java.js | 4 + .../aui-ace-editor-mode-javascript-debug.js | 4 + .../aui-ace-editor-mode-javascript-min.js | 2 + .../aui-ace-editor-mode-javascript.js | 4 + .../aui-ace-editor-mode-json-debug.js | 4 + .../aui-ace-editor-mode-json-min.js | 1 + .../aui-ace-editor-mode-json.js | 4 + .../aui-ace-editor-mode-ocaml-debug.js | 4 + .../aui-ace-editor-mode-ocaml-min.js | 2 + .../aui-ace-editor-mode-ocaml.js | 4 + .../aui-ace-editor-mode-perl-debug.js | 4 + .../aui-ace-editor-mode-perl-min.js | 1 + .../aui-ace-editor-mode-perl.js | 4 + .../aui-ace-editor-mode-php-debug.js | 4 + .../aui-ace-editor-mode-php-min.js | 3 + .../aui-ace-editor/aui-ace-editor-mode-php.js | 4 + .../aui-ace-editor-mode-python-debug.js | 4 + .../aui-ace-editor-mode-python-min.js | 1 + .../aui-ace-editor-mode-python.js | 4 + .../aui-ace-editor-mode-ruby-debug.js | 4 + .../aui-ace-editor-mode-ruby-min.js | 1 + .../aui-ace-editor-mode-ruby.js | 3 + .../aui-ace-editor-mode-scad-debug.js | 4 + .../aui-ace-editor-mode-scad-min.js | 2 + .../aui-ace-editor-mode-scad.js | 4 + .../aui-ace-editor-mode-scala-debug.js | 4 + .../aui-ace-editor-mode-scala-min.js | 3 + .../aui-ace-editor-mode-scala.js | 4 + .../aui-ace-editor-mode-scss-debug.js | 4 + .../aui-ace-editor-mode-scss-min.js | 2 + .../aui-ace-editor-mode-scss.js | 4 + .../aui-ace-editor-mode-svg-debug.js | 4 + .../aui-ace-editor-mode-svg-min.js | 3 + .../aui-ace-editor/aui-ace-editor-mode-svg.js | 4 + .../aui-ace-editor-mode-textile-debug.js | 4 + .../aui-ace-editor-mode-textile-min.js | 1 + .../aui-ace-editor-mode-textile.js | 4 + .../aui-ace-editor-mode-xml-debug.js | 4 + .../aui-ace-editor-mode-xml-min.js | 1 + .../aui-ace-editor/aui-ace-editor-mode-xml.js | 4 + .../aui-ace-editor-theme-clouds-debug.js | 4 + .../aui-ace-editor-theme-clouds-min.js | 1 + .../aui-ace-editor-theme-clouds.js | 4 + ...-ace-editor-theme-clouds_midnight-debug.js | 4 + ...ui-ace-editor-theme-clouds_midnight-min.js | 1 + .../aui-ace-editor-theme-clouds_midnight.js | 4 + .../aui-ace-editor-theme-cobalt-debug.js | 4 + .../aui-ace-editor-theme-cobalt-min.js | 1 + .../aui-ace-editor-theme-cobalt.js | 4 + ...i-ace-editor-theme-crimson_editor-debug.js | 4 + ...aui-ace-editor-theme-crimson_editor-min.js | 1 + .../aui-ace-editor-theme-crimson_editor.js | 4 + .../aui-ace-editor-theme-dawn-debug.js | 4 + .../aui-ace-editor-theme-dawn-min.js | 1 + .../aui-ace-editor-theme-dawn.js | 4 + .../aui-ace-editor-theme-eclipse-debug.js | 4 + .../aui-ace-editor-theme-eclipse-min.js | 1 + .../aui-ace-editor-theme-eclipse.js | 4 + ...aui-ace-editor-theme-idle_fingers-debug.js | 4 + .../aui-ace-editor-theme-idle_fingers-min.js | 1 + .../aui-ace-editor-theme-idle_fingers.js | 4 + .../aui-ace-editor-theme-kr_theme-debug.js | 4 + .../aui-ace-editor-theme-kr_theme-min.js | 1 + .../aui-ace-editor-theme-kr_theme.js | 4 + .../aui-ace-editor-theme-merbivore-debug.js | 4 + .../aui-ace-editor-theme-merbivore-min.js | 1 + .../aui-ace-editor-theme-merbivore.js | 4 + ...i-ace-editor-theme-merbivore_soft-debug.js | 4 + ...aui-ace-editor-theme-merbivore_soft-min.js | 1 + .../aui-ace-editor-theme-merbivore_soft.js | 4 + ...-ace-editor-theme-mono_industrial-debug.js | 4 + ...ui-ace-editor-theme-mono_industrial-min.js | 1 + .../aui-ace-editor-theme-mono_industrial.js | 4 + .../aui-ace-editor-theme-monokai-debug.js | 4 + .../aui-ace-editor-theme-monokai-min.js | 1 + .../aui-ace-editor-theme-monokai.js | 4 + ...i-ace-editor-theme-pastel_on_dark-debug.js | 4 + ...aui-ace-editor-theme-pastel_on_dark-min.js | 1 + .../aui-ace-editor-theme-pastel_on_dark.js | 4 + ...i-ace-editor-theme-solarized_dark-debug.js | 4 + ...aui-ace-editor-theme-solarized_dark-min.js | 1 + .../aui-ace-editor-theme-solarized_dark.js | 4 + ...-ace-editor-theme-solarized_light-debug.js | 4 + ...ui-ace-editor-theme-solarized_light-min.js | 1 + .../aui-ace-editor-theme-solarized_light.js | 4 + .../aui-ace-editor-theme-textmate-debug.js | 4 + .../aui-ace-editor-theme-textmate-min.js | 1 + .../aui-ace-editor-theme-textmate.js | 4 + .../aui-ace-editor-theme-twilight-debug.js | 4 + .../aui-ace-editor-theme-twilight-min.js | 1 + .../aui-ace-editor-theme-twilight.js | 4 + .../aui-ace-editor-theme-vibrant_ink-debug.js | 4 + .../aui-ace-editor-theme-vibrant_ink-min.js | 1 + .../aui-ace-editor-theme-vibrant_ink.js | 4 + .../aui-ace-editor-worker-coffee-debug.js | 4 + .../aui-ace-editor-worker-coffee-min.js | 18 + .../aui-ace-editor-worker-coffee.js | 4 + .../aui-ace-editor-worker-css-debug.js | 4 + .../aui-ace-editor-worker-css-min.js | 14 + .../aui-ace-editor-worker-css.js | 4 + .../aui-ace-editor-worker-javascript-debug.js | 4 + .../aui-ace-editor-worker-javascript-min.js | 18 + .../aui-ace-editor-worker-javascript.js | 4 + build/aui-ace-editor/aui-ace-editor.js | 2915 ++++++++++++++++ build/aui-base/aui-base-debug.js | 15 +- build/aui-base/aui-base-min.js | 5 +- build/aui-base/aui-base.js | 15 +- build/aui/aui-min.js | 5 +- build/aui/aui.js | 15 +- 149 files changed, 11976 insertions(+), 25 deletions(-) create mode 100644 build/aui-ace-editor/aui-ace-editor-base-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-base-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-base.js create mode 100644 build/aui-ace-editor/aui-ace-editor-cockpit-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-cockpit-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed.js create mode 100644 build/aui-ace-editor/aui-ace-editor-cockpit.js create mode 100644 build/aui-ace-editor/aui-ace-editor-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-keybinding-emacs-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-keybinding-emacs-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-keybinding-emacs.js create mode 100644 build/aui-ace-editor/aui-ace-editor-keybinding-vim-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-keybinding-vim-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-keybinding-vim.js create mode 100644 build/aui-ace-editor/aui-ace-editor-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-c_cpp-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-c_cpp-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-c_cpp.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-clojure-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-clojure-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-clojure.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-coffee-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-coffee-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-coffee.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-csharp-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-csharp-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-csharp.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-css-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-css-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-css.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-groovy-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-groovy-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-groovy.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-html-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-html-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-html.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-java-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-java-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-java.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-javascript-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-javascript-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-javascript.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-json-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-json-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-json.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-ocaml-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-ocaml-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-ocaml.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-perl-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-perl-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-perl.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-php-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-php-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-php.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-python-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-python-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-python.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-ruby-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-ruby-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-ruby.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scad-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scad-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scad.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scala-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scala-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scala.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scss-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scss-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-scss.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-svg-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-svg-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-svg.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-textile-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-textile-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-textile.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-xml-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-xml-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-mode-xml.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-clouds-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-clouds-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-clouds.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-cobalt-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-cobalt-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-cobalt.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-crimson_editor.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-dawn-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-dawn-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-dawn.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-eclipse-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-eclipse-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-eclipse.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-idle_fingers.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-kr_theme-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-kr_theme-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-kr_theme.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-merbivore-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-merbivore-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-merbivore.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-mono_industrial.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-monokai-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-monokai-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-monokai.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-solarized_dark.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-solarized_light-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-solarized_light-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-solarized_light.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-textmate-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-textmate-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-textmate.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-twilight-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-twilight-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-twilight.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-coffee-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-coffee-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-coffee.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-css-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-css-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-css.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-javascript-debug.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-javascript-min.js create mode 100644 build/aui-ace-editor/aui-ace-editor-worker-javascript.js create mode 100644 build/aui-ace-editor/aui-ace-editor.js diff --git a/build/aui-ace-editor/aui-ace-editor-base-debug.js b/build/aui-ace-editor/aui-ace-editor-base-debug.js new file mode 100644 index 00000000000..b5d3e3f03ab --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-base-debug.js @@ -0,0 +1,225 @@ +AUI.add('aui-ace-editor-base', function(A) { +(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push("
                                                                          "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +var Lang = A.Lang, + + BOUNDING_BOX = 'boundingBox', + CONTENT_BOX = 'contentBox', + EMPTY_STR = '', + HEIGHT = 'height', + WIDTH = 'width', + + NAME = 'ace-ditor'; + +var AceEditor = A.Component.create( + { + NAME: NAME, + + EXTENDS: A.Widget, + + ATTRS: { + + height: { + value: 400 + }, + + highlightActiveLine: { + lazyAdd: false, + getter: '_getHighlightActiveLine', + setter: '_setHighlightActiveLine', + value: true + }, + + readOnly: { + lazyAdd: false, + getter: '_getReadOnly', + setter: '_setReadOnly', + value: false + }, + + showPrintMargin: { + lazyAdd: false, + getter: '_getShowPrintMargin', + setter: '_setShowPrintMargin', + value: true + }, + + tabSize: { + lazyAdd: false, + getter: '_getTabSize', + setter: '_setTabSize', + value: 4 + }, + + useSoftTabs: { + lazyAdd: false, + getter: '_getUseSoftTabs', + setter: '_setUseSoftTabs', + value: true + }, + + useWrapMode: { + lazyAdd: false, + getter: '_getUseWrapMode', + setter: '_setUseWrapMode', + value: true + }, + + value: { + lazyAdd: false, + getter: '_getValue', + setter: '_setValue', + value: EMPTY_STR, + }, + + width: { + value: 800 + } + + }, + + UI_ATTRS: [HEIGHT, WIDTH], + + prototype: { + + getEditor: function() { + var instance = this; + + if (!instance.editor) { + var boundingBox = instance.get(BOUNDING_BOX); + + instance.editor = ace.edit(boundingBox.getDOM()); + } + + return instance.editor; + }, + + getSelection: function() { + var instance = this; + + return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange()) + }, + + getSession: function() { + var instance = this; + + return instance.getEditor().getSession(); + }, + + gotoLine: function(line) { + var instance = this; + + instance.getEditor().gotoLine(line); + }, + + insert: function(text) { + var instance = this; + + instance.getEditor().insert(text); + }, + + _getHighlightActiveLine: function() { + var instance = this; + + return instance.getEditor().getHighlightActiveLine(); + }, + + _getReadOnly: function() { + var instance = this; + + return instance.getEditor().getReadOnly(); + }, + + _getShowPrintMargin: function() { + var instance = this; + + return instance.getEditor().getShowPrintMargin(); + }, + + _getTabSize: function() { + var instance = this; + + return instance.getSession().getTabSize(); + }, + + _getUseSoftTabs: function() { + var instance = this; + + return instance.getSession().getUseSoftTabs(); + }, + + _getUseWrapMode: function() { + var instance = this; + + return instance.getSession().getUseWrapMode(); + }, + + _getValue: function() { + var instance = this; + + return instance.getSession().getValue(); + }, + + _setHighlightActiveLine: function(value) { + var instance = this; + + instance.getEditor().setHighlightActiveLine(value); + }, + + _setReadOnly: function(value) { + var instance = this; + + instance.getEditor().setReadOnly(value) + }, + + _setShowPrintMargin: function(value) { + var instance = this; + + instance.getEditor().setShowPrintMargin(value); + }, + + _setTabSize: function(value) { + var instance = this; + + instance.getSession().setTabSize(value); + }, + + _setUseSoftTabs: function(value) { + var instance = this; + + instance.getSession().setUseSoftTabs(value); + }, + + _setUseWrapMode: function(value) { + var instance = this; + + instance.getSession().setUseWrapMode(value); + }, + + _setValue: function(value) { + var instance = this; + + instance.getSession().setValue(value); + }, + + _uiSetHeight: function() { + var instance = this; + + A.AceEditor.superclass._uiSetHeight.apply(instance, arguments); + + instance.getEditor().resize(); + }, + + _uiSetWidth: function() { + var instance = this; + + A.AceEditor.superclass._uiSetWidth.apply(instance, arguments); + + instance.getEditor().resize(); + } + } + } +); + +A.AceEditor = AceEditor; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-component', 'aui-node']}); diff --git a/build/aui-ace-editor/aui-ace-editor-base-min.js b/build/aui-ace-editor/aui-ace-editor-base-min.js new file mode 100644 index 00000000000..0a2b9ea7278 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-base-min.js @@ -0,0 +1,32 @@ +AUI.add("aui-ace-editor-base",function(A){(function(){var a=function(){return this;}();if(a.require&&a.define){require.packaged=!0;}else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d);};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b); +};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize();}),b.env=l;}),k.env=l;return k;};}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c);},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c);};}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e){this.subtype=a;}else{if(typeof a!="string"){throw new Error("Can' handle array subtype");}this.subtype=d.getType(a);if(this.subtype==null){throw new Error("Unknown array subtype: "+a);}}}function l(a){if(typeof a.defer!="function"){throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function"){throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a;},h.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to text.parse()");}return new f(a);},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null;},i.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to number.parse()");}if(a.replace(/\s/g,"").length===0){return new f(null,g.INCOMPLETE,"");}var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b;},i.decrement=function(a){return a-1;},i.increment=function(a){return a+1;},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a;},j.prototype.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to parse()");}if(!this.data){throw new Error("Missing data on selection type extension.");}var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b));},this);if(c){return new f(d);}this.noMatch&&this.noMatch(); +if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e);}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e);},j.prototype.fromString=function(a){return a;},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=b.length-1;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1;}return this.fromString(b[c]);},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=0;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1;}return this.fromString(b[c]);},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a;},fromString:function(a){return a==="true"?!0:!1;}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a);},l.prototype.parse=function(a){return this.defer().parse(a);},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined;},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined;},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ");},m.prototype.parse=function(a){return this.defer().parse(a);},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m));},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m);};}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c);}var d=g[a];typeof d=="function"&&(d=new d(b));return d;}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[];}var d={VALID:{toString:function(){return"VALID";},valueOf:function(){return 0;}},INCOMPLETE:{toString:function(){return"INCOMPLETE";},valueOf:function(){return 1;}},INVALID:{toString:function(){return"INVALID";},valueOf:function(){return 2;}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);}return b;}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented");},parse:function(a){throw new Error("not implemented");},name:undefined,increment:function(a){return undefined;},decrement:function(a){return undefined;},getDefault:function(){return this.parse("");}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f)){throw new Error("Can't registerType using: "+a);}if(!a.name){throw new Error("All registered types must have a name");}g[a.name]=a;}else{if(typeof a!="function"){throw new Error("Unknown type: "+a);}if(!a.prototype.name){throw new Error("All registered types must have a name");}g[a.prototype.name]=a;}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d);});},b.deregisterType=function(a){delete g[a.name];},b.getType=function(a){if(typeof a=="string"){return h(a);}if(typeof a=="object"){if(!a.name){throw new Error("Missing 'name' member to typeSpec");}return h(a.name,a);}throw new Error("Can't extract type from "+a);};}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames();},stringify:function(a){return a.name;},fromString:function(a){return d.getCommand(a);}});b.startup=function(){f.registerType(g);},b.shutdown=function(){f.unregisterType(g);};}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1;}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done();}typeof a=="string"&&(a=q[a]);if(!a){return !1;}var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return !1;}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider())){i=F;}i(g,function(){g.getStatus()==l.VALID&&h();});return !0;}h();return !0;}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI){H.shiftObject();}b._dispatchEvent("output",{requests:H,request:this});},J.prototype.doneWithError=function(a){this.error=!0,this.done(a);},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput();},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this;},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}));},b.Request=J;}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c));};}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d;});}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n");},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[];}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n");},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS;};}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b;};}(),b.mixin=function(a,b){for(var c in b){a[c]=b[c];}},b.implement=function(a,c){b.mixin(a,c);};}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10);}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a;}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase();};}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          ";});}else{b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());}c.done(d);}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting); +d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".");}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e);},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e);};}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec){d.push(e.description?e.description:"No description for "+b.search);}else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("");}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ");}c.done(d.join(""));}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript);}catch(e){result="Error: "+e.message+"";}var msg="",type="",x;if(checks.isFunction(result)){msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";}else{if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result){result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));}items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          ";}}else{msg=result,type=typeof result;}}request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg);}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec);},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec);};}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d);},b.shutdown=function(a,b){a.env.settings.removeSetting(d);};}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED;},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e;}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this);}.bind(this));return e;},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e;}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this);}.bind(this));return e;},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f;}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this);}.bind(this));return f;},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c));}},b.PluginCatalog=function(){this.plugins={};},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)));}.bind(this));return d.group(f);},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b));}return d.group(c);}},b.catalog=new b.PluginCatalog;}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this;},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g;},Promise.prototype.isResolved=function(){return this._status==h;},Promise.prototype.isRejected=function(){return this._status==f;},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this;},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c));}catch(d){b.reject(d);}},function(a){b.reject(a);});return b;},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve");},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject");},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd(); +return this;}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value);},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20){l.shift();}return this;},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0){return(new Promise).resolve([]);}var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c);};};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f);});return b;},b.Promise=Promise,b._outstanding=k,b._recent=l;}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a);},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b);},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b);},b.addCssClass=function(a,b){a.classList.add(b);},b.removeCssClass=function(a,b){a.classList.remove(b);},b.toggleCssClass=function(a,b){return a.classList.toggle(b);}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1;},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c);},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1){break;}c.splice(d,1);}a.className=c.join(" ");},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1){break;}d=!1,c.splice(e,1);}d&&c.push(b),a.className=c.join(" ");return d;}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c);},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a;}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e);}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth;},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight;},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset;},b.getPageScrollLeft=function(){return window.pageXOffset;}):(b.getPageScrollTop=function(){return document.body.scrollTop;},b.getPageScrollLeft=function(){return document.body.scrollLeft;}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{};}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle;},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g;},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c;},b.setInnerText=function(a,b){document.body&&"textContent" in document.body?a.textContent=b:a.innerText=b;},b.getInnerText=function(a){return document.body&&"textContent" in document.body?a.textContent:a.innerText||a.textContent||"";},b.getParentWindow=function(a){return a.defaultView||a.parentWindow;},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0;}catch(c){b=0;}return b;},b.setSelectionStart=function(a,b){return a.selectionStart=b;},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0;}catch(c){b=0;}return b;},b.setSelectionEnd=function(a,b){return a.selectionEnd=b;};}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8;}c=0;}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1;}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener){return a.addEventListener(b,c,!1);}if(a.attachEvent){var d=function(){c(window.event);};c._wrapper=d,a.attachEvent("on"+b,d);}},b.removeListener=function(a,b,c){if(a.removeEventListener){return a.removeEventListener(b,c,!1);}a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c);},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return !1;},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1;},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX;},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY;},b.getButton=function(a){if(a.type=="dblclick"){return 0;}if(a.type=="contextmenu"){return 2;}return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button];},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture();}function e(a){c(a);return b.stopPropagation(a);}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture();}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation(); +}function d(a){b(a),a.stopPropagation();}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0);},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a);};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d);},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0;},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5){h=0;}h==d&&(h=0,g(a));if(e){return b.preventDefault(a);}};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k);},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode;}),d(a,"keypress",function(a){return g(c,a,f);});}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode);}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b){return g(c,a,a.keyCode);}h=null;});}};}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""));};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b);},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b);},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a);},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow());}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b}); +}},this.getSession=function(){return this.session;},this.getSelection=function(){return this.selection;},this.resize=function(){this.renderer.onResize();},this.setTheme=function(a){this.renderer.setTheme(a);},this.getTheme=function(){return this.renderer.getTheme();},this.setStyle=function(a){this.renderer.setStyle(a);},this.unsetStyle=function(a){this.renderer.unsetStyle(a);},this.setFontSize=function(a){this.container.style.fontSize=a;},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text");}},10);}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus();}),this.textInput.focus();},this.isFocused=function(){return this.textInput.isFocused();},this.blur=function(){this.textInput.blur();},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus");},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur");},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"){var d=c.end.row;}else{d=Infinity;}this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor();},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last);},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine();},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background");}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d);}else{this.$updateHighlightActiveLine();}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this);},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints());},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());},this.onChangeMode=function(){this.renderer.updateText();},this.onChangeWrapLimit=function(){this.renderer.updateFull();},this.onChangeWrapMode=function(){this.renderer.onResize(!0);},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull();},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a;},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection());}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text);}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection();}else{if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f);}}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r){j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);}b.remove(new m(p,0,p,r));}b.indentRows(d.row+1,l.row,k);}else{i&&c.autoOutdent(h,b,d.row);}}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a);}else{this.keyBinding.onTextInput(a);}},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c);},this.setOverwrite=function(a){this.session.setOverwrite(a);},this.getOverwrite=function(){return this.session.getOverwrite();},this.toggleOverwrite=function(){this.session.toggleOverwrite();},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a);},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}));},this.getSelectionStyle=function(){return this.$selectionStyle; +},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine());},this.getHighlightActiveLine=function(){return this.$highlightActiveLine;},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this));},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord;},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a);},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles();},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a);},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin();},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a);},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn();},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a;},this.getReadOnly=function(){return this.$readOnly;},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a;},this.getBehavioursEnabled=function(){return this.$modeBehaviours;},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d);}this.session.remove(a),this.clearSelection();}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection();}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a);}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty()){return;}var a=this.getCursorPosition(),b=a.column;if(b==0){return;}var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow();},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1;},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow();},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a);},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2); +this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column);},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column);},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow());},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow());},this.scrollToRow=function(a){this.renderer.scrollToRow(a);},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b);},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0);},this.getCursorPosition=function(){return this.selection.getCursor();},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition());},this.getSelectionRange=function(){return this.selection.getRange();},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1;},this.clearSelection=function(){this.selection.clearSelection();},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b);},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a);},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0);},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b);},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0);},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0);},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorLeft();}}this.clearSelection();},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorRight();}}this.clearSelection();},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection();},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection();},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection();},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection();},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection();},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection();},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c));},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e){this.$tryReplace(c[e],a);}this.selection.setSelectionRange(d),this.$blockScrolling-=1;}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a;}return null;},this.getLastSearchOptions=function(){return this.$search.getOptions();},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find();},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find();},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find();},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b));},this.undo=function(){this.session.getUndoManager().undo();},this.redo=function(){this.session.getUndoManager().redo();},this.destroy=function(){this.renderer.destroy();};}).call(o.prototype),b.Editor=o;}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c;}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u()){return !1;}}}i=!1,j=!1,c.value=g,c.select();}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data);},0);},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l();},0);},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0);},p=function(){!h||b.onCompositionUpdate(c.value);},q=function(a){h=!1,b.onCompositionEnd();},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l();},0);},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l(); +},0);};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o());});}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n();}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault();}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a);}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur();}),d.addListener(c,"focus",function(){b.onFocus(),c.select();}),this.focus=function(){b.onFocus(),c.select(),c.focus();},this.blur=function(){c.blur();},this.isFocused=u,this.getElement=function(){return c;},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="");},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l();},0);};};b.TextInput=g;}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b);}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a);});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this));};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a;},this.getScrollSpeed=function(){return this.$scrollSpeed;},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e;},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2));},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h;}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return;}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return;}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a);},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g;},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return;}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return;}l.selection.setSelectionRange(a);}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f);}else{if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging");}}}p==i?F():p==h&&E();}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection){if(m.$clickSelection.contains(a.row,a.column)){l.selection.setSelectionRange(m.$clickSelection);}else{if(m.$clickSelection.compare(a.row,a.column)==-1){var b=m.$clickSelection.end;}else{var b=m.$clickSelection.start;}l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a);}}else{l.selection.selectToPosition(a);}l.renderer.scrollCursorIntoView();},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x);};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a);}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange());},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a);};}).call(l.prototype),b.MouseHandler=l; +}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1);}),e.addListener(a,"focus",function(a){b._setFocused(!0);});};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused;},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"));};}).call(g.prototype),b.BrowserFocus=g;}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null;};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a);},this.getKeyboardHandler=function(){return this.$keyboardHandler;},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command){b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};}var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i;},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c);},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0);};}).call(i.prototype),b.KeyBinding=i;}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"};}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll();}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines();}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d);}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines();}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext();}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious();}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d);}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replace(e,{needle:d});}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replaceAll(e,{needle:d});}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo();}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo();}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite();}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp();}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp();}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart();}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart();}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp();}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times);}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown();}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown();}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd();}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd();}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown();}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times);}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft();}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft();}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart();}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft(); +}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times);}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight();}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight();}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd();}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight();}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times);}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown();}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown();}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown();}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp();}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp();}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp();}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight();}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft();}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart();}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd();}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft();}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight();}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent();}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent();}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1));}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection();}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine();}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters();}});}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString();});return a;},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h);};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510;}d.implement(this,f),this.setDocument=function(a){if(this.doc){throw new Error("Document is already set");}this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this));},this.getDocument=function(){return this.doc;},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];}else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return;}}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row);},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a);},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset(); +},this.getValue=this.toString=function(){return this.doc.getValue();},this.getSelection=function(){return this.selection;},this.getState=function(a){return this.bgTokenizer.getState(a);},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b);},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[];},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager);}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t";},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a);},this.getUseSoftTabs=function(){return this.$useSoftTabs;},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"));},this.getTabSize=function(){return this.$tabSize;},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0;},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"));},this.getOverwrite=function(){return this.$overwrite;},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);},this.getBreakpoints=function(){return this.$breakpoints;},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do{f--;}while(f>=0&&c.charAt(f).match(e));f++;}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0){return{row:e,column:d};}}else{h==a&&(f+=1);}d-=1;}e-=1;if(e<0){break;}var g=this.getLine(e),d=g.length-1;}return null;},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h){break;}var g=this.getLine(e),d=0;}return null;},this.insert=function(a,b){return this.doc.insert(a,b);},this.remove=function(a){return this.doc.remove(a);},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--){delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds);},this);}this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c;}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1){return 0;}var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1;},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d;},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1));},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0){a=0,b=0;}else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b);}return{row:a,column:b};},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return !0;}return !1;},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a);},this.getWrapLimit=function(){return this.$wrapLimit;},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0){if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1;}for(l;l=h.row&&k.shiftRow(-c);}f=e;}else{var n; +if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c);}}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c);}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i;},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l){j=this.$getDisplayTokens(e.stringTrimRight(c[m]));}else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k){j.pop();}}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1;}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1;}).replace(/2/g,function(a){e-=1;}),i+=e,d.push(i),f=b;}if(a.length==0){return[];}var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k){l++;}j(l);continue;}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--){if(a[l]==g){break;}}if(l>f){j(l);continue;}l=f+b;for(l;l=g){l++;break;}}if(l>f){j(l);continue;}l=f+b,j(f+b);}return d;},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb){break;}}return[c,e];},this.getRowLength=function(a){return !this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1;},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight;},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length);},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c);},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10);},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined;},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize;},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row;},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column;},this.screenToDocumentPosition=function(a,b){if(a<0){return{row:0,column:0};}var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m){break;}h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h});}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e};},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined"){var c=this.$clipPositionToDocument(a.row,a.column);}else{c=this.$clipPositionToDocument(a,b);}a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1){return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1};}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a){break;}o=this.getNextFold(j),p=o?o.start.row:Infinity;}else{j=k+1;}f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f});}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s]){f++,s++;}q=q.substring(r[s-1]||0,q.length);}return{row:f,column:this.$getStringScreenWidth(q)[0]};},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column;},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row;},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column;},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b);},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"));},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0);},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn();},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column);},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this);},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b);});},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a);});},this.selectUp=function(){this.$moveSelection(this.moveCursorUp);},this.selectDown=function(){this.$moveSelection(this.moveCursorDown);},this.selectRight=function(){this.$moveSelection(this.moveCursorRight);},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft);},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart);},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd);},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd);},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart);},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight);},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft);},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b);},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0);});},this.moveCursorUp=function(){this.moveCursorBy(-1,0);},this.moveCursorDown=function(){this.moveCursorBy(1,0);},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1)){this.moveCursorTo(b.start.row,b.start.column);}else{if(a.column==0){a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);}else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1);}}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1)){this.moveCursorTo(b.end.row,b.end.column);}else{if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length){this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h)){return;}h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h)){return; +}var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c);}}),a.$search.set(k);}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b);}),a.session.$selectionOccurrences=[]);},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break;}}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange);};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column);},this.getDocument=function(){return this.document;},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row){return; +}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return;}}c.running=!1,c.fireUpdateEvent(b,f-1);}};};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0);},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop();},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c});},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700);},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1;},this.getTokens=function(a,b){return this.$tokenizeRows(a,b);},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state;},this.$tokenizeRows=function(a,b){if(!this.doc){return[];}var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++){if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h);}else{var h=this.lines[g];d=h.state,c.push(h);}}return c;};}).call(f.prototype),b.BackgroundTokenizer=f;}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d){return null;}var e=d.folds;for(var f=0;f=a){return e;}if(e.end.row>a){return null;}}return null;},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a){return f;}}return null;},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break;}g>=a&&(h>=a?d-=g-h:d-=g-a+1);}return d;},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row;});return a;},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f){var g=a;}else{g=new f(b,a);}var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2){throw"Placeholder has to be at least 2 characters";}if(h==j&&k-i<2){throw"The range has to be at least 2 characters width";}var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i)){return g;}l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i)){throw"A fold can't start inside of an already existing fold";}l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k)){throw"A fold can't end inside of an already existing fold";}if(j>=this.doc.getLength()){throw"End of fold is outside of the document.";}if(k>this.getLine(j).length||i>this.getLine(h).length){throw"End of fold is outside of the document."; +}var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow){throw"Can't add a fold to this FoldLine as it has no connection";}this.folds.push(a),this.folds.sort(function(a,b){return -a.range.compareEnd(b.start.row,b.start.column);}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column);}else{if(a.start.row==this.end.row){this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;}else{if(a.end.row==this.start.row){this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;}else{throw"Trying to add fold to FoldRow that doesn't have a matching row";}}}a.foldLine=this;},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row;},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j)){return !0;}}});}};},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c);},this.$assembleRegExp=function(){if(this.$options.regExp){var a=this.$options.needle;}else{a=d.escapeRegExp(this.$options.needle);}this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c;},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f;}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l){return;}b++,g=0;if(b>h){if(i){b=e,g=f,j=!0;}else{return;}}b==d.row&&(l=!0),c=k(b);}}};},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m){return;}j--,l=0;if(j0;},this.hasRedo=function(){return this.$redoStack.length>0;};}).call(d.prototype),b.UndoManager=d;}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL); +}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin();};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL);},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)));}},this.getScrollTop=function(){return this.scrollTop;},this.getScrollLeft=function(){return this.scroller.scrollLeft;},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight;},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1);},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight);},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f){break;}var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--){c.push("
                                                                          ¦
                                                                          ");}c.push("
                                                                          "),e++;}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";};}).call(e.prototype),b.Gutter=e;}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element);};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.setMarkers=function(a){this.markers=a;},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty()){continue;}f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a);}else{f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type);}}this.element=e.setInnerHtml(this.element,b.join(""));}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight;},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "));},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background"){var i=d.width;}else{i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);}var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ");};}).call(f.prototype),b.Marker=f;}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges();};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"; +},this.getLineHeight=function(){return this.$characterSize.height||1;},this.getCharacterWidth=function(){return this.$characterSize.width||1;},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}));},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges();},500);},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1000;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body){document.body.appendChild(b);}else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor")){d=d.parentNode;}d.appendChild(b);}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles){c[h]=g[h];}var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i;},this.setSession=function(a){this.session=a;},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a){return !1;}this.showInvisibles=a;return !0;},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "));}},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--){c.removeChild(c.firstChild);}}if(b.lastRow>a.lastRow){for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--){c.removeChild(c.lastChild);}}if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e);}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c){break;}var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups()){i.className="ace_line_group",d.appendChild(i);}else{var l=i.childNodes;while(l.length){d.appendChild(l[0]);}}f++;}return d;},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d){break;}this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++;}this.element=e.setInnerHtml(this.element,b.join(""));},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32){return Array(a.length+1).join(" ");}if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i];}if(a=="&"){return g.isOldGecko?"&":"&";}if(a=="<"){return"<";}if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+"";}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+"";}return" ";}b+=1;return""+a+"";},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"");}else{a.push(i);}return b+d.length;},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h){j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;}n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n));}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ");},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d);}else{this.$renderFoldLine(a,b,c,d);}},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1;}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1;}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d));}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d);},this.$useLineGroups=function(){return this.session.getUseWrapMode();},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode;};}).call(i.prototype),b.Text=i;}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1;};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId);},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer();},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible";},400);},1000);}},this.getPixelPosition=function(a){if(!this.config||!this.session){return{left:0,top:0};}var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e};},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer();},this.destroy=function(){clearInterval(this.blinkId);};}).call(e.prototype),b.Cursor=e;}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this));};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop});},this.getWidth=function(){return this.width;},this.setHeight=function(a){this.element.style.height=a+"px";},this.setInnerHeight=function(a){this.inner.style.height=a+"px";},this.setScrollTop=function(a){this.element.scrollTop=a;};}).call(h.prototype),b.ScrollBar=h;}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0;};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a);});}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback());}),this.attached=!0;}this.callback=a,window.postMessage(this.messageName,"*");}):this.setTimeoutZero=function(a){setTimeout(a,0);};}).call(e.prototype),b.RenderLoop=e;}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}"; +d.importCssString(e),b.cssClass="ace-tm";}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d};}var d=a("pilot/settings").settings;b.create=e;}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a; +});var Lang=A.Lang,BOUNDING_BOX="boundingBox",CONTENT_BOX="contentBox",EMPTY_STR="",HEIGHT="height",WIDTH="width",NAME="ace-ditor";var AceEditor=A.Component.create({NAME:NAME,EXTENDS:A.Widget,ATTRS:{height:{value:400},highlightActiveLine:{lazyAdd:false,getter:"_getHighlightActiveLine",setter:"_setHighlightActiveLine",value:true},readOnly:{lazyAdd:false,getter:"_getReadOnly",setter:"_setReadOnly",value:false},showPrintMargin:{lazyAdd:false,getter:"_getShowPrintMargin",setter:"_setShowPrintMargin",value:true},tabSize:{lazyAdd:false,getter:"_getTabSize",setter:"_setTabSize",value:4},useSoftTabs:{lazyAdd:false,getter:"_getUseSoftTabs",setter:"_setUseSoftTabs",value:true},useWrapMode:{lazyAdd:false,getter:"_getUseWrapMode",setter:"_setUseWrapMode",value:true},value:{lazyAdd:false,getter:"_getValue",setter:"_setValue",value:EMPTY_STR,},width:{value:800}},UI_ATTRS:[HEIGHT,WIDTH],prototype:{getEditor:function(){var instance=this;if(!instance.editor){var boundingBox=instance.get(BOUNDING_BOX);instance.editor=ace.edit(boundingBox.getDOM());}return instance.editor;},getSelection:function(){var instance=this;return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange());},getSession:function(){var instance=this;return instance.getEditor().getSession();},gotoLine:function(line){var instance=this;instance.getEditor().gotoLine(line);},insert:function(text){var instance=this;instance.getEditor().insert(text);},_getHighlightActiveLine:function(){var instance=this;return instance.getEditor().getHighlightActiveLine();},_getReadOnly:function(){var instance=this;return instance.getEditor().getReadOnly();},_getShowPrintMargin:function(){var instance=this;return instance.getEditor().getShowPrintMargin();},_getTabSize:function(){var instance=this;return instance.getSession().getTabSize();},_getUseSoftTabs:function(){var instance=this;return instance.getSession().getUseSoftTabs();},_getUseWrapMode:function(){var instance=this;return instance.getSession().getUseWrapMode();},_getValue:function(){var instance=this;return instance.getSession().getValue();},_setHighlightActiveLine:function(value){var instance=this;instance.getEditor().setHighlightActiveLine(value);},_setReadOnly:function(value){var instance=this;instance.getEditor().setReadOnly(value);},_setShowPrintMargin:function(value){var instance=this;instance.getEditor().setShowPrintMargin(value);},_setTabSize:function(value){var instance=this;instance.getSession().setTabSize(value);},_setUseSoftTabs:function(value){var instance=this;instance.getSession().setUseSoftTabs(value);},_setUseWrapMode:function(value){var instance=this;instance.getSession().setUseWrapMode(value);},_setValue:function(value){var instance=this;instance.getSession().setValue(value);},_uiSetHeight:function(){var instance=this;A.AceEditor.superclass._uiSetHeight.apply(instance,arguments);instance.getEditor().resize();},_uiSetWidth:function(){var instance=this;A.AceEditor.superclass._uiSetWidth.apply(instance,arguments);instance.getEditor().resize();}}});A.AceEditor=AceEditor;},"@VERSION@",{skinnable:false,requires:["aui-component","aui-node"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-base.js b/build/aui-ace-editor/aui-ace-editor-base.js new file mode 100644 index 00000000000..b5d3e3f03ab --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-base.js @@ -0,0 +1,225 @@ +AUI.add('aui-ace-editor-base', function(A) { +(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push("
                                                                          "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +var Lang = A.Lang, + + BOUNDING_BOX = 'boundingBox', + CONTENT_BOX = 'contentBox', + EMPTY_STR = '', + HEIGHT = 'height', + WIDTH = 'width', + + NAME = 'ace-ditor'; + +var AceEditor = A.Component.create( + { + NAME: NAME, + + EXTENDS: A.Widget, + + ATTRS: { + + height: { + value: 400 + }, + + highlightActiveLine: { + lazyAdd: false, + getter: '_getHighlightActiveLine', + setter: '_setHighlightActiveLine', + value: true + }, + + readOnly: { + lazyAdd: false, + getter: '_getReadOnly', + setter: '_setReadOnly', + value: false + }, + + showPrintMargin: { + lazyAdd: false, + getter: '_getShowPrintMargin', + setter: '_setShowPrintMargin', + value: true + }, + + tabSize: { + lazyAdd: false, + getter: '_getTabSize', + setter: '_setTabSize', + value: 4 + }, + + useSoftTabs: { + lazyAdd: false, + getter: '_getUseSoftTabs', + setter: '_setUseSoftTabs', + value: true + }, + + useWrapMode: { + lazyAdd: false, + getter: '_getUseWrapMode', + setter: '_setUseWrapMode', + value: true + }, + + value: { + lazyAdd: false, + getter: '_getValue', + setter: '_setValue', + value: EMPTY_STR, + }, + + width: { + value: 800 + } + + }, + + UI_ATTRS: [HEIGHT, WIDTH], + + prototype: { + + getEditor: function() { + var instance = this; + + if (!instance.editor) { + var boundingBox = instance.get(BOUNDING_BOX); + + instance.editor = ace.edit(boundingBox.getDOM()); + } + + return instance.editor; + }, + + getSelection: function() { + var instance = this; + + return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange()) + }, + + getSession: function() { + var instance = this; + + return instance.getEditor().getSession(); + }, + + gotoLine: function(line) { + var instance = this; + + instance.getEditor().gotoLine(line); + }, + + insert: function(text) { + var instance = this; + + instance.getEditor().insert(text); + }, + + _getHighlightActiveLine: function() { + var instance = this; + + return instance.getEditor().getHighlightActiveLine(); + }, + + _getReadOnly: function() { + var instance = this; + + return instance.getEditor().getReadOnly(); + }, + + _getShowPrintMargin: function() { + var instance = this; + + return instance.getEditor().getShowPrintMargin(); + }, + + _getTabSize: function() { + var instance = this; + + return instance.getSession().getTabSize(); + }, + + _getUseSoftTabs: function() { + var instance = this; + + return instance.getSession().getUseSoftTabs(); + }, + + _getUseWrapMode: function() { + var instance = this; + + return instance.getSession().getUseWrapMode(); + }, + + _getValue: function() { + var instance = this; + + return instance.getSession().getValue(); + }, + + _setHighlightActiveLine: function(value) { + var instance = this; + + instance.getEditor().setHighlightActiveLine(value); + }, + + _setReadOnly: function(value) { + var instance = this; + + instance.getEditor().setReadOnly(value) + }, + + _setShowPrintMargin: function(value) { + var instance = this; + + instance.getEditor().setShowPrintMargin(value); + }, + + _setTabSize: function(value) { + var instance = this; + + instance.getSession().setTabSize(value); + }, + + _setUseSoftTabs: function(value) { + var instance = this; + + instance.getSession().setUseSoftTabs(value); + }, + + _setUseWrapMode: function(value) { + var instance = this; + + instance.getSession().setUseWrapMode(value); + }, + + _setValue: function(value) { + var instance = this; + + instance.getSession().setValue(value); + }, + + _uiSetHeight: function() { + var instance = this; + + A.AceEditor.superclass._uiSetHeight.apply(instance, arguments); + + instance.getEditor().resize(); + }, + + _uiSetWidth: function() { + var instance = this; + + A.AceEditor.superclass._uiSetWidth.apply(instance, arguments); + + instance.getEditor().resize(); + } + } + } +); + +A.AceEditor = AceEditor; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-component', 'aui-node']}); diff --git a/build/aui-ace-editor/aui-ace-editor-cockpit-debug.js b/build/aui-ace-editor/aui-ace-editor-cockpit-debug.js new file mode 100644 index 00000000000..0dd54e2966e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-cockpit-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-cockpit', function(A) { +define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c)}}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags)}function q(a){this.env=a,this.commandAssignment=new o(p,this)}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue)}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number")this.start=c,this.end=d,this.predictions=e;else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p)},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0)return d}return c.status-a.status}),b!==undefined&&a.forEach(function(a){delete a.distance},this);return a},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter)throw new Error("Can't merge Arguments from different EventEmitters");return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix)},setText:function(a){if(a==null)throw new Error("Illegal text for Argument: "+a);var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b)},toString:function(){return this.prefix+this.text+this.suffix}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f)},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0])},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a)},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a)},toString:function(){return this.arg?this.arg.toString():""}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]")},this),c.push("
                                                                          "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                          "),a.params&&a.params.length>0&&(c.push("
                                                                            "),a.params.forEach(function(a){c.push("
                                                                          • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                          • ")},this),c.push("
                                                                          "));return new l(i.VALID,c.join(""),b)}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this)},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}))},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b]},getParameterNames:function(){return Object.keys(this._assignments)},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a]},this)},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint())},this),l.sort(this._hints)},getWorstHint:function(){return this._hints[0]},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value},this);return a},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a))},this);return b},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined)},this)},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString())},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)))},this);return a.join("")}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints()},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++)b.status>a[c]&&(a[c]=b.status)},this);return a},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString()},this).join("")};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID)},this),l.sort(this._hints)},r.prototype.getHints=function(){return this._hints},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""))}else if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o))}break}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j=""}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}}h++}return k},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value)break;if(this.commandAssignment.value.exec){for(var d=0;d=a.length)break;continue}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g))}}}}(),b.CliRequisition=r}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i)},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i)}}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update())}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup")}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px"}.bind(this);this.outputHeight.addEventListener("change",b),b()}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this)}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup")}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this)},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px")},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN)d=!0;else if(b!=0||c!=0)d=h.execKeyCommand(this.env,"cli",b,c);d&&e.stopEvent(a)},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end))}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString());var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d)}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e)}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | "},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break}d!==a[c]&&(b+="")}return b},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e}}},b.CliView=n}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this))}function k(b){var d;try{d=a("text!cockpit/ui/"+b)}catch(e){}if(d)return d;var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b}return f+b}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec()},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a)},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1e3+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b)},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block"}},b.RequestView=l}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[]}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined)b={};this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return}if(a.hasAttribute("if")&&!this.processIf(a,b))return;b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a))},this),a.parentNode.removeChild(a))},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a}return a.slice(2,-1)},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments)}:d}if(!d){this.handleError("Can't find path="+a);return null}return this.property(a.slice(1),d,c)}finally{this.scope.pop()}},Templater.prototype.envEval=function(script,env,context){with(env)try{this.scope.push(context);return eval(script)}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script}finally{this.scope.pop()}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b)},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a)},exports.Templater=Templater}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                          "+d.responseText+"
                                                                          ")},d.send(null)}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e)},b.shutdown=function(a,b){d.removeCommand(e)}}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                          >
                                                                          ${request.typed}
                                                                          Hide command output Show command output Remove this command from the history
                                                                          '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA==") + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-cockpit-min.js b/build/aui-ace-editor/aui-ace-editor-cockpit-min.js new file mode 100644 index 00000000000..5d48733e224 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-cockpit-min.js @@ -0,0 +1,6 @@ +AUI.add("aui-ace-editor-cockpit",function(A){define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c);};}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags);}function q(a){this.env=a,this.commandAssignment=new o(p,this);}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue);}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f;}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions;}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number"){this.start=c,this.end=d,this.predictions=e;}else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions;}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p);},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0;},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0){return d;}}return c.status-a.status;}),b!==undefined&&a.forEach(function(a){delete a.distance;},this);return a;},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter){throw new Error("Can't merge Arguments from different EventEmitters");}return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix);},setText:function(a){if(a==null){throw new Error("Illegal text for Argument: "+a);}var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b);},toString:function(){return this.prefix+this.text+this.suffix;}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f);},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0]);},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1;},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a);},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a);},toString:function(){return this.arg?this.arg.toString():"";}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]");},this),c.push("
                                                                          "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                          "),a.params&&a.params.length>0&&(c.push("
                                                                            "),a.params.forEach(function(a){c.push("
                                                                          • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                          • ");},this),c.push("
                                                                          "));return new l(i.VALID,c.join(""),b);}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this);},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}));},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b];},getParameterNames:function(){return Object.keys(this._assignments);},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a]; +},this);},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint());},this),l.sort(this._hints);},getWorstHint:function(){return this._hints[0];},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value;},this);return a;},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a));},this);return b;},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined);},this);},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString());},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)));},this);return a.join("");}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints();},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID;});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++){b.status>a[c]&&(a[c]=b.status);}},this);return a;},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString();},this).join("");};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID);},this),l.sort(this._hints);},r.prototype.getHints=function(){return this._hints;},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""));}else{if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o));}}break;}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j="";}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j="";}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j="";}}h++;}return k;},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value){break;}if(this.commandAssignment.value.exec){for(var d=0;d=a.length){break;}continue;}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g));}}};}(),b.CliRequisition=r;}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i);},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i);};}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update()); +}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c;},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup");}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px";}.bind(this);this.outputHeight.addEventListener("change",b),b();}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this);}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1;}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup");}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this);},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight;},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px");},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN){d=!0;}else{if(b!=0||c!=0){d=h.execKeyCommand(this.env,"cli",b,c);}}d&&e.stopEvent(a);},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end));}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b;},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString());var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d);}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e);}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | ";},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1;},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break;}d!==a[c]&&(b+="");}return b;},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e;}}},b.CliView=n;}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this)); +}function k(b){var d;try{d=a("text!cockpit/ui/"+b);}catch(e){}if(d){return d;}var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b;}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b;}return f+b;}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed;},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec();},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a);},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a);},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a);},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1000+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b);},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block";}},b.RequestView=l;}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[];}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined){b={};}this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return;}if(a.hasAttribute("if")&&!this.processIf(a,b)){return;}b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a));},this),a.parentNode.removeChild(a));},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a;}return a.slice(2,-1);},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments);}:d;}if(!d){this.handleError("Can't find path="+a);return null;}return this.property(a.slice(1),d,c);}finally{this.scope.pop();}},Templater.prototype.envEval=function(script,env,context){with(env){try{this.scope.push(context);return eval(script);}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script;}finally{this.scope.pop();}}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b);},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a);},exports.Templater=Templater;}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest; +d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                          "+d.responseText+"
                                                                          ");},d.send(null);}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e);},b.shutdown=function(a,b){d.removeCommand(e);};}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                          >
                                                                          ${request.typed}
                                                                          Hide command output Show command output Remove this command from the history
                                                                          '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); +},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-debug.js b/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-debug.js new file mode 100644 index 00000000000..b0efb739ffe --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-debug.js @@ -0,0 +1,2507 @@ +AUI.add('aui-ace-editor-cockpit-uncompressed', function(A) { +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Kevin Dangoor (kdangoor@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/index', ['require', 'exports', 'module' , 'pilot/index', 'cockpit/cli', 'cockpit/ui/settings', 'cockpit/ui/cli_view', 'cockpit/commands/basic'], function(require, exports, module) { + + +exports.startup = function(data, reason) { + require('pilot/index'); + require('cockpit/cli').startup(data, reason); + // window.testCli = require('cockpit/test/testCli'); + + require('cockpit/ui/settings').startup(data, reason); + require('cockpit/ui/cli_view').startup(data, reason); + require('cockpit/commands/basic').startup(data, reason); +}; + +/* +exports.shutdown(data, reason) { +}; +*/ + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/cli', ['require', 'exports', 'module' , 'pilot/console', 'pilot/lang', 'pilot/oop', 'pilot/event_emitter', 'pilot/types', 'pilot/canon'], function(require, exports, module) { + + +var console = require('pilot/console'); +var lang = require('pilot/lang'); +var oop = require('pilot/oop'); +var EventEmitter = require('pilot/event_emitter').EventEmitter; + +//var keyboard = require('keyboard/keyboard'); +var types = require('pilot/types'); +var Status = require('pilot/types').Status; +var Conversion = require('pilot/types').Conversion; +var canon = require('pilot/canon'); + +/** + * Normally type upgrade is done when the owning command is registered, but + * out commandParam isn't part of a command, so it misses out. + */ +exports.startup = function(data, reason) { + canon.upgradeType('command', commandParam); +}; + +/** + * The information required to tell the user there is a problem with their + * input. + * TODO: There a several places where {start,end} crop up. Perhaps we should + * have a Cursor object. + */ +function Hint(status, message, start, end, predictions) { + this.status = status; + this.message = message; + + if (typeof start === 'number') { + this.start = start; + this.end = end; + this.predictions = predictions; + } + else { + var arg = start; + this.start = arg.start; + this.end = arg.end; + this.predictions = arg.predictions; + } +} +Hint.prototype = { +}; +/** + * Loop over the array of hints finding the one we should display. + * @param hints array of hints + */ +Hint.sort = function(hints, cursor) { + // Calculate 'distance from cursor' + if (cursor !== undefined) { + hints.forEach(function(hint) { + if (hint.start === Argument.AT_CURSOR) { + hint.distance = 0; + } + else if (cursor < hint.start) { + hint.distance = hint.start - cursor; + } + else if (cursor > hint.end) { + hint.distance = cursor - hint.end; + } + else { + hint.distance = 0; + } + }, this); + } + // Sort + hints.sort(function(hint1, hint2) { + // Compare first based on distance from cursor + if (cursor !== undefined) { + var diff = hint1.distance - hint2.distance; + if (diff != 0) { + return diff; + } + } + // otherwise go with hint severity + return hint2.status - hint1.status; + }); + // tidy-up + if (cursor !== undefined) { + hints.forEach(function(hint) { + delete hint.distance; + }, this); + } + return hints; +}; +exports.Hint = Hint; + +/** + * A Hint that arose as a result of a Conversion + */ +function ConversionHint(conversion, arg) { + this.status = conversion.status; + this.message = conversion.message; + if (arg) { + this.start = arg.start; + this.end = arg.end; + } + else { + this.start = 0; + this.end = 0; + } + this.predictions = conversion.predictions; +}; +oop.inherits(ConversionHint, Hint); + + +/** + * We record where in the input string an argument comes so we can report errors + * against those string positions. + * We publish a 'change' event when-ever the text changes + * @param emitter Arguments use something else to pass on change events. + * Currently this will be the creating Requisition. This prevents dependency + * loops and prevents us from needing to merge listener lists. + * @param text The string (trimmed) that contains the argument + * @param start The position of the text in the original input string + * @param end See start + * @param prefix Knowledge of quotation marks and whitespace used prior to the + * text in the input string allows us to re-generate the original input from + * the arguments. + * @param suffix Any quotation marks and whitespace used after the text. + * Whitespace is normally placed in the prefix to the succeeding argument, but + * can be used here when this is the last argument. + * @constructor + */ +function Argument(emitter, text, start, end, prefix, suffix) { + this.emitter = emitter; + this.setText(text); + this.start = start; + this.end = end; + this.prefix = prefix; + this.suffix = suffix; +} +Argument.prototype = { + /** + * Return the result of merging these arguments. + * TODO: What happens when we're merging arguments for the single string + * case and some of the arguments are in quotation marks? + */ + merge: function(following) { + if (following.emitter != this.emitter) { + throw new Error('Can\'t merge Arguments from different EventEmitters'); + } + return new Argument( + this.emitter, + this.text + this.suffix + following.prefix + following.text, + this.start, following.end, + this.prefix, + following.suffix); + }, + + /** + * See notes on events in Assignment. We might need to hook changes here + * into a CliRequisition so they appear of the command line. + */ + setText: function(text) { + if (text == null) { + throw new Error('Illegal text for Argument: ' + text); + } + var ev = { argument: this, oldText: this.text, text: text }; + this.text = text; + this.emitter._dispatchEvent('argumentChange', ev); + }, + + /** + * Helper when we're putting arguments back together + */ + toString: function() { + // TODO: There is a bug here - we should re-escape escaped characters + // But can we do that reliably? + return this.prefix + this.text + this.suffix; + } +}; + +/** + * Merge an array of arguments into a single argument. + * All Arguments in the array are expected to have the same emitter + */ +Argument.merge = function(argArray, start, end) { + start = (start === undefined) ? 0 : start; + end = (end === undefined) ? argArray.length : end; + + var joined; + for (var i = start; i < end; i++) { + var arg = argArray[i]; + if (!joined) { + joined = arg; + } + else { + joined = joined.merge(arg); + } + } + return joined; +}; + +/** + * We sometimes need a way to say 'this error occurs where ever the cursor is' + */ +Argument.AT_CURSOR = -1; + + +/** + * A link between a parameter and the data for that parameter. + * The data for the parameter is available as in the preferred type and as + * an Argument for the CLI. + *

                                                                          We also record validity information where applicable. + *

                                                                          For values, null and undefined have distinct definitions. null means + * that a value has been provided, undefined means that it has not. + * Thus, null is a valid default value, and common because it identifies an + * parameter that is optional. undefined means there is no value from + * the command line. + * @constructor + */ +function Assignment(param, requisition) { + this.param = param; + this.requisition = requisition; + this.setValue(param.defaultValue); +}; +Assignment.prototype = { + /** + * The parameter that we are assigning to + * @readonly + */ + param: undefined, + + /** + * Report on the status of the last parse() conversion. + * @see types.Conversion + */ + conversion: undefined, + + /** + * The current value in a type as specified by param.type + */ + value: undefined, + + /** + * The string version of the current value + */ + arg: undefined, + + /** + * The current value (i.e. not the string representation) + * Use setValue() to mutate + */ + value: undefined, + setValue: function(value) { + if (this.value === value) { + return; + } + + if (value === undefined) { + this.value = this.param.defaultValue; + this.conversion = this.param.getDefault ? + this.param.getDefault() : + this.param.type.getDefault(); + this.arg = undefined; + } else { + this.value = value; + this.conversion = undefined; + var text = (value == null) ? '' : this.param.type.stringify(value); + if (this.arg) { + this.arg.setText(text); + } + } + + this.requisition._assignmentChanged(this); + }, + + /** + * The textual representation of the current value + * Use setValue() to mutate + */ + arg: undefined, + setArgument: function(arg) { + if (this.arg === arg) { + return; + } + this.arg = arg; + this.conversion = this.param.type.parse(arg.text); + this.conversion.arg = arg; // TODO: make this automatic? + this.value = this.conversion.value; + this.requisition._assignmentChanged(this); + }, + + /** + * Create a list of the hints associated with this parameter assignment. + * Generally there will be only one hint generated because we're currently + * only displaying one hint at a time, ordering by distance from cursor + * and severity. Since distance from cursor will be the same for all hints + * from this assignment all but the most severe will ever be used. It might + * make sense with more experience to alter this to function to be getHint() + */ + getHint: function() { + // Allow the parameter to provide documentation + if (this.param.getCustomHint && this.value && this.arg) { + var hint = this.param.getCustomHint(this.value, this.arg); + if (hint) { + return hint; + } + } + + // If there is no argument, use the cursor position + var message = '' + this.param.name + ': '; + if (this.param.description) { + // TODO: This should be a short description - do we need to trim? + message += this.param.description.trim(); + + // Ensure the help text ends with '. ' + if (message.charAt(message.length - 1) !== '.') { + message += '.'; + } + if (message.charAt(message.length - 1) !== ' ') { + message += ' '; + } + } + var status = Status.VALID; + var start = this.arg ? this.arg.start : Argument.AT_CURSOR; + var end = this.arg ? this.arg.end : Argument.AT_CURSOR; + var predictions; + + // Non-valid conversions will have useful information to pass on + if (this.conversion) { + status = this.conversion.status; + if (this.conversion.message) { + message += this.conversion.message; + } + predictions = this.conversion.predictions; + } + + // Hint if the param is required, but not provided + var argProvided = this.arg && this.arg.text !== ''; + var dataProvided = this.value !== undefined || argProvided; + if (this.param.defaultValue === undefined && !dataProvided) { + status = Status.INVALID; + message += 'Required<\strong>'; + } + + return new Hint(status, message, start, end, predictions); + }, + + /** + * Basically setValue(conversion.predictions[0]) done in a safe + * way. + */ + complete: function() { + if (this.conversion && this.conversion.predictions && + this.conversion.predictions.length > 0) { + this.setValue(this.conversion.predictions[0]); + } + }, + + /** + * If the cursor is at 'position', do we have sufficient data to start + * displaying the next hint. This is both complex and important. + * For example, if the user has just typed:

                                                                            + *
                                                                          • 'set tabstop ' then they clearly want to know about the valid + * values for the tabstop setting, so the hint is based on the next + * parameter. + *
                                                                          • 'set tabstop' (without trailing space) - they will probably still + * want to know about the valid values for the tabstop setting because + * there is no confusion about the setting in question. + *
                                                                          • 'set tabsto' they've not finished typing a setting name so the hint + * should be based on the current parameter. + *
                                                                          • 'set tabstop' (when there is an additional tabstopstyle setting) we + * can't make assumptions about the setting - we're not finished. + *
                                                                          + *

                                                                          Note that the input for 2 and 4 is identical, only the configuration + * has changed, so hint display is environmental. + * + *

                                                                          This function works out if the cursor is before the end of this + * assignment (assuming that we've asked the same thing of the previous + * assignment) and then attempts to work out if we should use the hint from + * the next assignment even though technically the cursor is still inside + * this one due to the rules above. + */ + isPositionCaptured: function(position) { + if (!this.arg) { + return false; + } + + // Note we don't check if position >= this.arg.start because that's + // implied by the fact that we're asking the assignments in turn, and + // we want to avoid thing falling between the cracks, but we do need + // to check that the argument does have a position + if (this.arg.start === -1) { + return false; + } + + // We're clearly done if the position is past the end of the text + if (position > this.arg.end) { + return false; + } + + // If we're AT the end, the position is captured if either the status + // is not valid or if there are other valid options including current + if (position === this.arg.end) { + return this.conversion.status !== Status.VALID || + this.conversion.predictions.length !== 0; + } + + // Otherwise we're clearly inside + return true; + }, + + /** + * Replace the current value with the lower value if such a concept + * exists. + */ + decrement: function() { + var replacement = this.param.type.decrement(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Replace the current value with the higher value if such a concept + * exists. + */ + increment: function() { + var replacement = this.param.type.increment(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Helper when we're rebuilding command lines. + */ + toString: function() { + return this.arg ? this.arg.toString() : ''; + } +}; +exports.Assignment = Assignment; + + +/** + * This is a special parameter to reflect the command itself. + */ +var commandParam = { + name: '__command', + type: 'command', + description: 'The command to execute', + + /** + * Provide some documentation for a command. + */ + getCustomHint: function(command, arg) { + var docs = []; + docs.push(' > '); + docs.push(command.name); + if (command.params && command.params.length > 0) { + command.params.forEach(function(param) { + if (param.defaultValue === undefined) { + docs.push(' [' + param.name + ']'); + } + else { + docs.push(' [' + param.name + ']'); + } + }, this); + } + docs.push('
                                                                          '); + + docs.push(command.description ? command.description : '(No description)'); + docs.push('
                                                                          '); + + if (command.params && command.params.length > 0) { + docs.push('

                                                                            '); + command.params.forEach(function(param) { + docs.push('
                                                                          • '); + docs.push('' + param.name + ': '); + docs.push(param.description ? param.description : '(No description)'); + if (param.defaultValue === undefined) { + docs.push(' [Required]'); + } + else if (param.defaultValue === null) { + docs.push(' [Optional]'); + } + else { + docs.push(' [Default: ' + param.defaultValue + ']'); + } + docs.push('
                                                                          • '); + }, this); + docs.push('
                                                                          '); + } + + return new Hint(Status.VALID, docs.join(''), arg); + } +}; + +/** + * A Requisition collects the information needed to execute a command. + * There is no point in a requisition for parameter-less commands because there + * is no information to collect. A Requisition is a collection of assignments + * of values to parameters, each handled by an instance of Assignment. + * CliRequisition adds functions for parsing input from a command line to this + * class. + *

                                                                          Events

                                                                          + * We publish the following events:
                                                                            + *
                                                                          • argumentChange: The text of some argument has changed. It is likely that + * any UI component displaying this argument will need to be updated. (Note that + * this event is actually published by the Argument itself - see the docs for + * Argument for more details) + * The event object looks like: { argument: A, oldText: B, text: B } + *
                                                                          • commandChange: The command has changed. It is likely that a UI + * structure will need updating to match the parameters of the new command. + * The event object looks like { command: A } + * @constructor + */ +function Requisition(env) { + this.env = env; + this.commandAssignment = new Assignment(commandParam, this); +} + +Requisition.prototype = { + /** + * The command that we are about to execute. + * @see setCommandConversion() + * @readonly + */ + commandAssignment: undefined, + + /** + * The count of assignments. Excludes the commandAssignment + * @readonly + */ + assignmentCount: undefined, + + /** + * The object that stores of Assignment objects that we are filling out. + * The Assignment objects are stored under their param.name for named + * lookup. Note: We make use of the property of Javascript objects that + * they are not just hashmaps, but linked-list hashmaps which iterate in + * insertion order. + * Excludes the commandAssignment. + */ + _assignments: undefined, + + /** + * The store of hints generated by the assignments. We are trying to prevent + * the UI from needing to access this in broad form, but instead use + * methods that query part of this structure. + */ + _hints: undefined, + + /** + * When the command changes, we need to keep a bunch of stuff in sync + */ + _assignmentChanged: function(assignment) { + // This is all about re-creating Assignments + if (assignment.param.name !== '__command') { + return; + } + + this._assignments = {}; + + if (assignment.value) { + assignment.value.params.forEach(function(param) { + this._assignments[param.name] = new Assignment(param, this); + }, this); + } + + this.assignmentCount = Object.keys(this._assignments).length; + this._dispatchEvent('commandChange', { command: assignment.value }); + }, + + /** + * Assignments have an order, so we need to store them in an array. + * But we also need named access ... + */ + getAssignment: function(nameOrNumber) { + var name = (typeof nameOrNumber === 'string') ? + nameOrNumber : + Object.keys(this._assignments)[nameOrNumber]; + return this._assignments[name]; + }, + + /** + * Where parameter name == assignment names - they are the same. + */ + getParameterNames: function() { + return Object.keys(this._assignments); + }, + + /** + * A *shallow* clone of the assignments. + * This is useful for systems that wish to go over all the assignments + * finding values one way or another and wish to trim an array as they go. + */ + cloneAssignments: function() { + return Object.keys(this._assignments).map(function(name) { + return this._assignments[name]; + }, this); + }, + + /** + * Collect the statuses from the Assignments. + * The hints returned are sorted by severity + */ + _updateHints: function() { + // TODO: work out when to clear this out for the plain Requisition case + // this._hints = []; + this.getAssignments(true).forEach(function(assignment) { + this._hints.push(assignment.getHint()); + }, this); + Hint.sort(this._hints); + + // We would like to put some initial help here, but for anyone but + // a complete novice a 'type help' message is very annoying, so we + // need to find a way to only display this message once, or for + // until the user click a 'close' button or similar + // TODO: Add special case for '' input + }, + + /** + * Returns the most severe status + */ + getWorstHint: function() { + return this._hints[0]; + }, + + /** + * Extract the names and values of all the assignments, and return as + * an object. + */ + getArgsObject: function() { + var args = {}; + this.getAssignments().forEach(function(assignment) { + args[assignment.param.name] = assignment.value; + }, this); + return args; + }, + + /** + * Access the arguments as an array. + * @param includeCommand By default only the parameter arguments are + * returned unless (includeCommand === true), in which case the list is + * prepended with commandAssignment.arg + */ + getAssignments: function(includeCommand) { + var args = []; + if (includeCommand === true) { + args.push(this.commandAssignment); + } + Object.keys(this._assignments).forEach(function(name) { + args.push(this.getAssignment(name)); + }, this); + return args; + }, + + /** + * Reset all the assignments to their default values + */ + setDefaultValues: function() { + this.getAssignments().forEach(function(assignment) { + assignment.setValue(undefined); + }, this); + }, + + /** + * Helper to call canon.exec + */ + exec: function() { + canon.exec(this.commandAssignment.value, + this.env, + "cli", + this.getArgsObject(), + this.toCanonicalString()); + }, + + /** + * Extract a canonical version of the input + */ + toCanonicalString: function() { + var line = []; + line.push(this.commandAssignment.value.name); + Object.keys(this._assignments).forEach(function(name) { + var assignment = this._assignments[name]; + var type = assignment.param.type; + // TODO: This will cause problems if there is a non-default value + // after a default value. Also we need to decide when to use + // named parameters in place of positional params. Both can wait. + if (assignment.value !== assignment.param.defaultValue) { + line.push(' '); + line.push(type.stringify(assignment.value)); + } + }, this); + return line.join(''); + } +}; +oop.implement(Requisition.prototype, EventEmitter); +exports.Requisition = Requisition; + + +/** + * An object used during command line parsing to hold the various intermediate + * data steps. + *

                                                                            The 'output' of the update is held in 2 objects: input.hints which is an + * array of hints to display to the user. In the future this will become a + * single value. + *

                                                                            The other output value is input.requisition which gives access to an + * args object for use in executing the final command. + * + *

                                                                            The majority of the functions in this class are called in sequence by the + * constructor. Their task is to add to hints fill out the requisition. + *

                                                                            The general sequence is:

                                                                              + *
                                                                            • _tokenize(): convert _typed into _parts + *
                                                                            • _split(): convert _parts into _command and _unparsedArgs + *
                                                                            • _assign(): convert _unparsedArgs into requisition + *
                                                                            + * + * @param typed {string} The instruction as typed by the user so far + * @param options {object} A list of optional named parameters. Can be any of: + * flags: Flags for us to check against the predicates specified with the + * commands. Defaulted to keyboard.buildFlags({ }); + * if not specified. + * @constructor + */ +function CliRequisition(env, options) { + Requisition.call(this, env); + + if (options && options.flags) { + /** + * TODO: We were using a default of keyboard.buildFlags({ }); + * This allowed us to have commands that only existed in certain contexts + * - i.e. Javascript specific commands. + */ + this.flags = options.flags; + } +} +oop.inherits(CliRequisition, Requisition); +(function() { + /** + * Called by the UI when ever the user interacts with a command line input + * @param input A structure that details the state of the input field. + * It should look something like: { typed:a, cursor: { start:b, end:c } } + * Where a is the contents of the input field, and b and c are the start + * and end of the cursor/selection respectively. + */ + CliRequisition.prototype.update = function(input) { + this.input = input; + this._hints = []; + + var args = this._tokenize(input.typed); + this._split(args); + + if (this.commandAssignment.value) { + this._assign(args); + } + + this._updateHints(); + }; + + /** + * Return an array of Status scores so we can create a marked up + * version of the command line input. + */ + CliRequisition.prototype.getInputStatusMarkup = function() { + // 'scores' is an array which tells us what chars are errors + // Initialize with everything VALID + var scores = this.toString().split('').map(function(ch) { + return Status.VALID; + }); + // For all chars in all hints, check and upgrade the score + this._hints.forEach(function(hint) { + for (var i = hint.start; i <= hint.end; i++) { + if (hint.status > scores[i]) { + scores[i] = hint.status; + } + } + }, this); + return scores; + }; + + /** + * Reconstitute the input from the args + */ + CliRequisition.prototype.toString = function() { + return this.getAssignments(true).map(function(assignment) { + return assignment.toString(); + }, this).join(''); + }; + + var superUpdateHints = CliRequisition.prototype._updateHints; + /** + * Marks up hints in a number of ways: + * - Makes INCOMPLETE hints that are not near the cursor INVALID since + * they can't be completed by typing + * - Finds the most severe hint, and annotates the array with it + * - Finds the hint to display, and also annotates the array with it + * TODO: I'm wondering if array annotation is evil and we should replace + * this with an object. Need to find out more. + */ + CliRequisition.prototype._updateHints = function() { + superUpdateHints.call(this); + + // Not knowing about cursor positioning, the requisition and assignments + // can't know this, but anything they mark as INCOMPLETE is actually + // INVALID unless the cursor is actually inside that argument. + var c = this.input.cursor; + this._hints.forEach(function(hint) { + var startInHint = c.start >= hint.start && c.start <= hint.end; + var endInHint = c.end >= hint.start && c.end <= hint.end; + var inHint = startInHint || endInHint; + if (!inHint && hint.status === Status.INCOMPLETE) { + hint.status = Status.INVALID; + } + }, this); + + Hint.sort(this._hints); + }; + + /** + * Accessor for the hints array. + * While we could just use the hints property, using getHints() is + * preferred for symmetry with Requisition where it needs a function due to + * lack of an atomic update system. + */ + CliRequisition.prototype.getHints = function() { + return this._hints; + }; + + /** + * Look through the arguments attached to our assignments for the assignment + * at the given position. + */ + CliRequisition.prototype.getAssignmentAt = function(position) { + var assignments = this.getAssignments(true); + for (var i = 0; i < assignments.length; i++) { + var assignment = assignments[i]; + if (!assignment.arg) { + // There is no argument in this assignment, we've fallen off + // the end of the obvious answers - it must be this one. + return assignment; + } + if (assignment.isPositionCaptured(position)) { + return assignment; + } + } + + return assignment; + }; + + /** + * Split up the input taking into account ' and " + */ + CliRequisition.prototype._tokenize = function(typed) { + // For blank input, place a dummy empty argument into the list + if (typed == null || typed.length === 0) { + return [ new Argument(this, '', 0, 0, '', '') ]; + } + + var OUTSIDE = 1; // The last character was whitespace + var IN_SIMPLE = 2; // The last character was part of a parameter + var IN_SINGLE_Q = 3; // We're inside a single quote: ' + var IN_DOUBLE_Q = 4; // We're inside double quotes: " + + var mode = OUTSIDE; + + // First we un-escape. This list was taken from: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Unicode + // We are generally converting to their real values except for \', \" + // and '\ ' which we are converting to unicode private characters so we + // can distinguish them from ', " and ' ', which have special meaning. + // They need swapping back post-split - see unescape2() + typed = typed + .replace(/\\\\/g, '\\') + .replace(/\\b/g, '\b') + .replace(/\\f/g, '\f') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\t/g, '\t') + .replace(/\\v/g, '\v') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\ /g, '\uF000') + .replace(/\\'/g, '\uF001') + .replace(/\\"/g, '\uF002'); + + function unescape2(str) { + return str + .replace(/\uF000/g, ' ') + .replace(/\uF001/g, '\'') + .replace(/\uF002/g, '"'); + } + + var i = 0; + var start = 0; // Where did this section start? + var prefix = ''; + var args = []; + + while (true) { + if (i >= typed.length) { + // There is nothing else to read - tidy up + if (mode !== OUTSIDE) { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, start, i, prefix, '')); + } + else { + if (i !== start) { + // There's a bunch of whitespace at the end of the + // command add it to the last argument's suffix, + // creating an empty argument if needed. + var extra = typed.substring(start, i); + var lastArg = args[args.length - 1]; + if (!lastArg) { + lastArg = new Argument(this, '', i, i, extra, ''); + args.push(lastArg); + } + else { + lastArg.suffix += extra; + } + } + } + break; + } + + var c = typed[i]; + switch (mode) { + case OUTSIDE: + if (c === '\'') { + prefix = typed.substring(start, i + 1); + mode = IN_SINGLE_Q; + start = i + 1; + } + else if (c === '"') { + prefix = typed.substring(start, i + 1); + mode = IN_DOUBLE_Q; + start = i + 1; + } + else if (/ /.test(c)) { + // Still whitespace, do nothing + } + else { + prefix = typed.substring(start, i); + mode = IN_SIMPLE; + start = i; + } + break; + + case IN_SIMPLE: + // There is an edge case of xx'xx which we are assuming to + // be a single parameter (and same with ") + if (c === ' ') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start, i, prefix, '')); + mode = OUTSIDE; + start = i; + prefix = ''; + } + break; + + case IN_SINGLE_Q: + if (c === '\'') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + + case IN_DOUBLE_Q: + if (c === '"') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + } + + i++; + } + + return args; + }; + + /** + * Looks in the canon for a command extension that matches what has been + * typed at the command line. + */ + CliRequisition.prototype._split = function(args) { + var argsUsed = 1; + var arg; + + while (argsUsed <= args.length) { + var arg = Argument.merge(args, 0, argsUsed); + this.commandAssignment.setArgument(arg); + + if (!this.commandAssignment.value) { + // Not found. break with value == null + break; + } + + /* + // Previously we needed a way to hide commands depending context. + // We have not resurrected that feature yet. + if (!keyboard.flagsMatch(command.predicates, this.flags)) { + // If the predicates say 'no match' then go LA LA LA + command = null; + break; + } + */ + + if (this.commandAssignment.value.exec) { + // Valid command, break with command valid + for (var i = 0; i < argsUsed; i++) { + args.shift(); + } + break; + } + + argsUsed++; + } + }; + + /** + * Work out which arguments are applicable to which parameters. + *

                                                                            This takes #_command.params and #_unparsedArgs and creates a map of + * param names to 'assignment' objects, which have the following properties: + *

                                                                              + *
                                                                            • param - The matching parameter. + *
                                                                            • index - Zero based index into where the match came from on the input + *
                                                                            • value - The matching input + *
                                                                            + */ + CliRequisition.prototype._assign = function(args) { + if (args.length === 0) { + this.setDefaultValues(); + return; + } + + // Create an error if the command does not take parameters, but we have + // been given them ... + if (this.assignmentCount === 0) { + // TODO: previously we were doing some extra work to avoid this if + // we determined that we had args that were all whitespace, but + // probably given our tighter tokenize() this won't be an issue? + this._hints.push(new Hint(Status.INVALID, + this.commandAssignment.value.name + + ' does not take any parameters', + Argument.merge(args))); + return; + } + + // Special case: if there is only 1 parameter, and that's of type + // text we put all the params into the first param + if (this.assignmentCount === 1) { + var assignment = this.getAssignment(0); + if (assignment.param.type.name === 'text') { + assignment.setArgument(Argument.merge(args)); + return; + } + } + + var assignments = this.cloneAssignments(); + var names = this.getParameterNames(); + + // Extract all the named parameters + var used = []; + assignments.forEach(function(assignment) { + var namedArgText = '--' + assignment.name; + + var i = 0; + while (true) { + var arg = args[i]; + if (namedArgText !== arg.text) { + i++; + if (i >= args.length) { + break; + } + continue; + } + + // boolean parameters don't have values, default to false + if (assignment.param.type.name === 'boolean') { + assignment.setValue(true); + } + else { + if (i + 1 < args.length) { + // Missing value portion of this named param + this._hints.push(new Hint(Status.INCOMPLETE, + 'Missing value for: ' + namedArgText, + args[i])); + } + else { + args.splice(i + 1, 1); + assignment.setArgument(args[i + 1]); + } + } + + lang.arrayRemove(names, assignment.name); + args.splice(i, 1); + // We don't need to i++ if we splice + } + }, this); + + // What's left are positional parameters assign in order + names.forEach(function(name) { + var assignment = this.getAssignment(name); + if (args.length === 0) { + // No more values + assignment.setValue(undefined); // i.e. default + } + else { + var arg = args[0]; + args.splice(0, 1); + assignment.setArgument(arg); + } + }, this); + + if (args.length > 0) { + var remaining = Argument.merge(args); + this._hints.push(new Hint(Status.INVALID, + 'Input \'' + remaining.text + '\' makes no sense.', + remaining)); + } + }; + +})(); +exports.CliRequisition = CliRequisition; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/settings', ['require', 'exports', 'module' , 'pilot/types', 'pilot/types/basic'], function(require, exports, module) { + + +var types = require("pilot/types"); +var SelectionType = require('pilot/types/basic').SelectionType; + +var direction = new SelectionType({ + name: 'direction', + data: [ 'above', 'below' ] +}); + +var hintDirectionSetting = { + name: "hintDirection", + description: "Are hints shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputDirectionSetting = { + name: "outputDirection", + description: "Is the output window shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputHeightSetting = { + name: "outputHeight", + description: "What height should the output panel be?", + type: "number", + defaultValue: 300 +}; + +exports.startup = function(data, reason) { + types.registerType(direction); + data.env.settings.addSetting(hintDirectionSetting); + data.env.settings.addSetting(outputDirectionSetting); + data.env.settings.addSetting(outputHeightSetting); +}; + +exports.shutdown = function(data, reason) { + types.unregisterType(direction); + data.env.settings.removeSetting(hintDirectionSetting); + data.env.settings.removeSetting(outputDirectionSetting); + data.env.settings.removeSetting(outputHeightSetting); +}; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/cli_view', ['require', 'exports', 'module' , 'text!cockpit/ui/cli_view.css', 'pilot/event', 'pilot/dom', 'pilot/keys', 'pilot/canon', 'pilot/types', 'cockpit/cli', 'cockpit/ui/request_view'], function(require, exports, module) { + + +var editorCss = require("text!cockpit/ui/cli_view.css"); +var event = require("pilot/event"); +var dom = require("pilot/dom"); + +dom.importCssString(editorCss); + +var event = require("pilot/event"); +var keys = require("pilot/keys"); +var canon = require("pilot/canon"); +var Status = require('pilot/types').Status; + +var CliRequisition = require('cockpit/cli').CliRequisition; +var Hint = require('cockpit/cli').Hint; +var RequestView = require('cockpit/ui/request_view').RequestView; + +var NO_HINT = new Hint(Status.VALID, '', 0, 0); + +/** + * On startup we need to: + * 1. Add 3 sets of elements to the DOM for: + * - command line output + * - input hints + * - completion + * 2. Attach a set of events so the command line works + */ +exports.startup = function(data, reason) { + var cli = new CliRequisition(data.env); + var cliView = new CliView(cli, data.env); + data.env.cli = cli; +}; + +/** + * A class to handle the simplest UI implementation + */ +function CliView(cli, env) { + cli.cliView = this; + this.cli = cli; + this.doc = document; + this.win = dom.getParentWindow(this.doc); + this.env = env; + + // TODO: we should have a better way to specify command lines??? + this.element = this.doc.getElementById('cockpitInput'); + if (!this.element) { + // console.log('No element with an id of cockpit. Bailing on cli'); + return; + } + + this.settings = env.settings; + this.hintDirection = this.settings.getSetting('hintDirection'); + this.outputDirection = this.settings.getSetting('outputDirection'); + this.outputHeight = this.settings.getSetting('outputHeight'); + + // If the requisition tells us something has changed, we use this to know + // if we should ignore it + this.isUpdating = false; + + this.createElements(); + this.update(); +} +CliView.prototype = { + /** + * Create divs for completion, hints and output + */ + createElements: function() { + var input = this.element; + + this.element.spellcheck = false; + + this.output = this.doc.getElementById('cockpitOutput'); + this.popupOutput = (this.output == null); + if (!this.output) { + this.output = this.doc.createElement('div'); + this.output.id = 'cockpitOutput'; + this.output.className = 'cptOutput'; + input.parentNode.insertBefore(this.output, input.nextSibling); + + var setMaxOutputHeight = function() { + this.output.style.maxHeight = this.outputHeight.get() + 'px'; + }.bind(this); + this.outputHeight.addEventListener('change', setMaxOutputHeight); + setMaxOutputHeight(); + } + + this.completer = this.doc.createElement('div'); + this.completer.className = 'cptCompletion VALID'; + + this.completer.style.color = dom.computedStyle(input, "color"); + this.completer.style.fontSize = dom.computedStyle(input, "fontSize"); + this.completer.style.fontFamily = dom.computedStyle(input, "fontFamily"); + this.completer.style.fontWeight = dom.computedStyle(input, "fontWeight"); + this.completer.style.fontStyle = dom.computedStyle(input, "fontStyle"); + input.parentNode.insertBefore(this.completer, input.nextSibling); + + // Transfer background styling to the completer. + this.completer.style.backgroundColor = input.style.backgroundColor; + input.style.backgroundColor = 'transparent'; + + this.hinter = this.doc.createElement('div'); + this.hinter.className = 'cptHints'; + input.parentNode.insertBefore(this.hinter, input.nextSibling); + + var resizer = this.resizer.bind(this); + event.addListener(this.win, 'resize', resizer); + this.hintDirection.addEventListener('change', resizer); + this.outputDirection.addEventListener('change', resizer); + resizer(); + + canon.addEventListener('output', function(ev) { + new RequestView(ev.request, this); + }.bind(this)); + event.addCommandKeyListener(input, this.onCommandKey.bind(this)); + event.addListener(input, 'keyup', this.onKeyUp.bind(this)); + + // cursor position affects hint severity. TODO: shortcuts for speed + event.addListener(input, 'mouseup', function(ev) { + this.isUpdating = true; + this.update(); + this.isUpdating = false; + }.bind(this)); + + this.cli.addEventListener('argumentChange', this.onArgChange.bind(this)); + + event.addListener(input, "focus", function() { + dom.addCssClass(this.output, "cptFocusPopup"); + dom.addCssClass(this.hinter, "cptFocusPopup"); + }.bind(this)); + + function hideOutput() { + dom.removeCssClass(this.output, "cptFocusPopup"); + dom.removeCssClass(this.hinter, "cptFocusPopup"); + }; + event.addListener(input, "blur", hideOutput.bind(this)); + hideOutput.call(this); + }, + + /** + * We need to see the output of the latest command entered + */ + scrollOutputToBottom: function() { + // Certain browsers have a bug such that scrollHeight is too small + // when content does not fill the client area of the element + var scrollHeight = Math.max(this.output.scrollHeight, this.output.clientHeight); + this.output.scrollTop = scrollHeight - this.output.clientHeight; + }, + + /** + * To be called on window resize or any time we want to align the elements + * with the input box. + */ + resizer: function() { + var rect = this.element.getClientRects()[0]; + + this.completer.style.top = rect.top + 'px'; + var height = rect.bottom - rect.top; + this.completer.style.height = height + 'px'; + this.completer.style.lineHeight = height + 'px'; + this.completer.style.left = rect.left + 'px'; + var width = rect.right - rect.left; + this.completer.style.width = width + 'px'; + + if (this.hintDirection.get() === 'below') { + this.hinter.style.top = rect.bottom + 'px'; + this.hinter.style.bottom = 'auto'; + } + else { + this.hinter.style.top = 'auto'; + this.hinter.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.hinter.style.left = (rect.left + 30) + 'px'; + this.hinter.style.maxWidth = (width - 110) + 'px'; + + if (this.popupOutput) { + if (this.outputDirection.get() === 'below') { + this.output.style.top = rect.bottom + 'px'; + this.output.style.bottom = 'auto'; + } + else { + this.output.style.top = 'auto'; + this.output.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.output.style.left = rect.left + 'px'; + this.output.style.width = (width - 80) + 'px'; + } + }, + + /** + * Ensure that TAB isn't handled by the browser + */ +onCommandKey: function(ev, hashId, keyCode) { + var stopEvent; + if (keyCode === keys.TAB || + keyCode === keys.UP || + keyCode === keys.DOWN) { + stopEvent = true; + } else if (hashId != 0 || keyCode != 0) { + stopEvent = canon.execKeyCommand(this.env, 'cli', hashId, keyCode); + } + stopEvent && event.stopEvent(ev); + }, + + /** + * The main keyboard processing loop + */ + onKeyUp: function(ev) { + var handled; + /* + var handled = keyboardManager.processKeyEvent(ev, this, { + isCommandLine: true, isKeyUp: true + }); + */ + + // RETURN does a special exec/highlight thing + if (ev.keyCode === keys.RETURN) { + var worst = this.cli.getWorstHint(); + // Deny RETURN unless the command might work + if (worst.status === Status.VALID) { + this.cli.exec(); + this.element.value = ''; + } + else { + // If we've denied RETURN because the command was not VALID, + // select the part of the command line that is causing problems + // TODO: if there are 2 errors are we picking the right one? + dom.setSelectionStart(this.element, worst.start); + dom.setSelectionEnd(this.element, worst.end); + } + } + + this.update(); + + // Special actions which delegate to the assignment + var current = this.cli.getAssignmentAt(dom.getSelectionStart(this.element)); + if (current) { + // TAB does a special complete thing + if (ev.keyCode === keys.TAB) { + current.complete(); + this.update(); + } + + // UP/DOWN look for some history + if (ev.keyCode === keys.UP) { + current.increment(); + this.update(); + } + if (ev.keyCode === keys.DOWN) { + current.decrement(); + this.update(); + } + } + + return handled; + }, + + /** + * Actually parse the input and make sure we're all up to date + */ + update: function() { + this.isUpdating = true; + var input = { + typed: this.element.value, + cursor: { + start: dom.getSelectionStart(this.element), + end: dom.getSelectionEnd(this.element.selectionEnd) + } + }; + this.cli.update(input); + + var display = this.cli.getAssignmentAt(input.cursor.start).getHint(); + + // 1. Update the completer with prompt/error marker/TAB info + dom.removeCssClass(this.completer, Status.VALID.toString()); + dom.removeCssClass(this.completer, Status.INCOMPLETE.toString()); + dom.removeCssClass(this.completer, Status.INVALID.toString()); + + var completion = '> '; + if (this.element.value.length > 0) { + var scores = this.cli.getInputStatusMarkup(); + completion += this.markupStatusScore(scores); + } + + // Display the "-> prediction" at the end of the completer + if (this.element.value.length > 0 && + display.predictions && display.predictions.length > 0) { + var tab = display.predictions[0]; + completion += '  ⇥ ' + (tab.name ? tab.name : tab); + } + this.completer.innerHTML = completion; + dom.addCssClass(this.completer, this.cli.getWorstHint().status.toString()); + + // 2. Update the hint element + var hint = ''; + if (this.element.value.length !== 0) { + hint += display.message; + if (display.predictions && display.predictions.length > 0) { + hint += ': [ '; + display.predictions.forEach(function(prediction) { + hint += (prediction.name ? prediction.name : prediction); + hint += ' | '; + }, this); + hint = hint.replace(/\| $/, ']'); + } + } + + this.hinter.innerHTML = hint; + if (hint.length === 0) { + dom.addCssClass(this.hinter, 'cptNoPopup'); + } + else { + dom.removeCssClass(this.hinter, 'cptNoPopup'); + } + + this.isUpdating = false; + }, + + /** + * Markup an array of Status values with spans + */ + markupStatusScore: function(scores) { + var completion = ''; + // Create mark-up + var i = 0; + var lastStatus = -1; + while (true) { + if (lastStatus !== scores[i]) { + completion += ''; + lastStatus = scores[i]; + } + completion += this.element.value[i]; + i++; + if (i === this.element.value.length) { + completion += ''; + break; + } + if (lastStatus !== scores[i]) { + completion += ''; + } + } + + return completion; + }, + + /** + * Update the input element to reflect the changed argument + */ + onArgChange: function(ev) { + if (this.isUpdating) { + return; + } + + var prefix = this.element.value.substring(0, ev.argument.start); + var suffix = this.element.value.substring(ev.argument.end); + var insert = typeof ev.text === 'string' ? ev.text : ev.text.name; + this.element.value = prefix + insert + suffix; + // Fix the cursor. + var insertEnd = (prefix + insert).length; + this.element.selectionStart = insertEnd; + this.element.selectionEnd = insertEnd; + } +}; +exports.CliView = CliView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/request_view', ['require', 'exports', 'module' , 'pilot/dom', 'pilot/event', 'text!cockpit/ui/request_view.html', 'pilot/domtemplate', 'text!cockpit/ui/request_view.css'], function(require, exports, module) { + +var dom = require("pilot/dom"); +var event = require("pilot/event"); +var requestViewHtml = require("text!cockpit/ui/request_view.html"); +var Templater = require("pilot/domtemplate").Templater; + +var requestViewCss = require("text!cockpit/ui/request_view.css"); +dom.importCssString(requestViewCss); + +/** + * Pull the HTML into the DOM, but don't add it to the document + */ +var templates = document.createElement('div'); +templates.innerHTML = requestViewHtml; +var row = templates.querySelector('.cptRow'); + +/** + * Work out the path for images. + * TODO: This should probably live in some utility area somewhere + */ +function imageUrl(path) { + var dataUrl; + try { + dataUrl = require('text!cockpit/ui/' + path); + } catch (e) { } + if (dataUrl) { + return dataUrl; + } + + var filename = module.id.split('/').pop() + '.js'; + var imagePath; + + if (module.uri.substr(-filename.length) !== filename) { + console.error('Can\'t work out path from module.uri/module.id'); + return path; + } + + if (module.uri) { + var end = module.uri.length - filename.length - 1; + return module.uri.substr(0, end) + "/" + path; + } + + return filename + path; +} + + +/** + * Adds a row to the CLI output display + */ +function RequestView(request, cliView) { + this.request = request; + this.cliView = cliView; + this.imageUrl = imageUrl; + + // Elements attached to this by the templater. For info only + this.rowin = null; + this.rowout = null; + this.output = null; + this.hide = null; + this.show = null; + this.duration = null; + this.throb = null; + + new Templater().processNode(row.cloneNode(true), this); + + this.cliView.output.appendChild(this.rowin); + this.cliView.output.appendChild(this.rowout); + + this.request.addEventListener('output', this.onRequestChange.bind(this)); +}; + +RequestView.prototype = { + /** + * A single click on an invocation line in the console copies the command to + * the command line + */ + copyToInput: function() { + this.cliView.element.value = this.request.typed; + }, + + /** + * A double click on an invocation line in the console executes the command + */ + executeRequest: function(ev) { + this.cliView.cli.update({ + typed: this.request.typed, + cursor: { start:0, end:0 } + }); + this.cliView.cli.exec(); + }, + + hideOutput: function(ev) { + this.output.style.display = 'none'; + dom.addCssClass(this.hide, 'cmd_hidden'); + dom.removeCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + showOutput: function(ev) { + this.output.style.display = 'block'; + dom.removeCssClass(this.hide, 'cmd_hidden'); + dom.addCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + remove: function(ev) { + this.cliView.output.removeChild(this.rowin); + this.cliView.output.removeChild(this.rowout); + event.stopPropagation(ev); + }, + + onRequestChange: function(ev) { + this.duration.innerHTML = this.request.duration ? + 'completed in ' + (this.request.duration / 1000) + ' sec ' : + ''; + + this.output.innerHTML = ''; + this.request.outputs.forEach(function(output) { + var node; + if (typeof output == 'string') { + node = document.createElement('p'); + node.innerHTML = output; + } else { + node = output; + } + this.output.appendChild(node); + }, this); + this.cliView.scrollOutputToBottom(); + + dom.setCssClass(this.output, 'cmd_error', this.request.error); + + this.throb.style.display = this.request.completed ? 'none' : 'block'; + } +}; +exports.RequestView = RequestView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is DomTemplate. + * + * The Initial Developer of the Original Code is Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) (original author) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('pilot/domtemplate', ['require', 'exports', 'module' ], function(require, exports, module) { + + +// WARNING: do not 'use_strict' without reading the notes in envEval; + +/** + * A templater that allows one to quickly template DOM nodes. + */ +function Templater() { + this.scope = []; +}; + +/** + * Recursive function to walk the tree processing the attributes as it goes. + * @param node the node to process. If you pass a string in instead of a DOM + * element, it is assumed to be an id for use with document.getElementById() + * @param data the data to use for node processing. + */ +Templater.prototype.processNode = function(node, data) { + if (typeof node === 'string') { + node = document.getElementById(node); + } + if (data === null || data === undefined) { + data = {}; + } + this.scope.push(node.nodeName + (node.id ? '#' + node.id : '')); + try { + // Process attributes + if (node.attributes && node.attributes.length) { + // We need to handle 'foreach' and 'if' first because they might stop + // some types of processing from happening, and foreach must come first + // because it defines new data on which 'if' might depend. + if (node.hasAttribute('foreach')) { + this.processForEach(node, data); + return; + } + if (node.hasAttribute('if')) { + if (!this.processIf(node, data)) { + return; + } + } + // Only make the node available once we know it's not going away + data.__element = node; + // It's good to clean up the attributes when we've processed them, + // but if we do it straight away, we mess up the array index + var attrs = Array.prototype.slice.call(node.attributes); + for (var i = 0; i < attrs.length; i++) { + var value = attrs[i].value; + var name = attrs[i].name; + this.scope.push(name); + try { + if (name === 'save') { + // Save attributes are a setter using the node + value = this.stripBraces(value); + this.property(value, data, node); + node.removeAttribute('save'); + } else if (name.substring(0, 2) === 'on') { + // Event registration relies on property doing a bind + value = this.stripBraces(value); + var func = this.property(value, data); + if (typeof func !== 'function') { + this.handleError('Expected ' + value + + ' to resolve to a function, but got ' + typeof func); + } + node.removeAttribute(name); + var capture = node.hasAttribute('capture' + name.substring(2)); + node.addEventListener(name.substring(2), func, capture); + if (capture) { + node.removeAttribute('capture' + name.substring(2)); + } + } else { + // Replace references in all other attributes + var self = this; + var newValue = value.replace(/\$\{[^}]*\}/g, function(path) { + return self.envEval(path.slice(2, -1), data, value); + }); + // Remove '_' prefix of attribute names so the DOM won't try + // to use them before we've processed the template + if (name.charAt(0) === '_') { + node.removeAttribute(name); + node.setAttribute(name.substring(1), newValue); + } else if (value !== newValue) { + attrs[i].value = newValue; + } + } + } finally { + this.scope.pop(); + } + } + } + + // Loop through our children calling processNode. First clone them, so the + // set of nodes that we visit will be unaffected by additions or removals. + var childNodes = Array.prototype.slice.call(node.childNodes); + for (var j = 0; j < childNodes.length; j++) { + this.processNode(childNodes[j], data); + } + + if (node.nodeType === Node.TEXT_NODE) { + this.processTextNode(node, data); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Handle + * @param node An element with an 'if' attribute + * @param data The data to use with envEval + * @returns true if processing should continue, false otherwise + */ +Templater.prototype.processIf = function(node, data) { + this.scope.push('if'); + try { + var originalValue = node.getAttribute('if'); + var value = this.stripBraces(originalValue); + var recurse = true; + try { + var reply = this.envEval(value, data, originalValue); + recurse = !!reply; + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + recurse = false; + } + if (!recurse) { + node.parentNode.removeChild(node); + } + node.removeAttribute('if'); + return recurse; + } finally { + this.scope.pop(); + } +}; + +/** + * Handle and the special case of + * + * @param node An element with a 'foreach' attribute + * @param data The data to use with envEval + */ +Templater.prototype.processForEach = function(node, data) { + this.scope.push('foreach'); + try { + var originalValue = node.getAttribute('foreach'); + var value = originalValue; + + var paramName = 'param'; + if (value.charAt(0) === '$') { + // No custom loop variable name. Use the default: 'param' + value = this.stripBraces(value); + } else { + // Extract the loop variable name from 'NAME in ${ARRAY}' + var nameArr = value.split(' in '); + paramName = nameArr[0].trim(); + value = this.stripBraces(nameArr[1].trim()); + } + node.removeAttribute('foreach'); + try { + var self = this; + // Process a single iteration of a loop + var processSingle = function(member, clone, ref) { + ref.parentNode.insertBefore(clone, ref); + data[paramName] = member; + self.processNode(clone, data); + delete data[paramName]; + }; + + // processSingle is no good for nodes where we want to work on + // the childNodes rather than the node itself + var processAll = function(scope, member) { + self.scope.push(scope); + try { + if (node.nodeName === 'LOOP') { + for (var i = 0; i < node.childNodes.length; i++) { + var clone = node.childNodes[i].cloneNode(true); + processSingle(member, clone, node); + } + } else { + var clone = node.cloneNode(true); + clone.removeAttribute('foreach'); + processSingle(member, clone, node); + } + } finally { + self.scope.pop(); + } + }; + + var reply = this.envEval(value, data, originalValue); + if (Array.isArray(reply)) { + reply.forEach(function(data, i) { + processAll('' + i, data); + }, this); + } else { + for (var param in reply) { + if (reply.hasOwnProperty(param)) { + processAll(param, param); + } + } + } + node.parentNode.removeChild(node); + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Take a text node and replace it with another text node with the ${...} + * sections parsed out. We replace the node by altering node.parentNode but + * we could probably use a DOM Text API to achieve the same thing. + * @param node The Text node to work on + * @param data The data to use in calls to envEval + */ +Templater.prototype.processTextNode = function(node, data) { + // Replace references in other attributes + var value = node.data; + // We can't use the string.replace() with function trick (see generic + // attribute processing in processNode()) because we need to support + // functions that return DOM nodes, so we can't have the conversion to a + // string. + // Instead we process the string as an array of parts. In order to split + // the string up, we first replace '${' with '\uF001$' and '}' with '\uF002' + // We can then split using \uF001 or \uF002 to get an array of strings + // where scripts are prefixed with $. + // \uF001 and \uF002 are just unicode chars reserved for private use. + value = value.replace(/\$\{([^}]*)\}/g, '\uF001$$$1\uF002'); + var parts = value.split(/\uF001|\uF002/); + if (parts.length > 1) { + parts.forEach(function(part) { + if (part === null || part === undefined || part === '') { + return; + } + if (part.charAt(0) === '$') { + part = this.envEval(part.slice(1), data, node.data); + } + // It looks like this was done a few lines above but see envEval + if (part === null) { + part = "null"; + } + if (part === undefined) { + part = "undefined"; + } + // if (isDOMElement(part)) { ... } + if (typeof part.cloneNode !== 'function') { + part = node.ownerDocument.createTextNode(part.toString()); + } + node.parentNode.insertBefore(part, node); + }, this); + node.parentNode.removeChild(node); + } +}; + +/** + * Warn of string does not begin '${' and end '}' + * @param str the string to check. + * @return The string stripped of ${ and }, or untouched if it does not match + */ +Templater.prototype.stripBraces = function(str) { + if (!str.match(/\$\{.*\}/g)) { + this.handleError('Expected ' + str + ' to match ${...}'); + return str; + } + return str.slice(2, -1); +}; + +/** + * Combined getter and setter that works with a path through some data set. + * For example: + *
                                                                              + *
                                                                            • property('a.b', { a: { b: 99 }}); // returns 99 + *
                                                                            • property('a', { a: { b: 99 }}); // returns { b: 99 } + *
                                                                            • property('a', { a: { b: 99 }}, 42); // returns 99 and alters the + * input data to be { a: { b: 42 }} + *
                                                                            + * @param path An array of strings indicating the path through the data, or + * a string to be cut into an array using split('.') + * @param data An object to look in for the path argument + * @param newValue (optional) If defined, this value will replace the + * original value for the data at the path specified. + * @return The value pointed to by path before any + * newValue is applied. + */ +Templater.prototype.property = function(path, data, newValue) { + this.scope.push(path); + try { + if (typeof path === 'string') { + path = path.split('.'); + } + var value = data[path[0]]; + if (path.length === 1) { + if (newValue !== undefined) { + data[path[0]] = newValue; + } + if (typeof value === 'function') { + return function() { + return value.apply(data, arguments); + }; + } + return value; + } + if (!value) { + this.handleError('Can\'t find path=' + path); + return null; + } + return this.property(path.slice(1), value, newValue); + } finally { + this.scope.pop(); + } +}; + +/** + * Like eval, but that creates a context of the variables in env in + * which the script is evaluated. + * WARNING: This script uses 'with' which is generally regarded to be evil. + * The alternative is to create a Function at runtime that takes X parameters + * according to the X keys in the env object, and then call that function using + * the values in the env object. This is likely to be slow, but workable. + * @param script The string to be evaluated. + * @param env The environment in which to eval the script. + * @param context Optional debugging string in case of failure + * @return The return value of the script, or the error message if the script + * execution failed. + */ +Templater.prototype.envEval = function(script, env, context) { + with (env) { + try { + this.scope.push(context); + return eval(script); + } catch (ex) { + this.handleError('Template error evaluating \'' + script + '\'', ex); + return script; + } finally { + this.scope.pop(); + } + } +}; + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + * @param ex optional associated exception. + */ +Templater.prototype.handleError = function(message, ex) { + this.logError(message); + this.logError('In: ' + this.scope.join(' > ')); + if (ex) { + this.logError(ex); + } +}; + + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + */ +Templater.prototype.logError = function(message) { + window.console && window.console.log && console.log(message); +}; + +exports.Templater = Templater; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Skywriter Team (skywriter@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/commands/basic', ['require', 'exports', 'module' , 'pilot/canon'], function(require, exports, module) { + + +var canon = require('pilot/canon'); + +/** + * '!' command + */ +var bangCommandSpec = { + name: 'sh', + description: 'Execute a system command (requires server support)', + params: [ + { + name: 'command', + type: 'text', + description: 'The string to send to the os shell.' + } + ], + exec: function(env, args, request) { + var req = new XMLHttpRequest(); + req.open('GET', '/exec?args=' + args.command, true); + req.onreadystatechange = function(ev) { + if (req.readyState == 4) { + if (req.status == 200) { + request.done('
                                                                            ' + req.responseText + '
                                                                            '); + } + } + }; + req.send(null); + } +}; + +var canon = require('pilot/canon'); + +exports.startup = function(data, reason) { + canon.addCommand(bangCommandSpec); +}; + +exports.shutdown = function(data, reason) { + canon.removeCommand(bangCommandSpec); +}; + + +}); +define("text!cockpit/ui/cli_view.css", [], "" + + "#cockpitInput { padding-left: 16px; }" + + "" + + ".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }" + + "" + + ".cptCompletion { padding: 0; position: absolute; z-index: -1000; }" + + ".cptCompletion.VALID { background: #FFF; }" + + ".cptCompletion.INCOMPLETE { background: #DDD; }" + + ".cptCompletion.INVALID { background: #DDD; }" + + ".cptCompletion span { color: #FFF; }" + + ".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }" + + ".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }" + + "span.cptPrompt { color: #66F; font-weight: bold; }" + + "" + + "" + + ".cptHints {" + + " color: #000;" + + " position: absolute;" + + " border: 1px solid rgba(230, 230, 230, 0.8);" + + " background: rgba(250, 250, 250, 0.8);" + + " -moz-border-radius-topleft: 10px;" + + " -moz-border-radius-topright: 10px;" + + " border-top-left-radius: 10px; border-top-right-radius: 10px;" + + " z-index: 1000;" + + " padding: 8px;" + + " display: none;" + + "}" + + "" + + ".cptFocusPopup { display: block; }" + + ".cptFocusPopup.cptNoPopup { display: none; }" + + "" + + ".cptHints ul { margin: 0; padding: 0 15px; }" + + "" + + ".cptGt { font-weight: bold; font-size: 120%; }" + + ""); + +define("text!cockpit/ui/request_view.css", [], "" + + ".cptRowIn {" + + " display: box; display: -moz-box; display: -webkit-box;" + + " box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;" + + " box-align: center; -moz-box-align: center; -webkit-box-align: center;" + + " color: #333;" + + " background-color: #EEE;" + + " width: 100%;" + + " font-family: consolas, courier, monospace;" + + "}" + + ".cptRowIn > * { padding-left: 2px; padding-right: 2px; }" + + ".cptRowIn > img { cursor: pointer; }" + + ".cptHover { display: none; }" + + ".cptRowIn:hover > .cptHover { display: block; }" + + ".cptRowIn:hover > .cptHover.cptHidden { display: none; }" + + ".cptOutTyped {" + + " box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;" + + " font-weight: bold; color: #000; font-size: 120%;" + + "}" + + ".cptRowOutput { padding-left: 10px; line-height: 1.2em; }" + + ".cptRowOutput strong," + + ".cptRowOutput b," + + ".cptRowOutput th," + + ".cptRowOutput h1," + + ".cptRowOutput h2," + + ".cptRowOutput h3 { color: #000; }" + + ".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }" + + ".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }" + + ".cptRowOutput input[type=password]," + + ".cptRowOutput input[type=text]," + + ".cptRowOutput textarea {" + + " color: #000; font-size: 120%;" + + " background: transparent; padding: 3px;" + + " border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;" + + "}" + + ".cptRowOutput table," + + ".cptRowOutput td," + + ".cptRowOutput th { border: 0; padding: 0 2px; }" + + ".cptRowOutput .right { text-align: right; }" + + ""); + +define("text!cockpit/ui/request_view.html", [], "" + + "
                                                                            " + + " " + + "
                                                                            " + + "" + + " " + + "
                                                                            >
                                                                            " + + "
                                                                            ${request.typed}
                                                                            " + + "" + + " " + + "
                                                                            " + + " \"Hide" + + " \"Show" + + " \"Remove" + + "" + + "
                                                                            " + + "" + + " " + + "
                                                                            " + + "
                                                                            " + + " " + + "
                                                                            " + + "
                                                                            " + + ""); + +define("text!cockpit/ui/images/closer.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); + +define("text!cockpit/ui/images/dot_clear.gif", [], "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"); + +define("text!cockpit/ui/images/minus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="); + +define("text!cockpit/ui/images/pinaction.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinin.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinout.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pins.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/plus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/throbber.gif", [], "data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); + + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-min.js b/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-min.js new file mode 100644 index 00000000000..d4cb0e78b8f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed-min.js @@ -0,0 +1,9 @@ +AUI.add("aui-ace-editor-cockpit-uncompressed",function(A){define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(require,exports,module){exports.startup=function(data,reason){require("pilot/index");require("cockpit/cli").startup(data,reason);require("cockpit/ui/settings").startup(data,reason);require("cockpit/ui/cli_view").startup(data,reason);require("cockpit/commands/basic").startup(data,reason);};});define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(require,exports,module){var console=require("pilot/console");var lang=require("pilot/lang");var oop=require("pilot/oop");var EventEmitter=require("pilot/event_emitter").EventEmitter;var types=require("pilot/types");var Status=require("pilot/types").Status;var Conversion=require("pilot/types").Conversion;var canon=require("pilot/canon");exports.startup=function(data,reason){canon.upgradeType("command",commandParam);};function Hint(status,message,start,end,predictions){this.status=status;this.message=message;if(typeof start==="number"){this.start=start;this.end=end;this.predictions=predictions;}else{var arg=start;this.start=arg.start;this.end=arg.end;this.predictions=arg.predictions;}}Hint.prototype={};Hint.sort=function(hints,cursor){if(cursor!==undefined){hints.forEach(function(hint){if(hint.start===Argument.AT_CURSOR){hint.distance=0;}else{if(cursorhint.end){hint.distance=cursor-hint.end;}else{hint.distance=0;}}}},this);}hints.sort(function(hint1,hint2){if(cursor!==undefined){var diff=hint1.distance-hint2.distance;if(diff!=0){return diff;}}return hint2.status-hint1.status;});if(cursor!==undefined){hints.forEach(function(hint){delete hint.distance;},this);}return hints;};exports.Hint=Hint;function ConversionHint(conversion,arg){this.status=conversion.status;this.message=conversion.message;if(arg){this.start=arg.start;this.end=arg.end;}else{this.start=0;this.end=0;}this.predictions=conversion.predictions;}oop.inherits(ConversionHint,Hint);function Argument(emitter,text,start,end,prefix,suffix){this.emitter=emitter;this.setText(text);this.start=start;this.end=end;this.prefix=prefix;this.suffix=suffix;}Argument.prototype={merge:function(following){if(following.emitter!=this.emitter){throw new Error("Can't merge Arguments from different EventEmitters");}return new Argument(this.emitter,this.text+this.suffix+following.prefix+following.text,this.start,following.end,this.prefix,following.suffix);},setText:function(text){if(text==null){throw new Error("Illegal text for Argument: "+text);}var ev={argument:this,oldText:this.text,text:text};this.text=text;this.emitter._dispatchEvent("argumentChange",ev);},toString:function(){return this.prefix+this.text+this.suffix;}};Argument.merge=function(argArray,start,end){start=(start===undefined)?0:start;end=(end===undefined)?argArray.length:end;var joined;for(var i=start;i: ";if(this.param.description){message+=this.param.description.trim();if(message.charAt(message.length-1)!=="."){message+=".";}if(message.charAt(message.length-1)!==" "){message+=" ";}}var status=Status.VALID;var start=this.arg?this.arg.start:Argument.AT_CURSOR;var end=this.arg?this.arg.end:Argument.AT_CURSOR;var predictions;if(this.conversion){status=this.conversion.status;if(this.conversion.message){message+=this.conversion.message;}predictions=this.conversion.predictions;}var argProvided=this.arg&&this.arg.text!=="";var dataProvided=this.value!==undefined||argProvided;if(this.param.defaultValue===undefined&&!dataProvided){status=Status.INVALID;message+="Required";}return new Hint(status,message,start,end,predictions);},complete:function(){if(this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0){this.setValue(this.conversion.predictions[0]);}},isPositionCaptured:function(position){if(!this.arg){return false;}if(this.arg.start===-1){return false;}if(position>this.arg.end){return false;}if(position===this.arg.end){return this.conversion.status!==Status.VALID||this.conversion.predictions.length!==0;}return true;},decrement:function(){var replacement=this.param.type.decrement(this.value);if(replacement!=null){this.setValue(replacement);}},increment:function(){var replacement=this.param.type.increment(this.value);if(replacement!=null){this.setValue(replacement);}},toString:function(){return this.arg?this.arg.toString():"";}};exports.Assignment=Assignment;var commandParam={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(command,arg){var docs=[];docs.push(" > ");docs.push(command.name);if(command.params&&command.params.length>0){command.params.forEach(function(param){if(param.defaultValue===undefined){docs.push(" ["+param.name+"]"); +}else{docs.push(" ["+param.name+"]");}},this);}docs.push("
                                                                            ");docs.push(command.description?command.description:"(No description)");docs.push("
                                                                            ");if(command.params&&command.params.length>0){docs.push("
                                                                              ");command.params.forEach(function(param){docs.push("
                                                                            • ");docs.push(""+param.name+": ");docs.push(param.description?param.description:"(No description)");if(param.defaultValue===undefined){docs.push(" [Required]");}else{if(param.defaultValue===null){docs.push(" [Optional]");}else{docs.push(" [Default: "+param.defaultValue+"]");}}docs.push("
                                                                            • ");},this);docs.push("
                                                                            ");}return new Hint(Status.VALID,docs.join(""),arg);}};function Requisition(env){this.env=env;this.commandAssignment=new Assignment(commandParam,this);}Requisition.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(assignment){if(assignment.param.name!=="__command"){return;}this._assignments={};if(assignment.value){assignment.value.params.forEach(function(param){this._assignments[param.name]=new Assignment(param,this);},this);}this.assignmentCount=Object.keys(this._assignments).length;this._dispatchEvent("commandChange",{command:assignment.value});},getAssignment:function(nameOrNumber){var name=(typeof nameOrNumber==="string")?nameOrNumber:Object.keys(this._assignments)[nameOrNumber];return this._assignments[name];},getParameterNames:function(){return Object.keys(this._assignments);},cloneAssignments:function(){return Object.keys(this._assignments).map(function(name){return this._assignments[name];},this);},_updateHints:function(){this.getAssignments(true).forEach(function(assignment){this._hints.push(assignment.getHint());},this);Hint.sort(this._hints);},getWorstHint:function(){return this._hints[0];},getArgsObject:function(){var args={};this.getAssignments().forEach(function(assignment){args[assignment.param.name]=assignment.value;},this);return args;},getAssignments:function(includeCommand){var args=[];if(includeCommand===true){args.push(this.commandAssignment);}Object.keys(this._assignments).forEach(function(name){args.push(this.getAssignment(name));},this);return args;},setDefaultValues:function(){this.getAssignments().forEach(function(assignment){assignment.setValue(undefined);},this);},exec:function(){canon.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString());},toCanonicalString:function(){var line=[];line.push(this.commandAssignment.value.name);Object.keys(this._assignments).forEach(function(name){var assignment=this._assignments[name];var type=assignment.param.type;if(assignment.value!==assignment.param.defaultValue){line.push(" ");line.push(type.stringify(assignment.value));}},this);return line.join("");}};oop.implement(Requisition.prototype,EventEmitter);exports.Requisition=Requisition;function CliRequisition(env,options){Requisition.call(this,env);if(options&&options.flags){this.flags=options.flags;}}oop.inherits(CliRequisition,Requisition);(function(){CliRequisition.prototype.update=function(input){this.input=input;this._hints=[];var args=this._tokenize(input.typed);this._split(args);if(this.commandAssignment.value){this._assign(args);}this._updateHints();};CliRequisition.prototype.getInputStatusMarkup=function(){var scores=this.toString().split("").map(function(ch){return Status.VALID;});this._hints.forEach(function(hint){for(var i=hint.start;i<=hint.end;i++){if(hint.status>scores[i]){scores[i]=hint.status;}}},this);return scores;};CliRequisition.prototype.toString=function(){return this.getAssignments(true).map(function(assignment){return assignment.toString();},this).join("");};var superUpdateHints=CliRequisition.prototype._updateHints;CliRequisition.prototype._updateHints=function(){superUpdateHints.call(this);var c=this.input.cursor;this._hints.forEach(function(hint){var startInHint=c.start>=hint.start&&c.start<=hint.end;var endInHint=c.end>=hint.start&&c.end<=hint.end;var inHint=startInHint||endInHint;if(!inHint&&hint.status===Status.INCOMPLETE){hint.status=Status.INVALID;}},this);Hint.sort(this._hints);};CliRequisition.prototype.getHints=function(){return this._hints;};CliRequisition.prototype.getAssignmentAt=function(position){var assignments=this.getAssignments(true);for(var i=0;i=typed.length){if(mode!==OUTSIDE){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start,i,prefix,""));}else{if(i!==start){var extra=typed.substring(start,i);var lastArg=args[args.length-1];if(!lastArg){lastArg=new Argument(this,"",i,i,extra,"");args.push(lastArg);}else{lastArg.suffix+=extra;}}}break;}var c=typed[i];switch(mode){case OUTSIDE:if(c==="'"){prefix=typed.substring(start,i+1);mode=IN_SINGLE_Q;start=i+1;}else{if(c==='"'){prefix=typed.substring(start,i+1);mode=IN_DOUBLE_Q;start=i+1;}else{if(/ /.test(c)){}else{prefix=typed.substring(start,i);mode=IN_SIMPLE;start=i;}}}break;case IN_SIMPLE:if(c===" "){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start,i,prefix,""));mode=OUTSIDE;start=i;prefix="";}break;case IN_SINGLE_Q:if(c==="'"){var str=unescape2(typed.substring(start,i)); +args.push(new Argument(this,str,start-1,i+1,prefix,c));mode=OUTSIDE;start=i+1;prefix="";}break;case IN_DOUBLE_Q:if(c==='"'){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start-1,i+1,prefix,c));mode=OUTSIDE;start=i+1;prefix="";}break;}i++;}return args;};CliRequisition.prototype._split=function(args){var argsUsed=1;var arg;while(argsUsed<=args.length){var arg=Argument.merge(args,0,argsUsed);this.commandAssignment.setArgument(arg);if(!this.commandAssignment.value){break;}if(this.commandAssignment.value.exec){for(var i=0;i=args.length){break;}continue;}if(assignment.param.type.name==="boolean"){assignment.setValue(true);}else{if(i+10){var remaining=Argument.merge(args);this._hints.push(new Hint(Status.INVALID,"Input '"+remaining.text+"' makes no sense.",remaining));}};})();exports.CliRequisition=CliRequisition;});define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(require,exports,module){var types=require("pilot/types");var SelectionType=require("pilot/types/basic").SelectionType;var direction=new SelectionType({name:"direction",data:["above","below"]});var hintDirectionSetting={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"};var outputDirectionSetting={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"};var outputHeightSetting={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};exports.startup=function(data,reason){types.registerType(direction);data.env.settings.addSetting(hintDirectionSetting);data.env.settings.addSetting(outputDirectionSetting);data.env.settings.addSetting(outputHeightSetting);};exports.shutdown=function(data,reason){types.unregisterType(direction);data.env.settings.removeSetting(hintDirectionSetting);data.env.settings.removeSetting(outputDirectionSetting);data.env.settings.removeSetting(outputHeightSetting);};});define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(require,exports,module){var editorCss=require("text!cockpit/ui/cli_view.css");var event=require("pilot/event");var dom=require("pilot/dom");dom.importCssString(editorCss);var event=require("pilot/event");var keys=require("pilot/keys");var canon=require("pilot/canon");var Status=require("pilot/types").Status;var CliRequisition=require("cockpit/cli").CliRequisition;var Hint=require("cockpit/cli").Hint;var RequestView=require("cockpit/ui/request_view").RequestView;var NO_HINT=new Hint(Status.VALID,"",0,0);exports.startup=function(data,reason){var cli=new CliRequisition(data.env);var cliView=new CliView(cli,data.env);data.env.cli=cli;};function CliView(cli,env){cli.cliView=this;this.cli=cli;this.doc=document;this.win=dom.getParentWindow(this.doc);this.env=env;this.element=this.doc.getElementById("cockpitInput");if(!this.element){return;}this.settings=env.settings;this.hintDirection=this.settings.getSetting("hintDirection");this.outputDirection=this.settings.getSetting("outputDirection");this.outputHeight=this.settings.getSetting("outputHeight");this.isUpdating=false;this.createElements();this.update();}CliView.prototype={createElements:function(){var input=this.element;this.element.spellcheck=false;this.output=this.doc.getElementById("cockpitOutput");this.popupOutput=(this.output==null);if(!this.output){this.output=this.doc.createElement("div");this.output.id="cockpitOutput";this.output.className="cptOutput";input.parentNode.insertBefore(this.output,input.nextSibling);var setMaxOutputHeight=function(){this.output.style.maxHeight=this.outputHeight.get()+"px";}.bind(this);this.outputHeight.addEventListener("change",setMaxOutputHeight);setMaxOutputHeight();}this.completer=this.doc.createElement("div");this.completer.className="cptCompletion VALID";this.completer.style.color=dom.computedStyle(input,"color");this.completer.style.fontSize=dom.computedStyle(input,"fontSize");this.completer.style.fontFamily=dom.computedStyle(input,"fontFamily");this.completer.style.fontWeight=dom.computedStyle(input,"fontWeight");this.completer.style.fontStyle=dom.computedStyle(input,"fontStyle");input.parentNode.insertBefore(this.completer,input.nextSibling);this.completer.style.backgroundColor=input.style.backgroundColor;input.style.backgroundColor="transparent";this.hinter=this.doc.createElement("div");this.hinter.className="cptHints";input.parentNode.insertBefore(this.hinter,input.nextSibling);var resizer=this.resizer.bind(this);event.addListener(this.win,"resize",resizer);this.hintDirection.addEventListener("change",resizer);this.outputDirection.addEventListener("change",resizer); +resizer();canon.addEventListener("output",function(ev){new RequestView(ev.request,this);}.bind(this));event.addCommandKeyListener(input,this.onCommandKey.bind(this));event.addListener(input,"keyup",this.onKeyUp.bind(this));event.addListener(input,"mouseup",function(ev){this.isUpdating=true;this.update();this.isUpdating=false;}.bind(this));this.cli.addEventListener("argumentChange",this.onArgChange.bind(this));event.addListener(input,"focus",function(){dom.addCssClass(this.output,"cptFocusPopup");dom.addCssClass(this.hinter,"cptFocusPopup");}.bind(this));function hideOutput(){dom.removeCssClass(this.output,"cptFocusPopup");dom.removeCssClass(this.hinter,"cptFocusPopup");}event.addListener(input,"blur",hideOutput.bind(this));hideOutput.call(this);},scrollOutputToBottom:function(){var scrollHeight=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=scrollHeight-this.output.clientHeight;},resizer:function(){var rect=this.element.getClientRects()[0];this.completer.style.top=rect.top+"px";var height=rect.bottom-rect.top;this.completer.style.height=height+"px";this.completer.style.lineHeight=height+"px";this.completer.style.left=rect.left+"px";var width=rect.right-rect.left;this.completer.style.width=width+"px";if(this.hintDirection.get()==="below"){this.hinter.style.top=rect.bottom+"px";this.hinter.style.bottom="auto";}else{this.hinter.style.top="auto";this.hinter.style.bottom=(this.doc.documentElement.clientHeight-rect.top)+"px";}this.hinter.style.left=(rect.left+30)+"px";this.hinter.style.maxWidth=(width-110)+"px";if(this.popupOutput){if(this.outputDirection.get()==="below"){this.output.style.top=rect.bottom+"px";this.output.style.bottom="auto";}else{this.output.style.top="auto";this.output.style.bottom=(this.doc.documentElement.clientHeight-rect.top)+"px";}this.output.style.left=rect.left+"px";this.output.style.width=(width-80)+"px";}},onCommandKey:function(ev,hashId,keyCode){var stopEvent;if(keyCode===keys.TAB||keyCode===keys.UP||keyCode===keys.DOWN){stopEvent=true;}else{if(hashId!=0||keyCode!=0){stopEvent=canon.execKeyCommand(this.env,"cli",hashId,keyCode);}}stopEvent&&event.stopEvent(ev);},onKeyUp:function(ev){var handled;if(ev.keyCode===keys.RETURN){var worst=this.cli.getWorstHint();if(worst.status===Status.VALID){this.cli.exec();this.element.value="";}else{dom.setSelectionStart(this.element,worst.start);dom.setSelectionEnd(this.element,worst.end);}}this.update();var current=this.cli.getAssignmentAt(dom.getSelectionStart(this.element));if(current){if(ev.keyCode===keys.TAB){current.complete();this.update();}if(ev.keyCode===keys.UP){current.increment();this.update();}if(ev.keyCode===keys.DOWN){current.decrement();this.update();}}return handled;},update:function(){this.isUpdating=true;var input={typed:this.element.value,cursor:{start:dom.getSelectionStart(this.element),end:dom.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(input);var display=this.cli.getAssignmentAt(input.cursor.start).getHint();dom.removeCssClass(this.completer,Status.VALID.toString());dom.removeCssClass(this.completer,Status.INCOMPLETE.toString());dom.removeCssClass(this.completer,Status.INVALID.toString());var completion='> ';if(this.element.value.length>0){var scores=this.cli.getInputStatusMarkup();completion+=this.markupStatusScore(scores);}if(this.element.value.length>0&&display.predictions&&display.predictions.length>0){var tab=display.predictions[0];completion+="  ⇥ "+(tab.name?tab.name:tab);}this.completer.innerHTML=completion;dom.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var hint="";if(this.element.value.length!==0){hint+=display.message;if(display.predictions&&display.predictions.length>0){hint+=": [ ";display.predictions.forEach(function(prediction){hint+=(prediction.name?prediction.name:prediction);hint+=" | ";},this);hint=hint.replace(/\| $/,"]");}}this.hinter.innerHTML=hint;if(hint.length===0){dom.addCssClass(this.hinter,"cptNoPopup");}else{dom.removeCssClass(this.hinter,"cptNoPopup");}this.isUpdating=false;},markupStatusScore:function(scores){var completion="";var i=0;var lastStatus=-1;while(true){if(lastStatus!==scores[i]){completion+="";lastStatus=scores[i];}completion+=this.element.value[i];i++;if(i===this.element.value.length){completion+="";break;}if(lastStatus!==scores[i]){completion+="";}}return completion;},onArgChange:function(ev){if(this.isUpdating){return;}var prefix=this.element.value.substring(0,ev.argument.start);var suffix=this.element.value.substring(ev.argument.end);var insert=typeof ev.text==="string"?ev.text:ev.text.name;this.element.value=prefix+insert+suffix;var insertEnd=(prefix+insert).length;this.element.selectionStart=insertEnd;this.element.selectionEnd=insertEnd;}};exports.CliView=CliView;});define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(require,exports,module){var dom=require("pilot/dom");var event=require("pilot/event");var requestViewHtml=require("text!cockpit/ui/request_view.html");var Templater=require("pilot/domtemplate").Templater;var requestViewCss=require("text!cockpit/ui/request_view.css");dom.importCssString(requestViewCss);var templates=document.createElement("div");templates.innerHTML=requestViewHtml;var row=templates.querySelector(".cptRow");function imageUrl(path){var dataUrl;try{dataUrl=require("text!cockpit/ui/"+path);}catch(e){}if(dataUrl){return dataUrl;}var filename=module.id.split("/").pop()+".js";var imagePath;if(module.uri.substr(-filename.length)!==filename){console.error("Can't work out path from module.uri/module.id");return path;}if(module.uri){var end=module.uri.length-filename.length-1;return module.uri.substr(0,end)+"/"+path;}return filename+path;}function RequestView(request,cliView){this.request=request;this.cliView=cliView;this.imageUrl=imageUrl; +this.rowin=null;this.rowout=null;this.output=null;this.hide=null;this.show=null;this.duration=null;this.throb=null;new Templater().processNode(row.cloneNode(true),this);this.cliView.output.appendChild(this.rowin);this.cliView.output.appendChild(this.rowout);this.request.addEventListener("output",this.onRequestChange.bind(this));}RequestView.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed;},executeRequest:function(ev){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}});this.cliView.cli.exec();},hideOutput:function(ev){this.output.style.display="none";dom.addCssClass(this.hide,"cmd_hidden");dom.removeCssClass(this.show,"cmd_hidden");event.stopPropagation(ev);},showOutput:function(ev){this.output.style.display="block";dom.removeCssClass(this.hide,"cmd_hidden");dom.addCssClass(this.show,"cmd_hidden");event.stopPropagation(ev);},remove:function(ev){this.cliView.output.removeChild(this.rowin);this.cliView.output.removeChild(this.rowout);event.stopPropagation(ev);},onRequestChange:function(ev){this.duration.innerHTML=this.request.duration?"completed in "+(this.request.duration/1000)+" sec ":"";this.output.innerHTML="";this.request.outputs.forEach(function(output){var node;if(typeof output=="string"){node=document.createElement("p");node.innerHTML=output;}else{node=output;}this.output.appendChild(node);},this);this.cliView.scrollOutputToBottom();dom.setCssClass(this.output,"cmd_error",this.request.error);this.throb.style.display=this.request.completed?"none":"block";}};exports.RequestView=RequestView;});define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[];}Templater.prototype.processNode=function(node,data){if(typeof node==="string"){node=document.getElementById(node);}if(data===null||data===undefined){data={};}this.scope.push(node.nodeName+(node.id?"#"+node.id:""));try{if(node.attributes&&node.attributes.length){if(node.hasAttribute("foreach")){this.processForEach(node,data);return;}if(node.hasAttribute("if")){if(!this.processIf(node,data)){return;}}data.__element=node;var attrs=Array.prototype.slice.call(node.attributes);for(var i=0;i1){parts.forEach(function(part){if(part===null||part===undefined||part===""){return;}if(part.charAt(0)==="$"){part=this.envEval(part.slice(1),data,node.data);}if(part===null){part="null";}if(part===undefined){part="undefined";}if(typeof part.cloneNode!=="function"){part=node.ownerDocument.createTextNode(part.toString());}node.parentNode.insertBefore(part,node);},this);node.parentNode.removeChild(node);}};Templater.prototype.stripBraces=function(str){if(!str.match(/\$\{.*\}/g)){this.handleError("Expected "+str+" to match ${...}");return str;}return str.slice(2,-1);};Templater.prototype.property=function(path,data,newValue){this.scope.push(path);try{if(typeof path==="string"){path=path.split(".");}var value=data[path[0]];if(path.length===1){if(newValue!==undefined){data[path[0]]=newValue; +}if(typeof value==="function"){return function(){return value.apply(data,arguments);};}return value;}if(!value){this.handleError("Can't find path="+path);return null;}return this.property(path.slice(1),value,newValue);}finally{this.scope.pop();}};Templater.prototype.envEval=function(script,env,context){with(env){try{this.scope.push(context);return eval(script);}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script;}finally{this.scope.pop();}}};Templater.prototype.handleError=function(message,ex){this.logError(message);this.logError("In: "+this.scope.join(" > "));if(ex){this.logError(ex);}};Templater.prototype.logError=function(message){window.console&&window.console.log&&console.log(message);};exports.Templater=Templater;});define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(require,exports,module){var canon=require("pilot/canon");var bangCommandSpec={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(env,args,request){var req=new XMLHttpRequest();req.open("GET","/exec?args="+args.command,true);req.onreadystatechange=function(ev){if(req.readyState==4){if(req.status==200){request.done("
                                                                            "+req.responseText+"
                                                                            ");}}};req.send(null);}};var canon=require("pilot/canon");exports.startup=function(data,reason){canon.addCommand(bangCommandSpec);};exports.shutdown=function(data,reason){canon.removeCommand(bangCommandSpec);};});define("text!cockpit/ui/cli_view.css",[],""+"#cockpitInput { padding-left: 16px; }"+""+".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }"+""+".cptCompletion { padding: 0; position: absolute; z-index: -1000; }"+".cptCompletion.VALID { background: #FFF; }"+".cptCompletion.INCOMPLETE { background: #DDD; }"+".cptCompletion.INVALID { background: #DDD; }"+".cptCompletion span { color: #FFF; }"+".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }"+".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }"+"span.cptPrompt { color: #66F; font-weight: bold; }"+""+""+".cptHints {"+" color: #000;"+" position: absolute;"+" border: 1px solid rgba(230, 230, 230, 0.8);"+" background: rgba(250, 250, 250, 0.8);"+" -moz-border-radius-topleft: 10px;"+" -moz-border-radius-topright: 10px;"+" border-top-left-radius: 10px; border-top-right-radius: 10px;"+" z-index: 1000;"+" padding: 8px;"+" display: none;"+"}"+""+".cptFocusPopup { display: block; }"+".cptFocusPopup.cptNoPopup { display: none; }"+""+".cptHints ul { margin: 0; padding: 0 15px; }"+""+".cptGt { font-weight: bold; font-size: 120%; }"+"");define("text!cockpit/ui/request_view.css",[],""+".cptRowIn {"+" display: box; display: -moz-box; display: -webkit-box;"+" box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;"+" box-align: center; -moz-box-align: center; -webkit-box-align: center;"+" color: #333;"+" background-color: #EEE;"+" width: 100%;"+" font-family: consolas, courier, monospace;"+"}"+".cptRowIn > * { padding-left: 2px; padding-right: 2px; }"+".cptRowIn > img { cursor: pointer; }"+".cptHover { display: none; }"+".cptRowIn:hover > .cptHover { display: block; }"+".cptRowIn:hover > .cptHover.cptHidden { display: none; }"+".cptOutTyped {"+" box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;"+" font-weight: bold; color: #000; font-size: 120%;"+"}"+".cptRowOutput { padding-left: 10px; line-height: 1.2em; }"+".cptRowOutput strong,"+".cptRowOutput b,"+".cptRowOutput th,"+".cptRowOutput h1,"+".cptRowOutput h2,"+".cptRowOutput h3 { color: #000; }"+".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }"+".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }"+".cptRowOutput input[type=password],"+".cptRowOutput input[type=text],"+".cptRowOutput textarea {"+" color: #000; font-size: 120%;"+" background: transparent; padding: 3px;"+" border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;"+"}"+".cptRowOutput table,"+".cptRowOutput td,"+".cptRowOutput th { border: 0; padding: 0 2px; }"+".cptRowOutput .right { text-align: right; }"+"");define("text!cockpit/ui/request_view.html",[],""+"
                                                                            "+" "+'
                                                                            '+""+" "+'
                                                                            >
                                                                            '+'
                                                                            ${request.typed}
                                                                            '+""+" "+'
                                                                            '+' Hide command output'+' Show command output'+' Remove this command from the history"+""+"
                                                                            "+""+" "+'
                                                                            '+'
                                                                            '+' '+"
                                                                            "+"
                                                                            "+"");define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); +define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7");define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg==");define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII=");define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII=");define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); +define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII=");define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII=");define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); +},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed.js b/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed.js new file mode 100644 index 00000000000..b0efb739ffe --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-cockpit-uncompressed.js @@ -0,0 +1,2507 @@ +AUI.add('aui-ace-editor-cockpit-uncompressed', function(A) { +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Kevin Dangoor (kdangoor@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/index', ['require', 'exports', 'module' , 'pilot/index', 'cockpit/cli', 'cockpit/ui/settings', 'cockpit/ui/cli_view', 'cockpit/commands/basic'], function(require, exports, module) { + + +exports.startup = function(data, reason) { + require('pilot/index'); + require('cockpit/cli').startup(data, reason); + // window.testCli = require('cockpit/test/testCli'); + + require('cockpit/ui/settings').startup(data, reason); + require('cockpit/ui/cli_view').startup(data, reason); + require('cockpit/commands/basic').startup(data, reason); +}; + +/* +exports.shutdown(data, reason) { +}; +*/ + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/cli', ['require', 'exports', 'module' , 'pilot/console', 'pilot/lang', 'pilot/oop', 'pilot/event_emitter', 'pilot/types', 'pilot/canon'], function(require, exports, module) { + + +var console = require('pilot/console'); +var lang = require('pilot/lang'); +var oop = require('pilot/oop'); +var EventEmitter = require('pilot/event_emitter').EventEmitter; + +//var keyboard = require('keyboard/keyboard'); +var types = require('pilot/types'); +var Status = require('pilot/types').Status; +var Conversion = require('pilot/types').Conversion; +var canon = require('pilot/canon'); + +/** + * Normally type upgrade is done when the owning command is registered, but + * out commandParam isn't part of a command, so it misses out. + */ +exports.startup = function(data, reason) { + canon.upgradeType('command', commandParam); +}; + +/** + * The information required to tell the user there is a problem with their + * input. + * TODO: There a several places where {start,end} crop up. Perhaps we should + * have a Cursor object. + */ +function Hint(status, message, start, end, predictions) { + this.status = status; + this.message = message; + + if (typeof start === 'number') { + this.start = start; + this.end = end; + this.predictions = predictions; + } + else { + var arg = start; + this.start = arg.start; + this.end = arg.end; + this.predictions = arg.predictions; + } +} +Hint.prototype = { +}; +/** + * Loop over the array of hints finding the one we should display. + * @param hints array of hints + */ +Hint.sort = function(hints, cursor) { + // Calculate 'distance from cursor' + if (cursor !== undefined) { + hints.forEach(function(hint) { + if (hint.start === Argument.AT_CURSOR) { + hint.distance = 0; + } + else if (cursor < hint.start) { + hint.distance = hint.start - cursor; + } + else if (cursor > hint.end) { + hint.distance = cursor - hint.end; + } + else { + hint.distance = 0; + } + }, this); + } + // Sort + hints.sort(function(hint1, hint2) { + // Compare first based on distance from cursor + if (cursor !== undefined) { + var diff = hint1.distance - hint2.distance; + if (diff != 0) { + return diff; + } + } + // otherwise go with hint severity + return hint2.status - hint1.status; + }); + // tidy-up + if (cursor !== undefined) { + hints.forEach(function(hint) { + delete hint.distance; + }, this); + } + return hints; +}; +exports.Hint = Hint; + +/** + * A Hint that arose as a result of a Conversion + */ +function ConversionHint(conversion, arg) { + this.status = conversion.status; + this.message = conversion.message; + if (arg) { + this.start = arg.start; + this.end = arg.end; + } + else { + this.start = 0; + this.end = 0; + } + this.predictions = conversion.predictions; +}; +oop.inherits(ConversionHint, Hint); + + +/** + * We record where in the input string an argument comes so we can report errors + * against those string positions. + * We publish a 'change' event when-ever the text changes + * @param emitter Arguments use something else to pass on change events. + * Currently this will be the creating Requisition. This prevents dependency + * loops and prevents us from needing to merge listener lists. + * @param text The string (trimmed) that contains the argument + * @param start The position of the text in the original input string + * @param end See start + * @param prefix Knowledge of quotation marks and whitespace used prior to the + * text in the input string allows us to re-generate the original input from + * the arguments. + * @param suffix Any quotation marks and whitespace used after the text. + * Whitespace is normally placed in the prefix to the succeeding argument, but + * can be used here when this is the last argument. + * @constructor + */ +function Argument(emitter, text, start, end, prefix, suffix) { + this.emitter = emitter; + this.setText(text); + this.start = start; + this.end = end; + this.prefix = prefix; + this.suffix = suffix; +} +Argument.prototype = { + /** + * Return the result of merging these arguments. + * TODO: What happens when we're merging arguments for the single string + * case and some of the arguments are in quotation marks? + */ + merge: function(following) { + if (following.emitter != this.emitter) { + throw new Error('Can\'t merge Arguments from different EventEmitters'); + } + return new Argument( + this.emitter, + this.text + this.suffix + following.prefix + following.text, + this.start, following.end, + this.prefix, + following.suffix); + }, + + /** + * See notes on events in Assignment. We might need to hook changes here + * into a CliRequisition so they appear of the command line. + */ + setText: function(text) { + if (text == null) { + throw new Error('Illegal text for Argument: ' + text); + } + var ev = { argument: this, oldText: this.text, text: text }; + this.text = text; + this.emitter._dispatchEvent('argumentChange', ev); + }, + + /** + * Helper when we're putting arguments back together + */ + toString: function() { + // TODO: There is a bug here - we should re-escape escaped characters + // But can we do that reliably? + return this.prefix + this.text + this.suffix; + } +}; + +/** + * Merge an array of arguments into a single argument. + * All Arguments in the array are expected to have the same emitter + */ +Argument.merge = function(argArray, start, end) { + start = (start === undefined) ? 0 : start; + end = (end === undefined) ? argArray.length : end; + + var joined; + for (var i = start; i < end; i++) { + var arg = argArray[i]; + if (!joined) { + joined = arg; + } + else { + joined = joined.merge(arg); + } + } + return joined; +}; + +/** + * We sometimes need a way to say 'this error occurs where ever the cursor is' + */ +Argument.AT_CURSOR = -1; + + +/** + * A link between a parameter and the data for that parameter. + * The data for the parameter is available as in the preferred type and as + * an Argument for the CLI. + *

                                                                            We also record validity information where applicable. + *

                                                                            For values, null and undefined have distinct definitions. null means + * that a value has been provided, undefined means that it has not. + * Thus, null is a valid default value, and common because it identifies an + * parameter that is optional. undefined means there is no value from + * the command line. + * @constructor + */ +function Assignment(param, requisition) { + this.param = param; + this.requisition = requisition; + this.setValue(param.defaultValue); +}; +Assignment.prototype = { + /** + * The parameter that we are assigning to + * @readonly + */ + param: undefined, + + /** + * Report on the status of the last parse() conversion. + * @see types.Conversion + */ + conversion: undefined, + + /** + * The current value in a type as specified by param.type + */ + value: undefined, + + /** + * The string version of the current value + */ + arg: undefined, + + /** + * The current value (i.e. not the string representation) + * Use setValue() to mutate + */ + value: undefined, + setValue: function(value) { + if (this.value === value) { + return; + } + + if (value === undefined) { + this.value = this.param.defaultValue; + this.conversion = this.param.getDefault ? + this.param.getDefault() : + this.param.type.getDefault(); + this.arg = undefined; + } else { + this.value = value; + this.conversion = undefined; + var text = (value == null) ? '' : this.param.type.stringify(value); + if (this.arg) { + this.arg.setText(text); + } + } + + this.requisition._assignmentChanged(this); + }, + + /** + * The textual representation of the current value + * Use setValue() to mutate + */ + arg: undefined, + setArgument: function(arg) { + if (this.arg === arg) { + return; + } + this.arg = arg; + this.conversion = this.param.type.parse(arg.text); + this.conversion.arg = arg; // TODO: make this automatic? + this.value = this.conversion.value; + this.requisition._assignmentChanged(this); + }, + + /** + * Create a list of the hints associated with this parameter assignment. + * Generally there will be only one hint generated because we're currently + * only displaying one hint at a time, ordering by distance from cursor + * and severity. Since distance from cursor will be the same for all hints + * from this assignment all but the most severe will ever be used. It might + * make sense with more experience to alter this to function to be getHint() + */ + getHint: function() { + // Allow the parameter to provide documentation + if (this.param.getCustomHint && this.value && this.arg) { + var hint = this.param.getCustomHint(this.value, this.arg); + if (hint) { + return hint; + } + } + + // If there is no argument, use the cursor position + var message = '' + this.param.name + ': '; + if (this.param.description) { + // TODO: This should be a short description - do we need to trim? + message += this.param.description.trim(); + + // Ensure the help text ends with '. ' + if (message.charAt(message.length - 1) !== '.') { + message += '.'; + } + if (message.charAt(message.length - 1) !== ' ') { + message += ' '; + } + } + var status = Status.VALID; + var start = this.arg ? this.arg.start : Argument.AT_CURSOR; + var end = this.arg ? this.arg.end : Argument.AT_CURSOR; + var predictions; + + // Non-valid conversions will have useful information to pass on + if (this.conversion) { + status = this.conversion.status; + if (this.conversion.message) { + message += this.conversion.message; + } + predictions = this.conversion.predictions; + } + + // Hint if the param is required, but not provided + var argProvided = this.arg && this.arg.text !== ''; + var dataProvided = this.value !== undefined || argProvided; + if (this.param.defaultValue === undefined && !dataProvided) { + status = Status.INVALID; + message += 'Required<\strong>'; + } + + return new Hint(status, message, start, end, predictions); + }, + + /** + * Basically setValue(conversion.predictions[0]) done in a safe + * way. + */ + complete: function() { + if (this.conversion && this.conversion.predictions && + this.conversion.predictions.length > 0) { + this.setValue(this.conversion.predictions[0]); + } + }, + + /** + * If the cursor is at 'position', do we have sufficient data to start + * displaying the next hint. This is both complex and important. + * For example, if the user has just typed:

                                                                              + *
                                                                            • 'set tabstop ' then they clearly want to know about the valid + * values for the tabstop setting, so the hint is based on the next + * parameter. + *
                                                                            • 'set tabstop' (without trailing space) - they will probably still + * want to know about the valid values for the tabstop setting because + * there is no confusion about the setting in question. + *
                                                                            • 'set tabsto' they've not finished typing a setting name so the hint + * should be based on the current parameter. + *
                                                                            • 'set tabstop' (when there is an additional tabstopstyle setting) we + * can't make assumptions about the setting - we're not finished. + *
                                                                            + *

                                                                            Note that the input for 2 and 4 is identical, only the configuration + * has changed, so hint display is environmental. + * + *

                                                                            This function works out if the cursor is before the end of this + * assignment (assuming that we've asked the same thing of the previous + * assignment) and then attempts to work out if we should use the hint from + * the next assignment even though technically the cursor is still inside + * this one due to the rules above. + */ + isPositionCaptured: function(position) { + if (!this.arg) { + return false; + } + + // Note we don't check if position >= this.arg.start because that's + // implied by the fact that we're asking the assignments in turn, and + // we want to avoid thing falling between the cracks, but we do need + // to check that the argument does have a position + if (this.arg.start === -1) { + return false; + } + + // We're clearly done if the position is past the end of the text + if (position > this.arg.end) { + return false; + } + + // If we're AT the end, the position is captured if either the status + // is not valid or if there are other valid options including current + if (position === this.arg.end) { + return this.conversion.status !== Status.VALID || + this.conversion.predictions.length !== 0; + } + + // Otherwise we're clearly inside + return true; + }, + + /** + * Replace the current value with the lower value if such a concept + * exists. + */ + decrement: function() { + var replacement = this.param.type.decrement(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Replace the current value with the higher value if such a concept + * exists. + */ + increment: function() { + var replacement = this.param.type.increment(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Helper when we're rebuilding command lines. + */ + toString: function() { + return this.arg ? this.arg.toString() : ''; + } +}; +exports.Assignment = Assignment; + + +/** + * This is a special parameter to reflect the command itself. + */ +var commandParam = { + name: '__command', + type: 'command', + description: 'The command to execute', + + /** + * Provide some documentation for a command. + */ + getCustomHint: function(command, arg) { + var docs = []; + docs.push(' > '); + docs.push(command.name); + if (command.params && command.params.length > 0) { + command.params.forEach(function(param) { + if (param.defaultValue === undefined) { + docs.push(' [' + param.name + ']'); + } + else { + docs.push(' [' + param.name + ']'); + } + }, this); + } + docs.push('
                                                                            '); + + docs.push(command.description ? command.description : '(No description)'); + docs.push('
                                                                            '); + + if (command.params && command.params.length > 0) { + docs.push('

                                                                              '); + command.params.forEach(function(param) { + docs.push('
                                                                            • '); + docs.push('' + param.name + ': '); + docs.push(param.description ? param.description : '(No description)'); + if (param.defaultValue === undefined) { + docs.push(' [Required]'); + } + else if (param.defaultValue === null) { + docs.push(' [Optional]'); + } + else { + docs.push(' [Default: ' + param.defaultValue + ']'); + } + docs.push('
                                                                            • '); + }, this); + docs.push('
                                                                            '); + } + + return new Hint(Status.VALID, docs.join(''), arg); + } +}; + +/** + * A Requisition collects the information needed to execute a command. + * There is no point in a requisition for parameter-less commands because there + * is no information to collect. A Requisition is a collection of assignments + * of values to parameters, each handled by an instance of Assignment. + * CliRequisition adds functions for parsing input from a command line to this + * class. + *

                                                                            Events

                                                                            + * We publish the following events:
                                                                              + *
                                                                            • argumentChange: The text of some argument has changed. It is likely that + * any UI component displaying this argument will need to be updated. (Note that + * this event is actually published by the Argument itself - see the docs for + * Argument for more details) + * The event object looks like: { argument: A, oldText: B, text: B } + *
                                                                            • commandChange: The command has changed. It is likely that a UI + * structure will need updating to match the parameters of the new command. + * The event object looks like { command: A } + * @constructor + */ +function Requisition(env) { + this.env = env; + this.commandAssignment = new Assignment(commandParam, this); +} + +Requisition.prototype = { + /** + * The command that we are about to execute. + * @see setCommandConversion() + * @readonly + */ + commandAssignment: undefined, + + /** + * The count of assignments. Excludes the commandAssignment + * @readonly + */ + assignmentCount: undefined, + + /** + * The object that stores of Assignment objects that we are filling out. + * The Assignment objects are stored under their param.name for named + * lookup. Note: We make use of the property of Javascript objects that + * they are not just hashmaps, but linked-list hashmaps which iterate in + * insertion order. + * Excludes the commandAssignment. + */ + _assignments: undefined, + + /** + * The store of hints generated by the assignments. We are trying to prevent + * the UI from needing to access this in broad form, but instead use + * methods that query part of this structure. + */ + _hints: undefined, + + /** + * When the command changes, we need to keep a bunch of stuff in sync + */ + _assignmentChanged: function(assignment) { + // This is all about re-creating Assignments + if (assignment.param.name !== '__command') { + return; + } + + this._assignments = {}; + + if (assignment.value) { + assignment.value.params.forEach(function(param) { + this._assignments[param.name] = new Assignment(param, this); + }, this); + } + + this.assignmentCount = Object.keys(this._assignments).length; + this._dispatchEvent('commandChange', { command: assignment.value }); + }, + + /** + * Assignments have an order, so we need to store them in an array. + * But we also need named access ... + */ + getAssignment: function(nameOrNumber) { + var name = (typeof nameOrNumber === 'string') ? + nameOrNumber : + Object.keys(this._assignments)[nameOrNumber]; + return this._assignments[name]; + }, + + /** + * Where parameter name == assignment names - they are the same. + */ + getParameterNames: function() { + return Object.keys(this._assignments); + }, + + /** + * A *shallow* clone of the assignments. + * This is useful for systems that wish to go over all the assignments + * finding values one way or another and wish to trim an array as they go. + */ + cloneAssignments: function() { + return Object.keys(this._assignments).map(function(name) { + return this._assignments[name]; + }, this); + }, + + /** + * Collect the statuses from the Assignments. + * The hints returned are sorted by severity + */ + _updateHints: function() { + // TODO: work out when to clear this out for the plain Requisition case + // this._hints = []; + this.getAssignments(true).forEach(function(assignment) { + this._hints.push(assignment.getHint()); + }, this); + Hint.sort(this._hints); + + // We would like to put some initial help here, but for anyone but + // a complete novice a 'type help' message is very annoying, so we + // need to find a way to only display this message once, or for + // until the user click a 'close' button or similar + // TODO: Add special case for '' input + }, + + /** + * Returns the most severe status + */ + getWorstHint: function() { + return this._hints[0]; + }, + + /** + * Extract the names and values of all the assignments, and return as + * an object. + */ + getArgsObject: function() { + var args = {}; + this.getAssignments().forEach(function(assignment) { + args[assignment.param.name] = assignment.value; + }, this); + return args; + }, + + /** + * Access the arguments as an array. + * @param includeCommand By default only the parameter arguments are + * returned unless (includeCommand === true), in which case the list is + * prepended with commandAssignment.arg + */ + getAssignments: function(includeCommand) { + var args = []; + if (includeCommand === true) { + args.push(this.commandAssignment); + } + Object.keys(this._assignments).forEach(function(name) { + args.push(this.getAssignment(name)); + }, this); + return args; + }, + + /** + * Reset all the assignments to their default values + */ + setDefaultValues: function() { + this.getAssignments().forEach(function(assignment) { + assignment.setValue(undefined); + }, this); + }, + + /** + * Helper to call canon.exec + */ + exec: function() { + canon.exec(this.commandAssignment.value, + this.env, + "cli", + this.getArgsObject(), + this.toCanonicalString()); + }, + + /** + * Extract a canonical version of the input + */ + toCanonicalString: function() { + var line = []; + line.push(this.commandAssignment.value.name); + Object.keys(this._assignments).forEach(function(name) { + var assignment = this._assignments[name]; + var type = assignment.param.type; + // TODO: This will cause problems if there is a non-default value + // after a default value. Also we need to decide when to use + // named parameters in place of positional params. Both can wait. + if (assignment.value !== assignment.param.defaultValue) { + line.push(' '); + line.push(type.stringify(assignment.value)); + } + }, this); + return line.join(''); + } +}; +oop.implement(Requisition.prototype, EventEmitter); +exports.Requisition = Requisition; + + +/** + * An object used during command line parsing to hold the various intermediate + * data steps. + *

                                                                              The 'output' of the update is held in 2 objects: input.hints which is an + * array of hints to display to the user. In the future this will become a + * single value. + *

                                                                              The other output value is input.requisition which gives access to an + * args object for use in executing the final command. + * + *

                                                                              The majority of the functions in this class are called in sequence by the + * constructor. Their task is to add to hints fill out the requisition. + *

                                                                              The general sequence is:

                                                                                + *
                                                                              • _tokenize(): convert _typed into _parts + *
                                                                              • _split(): convert _parts into _command and _unparsedArgs + *
                                                                              • _assign(): convert _unparsedArgs into requisition + *
                                                                              + * + * @param typed {string} The instruction as typed by the user so far + * @param options {object} A list of optional named parameters. Can be any of: + * flags: Flags for us to check against the predicates specified with the + * commands. Defaulted to keyboard.buildFlags({ }); + * if not specified. + * @constructor + */ +function CliRequisition(env, options) { + Requisition.call(this, env); + + if (options && options.flags) { + /** + * TODO: We were using a default of keyboard.buildFlags({ }); + * This allowed us to have commands that only existed in certain contexts + * - i.e. Javascript specific commands. + */ + this.flags = options.flags; + } +} +oop.inherits(CliRequisition, Requisition); +(function() { + /** + * Called by the UI when ever the user interacts with a command line input + * @param input A structure that details the state of the input field. + * It should look something like: { typed:a, cursor: { start:b, end:c } } + * Where a is the contents of the input field, and b and c are the start + * and end of the cursor/selection respectively. + */ + CliRequisition.prototype.update = function(input) { + this.input = input; + this._hints = []; + + var args = this._tokenize(input.typed); + this._split(args); + + if (this.commandAssignment.value) { + this._assign(args); + } + + this._updateHints(); + }; + + /** + * Return an array of Status scores so we can create a marked up + * version of the command line input. + */ + CliRequisition.prototype.getInputStatusMarkup = function() { + // 'scores' is an array which tells us what chars are errors + // Initialize with everything VALID + var scores = this.toString().split('').map(function(ch) { + return Status.VALID; + }); + // For all chars in all hints, check and upgrade the score + this._hints.forEach(function(hint) { + for (var i = hint.start; i <= hint.end; i++) { + if (hint.status > scores[i]) { + scores[i] = hint.status; + } + } + }, this); + return scores; + }; + + /** + * Reconstitute the input from the args + */ + CliRequisition.prototype.toString = function() { + return this.getAssignments(true).map(function(assignment) { + return assignment.toString(); + }, this).join(''); + }; + + var superUpdateHints = CliRequisition.prototype._updateHints; + /** + * Marks up hints in a number of ways: + * - Makes INCOMPLETE hints that are not near the cursor INVALID since + * they can't be completed by typing + * - Finds the most severe hint, and annotates the array with it + * - Finds the hint to display, and also annotates the array with it + * TODO: I'm wondering if array annotation is evil and we should replace + * this with an object. Need to find out more. + */ + CliRequisition.prototype._updateHints = function() { + superUpdateHints.call(this); + + // Not knowing about cursor positioning, the requisition and assignments + // can't know this, but anything they mark as INCOMPLETE is actually + // INVALID unless the cursor is actually inside that argument. + var c = this.input.cursor; + this._hints.forEach(function(hint) { + var startInHint = c.start >= hint.start && c.start <= hint.end; + var endInHint = c.end >= hint.start && c.end <= hint.end; + var inHint = startInHint || endInHint; + if (!inHint && hint.status === Status.INCOMPLETE) { + hint.status = Status.INVALID; + } + }, this); + + Hint.sort(this._hints); + }; + + /** + * Accessor for the hints array. + * While we could just use the hints property, using getHints() is + * preferred for symmetry with Requisition where it needs a function due to + * lack of an atomic update system. + */ + CliRequisition.prototype.getHints = function() { + return this._hints; + }; + + /** + * Look through the arguments attached to our assignments for the assignment + * at the given position. + */ + CliRequisition.prototype.getAssignmentAt = function(position) { + var assignments = this.getAssignments(true); + for (var i = 0; i < assignments.length; i++) { + var assignment = assignments[i]; + if (!assignment.arg) { + // There is no argument in this assignment, we've fallen off + // the end of the obvious answers - it must be this one. + return assignment; + } + if (assignment.isPositionCaptured(position)) { + return assignment; + } + } + + return assignment; + }; + + /** + * Split up the input taking into account ' and " + */ + CliRequisition.prototype._tokenize = function(typed) { + // For blank input, place a dummy empty argument into the list + if (typed == null || typed.length === 0) { + return [ new Argument(this, '', 0, 0, '', '') ]; + } + + var OUTSIDE = 1; // The last character was whitespace + var IN_SIMPLE = 2; // The last character was part of a parameter + var IN_SINGLE_Q = 3; // We're inside a single quote: ' + var IN_DOUBLE_Q = 4; // We're inside double quotes: " + + var mode = OUTSIDE; + + // First we un-escape. This list was taken from: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Unicode + // We are generally converting to their real values except for \', \" + // and '\ ' which we are converting to unicode private characters so we + // can distinguish them from ', " and ' ', which have special meaning. + // They need swapping back post-split - see unescape2() + typed = typed + .replace(/\\\\/g, '\\') + .replace(/\\b/g, '\b') + .replace(/\\f/g, '\f') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\t/g, '\t') + .replace(/\\v/g, '\v') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\ /g, '\uF000') + .replace(/\\'/g, '\uF001') + .replace(/\\"/g, '\uF002'); + + function unescape2(str) { + return str + .replace(/\uF000/g, ' ') + .replace(/\uF001/g, '\'') + .replace(/\uF002/g, '"'); + } + + var i = 0; + var start = 0; // Where did this section start? + var prefix = ''; + var args = []; + + while (true) { + if (i >= typed.length) { + // There is nothing else to read - tidy up + if (mode !== OUTSIDE) { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, start, i, prefix, '')); + } + else { + if (i !== start) { + // There's a bunch of whitespace at the end of the + // command add it to the last argument's suffix, + // creating an empty argument if needed. + var extra = typed.substring(start, i); + var lastArg = args[args.length - 1]; + if (!lastArg) { + lastArg = new Argument(this, '', i, i, extra, ''); + args.push(lastArg); + } + else { + lastArg.suffix += extra; + } + } + } + break; + } + + var c = typed[i]; + switch (mode) { + case OUTSIDE: + if (c === '\'') { + prefix = typed.substring(start, i + 1); + mode = IN_SINGLE_Q; + start = i + 1; + } + else if (c === '"') { + prefix = typed.substring(start, i + 1); + mode = IN_DOUBLE_Q; + start = i + 1; + } + else if (/ /.test(c)) { + // Still whitespace, do nothing + } + else { + prefix = typed.substring(start, i); + mode = IN_SIMPLE; + start = i; + } + break; + + case IN_SIMPLE: + // There is an edge case of xx'xx which we are assuming to + // be a single parameter (and same with ") + if (c === ' ') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start, i, prefix, '')); + mode = OUTSIDE; + start = i; + prefix = ''; + } + break; + + case IN_SINGLE_Q: + if (c === '\'') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + + case IN_DOUBLE_Q: + if (c === '"') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + } + + i++; + } + + return args; + }; + + /** + * Looks in the canon for a command extension that matches what has been + * typed at the command line. + */ + CliRequisition.prototype._split = function(args) { + var argsUsed = 1; + var arg; + + while (argsUsed <= args.length) { + var arg = Argument.merge(args, 0, argsUsed); + this.commandAssignment.setArgument(arg); + + if (!this.commandAssignment.value) { + // Not found. break with value == null + break; + } + + /* + // Previously we needed a way to hide commands depending context. + // We have not resurrected that feature yet. + if (!keyboard.flagsMatch(command.predicates, this.flags)) { + // If the predicates say 'no match' then go LA LA LA + command = null; + break; + } + */ + + if (this.commandAssignment.value.exec) { + // Valid command, break with command valid + for (var i = 0; i < argsUsed; i++) { + args.shift(); + } + break; + } + + argsUsed++; + } + }; + + /** + * Work out which arguments are applicable to which parameters. + *

                                                                              This takes #_command.params and #_unparsedArgs and creates a map of + * param names to 'assignment' objects, which have the following properties: + *

                                                                                + *
                                                                              • param - The matching parameter. + *
                                                                              • index - Zero based index into where the match came from on the input + *
                                                                              • value - The matching input + *
                                                                              + */ + CliRequisition.prototype._assign = function(args) { + if (args.length === 0) { + this.setDefaultValues(); + return; + } + + // Create an error if the command does not take parameters, but we have + // been given them ... + if (this.assignmentCount === 0) { + // TODO: previously we were doing some extra work to avoid this if + // we determined that we had args that were all whitespace, but + // probably given our tighter tokenize() this won't be an issue? + this._hints.push(new Hint(Status.INVALID, + this.commandAssignment.value.name + + ' does not take any parameters', + Argument.merge(args))); + return; + } + + // Special case: if there is only 1 parameter, and that's of type + // text we put all the params into the first param + if (this.assignmentCount === 1) { + var assignment = this.getAssignment(0); + if (assignment.param.type.name === 'text') { + assignment.setArgument(Argument.merge(args)); + return; + } + } + + var assignments = this.cloneAssignments(); + var names = this.getParameterNames(); + + // Extract all the named parameters + var used = []; + assignments.forEach(function(assignment) { + var namedArgText = '--' + assignment.name; + + var i = 0; + while (true) { + var arg = args[i]; + if (namedArgText !== arg.text) { + i++; + if (i >= args.length) { + break; + } + continue; + } + + // boolean parameters don't have values, default to false + if (assignment.param.type.name === 'boolean') { + assignment.setValue(true); + } + else { + if (i + 1 < args.length) { + // Missing value portion of this named param + this._hints.push(new Hint(Status.INCOMPLETE, + 'Missing value for: ' + namedArgText, + args[i])); + } + else { + args.splice(i + 1, 1); + assignment.setArgument(args[i + 1]); + } + } + + lang.arrayRemove(names, assignment.name); + args.splice(i, 1); + // We don't need to i++ if we splice + } + }, this); + + // What's left are positional parameters assign in order + names.forEach(function(name) { + var assignment = this.getAssignment(name); + if (args.length === 0) { + // No more values + assignment.setValue(undefined); // i.e. default + } + else { + var arg = args[0]; + args.splice(0, 1); + assignment.setArgument(arg); + } + }, this); + + if (args.length > 0) { + var remaining = Argument.merge(args); + this._hints.push(new Hint(Status.INVALID, + 'Input \'' + remaining.text + '\' makes no sense.', + remaining)); + } + }; + +})(); +exports.CliRequisition = CliRequisition; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/settings', ['require', 'exports', 'module' , 'pilot/types', 'pilot/types/basic'], function(require, exports, module) { + + +var types = require("pilot/types"); +var SelectionType = require('pilot/types/basic').SelectionType; + +var direction = new SelectionType({ + name: 'direction', + data: [ 'above', 'below' ] +}); + +var hintDirectionSetting = { + name: "hintDirection", + description: "Are hints shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputDirectionSetting = { + name: "outputDirection", + description: "Is the output window shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputHeightSetting = { + name: "outputHeight", + description: "What height should the output panel be?", + type: "number", + defaultValue: 300 +}; + +exports.startup = function(data, reason) { + types.registerType(direction); + data.env.settings.addSetting(hintDirectionSetting); + data.env.settings.addSetting(outputDirectionSetting); + data.env.settings.addSetting(outputHeightSetting); +}; + +exports.shutdown = function(data, reason) { + types.unregisterType(direction); + data.env.settings.removeSetting(hintDirectionSetting); + data.env.settings.removeSetting(outputDirectionSetting); + data.env.settings.removeSetting(outputHeightSetting); +}; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/cli_view', ['require', 'exports', 'module' , 'text!cockpit/ui/cli_view.css', 'pilot/event', 'pilot/dom', 'pilot/keys', 'pilot/canon', 'pilot/types', 'cockpit/cli', 'cockpit/ui/request_view'], function(require, exports, module) { + + +var editorCss = require("text!cockpit/ui/cli_view.css"); +var event = require("pilot/event"); +var dom = require("pilot/dom"); + +dom.importCssString(editorCss); + +var event = require("pilot/event"); +var keys = require("pilot/keys"); +var canon = require("pilot/canon"); +var Status = require('pilot/types').Status; + +var CliRequisition = require('cockpit/cli').CliRequisition; +var Hint = require('cockpit/cli').Hint; +var RequestView = require('cockpit/ui/request_view').RequestView; + +var NO_HINT = new Hint(Status.VALID, '', 0, 0); + +/** + * On startup we need to: + * 1. Add 3 sets of elements to the DOM for: + * - command line output + * - input hints + * - completion + * 2. Attach a set of events so the command line works + */ +exports.startup = function(data, reason) { + var cli = new CliRequisition(data.env); + var cliView = new CliView(cli, data.env); + data.env.cli = cli; +}; + +/** + * A class to handle the simplest UI implementation + */ +function CliView(cli, env) { + cli.cliView = this; + this.cli = cli; + this.doc = document; + this.win = dom.getParentWindow(this.doc); + this.env = env; + + // TODO: we should have a better way to specify command lines??? + this.element = this.doc.getElementById('cockpitInput'); + if (!this.element) { + // console.log('No element with an id of cockpit. Bailing on cli'); + return; + } + + this.settings = env.settings; + this.hintDirection = this.settings.getSetting('hintDirection'); + this.outputDirection = this.settings.getSetting('outputDirection'); + this.outputHeight = this.settings.getSetting('outputHeight'); + + // If the requisition tells us something has changed, we use this to know + // if we should ignore it + this.isUpdating = false; + + this.createElements(); + this.update(); +} +CliView.prototype = { + /** + * Create divs for completion, hints and output + */ + createElements: function() { + var input = this.element; + + this.element.spellcheck = false; + + this.output = this.doc.getElementById('cockpitOutput'); + this.popupOutput = (this.output == null); + if (!this.output) { + this.output = this.doc.createElement('div'); + this.output.id = 'cockpitOutput'; + this.output.className = 'cptOutput'; + input.parentNode.insertBefore(this.output, input.nextSibling); + + var setMaxOutputHeight = function() { + this.output.style.maxHeight = this.outputHeight.get() + 'px'; + }.bind(this); + this.outputHeight.addEventListener('change', setMaxOutputHeight); + setMaxOutputHeight(); + } + + this.completer = this.doc.createElement('div'); + this.completer.className = 'cptCompletion VALID'; + + this.completer.style.color = dom.computedStyle(input, "color"); + this.completer.style.fontSize = dom.computedStyle(input, "fontSize"); + this.completer.style.fontFamily = dom.computedStyle(input, "fontFamily"); + this.completer.style.fontWeight = dom.computedStyle(input, "fontWeight"); + this.completer.style.fontStyle = dom.computedStyle(input, "fontStyle"); + input.parentNode.insertBefore(this.completer, input.nextSibling); + + // Transfer background styling to the completer. + this.completer.style.backgroundColor = input.style.backgroundColor; + input.style.backgroundColor = 'transparent'; + + this.hinter = this.doc.createElement('div'); + this.hinter.className = 'cptHints'; + input.parentNode.insertBefore(this.hinter, input.nextSibling); + + var resizer = this.resizer.bind(this); + event.addListener(this.win, 'resize', resizer); + this.hintDirection.addEventListener('change', resizer); + this.outputDirection.addEventListener('change', resizer); + resizer(); + + canon.addEventListener('output', function(ev) { + new RequestView(ev.request, this); + }.bind(this)); + event.addCommandKeyListener(input, this.onCommandKey.bind(this)); + event.addListener(input, 'keyup', this.onKeyUp.bind(this)); + + // cursor position affects hint severity. TODO: shortcuts for speed + event.addListener(input, 'mouseup', function(ev) { + this.isUpdating = true; + this.update(); + this.isUpdating = false; + }.bind(this)); + + this.cli.addEventListener('argumentChange', this.onArgChange.bind(this)); + + event.addListener(input, "focus", function() { + dom.addCssClass(this.output, "cptFocusPopup"); + dom.addCssClass(this.hinter, "cptFocusPopup"); + }.bind(this)); + + function hideOutput() { + dom.removeCssClass(this.output, "cptFocusPopup"); + dom.removeCssClass(this.hinter, "cptFocusPopup"); + }; + event.addListener(input, "blur", hideOutput.bind(this)); + hideOutput.call(this); + }, + + /** + * We need to see the output of the latest command entered + */ + scrollOutputToBottom: function() { + // Certain browsers have a bug such that scrollHeight is too small + // when content does not fill the client area of the element + var scrollHeight = Math.max(this.output.scrollHeight, this.output.clientHeight); + this.output.scrollTop = scrollHeight - this.output.clientHeight; + }, + + /** + * To be called on window resize or any time we want to align the elements + * with the input box. + */ + resizer: function() { + var rect = this.element.getClientRects()[0]; + + this.completer.style.top = rect.top + 'px'; + var height = rect.bottom - rect.top; + this.completer.style.height = height + 'px'; + this.completer.style.lineHeight = height + 'px'; + this.completer.style.left = rect.left + 'px'; + var width = rect.right - rect.left; + this.completer.style.width = width + 'px'; + + if (this.hintDirection.get() === 'below') { + this.hinter.style.top = rect.bottom + 'px'; + this.hinter.style.bottom = 'auto'; + } + else { + this.hinter.style.top = 'auto'; + this.hinter.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.hinter.style.left = (rect.left + 30) + 'px'; + this.hinter.style.maxWidth = (width - 110) + 'px'; + + if (this.popupOutput) { + if (this.outputDirection.get() === 'below') { + this.output.style.top = rect.bottom + 'px'; + this.output.style.bottom = 'auto'; + } + else { + this.output.style.top = 'auto'; + this.output.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.output.style.left = rect.left + 'px'; + this.output.style.width = (width - 80) + 'px'; + } + }, + + /** + * Ensure that TAB isn't handled by the browser + */ +onCommandKey: function(ev, hashId, keyCode) { + var stopEvent; + if (keyCode === keys.TAB || + keyCode === keys.UP || + keyCode === keys.DOWN) { + stopEvent = true; + } else if (hashId != 0 || keyCode != 0) { + stopEvent = canon.execKeyCommand(this.env, 'cli', hashId, keyCode); + } + stopEvent && event.stopEvent(ev); + }, + + /** + * The main keyboard processing loop + */ + onKeyUp: function(ev) { + var handled; + /* + var handled = keyboardManager.processKeyEvent(ev, this, { + isCommandLine: true, isKeyUp: true + }); + */ + + // RETURN does a special exec/highlight thing + if (ev.keyCode === keys.RETURN) { + var worst = this.cli.getWorstHint(); + // Deny RETURN unless the command might work + if (worst.status === Status.VALID) { + this.cli.exec(); + this.element.value = ''; + } + else { + // If we've denied RETURN because the command was not VALID, + // select the part of the command line that is causing problems + // TODO: if there are 2 errors are we picking the right one? + dom.setSelectionStart(this.element, worst.start); + dom.setSelectionEnd(this.element, worst.end); + } + } + + this.update(); + + // Special actions which delegate to the assignment + var current = this.cli.getAssignmentAt(dom.getSelectionStart(this.element)); + if (current) { + // TAB does a special complete thing + if (ev.keyCode === keys.TAB) { + current.complete(); + this.update(); + } + + // UP/DOWN look for some history + if (ev.keyCode === keys.UP) { + current.increment(); + this.update(); + } + if (ev.keyCode === keys.DOWN) { + current.decrement(); + this.update(); + } + } + + return handled; + }, + + /** + * Actually parse the input and make sure we're all up to date + */ + update: function() { + this.isUpdating = true; + var input = { + typed: this.element.value, + cursor: { + start: dom.getSelectionStart(this.element), + end: dom.getSelectionEnd(this.element.selectionEnd) + } + }; + this.cli.update(input); + + var display = this.cli.getAssignmentAt(input.cursor.start).getHint(); + + // 1. Update the completer with prompt/error marker/TAB info + dom.removeCssClass(this.completer, Status.VALID.toString()); + dom.removeCssClass(this.completer, Status.INCOMPLETE.toString()); + dom.removeCssClass(this.completer, Status.INVALID.toString()); + + var completion = '> '; + if (this.element.value.length > 0) { + var scores = this.cli.getInputStatusMarkup(); + completion += this.markupStatusScore(scores); + } + + // Display the "-> prediction" at the end of the completer + if (this.element.value.length > 0 && + display.predictions && display.predictions.length > 0) { + var tab = display.predictions[0]; + completion += '  ⇥ ' + (tab.name ? tab.name : tab); + } + this.completer.innerHTML = completion; + dom.addCssClass(this.completer, this.cli.getWorstHint().status.toString()); + + // 2. Update the hint element + var hint = ''; + if (this.element.value.length !== 0) { + hint += display.message; + if (display.predictions && display.predictions.length > 0) { + hint += ': [ '; + display.predictions.forEach(function(prediction) { + hint += (prediction.name ? prediction.name : prediction); + hint += ' | '; + }, this); + hint = hint.replace(/\| $/, ']'); + } + } + + this.hinter.innerHTML = hint; + if (hint.length === 0) { + dom.addCssClass(this.hinter, 'cptNoPopup'); + } + else { + dom.removeCssClass(this.hinter, 'cptNoPopup'); + } + + this.isUpdating = false; + }, + + /** + * Markup an array of Status values with spans + */ + markupStatusScore: function(scores) { + var completion = ''; + // Create mark-up + var i = 0; + var lastStatus = -1; + while (true) { + if (lastStatus !== scores[i]) { + completion += ''; + lastStatus = scores[i]; + } + completion += this.element.value[i]; + i++; + if (i === this.element.value.length) { + completion += ''; + break; + } + if (lastStatus !== scores[i]) { + completion += ''; + } + } + + return completion; + }, + + /** + * Update the input element to reflect the changed argument + */ + onArgChange: function(ev) { + if (this.isUpdating) { + return; + } + + var prefix = this.element.value.substring(0, ev.argument.start); + var suffix = this.element.value.substring(ev.argument.end); + var insert = typeof ev.text === 'string' ? ev.text : ev.text.name; + this.element.value = prefix + insert + suffix; + // Fix the cursor. + var insertEnd = (prefix + insert).length; + this.element.selectionStart = insertEnd; + this.element.selectionEnd = insertEnd; + } +}; +exports.CliView = CliView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/request_view', ['require', 'exports', 'module' , 'pilot/dom', 'pilot/event', 'text!cockpit/ui/request_view.html', 'pilot/domtemplate', 'text!cockpit/ui/request_view.css'], function(require, exports, module) { + +var dom = require("pilot/dom"); +var event = require("pilot/event"); +var requestViewHtml = require("text!cockpit/ui/request_view.html"); +var Templater = require("pilot/domtemplate").Templater; + +var requestViewCss = require("text!cockpit/ui/request_view.css"); +dom.importCssString(requestViewCss); + +/** + * Pull the HTML into the DOM, but don't add it to the document + */ +var templates = document.createElement('div'); +templates.innerHTML = requestViewHtml; +var row = templates.querySelector('.cptRow'); + +/** + * Work out the path for images. + * TODO: This should probably live in some utility area somewhere + */ +function imageUrl(path) { + var dataUrl; + try { + dataUrl = require('text!cockpit/ui/' + path); + } catch (e) { } + if (dataUrl) { + return dataUrl; + } + + var filename = module.id.split('/').pop() + '.js'; + var imagePath; + + if (module.uri.substr(-filename.length) !== filename) { + console.error('Can\'t work out path from module.uri/module.id'); + return path; + } + + if (module.uri) { + var end = module.uri.length - filename.length - 1; + return module.uri.substr(0, end) + "/" + path; + } + + return filename + path; +} + + +/** + * Adds a row to the CLI output display + */ +function RequestView(request, cliView) { + this.request = request; + this.cliView = cliView; + this.imageUrl = imageUrl; + + // Elements attached to this by the templater. For info only + this.rowin = null; + this.rowout = null; + this.output = null; + this.hide = null; + this.show = null; + this.duration = null; + this.throb = null; + + new Templater().processNode(row.cloneNode(true), this); + + this.cliView.output.appendChild(this.rowin); + this.cliView.output.appendChild(this.rowout); + + this.request.addEventListener('output', this.onRequestChange.bind(this)); +}; + +RequestView.prototype = { + /** + * A single click on an invocation line in the console copies the command to + * the command line + */ + copyToInput: function() { + this.cliView.element.value = this.request.typed; + }, + + /** + * A double click on an invocation line in the console executes the command + */ + executeRequest: function(ev) { + this.cliView.cli.update({ + typed: this.request.typed, + cursor: { start:0, end:0 } + }); + this.cliView.cli.exec(); + }, + + hideOutput: function(ev) { + this.output.style.display = 'none'; + dom.addCssClass(this.hide, 'cmd_hidden'); + dom.removeCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + showOutput: function(ev) { + this.output.style.display = 'block'; + dom.removeCssClass(this.hide, 'cmd_hidden'); + dom.addCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + remove: function(ev) { + this.cliView.output.removeChild(this.rowin); + this.cliView.output.removeChild(this.rowout); + event.stopPropagation(ev); + }, + + onRequestChange: function(ev) { + this.duration.innerHTML = this.request.duration ? + 'completed in ' + (this.request.duration / 1000) + ' sec ' : + ''; + + this.output.innerHTML = ''; + this.request.outputs.forEach(function(output) { + var node; + if (typeof output == 'string') { + node = document.createElement('p'); + node.innerHTML = output; + } else { + node = output; + } + this.output.appendChild(node); + }, this); + this.cliView.scrollOutputToBottom(); + + dom.setCssClass(this.output, 'cmd_error', this.request.error); + + this.throb.style.display = this.request.completed ? 'none' : 'block'; + } +}; +exports.RequestView = RequestView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is DomTemplate. + * + * The Initial Developer of the Original Code is Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) (original author) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('pilot/domtemplate', ['require', 'exports', 'module' ], function(require, exports, module) { + + +// WARNING: do not 'use_strict' without reading the notes in envEval; + +/** + * A templater that allows one to quickly template DOM nodes. + */ +function Templater() { + this.scope = []; +}; + +/** + * Recursive function to walk the tree processing the attributes as it goes. + * @param node the node to process. If you pass a string in instead of a DOM + * element, it is assumed to be an id for use with document.getElementById() + * @param data the data to use for node processing. + */ +Templater.prototype.processNode = function(node, data) { + if (typeof node === 'string') { + node = document.getElementById(node); + } + if (data === null || data === undefined) { + data = {}; + } + this.scope.push(node.nodeName + (node.id ? '#' + node.id : '')); + try { + // Process attributes + if (node.attributes && node.attributes.length) { + // We need to handle 'foreach' and 'if' first because they might stop + // some types of processing from happening, and foreach must come first + // because it defines new data on which 'if' might depend. + if (node.hasAttribute('foreach')) { + this.processForEach(node, data); + return; + } + if (node.hasAttribute('if')) { + if (!this.processIf(node, data)) { + return; + } + } + // Only make the node available once we know it's not going away + data.__element = node; + // It's good to clean up the attributes when we've processed them, + // but if we do it straight away, we mess up the array index + var attrs = Array.prototype.slice.call(node.attributes); + for (var i = 0; i < attrs.length; i++) { + var value = attrs[i].value; + var name = attrs[i].name; + this.scope.push(name); + try { + if (name === 'save') { + // Save attributes are a setter using the node + value = this.stripBraces(value); + this.property(value, data, node); + node.removeAttribute('save'); + } else if (name.substring(0, 2) === 'on') { + // Event registration relies on property doing a bind + value = this.stripBraces(value); + var func = this.property(value, data); + if (typeof func !== 'function') { + this.handleError('Expected ' + value + + ' to resolve to a function, but got ' + typeof func); + } + node.removeAttribute(name); + var capture = node.hasAttribute('capture' + name.substring(2)); + node.addEventListener(name.substring(2), func, capture); + if (capture) { + node.removeAttribute('capture' + name.substring(2)); + } + } else { + // Replace references in all other attributes + var self = this; + var newValue = value.replace(/\$\{[^}]*\}/g, function(path) { + return self.envEval(path.slice(2, -1), data, value); + }); + // Remove '_' prefix of attribute names so the DOM won't try + // to use them before we've processed the template + if (name.charAt(0) === '_') { + node.removeAttribute(name); + node.setAttribute(name.substring(1), newValue); + } else if (value !== newValue) { + attrs[i].value = newValue; + } + } + } finally { + this.scope.pop(); + } + } + } + + // Loop through our children calling processNode. First clone them, so the + // set of nodes that we visit will be unaffected by additions or removals. + var childNodes = Array.prototype.slice.call(node.childNodes); + for (var j = 0; j < childNodes.length; j++) { + this.processNode(childNodes[j], data); + } + + if (node.nodeType === Node.TEXT_NODE) { + this.processTextNode(node, data); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Handle + * @param node An element with an 'if' attribute + * @param data The data to use with envEval + * @returns true if processing should continue, false otherwise + */ +Templater.prototype.processIf = function(node, data) { + this.scope.push('if'); + try { + var originalValue = node.getAttribute('if'); + var value = this.stripBraces(originalValue); + var recurse = true; + try { + var reply = this.envEval(value, data, originalValue); + recurse = !!reply; + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + recurse = false; + } + if (!recurse) { + node.parentNode.removeChild(node); + } + node.removeAttribute('if'); + return recurse; + } finally { + this.scope.pop(); + } +}; + +/** + * Handle and the special case of + * + * @param node An element with a 'foreach' attribute + * @param data The data to use with envEval + */ +Templater.prototype.processForEach = function(node, data) { + this.scope.push('foreach'); + try { + var originalValue = node.getAttribute('foreach'); + var value = originalValue; + + var paramName = 'param'; + if (value.charAt(0) === '$') { + // No custom loop variable name. Use the default: 'param' + value = this.stripBraces(value); + } else { + // Extract the loop variable name from 'NAME in ${ARRAY}' + var nameArr = value.split(' in '); + paramName = nameArr[0].trim(); + value = this.stripBraces(nameArr[1].trim()); + } + node.removeAttribute('foreach'); + try { + var self = this; + // Process a single iteration of a loop + var processSingle = function(member, clone, ref) { + ref.parentNode.insertBefore(clone, ref); + data[paramName] = member; + self.processNode(clone, data); + delete data[paramName]; + }; + + // processSingle is no good for nodes where we want to work on + // the childNodes rather than the node itself + var processAll = function(scope, member) { + self.scope.push(scope); + try { + if (node.nodeName === 'LOOP') { + for (var i = 0; i < node.childNodes.length; i++) { + var clone = node.childNodes[i].cloneNode(true); + processSingle(member, clone, node); + } + } else { + var clone = node.cloneNode(true); + clone.removeAttribute('foreach'); + processSingle(member, clone, node); + } + } finally { + self.scope.pop(); + } + }; + + var reply = this.envEval(value, data, originalValue); + if (Array.isArray(reply)) { + reply.forEach(function(data, i) { + processAll('' + i, data); + }, this); + } else { + for (var param in reply) { + if (reply.hasOwnProperty(param)) { + processAll(param, param); + } + } + } + node.parentNode.removeChild(node); + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Take a text node and replace it with another text node with the ${...} + * sections parsed out. We replace the node by altering node.parentNode but + * we could probably use a DOM Text API to achieve the same thing. + * @param node The Text node to work on + * @param data The data to use in calls to envEval + */ +Templater.prototype.processTextNode = function(node, data) { + // Replace references in other attributes + var value = node.data; + // We can't use the string.replace() with function trick (see generic + // attribute processing in processNode()) because we need to support + // functions that return DOM nodes, so we can't have the conversion to a + // string. + // Instead we process the string as an array of parts. In order to split + // the string up, we first replace '${' with '\uF001$' and '}' with '\uF002' + // We can then split using \uF001 or \uF002 to get an array of strings + // where scripts are prefixed with $. + // \uF001 and \uF002 are just unicode chars reserved for private use. + value = value.replace(/\$\{([^}]*)\}/g, '\uF001$$$1\uF002'); + var parts = value.split(/\uF001|\uF002/); + if (parts.length > 1) { + parts.forEach(function(part) { + if (part === null || part === undefined || part === '') { + return; + } + if (part.charAt(0) === '$') { + part = this.envEval(part.slice(1), data, node.data); + } + // It looks like this was done a few lines above but see envEval + if (part === null) { + part = "null"; + } + if (part === undefined) { + part = "undefined"; + } + // if (isDOMElement(part)) { ... } + if (typeof part.cloneNode !== 'function') { + part = node.ownerDocument.createTextNode(part.toString()); + } + node.parentNode.insertBefore(part, node); + }, this); + node.parentNode.removeChild(node); + } +}; + +/** + * Warn of string does not begin '${' and end '}' + * @param str the string to check. + * @return The string stripped of ${ and }, or untouched if it does not match + */ +Templater.prototype.stripBraces = function(str) { + if (!str.match(/\$\{.*\}/g)) { + this.handleError('Expected ' + str + ' to match ${...}'); + return str; + } + return str.slice(2, -1); +}; + +/** + * Combined getter and setter that works with a path through some data set. + * For example: + *
                                                                                + *
                                                                              • property('a.b', { a: { b: 99 }}); // returns 99 + *
                                                                              • property('a', { a: { b: 99 }}); // returns { b: 99 } + *
                                                                              • property('a', { a: { b: 99 }}, 42); // returns 99 and alters the + * input data to be { a: { b: 42 }} + *
                                                                              + * @param path An array of strings indicating the path through the data, or + * a string to be cut into an array using split('.') + * @param data An object to look in for the path argument + * @param newValue (optional) If defined, this value will replace the + * original value for the data at the path specified. + * @return The value pointed to by path before any + * newValue is applied. + */ +Templater.prototype.property = function(path, data, newValue) { + this.scope.push(path); + try { + if (typeof path === 'string') { + path = path.split('.'); + } + var value = data[path[0]]; + if (path.length === 1) { + if (newValue !== undefined) { + data[path[0]] = newValue; + } + if (typeof value === 'function') { + return function() { + return value.apply(data, arguments); + }; + } + return value; + } + if (!value) { + this.handleError('Can\'t find path=' + path); + return null; + } + return this.property(path.slice(1), value, newValue); + } finally { + this.scope.pop(); + } +}; + +/** + * Like eval, but that creates a context of the variables in env in + * which the script is evaluated. + * WARNING: This script uses 'with' which is generally regarded to be evil. + * The alternative is to create a Function at runtime that takes X parameters + * according to the X keys in the env object, and then call that function using + * the values in the env object. This is likely to be slow, but workable. + * @param script The string to be evaluated. + * @param env The environment in which to eval the script. + * @param context Optional debugging string in case of failure + * @return The return value of the script, or the error message if the script + * execution failed. + */ +Templater.prototype.envEval = function(script, env, context) { + with (env) { + try { + this.scope.push(context); + return eval(script); + } catch (ex) { + this.handleError('Template error evaluating \'' + script + '\'', ex); + return script; + } finally { + this.scope.pop(); + } + } +}; + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + * @param ex optional associated exception. + */ +Templater.prototype.handleError = function(message, ex) { + this.logError(message); + this.logError('In: ' + this.scope.join(' > ')); + if (ex) { + this.logError(ex); + } +}; + + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + */ +Templater.prototype.logError = function(message) { + window.console && window.console.log && console.log(message); +}; + +exports.Templater = Templater; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Skywriter Team (skywriter@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/commands/basic', ['require', 'exports', 'module' , 'pilot/canon'], function(require, exports, module) { + + +var canon = require('pilot/canon'); + +/** + * '!' command + */ +var bangCommandSpec = { + name: 'sh', + description: 'Execute a system command (requires server support)', + params: [ + { + name: 'command', + type: 'text', + description: 'The string to send to the os shell.' + } + ], + exec: function(env, args, request) { + var req = new XMLHttpRequest(); + req.open('GET', '/exec?args=' + args.command, true); + req.onreadystatechange = function(ev) { + if (req.readyState == 4) { + if (req.status == 200) { + request.done('
                                                                              ' + req.responseText + '
                                                                              '); + } + } + }; + req.send(null); + } +}; + +var canon = require('pilot/canon'); + +exports.startup = function(data, reason) { + canon.addCommand(bangCommandSpec); +}; + +exports.shutdown = function(data, reason) { + canon.removeCommand(bangCommandSpec); +}; + + +}); +define("text!cockpit/ui/cli_view.css", [], "" + + "#cockpitInput { padding-left: 16px; }" + + "" + + ".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }" + + "" + + ".cptCompletion { padding: 0; position: absolute; z-index: -1000; }" + + ".cptCompletion.VALID { background: #FFF; }" + + ".cptCompletion.INCOMPLETE { background: #DDD; }" + + ".cptCompletion.INVALID { background: #DDD; }" + + ".cptCompletion span { color: #FFF; }" + + ".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }" + + ".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }" + + "span.cptPrompt { color: #66F; font-weight: bold; }" + + "" + + "" + + ".cptHints {" + + " color: #000;" + + " position: absolute;" + + " border: 1px solid rgba(230, 230, 230, 0.8);" + + " background: rgba(250, 250, 250, 0.8);" + + " -moz-border-radius-topleft: 10px;" + + " -moz-border-radius-topright: 10px;" + + " border-top-left-radius: 10px; border-top-right-radius: 10px;" + + " z-index: 1000;" + + " padding: 8px;" + + " display: none;" + + "}" + + "" + + ".cptFocusPopup { display: block; }" + + ".cptFocusPopup.cptNoPopup { display: none; }" + + "" + + ".cptHints ul { margin: 0; padding: 0 15px; }" + + "" + + ".cptGt { font-weight: bold; font-size: 120%; }" + + ""); + +define("text!cockpit/ui/request_view.css", [], "" + + ".cptRowIn {" + + " display: box; display: -moz-box; display: -webkit-box;" + + " box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;" + + " box-align: center; -moz-box-align: center; -webkit-box-align: center;" + + " color: #333;" + + " background-color: #EEE;" + + " width: 100%;" + + " font-family: consolas, courier, monospace;" + + "}" + + ".cptRowIn > * { padding-left: 2px; padding-right: 2px; }" + + ".cptRowIn > img { cursor: pointer; }" + + ".cptHover { display: none; }" + + ".cptRowIn:hover > .cptHover { display: block; }" + + ".cptRowIn:hover > .cptHover.cptHidden { display: none; }" + + ".cptOutTyped {" + + " box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;" + + " font-weight: bold; color: #000; font-size: 120%;" + + "}" + + ".cptRowOutput { padding-left: 10px; line-height: 1.2em; }" + + ".cptRowOutput strong," + + ".cptRowOutput b," + + ".cptRowOutput th," + + ".cptRowOutput h1," + + ".cptRowOutput h2," + + ".cptRowOutput h3 { color: #000; }" + + ".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }" + + ".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }" + + ".cptRowOutput input[type=password]," + + ".cptRowOutput input[type=text]," + + ".cptRowOutput textarea {" + + " color: #000; font-size: 120%;" + + " background: transparent; padding: 3px;" + + " border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;" + + "}" + + ".cptRowOutput table," + + ".cptRowOutput td," + + ".cptRowOutput th { border: 0; padding: 0 2px; }" + + ".cptRowOutput .right { text-align: right; }" + + ""); + +define("text!cockpit/ui/request_view.html", [], "" + + "
                                                                              " + + " " + + "
                                                                              " + + "" + + " " + + "
                                                                              >
                                                                              " + + "
                                                                              ${request.typed}
                                                                              " + + "" + + " " + + "
                                                                              " + + " \"Hide" + + " \"Show" + + " \"Remove" + + "" + + "
                                                                              " + + "" + + " " + + "
                                                                              " + + "
                                                                              " + + " " + + "
                                                                              " + + "
                                                                              " + + ""); + +define("text!cockpit/ui/images/closer.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); + +define("text!cockpit/ui/images/dot_clear.gif", [], "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"); + +define("text!cockpit/ui/images/minus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="); + +define("text!cockpit/ui/images/pinaction.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinin.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinout.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pins.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/plus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/throbber.gif", [], "data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); + + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-cockpit.js b/build/aui-ace-editor/aui-ace-editor-cockpit.js new file mode 100644 index 00000000000..0dd54e2966e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-cockpit.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-cockpit', function(A) { +define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c)}}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags)}function q(a){this.env=a,this.commandAssignment=new o(p,this)}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue)}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number")this.start=c,this.end=d,this.predictions=e;else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p)},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0)return d}return c.status-a.status}),b!==undefined&&a.forEach(function(a){delete a.distance},this);return a},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter)throw new Error("Can't merge Arguments from different EventEmitters");return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix)},setText:function(a){if(a==null)throw new Error("Illegal text for Argument: "+a);var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b)},toString:function(){return this.prefix+this.text+this.suffix}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f)},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0])},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a)},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a)},toString:function(){return this.arg?this.arg.toString():""}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]")},this),c.push("
                                                                              "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                              "),a.params&&a.params.length>0&&(c.push("
                                                                                "),a.params.forEach(function(a){c.push("
                                                                              • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                              • ")},this),c.push("
                                                                              "));return new l(i.VALID,c.join(""),b)}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this)},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}))},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b]},getParameterNames:function(){return Object.keys(this._assignments)},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a]},this)},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint())},this),l.sort(this._hints)},getWorstHint:function(){return this._hints[0]},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value},this);return a},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a))},this);return b},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined)},this)},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString())},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)))},this);return a.join("")}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints()},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++)b.status>a[c]&&(a[c]=b.status)},this);return a},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString()},this).join("")};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID)},this),l.sort(this._hints)},r.prototype.getHints=function(){return this._hints},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""))}else if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o))}break}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j=""}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}}h++}return k},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value)break;if(this.commandAssignment.value.exec){for(var d=0;d=a.length)break;continue}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g))}}}}(),b.CliRequisition=r}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i)},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i)}}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update())}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup")}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px"}.bind(this);this.outputHeight.addEventListener("change",b),b()}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this)}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup")}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this)},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px")},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN)d=!0;else if(b!=0||c!=0)d=h.execKeyCommand(this.env,"cli",b,c);d&&e.stopEvent(a)},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end))}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString());var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d)}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e)}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | "},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break}d!==a[c]&&(b+="")}return b},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e}}},b.CliView=n}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this))}function k(b){var d;try{d=a("text!cockpit/ui/"+b)}catch(e){}if(d)return d;var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b}return f+b}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec()},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a)},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1e3+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b)},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block"}},b.RequestView=l}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[]}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined)b={};this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return}if(a.hasAttribute("if")&&!this.processIf(a,b))return;b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a))},this),a.parentNode.removeChild(a))},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a}return a.slice(2,-1)},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments)}:d}if(!d){this.handleError("Can't find path="+a);return null}return this.property(a.slice(1),d,c)}finally{this.scope.pop()}},Templater.prototype.envEval=function(script,env,context){with(env)try{this.scope.push(context);return eval(script)}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script}finally{this.scope.pop()}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b)},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a)},exports.Templater=Templater}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                              "+d.responseText+"
                                                                              ")},d.send(null)}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e)},b.shutdown=function(a,b){d.removeCommand(e)}}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                              >
                                                                              ${request.typed}
                                                                              Hide command output Show command output Remove this command from the history
                                                                              '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA==") + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-debug.js b/build/aui-ace-editor/aui-ace-editor-debug.js new file mode 100644 index 00000000000..11b1bf9c16f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-debug.js @@ -0,0 +1,2916 @@ +AUI.add('aui-ace-editor-base', function(A) { +(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                              "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                              Sub-Commands of "+e.name+"

                                                                              "),d.push("

                                                                              "+e.description+"

                                                                              ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                              Commands starting with '"+b.search+"':

                                                                              ")):d.push("

                                                                              Available Commands:

                                                                              ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                              '+e.name+""+e.description+"
                                                                              ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                              ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                              "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                              "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                              ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                              ¦
                                                                              ");c.push("

                                                                          "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +var Lang = A.Lang, + + BOUNDING_BOX = 'boundingBox', + CONTENT_BOX = 'contentBox', + EMPTY_STR = '', + HEIGHT = 'height', + WIDTH = 'width', + + NAME = 'ace-ditor'; + +var AceEditor = A.Component.create( + { + NAME: NAME, + + EXTENDS: A.Widget, + + ATTRS: { + + height: { + value: 400 + }, + + highlightActiveLine: { + lazyAdd: false, + getter: '_getHighlightActiveLine', + setter: '_setHighlightActiveLine', + value: true + }, + + readOnly: { + lazyAdd: false, + getter: '_getReadOnly', + setter: '_setReadOnly', + value: false + }, + + showPrintMargin: { + lazyAdd: false, + getter: '_getShowPrintMargin', + setter: '_setShowPrintMargin', + value: true + }, + + tabSize: { + lazyAdd: false, + getter: '_getTabSize', + setter: '_setTabSize', + value: 4 + }, + + useSoftTabs: { + lazyAdd: false, + getter: '_getUseSoftTabs', + setter: '_setUseSoftTabs', + value: true + }, + + useWrapMode: { + lazyAdd: false, + getter: '_getUseWrapMode', + setter: '_setUseWrapMode', + value: true + }, + + value: { + lazyAdd: false, + getter: '_getValue', + setter: '_setValue', + value: EMPTY_STR, + }, + + width: { + value: 800 + } + + }, + + UI_ATTRS: [HEIGHT, WIDTH], + + prototype: { + + getEditor: function() { + var instance = this; + + if (!instance.editor) { + var boundingBox = instance.get(BOUNDING_BOX); + + instance.editor = ace.edit(boundingBox.getDOM()); + } + + return instance.editor; + }, + + getSelection: function() { + var instance = this; + + return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange()) + }, + + getSession: function() { + var instance = this; + + return instance.getEditor().getSession(); + }, + + gotoLine: function(line) { + var instance = this; + + instance.getEditor().gotoLine(line); + }, + + insert: function(text) { + var instance = this; + + instance.getEditor().insert(text); + }, + + _getHighlightActiveLine: function() { + var instance = this; + + return instance.getEditor().getHighlightActiveLine(); + }, + + _getReadOnly: function() { + var instance = this; + + return instance.getEditor().getReadOnly(); + }, + + _getShowPrintMargin: function() { + var instance = this; + + return instance.getEditor().getShowPrintMargin(); + }, + + _getTabSize: function() { + var instance = this; + + return instance.getSession().getTabSize(); + }, + + _getUseSoftTabs: function() { + var instance = this; + + return instance.getSession().getUseSoftTabs(); + }, + + _getUseWrapMode: function() { + var instance = this; + + return instance.getSession().getUseWrapMode(); + }, + + _getValue: function() { + var instance = this; + + return instance.getSession().getValue(); + }, + + _setHighlightActiveLine: function(value) { + var instance = this; + + instance.getEditor().setHighlightActiveLine(value); + }, + + _setReadOnly: function(value) { + var instance = this; + + instance.getEditor().setReadOnly(value) + }, + + _setShowPrintMargin: function(value) { + var instance = this; + + instance.getEditor().setShowPrintMargin(value); + }, + + _setTabSize: function(value) { + var instance = this; + + instance.getSession().setTabSize(value); + }, + + _setUseSoftTabs: function(value) { + var instance = this; + + instance.getSession().setUseSoftTabs(value); + }, + + _setUseWrapMode: function(value) { + var instance = this; + + instance.getSession().setUseWrapMode(value); + }, + + _setValue: function(value) { + var instance = this; + + instance.getSession().setValue(value); + }, + + _uiSetHeight: function() { + var instance = this; + + A.AceEditor.superclass._uiSetHeight.apply(instance, arguments); + + instance.getEditor().resize(); + }, + + _uiSetWidth: function() { + var instance = this; + + A.AceEditor.superclass._uiSetWidth.apply(instance, arguments); + + instance.getEditor().resize(); + } + } + } +); + +A.AceEditor = AceEditor; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-component', 'aui-node']}); +AUI.add('aui-ace-editor-mode-xml', function(A) { +define("ace/mode/xml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/xml_highlight_rules").XmlHighlightRules,h=a("ace/mode/behaviour/xml").XmlBehaviour,i=function(){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(i.prototype),b.Mode=i}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-php', function(A) { +define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/php_highlight_rules").PhpHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),b=e.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),c=e.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),d=e.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),g=e.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),h=e.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),i=e.arrayToMap("cfunction|old_function".split("|")),j=e.arrayToMap([]);this.$rules={start:[{token:"support",regex:"<\\?(?:php|\\=)"},{token:"support",regex:"\\?>"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(e){if(i.hasOwnProperty(e))return"invalid.deprecated";if(b.hasOwnProperty(e))return"keyword";if(c.hasOwnProperty(e))return"keyword";if(d.hasOwnProperty(e))return"constant.language";if(g.hasOwnProperty(e))return"variable.language";if(j.hasOwnProperty(e))return"invalid.illegal";if(h.hasOwnProperty(e))return"invalid.deprecated";if(a.hasOwnProperty(e))return"support.function";if(e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|self|parent)$/))return"variable";return"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.PhpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-solarized_dark', function(A) { +define("ace/theme/solarized_dark",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-solarized-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-dark .ace_scroller {\n background-color: #002B36;\n}\n\n.ace-solarized-dark .ace_text-layer {\n cursor: text;\n color: #93A1A1;\n}\n\n.ace-solarized-dark .ace_cursor {\n border-left: 2px solid #D30102;\n}\n\n.ace-solarized-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #D30102;\n}\n \n.ace-solarized-dark .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_active_line {\n background: #073642;\n}\n\n \n.ace-solarized-dark .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-dark .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-dark .ace_constant {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-dark .ace_constant.ace_library {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-dark .ace_invalid {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-dark .ace_support {\n \n}\n\n.ace-solarized-dark .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-dark .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-dark .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-dark .ace_comment {\n font-style:italic;\ncolor:#657B83;\n}\n\n.ace-solarized-dark .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-dark .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_variable {\n \n}\n\n.ace-solarized-dark .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_xml_pe {\n \n}\n\n.ace-solarized-dark .ace_meta {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-dark .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-solarized-dark"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-ocaml', function(A) { +define("ace/mode/ocaml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/ocaml_highlight_rules").OcamlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e);var k=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(\*(.*)\*\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var j=new i(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),j.start.row=e,j.end.row=e,j.end.column=f.length,b.replace(j,g?f.match(h)[1]:"(*"+f+"*)")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;(!e.length||e[e.length-1].type!=="comment")&&a==="start"&&k.test(b)&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}).call(j.prototype),b.Mode=j}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),d="(?:(?:[1-9]\\d*)|(?:0))",f="(?:0[oO]?[0-7]+)",g="(?:0[xX][\\dA-Fa-f]+)",h="(?:0[bB][01]+)",i="(?:"+d+"|"+f+"|"+g+"|"+h+")",j="(?:[eE][+-]?\\d+)",k="(?:\\.\\d+)",l="(?:\\d+)",m="(?:(?:"+l+"?"+k+")|(?:"+l+"\\.))",n="(?:(?:"+m+"|"+l+")"+j+")",o="(?:"+n+"|"+m+")";this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+o+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:o},{token:"constant.numeric",regex:i+"\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.OcamlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-idle_fingers', function(A) { +define("ace/theme/idle_fingers",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-idle-fingers .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-idle-fingers .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-idle-fingers .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-idle-fingers .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-idle-fingers .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-idle-fingers .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-idle-fingers .ace_scroller {\n background-color: #323232;\n}\n\n.ace-idle-fingers .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-idle-fingers .ace_cursor {\n border-left: 2px solid #91FF00;\n}\n\n.ace-idle-fingers .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #91FF00;\n}\n \n.ace-idle-fingers .ace_marker-layer .ace_selection {\n background: rgba(90, 100, 126, 0.88);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #404040;\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_active_line {\n background: #353637;\n}\n\n \n.ace-idle-fingers .ace_invisible {\n color: #404040;\n}\n\n.ace-idle-fingers .ace_keyword {\n color:#CC7833;\n}\n\n.ace-idle-fingers .ace_keyword.ace_operator {\n \n}\n\n.ace-idle-fingers .ace_constant {\n color:#6C99BB;\n}\n\n.ace-idle-fingers .ace_constant.ace_language {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_library {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_numeric {\n \n}\n\n.ace-idle-fingers .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FF0000;\n}\n\n.ace-idle-fingers .ace_invalid.ace_illegal {\n \n}\n\n.ace-idle-fingers .ace_invalid.ace_deprecated {\n \n}\n\n.ace-idle-fingers .ace_support {\n \n}\n\n.ace-idle-fingers .ace_support.ace_function {\n color:#B83426;\n}\n\n.ace-idle-fingers .ace_function.ace_buildin {\n \n}\n\n.ace-idle-fingers .ace_string {\n color:#A5C261;\n}\n\n.ace-idle-fingers .ace_string.ace_regexp {\n color:#CCCC33;\n}\n\n.ace-idle-fingers .ace_comment {\n font-style:italic;\ncolor:#BC9458;\n}\n\n.ace-idle-fingers .ace_comment.ace_doc {\n \n}\n\n.ace-idle-fingers .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-idle-fingers .ace_variable {\n \n}\n\n.ace-idle-fingers .ace_variable.ace_language {\n \n}\n\n.ace-idle-fingers .ace_xml_pe {\n \n}\n\n.ace-idle-fingers .ace_meta {\n \n}\n\n.ace-idle-fingers .ace_meta.ace_tag {\n color:#FFE5BB;\n}\n\n.ace-idle-fingers .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-idle-fingers .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-idle-fingers .ace_collab.ace_user1 {\n color:#323232;\nbackground-color:#FFF980; \n}";d.importCssString(e),b.cssClass="ace-idle-fingers"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-html', function(A) { +define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/mode/css").Mode,h=a("ace/tokenizer").Tokenizer,i=a("ace/mode/html_highlight_rules").HtmlHighlightRules,j=a("ace/mode/behaviour/xml").XmlBehaviour,k=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g})};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(k.prototype),b.Mode=k}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,b=/^(\s*)#/,c=/^\s*###(?!#)/,d=/^\s*/;this.getNextLineIndent=function(b,c,d){var e=this.$getIndent(c),f=this.$tokenizer.getLineTokens(c,b).tokens;(!f.length||f[f.length-1].type!=="comment")&&b==="start"&&a.test(c)&&(e+=d);return e},this.toggleCommentLines=function(a,e,f,h){console.log("toggle");var i=new g(0,0,0,0);for(var j=f;j<=h;++j){var k=e.getLine(j);if(c.test(k))continue;b.test(k)?k=k.replace(b,"$1"):k=k.replace(d,"$&#"),i.end.row=i.start.row=j,i.end.column=k.length+1,e.replace(i,k)}},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("error",function(b){a.setAnnotations([b.data])}),c.on("ok",function(b){a.clearAnnotations()})}}.call(k.prototype),b.Mode=k}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){function d(){var a="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",b="(?![$\\w]|\\s*:)",c={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+a},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+b},{token:"constant.language",regex:"(?:true|false|null|undefined)"+b},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+b},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+b},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+b},{token:"identifier",regex:a},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},c],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},c],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},c],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},c],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},c],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}}a("pilot/oop").inherits(d,a("ace/mode/text_highlight_rules").TextHighlightRules),b.CoffeeHighlightRules=d}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;j=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.RubyHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-monokai', function(A) { +define("ace/theme/monokai",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-monokai .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-monokai .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-monokai .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-monokai .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-monokai .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-monokai .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-monokai .ace_scroller {\n background-color: #272822;\n}\n\n.ace-monokai .ace_text-layer {\n cursor: text;\n color: #F8F8F2;\n}\n\n.ace-monokai .ace_cursor {\n border-left: 2px solid #F8F8F0;\n}\n\n.ace-monokai .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #F8F8F0;\n}\n \n.ace-monokai .ace_marker-layer .ace_selection {\n background: #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-monokai .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_active_line {\n background: #49483E;\n}\n\n \n.ace-monokai .ace_invisible {\n color: #49483E;\n}\n\n.ace-monokai .ace_keyword {\n color:#F92672;\n}\n\n.ace-monokai .ace_keyword.ace_operator {\n \n}\n\n.ace-monokai .ace_constant {\n \n}\n\n.ace-monokai .ace_constant.ace_language {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_constant.ace_library {\n \n}\n\n.ace-monokai .ace_constant.ace_numeric {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_invalid {\n color:#F8F8F0;\nbackground-color:#F92672;\n}\n\n.ace-monokai .ace_invalid.ace_illegal {\n \n}\n\n.ace-monokai .ace_invalid.ace_deprecated {\n color:#F8F8F0;\nbackground-color:#AE81FF;\n}\n\n.ace-monokai .ace_support {\n \n}\n\n.ace-monokai .ace_support.ace_function {\n color:#66D9EF;\n}\n\n.ace-monokai .ace_function.ace_buildin {\n \n}\n\n.ace-monokai .ace_string {\n color:#E6DB74;\n}\n\n.ace-monokai .ace_string.ace_regexp {\n \n}\n\n.ace-monokai .ace_comment {\n color:#75715E;\n}\n\n.ace-monokai .ace_comment.ace_doc {\n \n}\n\n.ace-monokai .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-monokai .ace_variable {\n \n}\n\n.ace-monokai .ace_variable.ace_language {\n \n}\n\n.ace-monokai .ace_xml_pe {\n \n}\n\n.ace-monokai .ace_meta {\n \n}\n\n.ace-monokai .ace_meta.ace_tag {\n \n}\n\n.ace-monokai .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-monokai .ace_entity.ace_other.ace_attribute-name {\n color:#A6E22E;\n}\n\n\n.ace-monokai .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-monokai"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-javascript', function(A) { +define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-keybinding-emacs', function(A) { +define("ace/keyboard/keybinding/emacs",["require","exports","module","ace/keyboard/state_handler"],function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"ctrl-x",then:"c-x"},{regex:["(?:command-([0-9]*))*","(down|ctrl-n)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(right|ctrl-f)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(up|ctrl-p)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(left|ctrl-b)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"This binding matches all printable characters except numbers as long as they are no numbers and print them n times.",regex:["(?:command-([0-9]*))","([^0-9]+)*"],match:e,exec:"inserttext",params:[{name:"times",match:1,type:"number",defaultValue:"1"},{name:"text",match:2}]},{comment:"This binding matches numbers as long as there is no meta_number in the buffer.",regex:["(command-[0-9]*)*","([0-9]+)"],match:e,disallowMatches:[1],exec:"inserttext",params:[{name:"text",match:2,type:"text"}]},{regex:["command-([0-9]*)","(command-[0-9]|[0-9])"],comment:"Stops execution if the regex /meta_[0-9]+/ matches to avoid resetting the buffer."}],"c-x":[{key:"ctrl-g",then:"start"},{key:"ctrl-s",exec:"save",then:"start"}]};b.Emacs=new d(f)}),define("ace/keyboard/state_handler",["require","exports","module"],function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen",regex:"[\\[\\(\\{]"},{token:"rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PythonHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-dawn', function(A) { +define("ace/theme/dawn",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-dawn .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-dawn .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-dawn .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-dawn .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-dawn .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-dawn .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-dawn .ace_scroller {\n background-color: #F9F9F9;\n}\n\n.ace-dawn .ace_text-layer {\n cursor: text;\n color: #080808;\n}\n\n.ace-dawn .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-dawn .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-dawn .ace_marker-layer .ace_selection {\n background: rgba(39, 95, 255, 0.30);\n}\n\n.ace-dawn .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-dawn .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_marker-layer .ace_active_line {\n background: rgba(36, 99, 180, 0.12);\n}\n\n \n.ace-dawn .ace_invisible {\n color: rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_keyword {\n color:#794938;\n}\n\n.ace-dawn .ace_keyword.ace_operator {\n \n}\n\n.ace-dawn .ace_constant {\n color:#811F24;\n}\n\n.ace-dawn .ace_constant.ace_language {\n \n}\n\n.ace-dawn .ace_constant.ace_library {\n \n}\n\n.ace-dawn .ace_constant.ace_numeric {\n \n}\n\n.ace-dawn .ace_invalid {\n \n}\n\n.ace-dawn .ace_invalid.ace_illegal {\n text-decoration:underline;\nfont-style:italic;\ncolor:#F8F8F8;\nbackground-color:#B52A1D;\n}\n\n.ace-dawn .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#B52A1D;\n}\n\n.ace-dawn .ace_support {\n color:#691C97;\n}\n\n.ace-dawn .ace_support.ace_function {\n color:#693A17;\n}\n\n.ace-dawn .ace_function.ace_buildin {\n \n}\n\n.ace-dawn .ace_string {\n color:#0B6125;\n}\n\n.ace-dawn .ace_string.ace_regexp {\n color:#CF5628;\n}\n\n.ace-dawn .ace_comment {\n font-style:italic;\ncolor:#5A525F;\n}\n\n.ace-dawn .ace_comment.ace_doc {\n \n}\n\n.ace-dawn .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-dawn .ace_variable {\n color:#234A97;\n}\n\n.ace-dawn .ace_variable.ace_language {\n \n}\n\n.ace-dawn .ace_xml_pe {\n \n}\n\n.ace-dawn .ace_meta {\n \n}\n\n.ace-dawn .ace_meta.ace_tag {\n \n}\n\n.ace-dawn .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-dawn .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-dawn .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-dawn"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-vibrant_ink', function(A) { +define("ace/theme/vibrant_ink",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-vibrant-ink .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-vibrant-ink .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-vibrant-ink .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-vibrant-ink .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-vibrant-ink .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-vibrant-ink .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-vibrant-ink .ace_scroller {\n background-color: #0F0F0F;\n}\n\n.ace-vibrant-ink .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-vibrant-ink .ace_marker-layer .ace_selection {\n background: #6699CC;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #99CC99;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_active_line {\n background: #333333;\n}\n\n \n.ace-vibrant-ink .ace_invisible {\n color: #404040;\n}\n\n.ace-vibrant-ink .ace_keyword {\n color:#FF6600;\n}\n\n.ace-vibrant-ink .ace_keyword.ace_operator {\n \n}\n\n.ace-vibrant-ink .ace_constant {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_language {\n color:#339999;\n}\n\n.ace-vibrant-ink .ace_constant.ace_library {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_numeric {\n color:#99CC99;\n}\n\n.ace-vibrant-ink .ace_invalid {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_invalid.ace_illegal {\n \n}\n\n.ace-vibrant-ink .ace_invalid.ace_deprecated {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_support {\n \n}\n\n.ace-vibrant-ink .ace_support.ace_function {\n color:#FFCC00;\n}\n\n.ace-vibrant-ink .ace_function.ace_buildin {\n \n}\n\n.ace-vibrant-ink .ace_string {\n color:#66FF00;\n}\n\n.ace-vibrant-ink .ace_string.ace_regexp {\n color:#44B4CC;\n}\n\n.ace-vibrant-ink .ace_comment {\n color:#9933CC;\n}\n\n.ace-vibrant-ink .ace_comment.ace_doc {\n \n}\n\n.ace-vibrant-ink .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_variable {\n \n}\n\n.ace-vibrant-ink .ace_variable.ace_language {\n \n}\n\n.ace-vibrant-ink .ace_xml_pe {\n \n}\n\n.ace-vibrant-ink .ace_meta {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\n font-style:italic;\ncolor:#99CC99;\n}\n\n\n.ace-vibrant-ink .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-vibrant-ink"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-java', function(A) { +define("ace/mode/java",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/java_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/java_highlight_rules").JavaHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/java_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.JavaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-svg', function(A) { +define("ace/mode/svg",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/tokenizer","ace/mode/svg_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/tokenizer").Tokenizer,h=a("ace/mode/svg_highlight_rules").SvgHighlightRules,i=a("ace/mode/behaviour/xml").XmlBehaviour,j=function(){this.highlighter=new h,this.$tokenizer=new g(this.highlighter.getRules()),this.$behaviour=new i,this.$embeds=this.highlighter.getEmbeds(),this.createModeDelegates({"js-":f})};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/svg_highlight_rules",["require","exports","module","pilot/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,f=a("ace/mode/xml_highlight_rules").XmlHighlightRules,g=function(){f.call(this),this.$rules.start.splice(3,0,{token:"text",regex:"<(?=s*script)",next:"script"}),this.$rules.script=[{token:"text",regex:">",next:"js-start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],this.embedRules(e,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}])};d.inherits(g,f),b.SvgHighlightRules=g}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-textile', function(A) { +define("ace/mode/textile",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/textile_highlight_rules").TextileHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){return a=="intag"?c:""},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/textile_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"keyword",regex:"h1|h2|h3|h4|h5|h6|bq|p|bc|pre",next:"blocktag"},{token:"keyword",regex:"[\\*]+|[#]+"},{token:"text",regex:".+"}],blocktag:[{token:"keyword",regex:"\\. ",next:"start"},{token:"keyword",regex:"\\(",next:"blocktagproperties"}],blocktagproperties:[{token:"keyword",regex:"\\)",next:"blocktag"},{token:"string",regex:"[a-zA-Z0-9\\-_]+"},{token:"keyword",regex:"#"}]}};d.inherits(f,e),b.TextileHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-perl', function(A) { +define("ace/mode/perl",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/perl_highlight_rules").PerlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/perl_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),b=e.arrayToMap("ARGV|ENV|INC|SIG".split("|")),c=e.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PerlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-scad', function(A) { +define("ace/mode/scad",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scad_highlight_rules").scadHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/scad_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("module|if|else|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.scadHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-kr_theme', function(A) { +define("ace/theme/kr_theme",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-kr-theme .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-kr-theme .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-kr-theme .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-kr-theme .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-kr-theme .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-kr-theme .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-kr-theme .ace_scroller {\n background-color: #0B0A09;\n}\n\n.ace-kr-theme .ace_text-layer {\n cursor: text;\n color: #FCFFE0;\n}\n\n.ace-kr-theme .ace_cursor {\n border-left: 2px solid #FF9900;\n}\n\n.ace-kr-theme .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FF9900;\n}\n \n.ace-kr-theme .ace_marker-layer .ace_selection {\n background: rgba(170, 0, 255, 0.45);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_active_line {\n background: #38403D;\n}\n\n \n.ace-kr-theme .ace_invisible {\n color: rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_keyword {\n color:#949C8B;\n}\n\n.ace-kr-theme .ace_keyword.ace_operator {\n \n}\n\n.ace-kr-theme .ace_constant {\n color:rgba(210, 117, 24, 0.76);\n}\n\n.ace-kr-theme .ace_constant.ace_language {\n \n}\n\n.ace-kr-theme .ace_constant.ace_library {\n \n}\n\n.ace-kr-theme .ace_constant.ace_numeric {\n \n}\n\n.ace-kr-theme .ace_invalid {\n color:#F8F8F8;\nbackground-color:#A41300;\n}\n\n.ace-kr-theme .ace_invalid.ace_illegal {\n \n}\n\n.ace-kr-theme .ace_invalid.ace_deprecated {\n \n}\n\n.ace-kr-theme .ace_support {\n color:#9FC28A;\n}\n\n.ace-kr-theme .ace_support.ace_function {\n color:#85873A;\n}\n\n.ace-kr-theme .ace_function.ace_buildin {\n \n}\n\n.ace-kr-theme .ace_string {\n \n}\n\n.ace-kr-theme .ace_string.ace_regexp {\n color:rgba(125, 255, 192, 0.65);\n}\n\n.ace-kr-theme .ace_comment {\n font-style:italic;\ncolor:#706D5B;\n}\n\n.ace-kr-theme .ace_comment.ace_doc {\n \n}\n\n.ace-kr-theme .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-kr-theme .ace_variable {\n color:#D1A796;\n}\n\n.ace-kr-theme .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-kr-theme .ace_xml_pe {\n \n}\n\n.ace-kr-theme .ace_meta {\n \n}\n\n.ace-kr-theme .ace_meta.ace_tag {\n color:#BABD9C;\n}\n\n.ace-kr-theme .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-kr-theme .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-kr-theme .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-kr-theme"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-c_cpp', function(A) { +define("ace/mode/c_cpp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/c_cpp_highlight_rules").c_cppHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.c_cppHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-cockpit', function(A) { +define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c)}}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags)}function q(a){this.env=a,this.commandAssignment=new o(p,this)}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue)}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number")this.start=c,this.end=d,this.predictions=e;else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p)},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0)return d}return c.status-a.status}),b!==undefined&&a.forEach(function(a){delete a.distance},this);return a},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter)throw new Error("Can't merge Arguments from different EventEmitters");return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix)},setText:function(a){if(a==null)throw new Error("Illegal text for Argument: "+a);var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b)},toString:function(){return this.prefix+this.text+this.suffix}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f)},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0])},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a)},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a)},toString:function(){return this.arg?this.arg.toString():""}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]")},this),c.push("
                                                                          "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                          "),a.params&&a.params.length>0&&(c.push("
                                                                            "),a.params.forEach(function(a){c.push("
                                                                          • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                          • ")},this),c.push("
                                                                          "));return new l(i.VALID,c.join(""),b)}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this)},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}))},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b]},getParameterNames:function(){return Object.keys(this._assignments)},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a]},this)},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint())},this),l.sort(this._hints)},getWorstHint:function(){return this._hints[0]},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value},this);return a},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a))},this);return b},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined)},this)},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString())},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)))},this);return a.join("")}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints()},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++)b.status>a[c]&&(a[c]=b.status)},this);return a},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString()},this).join("")};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID)},this),l.sort(this._hints)},r.prototype.getHints=function(){return this._hints},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""))}else if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o))}break}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j=""}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}}h++}return k},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value)break;if(this.commandAssignment.value.exec){for(var d=0;d=a.length)break;continue}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g))}}}}(),b.CliRequisition=r}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i)},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i)}}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update())}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup")}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px"}.bind(this);this.outputHeight.addEventListener("change",b),b()}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this)}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup")}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this)},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px")},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN)d=!0;else if(b!=0||c!=0)d=h.execKeyCommand(this.env,"cli",b,c);d&&e.stopEvent(a)},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end))}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString());var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d)}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e)}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | "},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break}d!==a[c]&&(b+="")}return b},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e}}},b.CliView=n}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this))}function k(b){var d;try{d=a("text!cockpit/ui/"+b)}catch(e){}if(d)return d;var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b}return f+b}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec()},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a)},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1e3+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b)},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block"}},b.RequestView=l}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[]}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined)b={};this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return}if(a.hasAttribute("if")&&!this.processIf(a,b))return;b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a))},this),a.parentNode.removeChild(a))},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a}return a.slice(2,-1)},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments)}:d}if(!d){this.handleError("Can't find path="+a);return null}return this.property(a.slice(1),d,c)}finally{this.scope.pop()}},Templater.prototype.envEval=function(script,env,context){with(env)try{this.scope.push(context);return eval(script)}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script}finally{this.scope.pop()}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b)},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a)},exports.Templater=Templater}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                          "+d.responseText+"
                                                                          ")},d.send(null)}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e)},b.shutdown=function(a,b){d.removeCommand(e)}}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                          >
                                                                          ${request.typed}
                                                                          Hide command output Show command output Remove this command from the history
                                                                          '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA==") + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-clouds', function(A) { +define("ace/theme/clouds",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-scss', function(A) { +define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scss_highlight_rules").ScssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(i.prototype),b.Mode=i}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function i(a){var b=[],c=a.split("");for(var d=0;d|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ScssHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-worker-coffee', function(A) { +function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c hint.end) { + hint.distance = cursor - hint.end; + } + else { + hint.distance = 0; + } + }, this); + } + // Sort + hints.sort(function(hint1, hint2) { + // Compare first based on distance from cursor + if (cursor !== undefined) { + var diff = hint1.distance - hint2.distance; + if (diff != 0) { + return diff; + } + } + // otherwise go with hint severity + return hint2.status - hint1.status; + }); + // tidy-up + if (cursor !== undefined) { + hints.forEach(function(hint) { + delete hint.distance; + }, this); + } + return hints; +}; +exports.Hint = Hint; + +/** + * A Hint that arose as a result of a Conversion + */ +function ConversionHint(conversion, arg) { + this.status = conversion.status; + this.message = conversion.message; + if (arg) { + this.start = arg.start; + this.end = arg.end; + } + else { + this.start = 0; + this.end = 0; + } + this.predictions = conversion.predictions; +}; +oop.inherits(ConversionHint, Hint); + + +/** + * We record where in the input string an argument comes so we can report errors + * against those string positions. + * We publish a 'change' event when-ever the text changes + * @param emitter Arguments use something else to pass on change events. + * Currently this will be the creating Requisition. This prevents dependency + * loops and prevents us from needing to merge listener lists. + * @param text The string (trimmed) that contains the argument + * @param start The position of the text in the original input string + * @param end See start + * @param prefix Knowledge of quotation marks and whitespace used prior to the + * text in the input string allows us to re-generate the original input from + * the arguments. + * @param suffix Any quotation marks and whitespace used after the text. + * Whitespace is normally placed in the prefix to the succeeding argument, but + * can be used here when this is the last argument. + * @constructor + */ +function Argument(emitter, text, start, end, prefix, suffix) { + this.emitter = emitter; + this.setText(text); + this.start = start; + this.end = end; + this.prefix = prefix; + this.suffix = suffix; +} +Argument.prototype = { + /** + * Return the result of merging these arguments. + * TODO: What happens when we're merging arguments for the single string + * case and some of the arguments are in quotation marks? + */ + merge: function(following) { + if (following.emitter != this.emitter) { + throw new Error('Can\'t merge Arguments from different EventEmitters'); + } + return new Argument( + this.emitter, + this.text + this.suffix + following.prefix + following.text, + this.start, following.end, + this.prefix, + following.suffix); + }, + + /** + * See notes on events in Assignment. We might need to hook changes here + * into a CliRequisition so they appear of the command line. + */ + setText: function(text) { + if (text == null) { + throw new Error('Illegal text for Argument: ' + text); + } + var ev = { argument: this, oldText: this.text, text: text }; + this.text = text; + this.emitter._dispatchEvent('argumentChange', ev); + }, + + /** + * Helper when we're putting arguments back together + */ + toString: function() { + // TODO: There is a bug here - we should re-escape escaped characters + // But can we do that reliably? + return this.prefix + this.text + this.suffix; + } +}; + +/** + * Merge an array of arguments into a single argument. + * All Arguments in the array are expected to have the same emitter + */ +Argument.merge = function(argArray, start, end) { + start = (start === undefined) ? 0 : start; + end = (end === undefined) ? argArray.length : end; + + var joined; + for (var i = start; i < end; i++) { + var arg = argArray[i]; + if (!joined) { + joined = arg; + } + else { + joined = joined.merge(arg); + } + } + return joined; +}; + +/** + * We sometimes need a way to say 'this error occurs where ever the cursor is' + */ +Argument.AT_CURSOR = -1; + + +/** + * A link between a parameter and the data for that parameter. + * The data for the parameter is available as in the preferred type and as + * an Argument for the CLI. + *

                                                                          We also record validity information where applicable. + *

                                                                          For values, null and undefined have distinct definitions. null means + * that a value has been provided, undefined means that it has not. + * Thus, null is a valid default value, and common because it identifies an + * parameter that is optional. undefined means there is no value from + * the command line. + * @constructor + */ +function Assignment(param, requisition) { + this.param = param; + this.requisition = requisition; + this.setValue(param.defaultValue); +}; +Assignment.prototype = { + /** + * The parameter that we are assigning to + * @readonly + */ + param: undefined, + + /** + * Report on the status of the last parse() conversion. + * @see types.Conversion + */ + conversion: undefined, + + /** + * The current value in a type as specified by param.type + */ + value: undefined, + + /** + * The string version of the current value + */ + arg: undefined, + + /** + * The current value (i.e. not the string representation) + * Use setValue() to mutate + */ + value: undefined, + setValue: function(value) { + if (this.value === value) { + return; + } + + if (value === undefined) { + this.value = this.param.defaultValue; + this.conversion = this.param.getDefault ? + this.param.getDefault() : + this.param.type.getDefault(); + this.arg = undefined; + } else { + this.value = value; + this.conversion = undefined; + var text = (value == null) ? '' : this.param.type.stringify(value); + if (this.arg) { + this.arg.setText(text); + } + } + + this.requisition._assignmentChanged(this); + }, + + /** + * The textual representation of the current value + * Use setValue() to mutate + */ + arg: undefined, + setArgument: function(arg) { + if (this.arg === arg) { + return; + } + this.arg = arg; + this.conversion = this.param.type.parse(arg.text); + this.conversion.arg = arg; // TODO: make this automatic? + this.value = this.conversion.value; + this.requisition._assignmentChanged(this); + }, + + /** + * Create a list of the hints associated with this parameter assignment. + * Generally there will be only one hint generated because we're currently + * only displaying one hint at a time, ordering by distance from cursor + * and severity. Since distance from cursor will be the same for all hints + * from this assignment all but the most severe will ever be used. It might + * make sense with more experience to alter this to function to be getHint() + */ + getHint: function() { + // Allow the parameter to provide documentation + if (this.param.getCustomHint && this.value && this.arg) { + var hint = this.param.getCustomHint(this.value, this.arg); + if (hint) { + return hint; + } + } + + // If there is no argument, use the cursor position + var message = '' + this.param.name + ': '; + if (this.param.description) { + // TODO: This should be a short description - do we need to trim? + message += this.param.description.trim(); + + // Ensure the help text ends with '. ' + if (message.charAt(message.length - 1) !== '.') { + message += '.'; + } + if (message.charAt(message.length - 1) !== ' ') { + message += ' '; + } + } + var status = Status.VALID; + var start = this.arg ? this.arg.start : Argument.AT_CURSOR; + var end = this.arg ? this.arg.end : Argument.AT_CURSOR; + var predictions; + + // Non-valid conversions will have useful information to pass on + if (this.conversion) { + status = this.conversion.status; + if (this.conversion.message) { + message += this.conversion.message; + } + predictions = this.conversion.predictions; + } + + // Hint if the param is required, but not provided + var argProvided = this.arg && this.arg.text !== ''; + var dataProvided = this.value !== undefined || argProvided; + if (this.param.defaultValue === undefined && !dataProvided) { + status = Status.INVALID; + message += 'Required<\strong>'; + } + + return new Hint(status, message, start, end, predictions); + }, + + /** + * Basically setValue(conversion.predictions[0]) done in a safe + * way. + */ + complete: function() { + if (this.conversion && this.conversion.predictions && + this.conversion.predictions.length > 0) { + this.setValue(this.conversion.predictions[0]); + } + }, + + /** + * If the cursor is at 'position', do we have sufficient data to start + * displaying the next hint. This is both complex and important. + * For example, if the user has just typed:

                                                                            + *
                                                                          • 'set tabstop ' then they clearly want to know about the valid + * values for the tabstop setting, so the hint is based on the next + * parameter. + *
                                                                          • 'set tabstop' (without trailing space) - they will probably still + * want to know about the valid values for the tabstop setting because + * there is no confusion about the setting in question. + *
                                                                          • 'set tabsto' they've not finished typing a setting name so the hint + * should be based on the current parameter. + *
                                                                          • 'set tabstop' (when there is an additional tabstopstyle setting) we + * can't make assumptions about the setting - we're not finished. + *
                                                                          + *

                                                                          Note that the input for 2 and 4 is identical, only the configuration + * has changed, so hint display is environmental. + * + *

                                                                          This function works out if the cursor is before the end of this + * assignment (assuming that we've asked the same thing of the previous + * assignment) and then attempts to work out if we should use the hint from + * the next assignment even though technically the cursor is still inside + * this one due to the rules above. + */ + isPositionCaptured: function(position) { + if (!this.arg) { + return false; + } + + // Note we don't check if position >= this.arg.start because that's + // implied by the fact that we're asking the assignments in turn, and + // we want to avoid thing falling between the cracks, but we do need + // to check that the argument does have a position + if (this.arg.start === -1) { + return false; + } + + // We're clearly done if the position is past the end of the text + if (position > this.arg.end) { + return false; + } + + // If we're AT the end, the position is captured if either the status + // is not valid or if there are other valid options including current + if (position === this.arg.end) { + return this.conversion.status !== Status.VALID || + this.conversion.predictions.length !== 0; + } + + // Otherwise we're clearly inside + return true; + }, + + /** + * Replace the current value with the lower value if such a concept + * exists. + */ + decrement: function() { + var replacement = this.param.type.decrement(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Replace the current value with the higher value if such a concept + * exists. + */ + increment: function() { + var replacement = this.param.type.increment(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Helper when we're rebuilding command lines. + */ + toString: function() { + return this.arg ? this.arg.toString() : ''; + } +}; +exports.Assignment = Assignment; + + +/** + * This is a special parameter to reflect the command itself. + */ +var commandParam = { + name: '__command', + type: 'command', + description: 'The command to execute', + + /** + * Provide some documentation for a command. + */ + getCustomHint: function(command, arg) { + var docs = []; + docs.push(' > '); + docs.push(command.name); + if (command.params && command.params.length > 0) { + command.params.forEach(function(param) { + if (param.defaultValue === undefined) { + docs.push(' [' + param.name + ']'); + } + else { + docs.push(' [' + param.name + ']'); + } + }, this); + } + docs.push('
                                                                          '); + + docs.push(command.description ? command.description : '(No description)'); + docs.push('
                                                                          '); + + if (command.params && command.params.length > 0) { + docs.push('

                                                                            '); + command.params.forEach(function(param) { + docs.push('
                                                                          • '); + docs.push('' + param.name + ': '); + docs.push(param.description ? param.description : '(No description)'); + if (param.defaultValue === undefined) { + docs.push(' [Required]'); + } + else if (param.defaultValue === null) { + docs.push(' [Optional]'); + } + else { + docs.push(' [Default: ' + param.defaultValue + ']'); + } + docs.push('
                                                                          • '); + }, this); + docs.push('
                                                                          '); + } + + return new Hint(Status.VALID, docs.join(''), arg); + } +}; + +/** + * A Requisition collects the information needed to execute a command. + * There is no point in a requisition for parameter-less commands because there + * is no information to collect. A Requisition is a collection of assignments + * of values to parameters, each handled by an instance of Assignment. + * CliRequisition adds functions for parsing input from a command line to this + * class. + *

                                                                          Events

                                                                          + * We publish the following events:
                                                                            + *
                                                                          • argumentChange: The text of some argument has changed. It is likely that + * any UI component displaying this argument will need to be updated. (Note that + * this event is actually published by the Argument itself - see the docs for + * Argument for more details) + * The event object looks like: { argument: A, oldText: B, text: B } + *
                                                                          • commandChange: The command has changed. It is likely that a UI + * structure will need updating to match the parameters of the new command. + * The event object looks like { command: A } + * @constructor + */ +function Requisition(env) { + this.env = env; + this.commandAssignment = new Assignment(commandParam, this); +} + +Requisition.prototype = { + /** + * The command that we are about to execute. + * @see setCommandConversion() + * @readonly + */ + commandAssignment: undefined, + + /** + * The count of assignments. Excludes the commandAssignment + * @readonly + */ + assignmentCount: undefined, + + /** + * The object that stores of Assignment objects that we are filling out. + * The Assignment objects are stored under their param.name for named + * lookup. Note: We make use of the property of Javascript objects that + * they are not just hashmaps, but linked-list hashmaps which iterate in + * insertion order. + * Excludes the commandAssignment. + */ + _assignments: undefined, + + /** + * The store of hints generated by the assignments. We are trying to prevent + * the UI from needing to access this in broad form, but instead use + * methods that query part of this structure. + */ + _hints: undefined, + + /** + * When the command changes, we need to keep a bunch of stuff in sync + */ + _assignmentChanged: function(assignment) { + // This is all about re-creating Assignments + if (assignment.param.name !== '__command') { + return; + } + + this._assignments = {}; + + if (assignment.value) { + assignment.value.params.forEach(function(param) { + this._assignments[param.name] = new Assignment(param, this); + }, this); + } + + this.assignmentCount = Object.keys(this._assignments).length; + this._dispatchEvent('commandChange', { command: assignment.value }); + }, + + /** + * Assignments have an order, so we need to store them in an array. + * But we also need named access ... + */ + getAssignment: function(nameOrNumber) { + var name = (typeof nameOrNumber === 'string') ? + nameOrNumber : + Object.keys(this._assignments)[nameOrNumber]; + return this._assignments[name]; + }, + + /** + * Where parameter name == assignment names - they are the same. + */ + getParameterNames: function() { + return Object.keys(this._assignments); + }, + + /** + * A *shallow* clone of the assignments. + * This is useful for systems that wish to go over all the assignments + * finding values one way or another and wish to trim an array as they go. + */ + cloneAssignments: function() { + return Object.keys(this._assignments).map(function(name) { + return this._assignments[name]; + }, this); + }, + + /** + * Collect the statuses from the Assignments. + * The hints returned are sorted by severity + */ + _updateHints: function() { + // TODO: work out when to clear this out for the plain Requisition case + // this._hints = []; + this.getAssignments(true).forEach(function(assignment) { + this._hints.push(assignment.getHint()); + }, this); + Hint.sort(this._hints); + + // We would like to put some initial help here, but for anyone but + // a complete novice a 'type help' message is very annoying, so we + // need to find a way to only display this message once, or for + // until the user click a 'close' button or similar + // TODO: Add special case for '' input + }, + + /** + * Returns the most severe status + */ + getWorstHint: function() { + return this._hints[0]; + }, + + /** + * Extract the names and values of all the assignments, and return as + * an object. + */ + getArgsObject: function() { + var args = {}; + this.getAssignments().forEach(function(assignment) { + args[assignment.param.name] = assignment.value; + }, this); + return args; + }, + + /** + * Access the arguments as an array. + * @param includeCommand By default only the parameter arguments are + * returned unless (includeCommand === true), in which case the list is + * prepended with commandAssignment.arg + */ + getAssignments: function(includeCommand) { + var args = []; + if (includeCommand === true) { + args.push(this.commandAssignment); + } + Object.keys(this._assignments).forEach(function(name) { + args.push(this.getAssignment(name)); + }, this); + return args; + }, + + /** + * Reset all the assignments to their default values + */ + setDefaultValues: function() { + this.getAssignments().forEach(function(assignment) { + assignment.setValue(undefined); + }, this); + }, + + /** + * Helper to call canon.exec + */ + exec: function() { + canon.exec(this.commandAssignment.value, + this.env, + "cli", + this.getArgsObject(), + this.toCanonicalString()); + }, + + /** + * Extract a canonical version of the input + */ + toCanonicalString: function() { + var line = []; + line.push(this.commandAssignment.value.name); + Object.keys(this._assignments).forEach(function(name) { + var assignment = this._assignments[name]; + var type = assignment.param.type; + // TODO: This will cause problems if there is a non-default value + // after a default value. Also we need to decide when to use + // named parameters in place of positional params. Both can wait. + if (assignment.value !== assignment.param.defaultValue) { + line.push(' '); + line.push(type.stringify(assignment.value)); + } + }, this); + return line.join(''); + } +}; +oop.implement(Requisition.prototype, EventEmitter); +exports.Requisition = Requisition; + + +/** + * An object used during command line parsing to hold the various intermediate + * data steps. + *

                                                                            The 'output' of the update is held in 2 objects: input.hints which is an + * array of hints to display to the user. In the future this will become a + * single value. + *

                                                                            The other output value is input.requisition which gives access to an + * args object for use in executing the final command. + * + *

                                                                            The majority of the functions in this class are called in sequence by the + * constructor. Their task is to add to hints fill out the requisition. + *

                                                                            The general sequence is:

                                                                              + *
                                                                            • _tokenize(): convert _typed into _parts + *
                                                                            • _split(): convert _parts into _command and _unparsedArgs + *
                                                                            • _assign(): convert _unparsedArgs into requisition + *
                                                                            + * + * @param typed {string} The instruction as typed by the user so far + * @param options {object} A list of optional named parameters. Can be any of: + * flags: Flags for us to check against the predicates specified with the + * commands. Defaulted to keyboard.buildFlags({ }); + * if not specified. + * @constructor + */ +function CliRequisition(env, options) { + Requisition.call(this, env); + + if (options && options.flags) { + /** + * TODO: We were using a default of keyboard.buildFlags({ }); + * This allowed us to have commands that only existed in certain contexts + * - i.e. Javascript specific commands. + */ + this.flags = options.flags; + } +} +oop.inherits(CliRequisition, Requisition); +(function() { + /** + * Called by the UI when ever the user interacts with a command line input + * @param input A structure that details the state of the input field. + * It should look something like: { typed:a, cursor: { start:b, end:c } } + * Where a is the contents of the input field, and b and c are the start + * and end of the cursor/selection respectively. + */ + CliRequisition.prototype.update = function(input) { + this.input = input; + this._hints = []; + + var args = this._tokenize(input.typed); + this._split(args); + + if (this.commandAssignment.value) { + this._assign(args); + } + + this._updateHints(); + }; + + /** + * Return an array of Status scores so we can create a marked up + * version of the command line input. + */ + CliRequisition.prototype.getInputStatusMarkup = function() { + // 'scores' is an array which tells us what chars are errors + // Initialize with everything VALID + var scores = this.toString().split('').map(function(ch) { + return Status.VALID; + }); + // For all chars in all hints, check and upgrade the score + this._hints.forEach(function(hint) { + for (var i = hint.start; i <= hint.end; i++) { + if (hint.status > scores[i]) { + scores[i] = hint.status; + } + } + }, this); + return scores; + }; + + /** + * Reconstitute the input from the args + */ + CliRequisition.prototype.toString = function() { + return this.getAssignments(true).map(function(assignment) { + return assignment.toString(); + }, this).join(''); + }; + + var superUpdateHints = CliRequisition.prototype._updateHints; + /** + * Marks up hints in a number of ways: + * - Makes INCOMPLETE hints that are not near the cursor INVALID since + * they can't be completed by typing + * - Finds the most severe hint, and annotates the array with it + * - Finds the hint to display, and also annotates the array with it + * TODO: I'm wondering if array annotation is evil and we should replace + * this with an object. Need to find out more. + */ + CliRequisition.prototype._updateHints = function() { + superUpdateHints.call(this); + + // Not knowing about cursor positioning, the requisition and assignments + // can't know this, but anything they mark as INCOMPLETE is actually + // INVALID unless the cursor is actually inside that argument. + var c = this.input.cursor; + this._hints.forEach(function(hint) { + var startInHint = c.start >= hint.start && c.start <= hint.end; + var endInHint = c.end >= hint.start && c.end <= hint.end; + var inHint = startInHint || endInHint; + if (!inHint && hint.status === Status.INCOMPLETE) { + hint.status = Status.INVALID; + } + }, this); + + Hint.sort(this._hints); + }; + + /** + * Accessor for the hints array. + * While we could just use the hints property, using getHints() is + * preferred for symmetry with Requisition where it needs a function due to + * lack of an atomic update system. + */ + CliRequisition.prototype.getHints = function() { + return this._hints; + }; + + /** + * Look through the arguments attached to our assignments for the assignment + * at the given position. + */ + CliRequisition.prototype.getAssignmentAt = function(position) { + var assignments = this.getAssignments(true); + for (var i = 0; i < assignments.length; i++) { + var assignment = assignments[i]; + if (!assignment.arg) { + // There is no argument in this assignment, we've fallen off + // the end of the obvious answers - it must be this one. + return assignment; + } + if (assignment.isPositionCaptured(position)) { + return assignment; + } + } + + return assignment; + }; + + /** + * Split up the input taking into account ' and " + */ + CliRequisition.prototype._tokenize = function(typed) { + // For blank input, place a dummy empty argument into the list + if (typed == null || typed.length === 0) { + return [ new Argument(this, '', 0, 0, '', '') ]; + } + + var OUTSIDE = 1; // The last character was whitespace + var IN_SIMPLE = 2; // The last character was part of a parameter + var IN_SINGLE_Q = 3; // We're inside a single quote: ' + var IN_DOUBLE_Q = 4; // We're inside double quotes: " + + var mode = OUTSIDE; + + // First we un-escape. This list was taken from: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Unicode + // We are generally converting to their real values except for \', \" + // and '\ ' which we are converting to unicode private characters so we + // can distinguish them from ', " and ' ', which have special meaning. + // They need swapping back post-split - see unescape2() + typed = typed + .replace(/\\\\/g, '\\') + .replace(/\\b/g, '\b') + .replace(/\\f/g, '\f') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\t/g, '\t') + .replace(/\\v/g, '\v') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\ /g, '\uF000') + .replace(/\\'/g, '\uF001') + .replace(/\\"/g, '\uF002'); + + function unescape2(str) { + return str + .replace(/\uF000/g, ' ') + .replace(/\uF001/g, '\'') + .replace(/\uF002/g, '"'); + } + + var i = 0; + var start = 0; // Where did this section start? + var prefix = ''; + var args = []; + + while (true) { + if (i >= typed.length) { + // There is nothing else to read - tidy up + if (mode !== OUTSIDE) { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, start, i, prefix, '')); + } + else { + if (i !== start) { + // There's a bunch of whitespace at the end of the + // command add it to the last argument's suffix, + // creating an empty argument if needed. + var extra = typed.substring(start, i); + var lastArg = args[args.length - 1]; + if (!lastArg) { + lastArg = new Argument(this, '', i, i, extra, ''); + args.push(lastArg); + } + else { + lastArg.suffix += extra; + } + } + } + break; + } + + var c = typed[i]; + switch (mode) { + case OUTSIDE: + if (c === '\'') { + prefix = typed.substring(start, i + 1); + mode = IN_SINGLE_Q; + start = i + 1; + } + else if (c === '"') { + prefix = typed.substring(start, i + 1); + mode = IN_DOUBLE_Q; + start = i + 1; + } + else if (/ /.test(c)) { + // Still whitespace, do nothing + } + else { + prefix = typed.substring(start, i); + mode = IN_SIMPLE; + start = i; + } + break; + + case IN_SIMPLE: + // There is an edge case of xx'xx which we are assuming to + // be a single parameter (and same with ") + if (c === ' ') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start, i, prefix, '')); + mode = OUTSIDE; + start = i; + prefix = ''; + } + break; + + case IN_SINGLE_Q: + if (c === '\'') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + + case IN_DOUBLE_Q: + if (c === '"') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + } + + i++; + } + + return args; + }; + + /** + * Looks in the canon for a command extension that matches what has been + * typed at the command line. + */ + CliRequisition.prototype._split = function(args) { + var argsUsed = 1; + var arg; + + while (argsUsed <= args.length) { + var arg = Argument.merge(args, 0, argsUsed); + this.commandAssignment.setArgument(arg); + + if (!this.commandAssignment.value) { + // Not found. break with value == null + break; + } + + /* + // Previously we needed a way to hide commands depending context. + // We have not resurrected that feature yet. + if (!keyboard.flagsMatch(command.predicates, this.flags)) { + // If the predicates say 'no match' then go LA LA LA + command = null; + break; + } + */ + + if (this.commandAssignment.value.exec) { + // Valid command, break with command valid + for (var i = 0; i < argsUsed; i++) { + args.shift(); + } + break; + } + + argsUsed++; + } + }; + + /** + * Work out which arguments are applicable to which parameters. + *

                                                                            This takes #_command.params and #_unparsedArgs and creates a map of + * param names to 'assignment' objects, which have the following properties: + *

                                                                              + *
                                                                            • param - The matching parameter. + *
                                                                            • index - Zero based index into where the match came from on the input + *
                                                                            • value - The matching input + *
                                                                            + */ + CliRequisition.prototype._assign = function(args) { + if (args.length === 0) { + this.setDefaultValues(); + return; + } + + // Create an error if the command does not take parameters, but we have + // been given them ... + if (this.assignmentCount === 0) { + // TODO: previously we were doing some extra work to avoid this if + // we determined that we had args that were all whitespace, but + // probably given our tighter tokenize() this won't be an issue? + this._hints.push(new Hint(Status.INVALID, + this.commandAssignment.value.name + + ' does not take any parameters', + Argument.merge(args))); + return; + } + + // Special case: if there is only 1 parameter, and that's of type + // text we put all the params into the first param + if (this.assignmentCount === 1) { + var assignment = this.getAssignment(0); + if (assignment.param.type.name === 'text') { + assignment.setArgument(Argument.merge(args)); + return; + } + } + + var assignments = this.cloneAssignments(); + var names = this.getParameterNames(); + + // Extract all the named parameters + var used = []; + assignments.forEach(function(assignment) { + var namedArgText = '--' + assignment.name; + + var i = 0; + while (true) { + var arg = args[i]; + if (namedArgText !== arg.text) { + i++; + if (i >= args.length) { + break; + } + continue; + } + + // boolean parameters don't have values, default to false + if (assignment.param.type.name === 'boolean') { + assignment.setValue(true); + } + else { + if (i + 1 < args.length) { + // Missing value portion of this named param + this._hints.push(new Hint(Status.INCOMPLETE, + 'Missing value for: ' + namedArgText, + args[i])); + } + else { + args.splice(i + 1, 1); + assignment.setArgument(args[i + 1]); + } + } + + lang.arrayRemove(names, assignment.name); + args.splice(i, 1); + // We don't need to i++ if we splice + } + }, this); + + // What's left are positional parameters assign in order + names.forEach(function(name) { + var assignment = this.getAssignment(name); + if (args.length === 0) { + // No more values + assignment.setValue(undefined); // i.e. default + } + else { + var arg = args[0]; + args.splice(0, 1); + assignment.setArgument(arg); + } + }, this); + + if (args.length > 0) { + var remaining = Argument.merge(args); + this._hints.push(new Hint(Status.INVALID, + 'Input \'' + remaining.text + '\' makes no sense.', + remaining)); + } + }; + +})(); +exports.CliRequisition = CliRequisition; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/settings', ['require', 'exports', 'module' , 'pilot/types', 'pilot/types/basic'], function(require, exports, module) { + + +var types = require("pilot/types"); +var SelectionType = require('pilot/types/basic').SelectionType; + +var direction = new SelectionType({ + name: 'direction', + data: [ 'above', 'below' ] +}); + +var hintDirectionSetting = { + name: "hintDirection", + description: "Are hints shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputDirectionSetting = { + name: "outputDirection", + description: "Is the output window shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputHeightSetting = { + name: "outputHeight", + description: "What height should the output panel be?", + type: "number", + defaultValue: 300 +}; + +exports.startup = function(data, reason) { + types.registerType(direction); + data.env.settings.addSetting(hintDirectionSetting); + data.env.settings.addSetting(outputDirectionSetting); + data.env.settings.addSetting(outputHeightSetting); +}; + +exports.shutdown = function(data, reason) { + types.unregisterType(direction); + data.env.settings.removeSetting(hintDirectionSetting); + data.env.settings.removeSetting(outputDirectionSetting); + data.env.settings.removeSetting(outputHeightSetting); +}; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/cli_view', ['require', 'exports', 'module' , 'text!cockpit/ui/cli_view.css', 'pilot/event', 'pilot/dom', 'pilot/keys', 'pilot/canon', 'pilot/types', 'cockpit/cli', 'cockpit/ui/request_view'], function(require, exports, module) { + + +var editorCss = require("text!cockpit/ui/cli_view.css"); +var event = require("pilot/event"); +var dom = require("pilot/dom"); + +dom.importCssString(editorCss); + +var event = require("pilot/event"); +var keys = require("pilot/keys"); +var canon = require("pilot/canon"); +var Status = require('pilot/types').Status; + +var CliRequisition = require('cockpit/cli').CliRequisition; +var Hint = require('cockpit/cli').Hint; +var RequestView = require('cockpit/ui/request_view').RequestView; + +var NO_HINT = new Hint(Status.VALID, '', 0, 0); + +/** + * On startup we need to: + * 1. Add 3 sets of elements to the DOM for: + * - command line output + * - input hints + * - completion + * 2. Attach a set of events so the command line works + */ +exports.startup = function(data, reason) { + var cli = new CliRequisition(data.env); + var cliView = new CliView(cli, data.env); + data.env.cli = cli; +}; + +/** + * A class to handle the simplest UI implementation + */ +function CliView(cli, env) { + cli.cliView = this; + this.cli = cli; + this.doc = document; + this.win = dom.getParentWindow(this.doc); + this.env = env; + + // TODO: we should have a better way to specify command lines??? + this.element = this.doc.getElementById('cockpitInput'); + if (!this.element) { + // console.log('No element with an id of cockpit. Bailing on cli'); + return; + } + + this.settings = env.settings; + this.hintDirection = this.settings.getSetting('hintDirection'); + this.outputDirection = this.settings.getSetting('outputDirection'); + this.outputHeight = this.settings.getSetting('outputHeight'); + + // If the requisition tells us something has changed, we use this to know + // if we should ignore it + this.isUpdating = false; + + this.createElements(); + this.update(); +} +CliView.prototype = { + /** + * Create divs for completion, hints and output + */ + createElements: function() { + var input = this.element; + + this.element.spellcheck = false; + + this.output = this.doc.getElementById('cockpitOutput'); + this.popupOutput = (this.output == null); + if (!this.output) { + this.output = this.doc.createElement('div'); + this.output.id = 'cockpitOutput'; + this.output.className = 'cptOutput'; + input.parentNode.insertBefore(this.output, input.nextSibling); + + var setMaxOutputHeight = function() { + this.output.style.maxHeight = this.outputHeight.get() + 'px'; + }.bind(this); + this.outputHeight.addEventListener('change', setMaxOutputHeight); + setMaxOutputHeight(); + } + + this.completer = this.doc.createElement('div'); + this.completer.className = 'cptCompletion VALID'; + + this.completer.style.color = dom.computedStyle(input, "color"); + this.completer.style.fontSize = dom.computedStyle(input, "fontSize"); + this.completer.style.fontFamily = dom.computedStyle(input, "fontFamily"); + this.completer.style.fontWeight = dom.computedStyle(input, "fontWeight"); + this.completer.style.fontStyle = dom.computedStyle(input, "fontStyle"); + input.parentNode.insertBefore(this.completer, input.nextSibling); + + // Transfer background styling to the completer. + this.completer.style.backgroundColor = input.style.backgroundColor; + input.style.backgroundColor = 'transparent'; + + this.hinter = this.doc.createElement('div'); + this.hinter.className = 'cptHints'; + input.parentNode.insertBefore(this.hinter, input.nextSibling); + + var resizer = this.resizer.bind(this); + event.addListener(this.win, 'resize', resizer); + this.hintDirection.addEventListener('change', resizer); + this.outputDirection.addEventListener('change', resizer); + resizer(); + + canon.addEventListener('output', function(ev) { + new RequestView(ev.request, this); + }.bind(this)); + event.addCommandKeyListener(input, this.onCommandKey.bind(this)); + event.addListener(input, 'keyup', this.onKeyUp.bind(this)); + + // cursor position affects hint severity. TODO: shortcuts for speed + event.addListener(input, 'mouseup', function(ev) { + this.isUpdating = true; + this.update(); + this.isUpdating = false; + }.bind(this)); + + this.cli.addEventListener('argumentChange', this.onArgChange.bind(this)); + + event.addListener(input, "focus", function() { + dom.addCssClass(this.output, "cptFocusPopup"); + dom.addCssClass(this.hinter, "cptFocusPopup"); + }.bind(this)); + + function hideOutput() { + dom.removeCssClass(this.output, "cptFocusPopup"); + dom.removeCssClass(this.hinter, "cptFocusPopup"); + }; + event.addListener(input, "blur", hideOutput.bind(this)); + hideOutput.call(this); + }, + + /** + * We need to see the output of the latest command entered + */ + scrollOutputToBottom: function() { + // Certain browsers have a bug such that scrollHeight is too small + // when content does not fill the client area of the element + var scrollHeight = Math.max(this.output.scrollHeight, this.output.clientHeight); + this.output.scrollTop = scrollHeight - this.output.clientHeight; + }, + + /** + * To be called on window resize or any time we want to align the elements + * with the input box. + */ + resizer: function() { + var rect = this.element.getClientRects()[0]; + + this.completer.style.top = rect.top + 'px'; + var height = rect.bottom - rect.top; + this.completer.style.height = height + 'px'; + this.completer.style.lineHeight = height + 'px'; + this.completer.style.left = rect.left + 'px'; + var width = rect.right - rect.left; + this.completer.style.width = width + 'px'; + + if (this.hintDirection.get() === 'below') { + this.hinter.style.top = rect.bottom + 'px'; + this.hinter.style.bottom = 'auto'; + } + else { + this.hinter.style.top = 'auto'; + this.hinter.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.hinter.style.left = (rect.left + 30) + 'px'; + this.hinter.style.maxWidth = (width - 110) + 'px'; + + if (this.popupOutput) { + if (this.outputDirection.get() === 'below') { + this.output.style.top = rect.bottom + 'px'; + this.output.style.bottom = 'auto'; + } + else { + this.output.style.top = 'auto'; + this.output.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.output.style.left = rect.left + 'px'; + this.output.style.width = (width - 80) + 'px'; + } + }, + + /** + * Ensure that TAB isn't handled by the browser + */ +onCommandKey: function(ev, hashId, keyCode) { + var stopEvent; + if (keyCode === keys.TAB || + keyCode === keys.UP || + keyCode === keys.DOWN) { + stopEvent = true; + } else if (hashId != 0 || keyCode != 0) { + stopEvent = canon.execKeyCommand(this.env, 'cli', hashId, keyCode); + } + stopEvent && event.stopEvent(ev); + }, + + /** + * The main keyboard processing loop + */ + onKeyUp: function(ev) { + var handled; + /* + var handled = keyboardManager.processKeyEvent(ev, this, { + isCommandLine: true, isKeyUp: true + }); + */ + + // RETURN does a special exec/highlight thing + if (ev.keyCode === keys.RETURN) { + var worst = this.cli.getWorstHint(); + // Deny RETURN unless the command might work + if (worst.status === Status.VALID) { + this.cli.exec(); + this.element.value = ''; + } + else { + // If we've denied RETURN because the command was not VALID, + // select the part of the command line that is causing problems + // TODO: if there are 2 errors are we picking the right one? + dom.setSelectionStart(this.element, worst.start); + dom.setSelectionEnd(this.element, worst.end); + } + } + + this.update(); + + // Special actions which delegate to the assignment + var current = this.cli.getAssignmentAt(dom.getSelectionStart(this.element)); + if (current) { + // TAB does a special complete thing + if (ev.keyCode === keys.TAB) { + current.complete(); + this.update(); + } + + // UP/DOWN look for some history + if (ev.keyCode === keys.UP) { + current.increment(); + this.update(); + } + if (ev.keyCode === keys.DOWN) { + current.decrement(); + this.update(); + } + } + + return handled; + }, + + /** + * Actually parse the input and make sure we're all up to date + */ + update: function() { + this.isUpdating = true; + var input = { + typed: this.element.value, + cursor: { + start: dom.getSelectionStart(this.element), + end: dom.getSelectionEnd(this.element.selectionEnd) + } + }; + this.cli.update(input); + + var display = this.cli.getAssignmentAt(input.cursor.start).getHint(); + + // 1. Update the completer with prompt/error marker/TAB info + dom.removeCssClass(this.completer, Status.VALID.toString()); + dom.removeCssClass(this.completer, Status.INCOMPLETE.toString()); + dom.removeCssClass(this.completer, Status.INVALID.toString()); + + var completion = '> '; + if (this.element.value.length > 0) { + var scores = this.cli.getInputStatusMarkup(); + completion += this.markupStatusScore(scores); + } + + // Display the "-> prediction" at the end of the completer + if (this.element.value.length > 0 && + display.predictions && display.predictions.length > 0) { + var tab = display.predictions[0]; + completion += '  ⇥ ' + (tab.name ? tab.name : tab); + } + this.completer.innerHTML = completion; + dom.addCssClass(this.completer, this.cli.getWorstHint().status.toString()); + + // 2. Update the hint element + var hint = ''; + if (this.element.value.length !== 0) { + hint += display.message; + if (display.predictions && display.predictions.length > 0) { + hint += ': [ '; + display.predictions.forEach(function(prediction) { + hint += (prediction.name ? prediction.name : prediction); + hint += ' | '; + }, this); + hint = hint.replace(/\| $/, ']'); + } + } + + this.hinter.innerHTML = hint; + if (hint.length === 0) { + dom.addCssClass(this.hinter, 'cptNoPopup'); + } + else { + dom.removeCssClass(this.hinter, 'cptNoPopup'); + } + + this.isUpdating = false; + }, + + /** + * Markup an array of Status values with spans + */ + markupStatusScore: function(scores) { + var completion = ''; + // Create mark-up + var i = 0; + var lastStatus = -1; + while (true) { + if (lastStatus !== scores[i]) { + completion += ''; + lastStatus = scores[i]; + } + completion += this.element.value[i]; + i++; + if (i === this.element.value.length) { + completion += ''; + break; + } + if (lastStatus !== scores[i]) { + completion += ''; + } + } + + return completion; + }, + + /** + * Update the input element to reflect the changed argument + */ + onArgChange: function(ev) { + if (this.isUpdating) { + return; + } + + var prefix = this.element.value.substring(0, ev.argument.start); + var suffix = this.element.value.substring(ev.argument.end); + var insert = typeof ev.text === 'string' ? ev.text : ev.text.name; + this.element.value = prefix + insert + suffix; + // Fix the cursor. + var insertEnd = (prefix + insert).length; + this.element.selectionStart = insertEnd; + this.element.selectionEnd = insertEnd; + } +}; +exports.CliView = CliView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/request_view', ['require', 'exports', 'module' , 'pilot/dom', 'pilot/event', 'text!cockpit/ui/request_view.html', 'pilot/domtemplate', 'text!cockpit/ui/request_view.css'], function(require, exports, module) { + +var dom = require("pilot/dom"); +var event = require("pilot/event"); +var requestViewHtml = require("text!cockpit/ui/request_view.html"); +var Templater = require("pilot/domtemplate").Templater; + +var requestViewCss = require("text!cockpit/ui/request_view.css"); +dom.importCssString(requestViewCss); + +/** + * Pull the HTML into the DOM, but don't add it to the document + */ +var templates = document.createElement('div'); +templates.innerHTML = requestViewHtml; +var row = templates.querySelector('.cptRow'); + +/** + * Work out the path for images. + * TODO: This should probably live in some utility area somewhere + */ +function imageUrl(path) { + var dataUrl; + try { + dataUrl = require('text!cockpit/ui/' + path); + } catch (e) { } + if (dataUrl) { + return dataUrl; + } + + var filename = module.id.split('/').pop() + '.js'; + var imagePath; + + if (module.uri.substr(-filename.length) !== filename) { + console.error('Can\'t work out path from module.uri/module.id'); + return path; + } + + if (module.uri) { + var end = module.uri.length - filename.length - 1; + return module.uri.substr(0, end) + "/" + path; + } + + return filename + path; +} + + +/** + * Adds a row to the CLI output display + */ +function RequestView(request, cliView) { + this.request = request; + this.cliView = cliView; + this.imageUrl = imageUrl; + + // Elements attached to this by the templater. For info only + this.rowin = null; + this.rowout = null; + this.output = null; + this.hide = null; + this.show = null; + this.duration = null; + this.throb = null; + + new Templater().processNode(row.cloneNode(true), this); + + this.cliView.output.appendChild(this.rowin); + this.cliView.output.appendChild(this.rowout); + + this.request.addEventListener('output', this.onRequestChange.bind(this)); +}; + +RequestView.prototype = { + /** + * A single click on an invocation line in the console copies the command to + * the command line + */ + copyToInput: function() { + this.cliView.element.value = this.request.typed; + }, + + /** + * A double click on an invocation line in the console executes the command + */ + executeRequest: function(ev) { + this.cliView.cli.update({ + typed: this.request.typed, + cursor: { start:0, end:0 } + }); + this.cliView.cli.exec(); + }, + + hideOutput: function(ev) { + this.output.style.display = 'none'; + dom.addCssClass(this.hide, 'cmd_hidden'); + dom.removeCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + showOutput: function(ev) { + this.output.style.display = 'block'; + dom.removeCssClass(this.hide, 'cmd_hidden'); + dom.addCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + remove: function(ev) { + this.cliView.output.removeChild(this.rowin); + this.cliView.output.removeChild(this.rowout); + event.stopPropagation(ev); + }, + + onRequestChange: function(ev) { + this.duration.innerHTML = this.request.duration ? + 'completed in ' + (this.request.duration / 1000) + ' sec ' : + ''; + + this.output.innerHTML = ''; + this.request.outputs.forEach(function(output) { + var node; + if (typeof output == 'string') { + node = document.createElement('p'); + node.innerHTML = output; + } else { + node = output; + } + this.output.appendChild(node); + }, this); + this.cliView.scrollOutputToBottom(); + + dom.setCssClass(this.output, 'cmd_error', this.request.error); + + this.throb.style.display = this.request.completed ? 'none' : 'block'; + } +}; +exports.RequestView = RequestView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is DomTemplate. + * + * The Initial Developer of the Original Code is Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) (original author) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('pilot/domtemplate', ['require', 'exports', 'module' ], function(require, exports, module) { + + +// WARNING: do not 'use_strict' without reading the notes in envEval; + +/** + * A templater that allows one to quickly template DOM nodes. + */ +function Templater() { + this.scope = []; +}; + +/** + * Recursive function to walk the tree processing the attributes as it goes. + * @param node the node to process. If you pass a string in instead of a DOM + * element, it is assumed to be an id for use with document.getElementById() + * @param data the data to use for node processing. + */ +Templater.prototype.processNode = function(node, data) { + if (typeof node === 'string') { + node = document.getElementById(node); + } + if (data === null || data === undefined) { + data = {}; + } + this.scope.push(node.nodeName + (node.id ? '#' + node.id : '')); + try { + // Process attributes + if (node.attributes && node.attributes.length) { + // We need to handle 'foreach' and 'if' first because they might stop + // some types of processing from happening, and foreach must come first + // because it defines new data on which 'if' might depend. + if (node.hasAttribute('foreach')) { + this.processForEach(node, data); + return; + } + if (node.hasAttribute('if')) { + if (!this.processIf(node, data)) { + return; + } + } + // Only make the node available once we know it's not going away + data.__element = node; + // It's good to clean up the attributes when we've processed them, + // but if we do it straight away, we mess up the array index + var attrs = Array.prototype.slice.call(node.attributes); + for (var i = 0; i < attrs.length; i++) { + var value = attrs[i].value; + var name = attrs[i].name; + this.scope.push(name); + try { + if (name === 'save') { + // Save attributes are a setter using the node + value = this.stripBraces(value); + this.property(value, data, node); + node.removeAttribute('save'); + } else if (name.substring(0, 2) === 'on') { + // Event registration relies on property doing a bind + value = this.stripBraces(value); + var func = this.property(value, data); + if (typeof func !== 'function') { + this.handleError('Expected ' + value + + ' to resolve to a function, but got ' + typeof func); + } + node.removeAttribute(name); + var capture = node.hasAttribute('capture' + name.substring(2)); + node.addEventListener(name.substring(2), func, capture); + if (capture) { + node.removeAttribute('capture' + name.substring(2)); + } + } else { + // Replace references in all other attributes + var self = this; + var newValue = value.replace(/\$\{[^}]*\}/g, function(path) { + return self.envEval(path.slice(2, -1), data, value); + }); + // Remove '_' prefix of attribute names so the DOM won't try + // to use them before we've processed the template + if (name.charAt(0) === '_') { + node.removeAttribute(name); + node.setAttribute(name.substring(1), newValue); + } else if (value !== newValue) { + attrs[i].value = newValue; + } + } + } finally { + this.scope.pop(); + } + } + } + + // Loop through our children calling processNode. First clone them, so the + // set of nodes that we visit will be unaffected by additions or removals. + var childNodes = Array.prototype.slice.call(node.childNodes); + for (var j = 0; j < childNodes.length; j++) { + this.processNode(childNodes[j], data); + } + + if (node.nodeType === Node.TEXT_NODE) { + this.processTextNode(node, data); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Handle + * @param node An element with an 'if' attribute + * @param data The data to use with envEval + * @returns true if processing should continue, false otherwise + */ +Templater.prototype.processIf = function(node, data) { + this.scope.push('if'); + try { + var originalValue = node.getAttribute('if'); + var value = this.stripBraces(originalValue); + var recurse = true; + try { + var reply = this.envEval(value, data, originalValue); + recurse = !!reply; + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + recurse = false; + } + if (!recurse) { + node.parentNode.removeChild(node); + } + node.removeAttribute('if'); + return recurse; + } finally { + this.scope.pop(); + } +}; + +/** + * Handle and the special case of + * + * @param node An element with a 'foreach' attribute + * @param data The data to use with envEval + */ +Templater.prototype.processForEach = function(node, data) { + this.scope.push('foreach'); + try { + var originalValue = node.getAttribute('foreach'); + var value = originalValue; + + var paramName = 'param'; + if (value.charAt(0) === '$') { + // No custom loop variable name. Use the default: 'param' + value = this.stripBraces(value); + } else { + // Extract the loop variable name from 'NAME in ${ARRAY}' + var nameArr = value.split(' in '); + paramName = nameArr[0].trim(); + value = this.stripBraces(nameArr[1].trim()); + } + node.removeAttribute('foreach'); + try { + var self = this; + // Process a single iteration of a loop + var processSingle = function(member, clone, ref) { + ref.parentNode.insertBefore(clone, ref); + data[paramName] = member; + self.processNode(clone, data); + delete data[paramName]; + }; + + // processSingle is no good for nodes where we want to work on + // the childNodes rather than the node itself + var processAll = function(scope, member) { + self.scope.push(scope); + try { + if (node.nodeName === 'LOOP') { + for (var i = 0; i < node.childNodes.length; i++) { + var clone = node.childNodes[i].cloneNode(true); + processSingle(member, clone, node); + } + } else { + var clone = node.cloneNode(true); + clone.removeAttribute('foreach'); + processSingle(member, clone, node); + } + } finally { + self.scope.pop(); + } + }; + + var reply = this.envEval(value, data, originalValue); + if (Array.isArray(reply)) { + reply.forEach(function(data, i) { + processAll('' + i, data); + }, this); + } else { + for (var param in reply) { + if (reply.hasOwnProperty(param)) { + processAll(param, param); + } + } + } + node.parentNode.removeChild(node); + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Take a text node and replace it with another text node with the ${...} + * sections parsed out. We replace the node by altering node.parentNode but + * we could probably use a DOM Text API to achieve the same thing. + * @param node The Text node to work on + * @param data The data to use in calls to envEval + */ +Templater.prototype.processTextNode = function(node, data) { + // Replace references in other attributes + var value = node.data; + // We can't use the string.replace() with function trick (see generic + // attribute processing in processNode()) because we need to support + // functions that return DOM nodes, so we can't have the conversion to a + // string. + // Instead we process the string as an array of parts. In order to split + // the string up, we first replace '${' with '\uF001$' and '}' with '\uF002' + // We can then split using \uF001 or \uF002 to get an array of strings + // where scripts are prefixed with $. + // \uF001 and \uF002 are just unicode chars reserved for private use. + value = value.replace(/\$\{([^}]*)\}/g, '\uF001$$$1\uF002'); + var parts = value.split(/\uF001|\uF002/); + if (parts.length > 1) { + parts.forEach(function(part) { + if (part === null || part === undefined || part === '') { + return; + } + if (part.charAt(0) === '$') { + part = this.envEval(part.slice(1), data, node.data); + } + // It looks like this was done a few lines above but see envEval + if (part === null) { + part = "null"; + } + if (part === undefined) { + part = "undefined"; + } + // if (isDOMElement(part)) { ... } + if (typeof part.cloneNode !== 'function') { + part = node.ownerDocument.createTextNode(part.toString()); + } + node.parentNode.insertBefore(part, node); + }, this); + node.parentNode.removeChild(node); + } +}; + +/** + * Warn of string does not begin '${' and end '}' + * @param str the string to check. + * @return The string stripped of ${ and }, or untouched if it does not match + */ +Templater.prototype.stripBraces = function(str) { + if (!str.match(/\$\{.*\}/g)) { + this.handleError('Expected ' + str + ' to match ${...}'); + return str; + } + return str.slice(2, -1); +}; + +/** + * Combined getter and setter that works with a path through some data set. + * For example: + *
                                                                              + *
                                                                            • property('a.b', { a: { b: 99 }}); // returns 99 + *
                                                                            • property('a', { a: { b: 99 }}); // returns { b: 99 } + *
                                                                            • property('a', { a: { b: 99 }}, 42); // returns 99 and alters the + * input data to be { a: { b: 42 }} + *
                                                                            + * @param path An array of strings indicating the path through the data, or + * a string to be cut into an array using split('.') + * @param data An object to look in for the path argument + * @param newValue (optional) If defined, this value will replace the + * original value for the data at the path specified. + * @return The value pointed to by path before any + * newValue is applied. + */ +Templater.prototype.property = function(path, data, newValue) { + this.scope.push(path); + try { + if (typeof path === 'string') { + path = path.split('.'); + } + var value = data[path[0]]; + if (path.length === 1) { + if (newValue !== undefined) { + data[path[0]] = newValue; + } + if (typeof value === 'function') { + return function() { + return value.apply(data, arguments); + }; + } + return value; + } + if (!value) { + this.handleError('Can\'t find path=' + path); + return null; + } + return this.property(path.slice(1), value, newValue); + } finally { + this.scope.pop(); + } +}; + +/** + * Like eval, but that creates a context of the variables in env in + * which the script is evaluated. + * WARNING: This script uses 'with' which is generally regarded to be evil. + * The alternative is to create a Function at runtime that takes X parameters + * according to the X keys in the env object, and then call that function using + * the values in the env object. This is likely to be slow, but workable. + * @param script The string to be evaluated. + * @param env The environment in which to eval the script. + * @param context Optional debugging string in case of failure + * @return The return value of the script, or the error message if the script + * execution failed. + */ +Templater.prototype.envEval = function(script, env, context) { + with (env) { + try { + this.scope.push(context); + return eval(script); + } catch (ex) { + this.handleError('Template error evaluating \'' + script + '\'', ex); + return script; + } finally { + this.scope.pop(); + } + } +}; + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + * @param ex optional associated exception. + */ +Templater.prototype.handleError = function(message, ex) { + this.logError(message); + this.logError('In: ' + this.scope.join(' > ')); + if (ex) { + this.logError(ex); + } +}; + + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + */ +Templater.prototype.logError = function(message) { + window.console && window.console.log && console.log(message); +}; + +exports.Templater = Templater; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Skywriter Team (skywriter@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/commands/basic', ['require', 'exports', 'module' , 'pilot/canon'], function(require, exports, module) { + + +var canon = require('pilot/canon'); + +/** + * '!' command + */ +var bangCommandSpec = { + name: 'sh', + description: 'Execute a system command (requires server support)', + params: [ + { + name: 'command', + type: 'text', + description: 'The string to send to the os shell.' + } + ], + exec: function(env, args, request) { + var req = new XMLHttpRequest(); + req.open('GET', '/exec?args=' + args.command, true); + req.onreadystatechange = function(ev) { + if (req.readyState == 4) { + if (req.status == 200) { + request.done('
                                                                            ' + req.responseText + '
                                                                            '); + } + } + }; + req.send(null); + } +}; + +var canon = require('pilot/canon'); + +exports.startup = function(data, reason) { + canon.addCommand(bangCommandSpec); +}; + +exports.shutdown = function(data, reason) { + canon.removeCommand(bangCommandSpec); +}; + + +}); +define("text!cockpit/ui/cli_view.css", [], "" + + "#cockpitInput { padding-left: 16px; }" + + "" + + ".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }" + + "" + + ".cptCompletion { padding: 0; position: absolute; z-index: -1000; }" + + ".cptCompletion.VALID { background: #FFF; }" + + ".cptCompletion.INCOMPLETE { background: #DDD; }" + + ".cptCompletion.INVALID { background: #DDD; }" + + ".cptCompletion span { color: #FFF; }" + + ".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }" + + ".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }" + + "span.cptPrompt { color: #66F; font-weight: bold; }" + + "" + + "" + + ".cptHints {" + + " color: #000;" + + " position: absolute;" + + " border: 1px solid rgba(230, 230, 230, 0.8);" + + " background: rgba(250, 250, 250, 0.8);" + + " -moz-border-radius-topleft: 10px;" + + " -moz-border-radius-topright: 10px;" + + " border-top-left-radius: 10px; border-top-right-radius: 10px;" + + " z-index: 1000;" + + " padding: 8px;" + + " display: none;" + + "}" + + "" + + ".cptFocusPopup { display: block; }" + + ".cptFocusPopup.cptNoPopup { display: none; }" + + "" + + ".cptHints ul { margin: 0; padding: 0 15px; }" + + "" + + ".cptGt { font-weight: bold; font-size: 120%; }" + + ""); + +define("text!cockpit/ui/request_view.css", [], "" + + ".cptRowIn {" + + " display: box; display: -moz-box; display: -webkit-box;" + + " box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;" + + " box-align: center; -moz-box-align: center; -webkit-box-align: center;" + + " color: #333;" + + " background-color: #EEE;" + + " width: 100%;" + + " font-family: consolas, courier, monospace;" + + "}" + + ".cptRowIn > * { padding-left: 2px; padding-right: 2px; }" + + ".cptRowIn > img { cursor: pointer; }" + + ".cptHover { display: none; }" + + ".cptRowIn:hover > .cptHover { display: block; }" + + ".cptRowIn:hover > .cptHover.cptHidden { display: none; }" + + ".cptOutTyped {" + + " box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;" + + " font-weight: bold; color: #000; font-size: 120%;" + + "}" + + ".cptRowOutput { padding-left: 10px; line-height: 1.2em; }" + + ".cptRowOutput strong," + + ".cptRowOutput b," + + ".cptRowOutput th," + + ".cptRowOutput h1," + + ".cptRowOutput h2," + + ".cptRowOutput h3 { color: #000; }" + + ".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }" + + ".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }" + + ".cptRowOutput input[type=password]," + + ".cptRowOutput input[type=text]," + + ".cptRowOutput textarea {" + + " color: #000; font-size: 120%;" + + " background: transparent; padding: 3px;" + + " border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;" + + "}" + + ".cptRowOutput table," + + ".cptRowOutput td," + + ".cptRowOutput th { border: 0; padding: 0 2px; }" + + ".cptRowOutput .right { text-align: right; }" + + ""); + +define("text!cockpit/ui/request_view.html", [], "" + + "
                                                                            " + + " " + + "
                                                                            " + + "" + + " " + + "
                                                                            >
                                                                            " + + "
                                                                            ${request.typed}
                                                                            " + + "" + + " " + + "
                                                                            " + + " \"Hide" + + " \"Show" + + " \"Remove" + + "" + + "
                                                                            " + + "" + + " " + + "
                                                                            " + + "
                                                                            " + + " " + + "
                                                                            " + + "
                                                                            " + + ""); + +define("text!cockpit/ui/images/closer.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); + +define("text!cockpit/ui/images/dot_clear.gif", [], "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"); + +define("text!cockpit/ui/images/minus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="); + +define("text!cockpit/ui/images/pinaction.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinin.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinout.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pins.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/plus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/throbber.gif", [], "data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); + + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-worker-javascript', function(A) { +function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+"
                                                                             "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.CSharpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-scala', function(A) { +define("ace/mode/scala",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scala_highlight_rules").ScalaHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/scala_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.ScalaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-merbivore_soft', function(A) { +define("ace/theme/merbivore_soft",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-merbivore-soft .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore-soft .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore-soft .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore-soft .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore-soft .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore-soft .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore-soft .ace_scroller {\n background-color: #1C1C1C;\n}\n\n.ace-merbivore-soft .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore-soft .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore-soft .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore-soft .ace_marker-layer .ace_selection {\n background: #494949;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore-soft .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore-soft .ace_keyword {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore-soft .ace_constant {\n color:#68C1D8;\n}\n\n.ace-merbivore-soft .ace_constant.ace_language {\n color:#E1C582;\n}\n\n.ace-merbivore-soft .ace_constant.ace_library {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_constant.ace_numeric {\n color:#7FC578;\n}\n\n.ace-merbivore-soft .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore-soft .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_support {\n \n}\n\n.ace-merbivore-soft .ace_support.ace_function {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore-soft .ace_string {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore-soft .ace_comment {\n color:#AC4BB8;\n}\n\n.ace-merbivore-soft .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore-soft .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore-soft .ace_variable {\n \n}\n\n.ace-merbivore-soft .ace_variable.ace_language {\n \n}\n\n.ace-merbivore-soft .ace_xml_pe {\n \n}\n\n.ace-merbivore-soft .ace_meta {\n \n}\n\n.ace-merbivore-soft .ace_meta.ace_tag {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\n color:#EAF1A3;\n}\n\n\n.ace-merbivore-soft .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-merbivore-soft"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-clojure', function(A) { +define("ace/mode/clojure",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/clojure_highlight_rules").ClojureHighlightRules,h=a("ace/mode/matching_parens_outdent").MatchingParensOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,";")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=d,f=this.$tokenizer.getLineTokens(b,a),g=f.tokens,h=f.state;if(g.length&&g[g.length-1].type=="comment")return d;if(a=="start"){var i=b.match(/[\(\[]/);i&&(d+=" "),i=b.match(/[\)]/),i&&(d="")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/clojure_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap ".split(" ")),b=e.arrayToMap("def do fn if let loop monitor-enter monitor-exit new quote recur set! throw try var".split(" ")),c=e.arrayToMap("true false nil".split(" "));this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(d){return b.hasOwnProperty(d)?"keyword":c.hasOwnProperty(d)?"constant.language":a.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|d)+"},{token:"string.regexp",regex:'/#"(?:.|(\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ClojureHighlightRules=g}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\)/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\))/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingParensOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-keybinding-vim', function(A) { +define("ace/keyboard/keybinding/vim",["require","exports","module","ace/keyboard/state_handler"],function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"i",then:"insertMode"},{key:"d",then:"deleteMode"},{key:"a",exec:"gotoright",then:"insertMode"},{key:"shift-i",exec:"gotolinestart",then:"insertMode"},{key:"shift-a",exec:"gotolineend",then:"insertMode"},{key:"shift-c",exec:"removetolineend",then:"insertMode"},{key:"shift-r",exec:"overwrite",then:"replaceMode"},{regex:["([0-9]*)","(k|up)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(j|down|enter)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(l|right)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(h|left)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{key:"shift-g",exec:"gotoend"},{key:"b",exec:"gotowordleft"},{key:"e",exec:"gotowordright"},{key:"x",exec:"del"},{key:"shift-x",exec:"backspace"},{key:"shift-d",exec:"removetolineend"},{comment:"Catch some keyboard input to stop it here",match:e}],insertMode:[{key:"esc",then:"start"}],replaceMode:[{key:"esc",exec:"overwrite",then:"start"}],deleteMode:[{key:"d",exec:"removeline",then:"start"}]};b.Vim=new d(f)}),define("ace/keyboard/state_handler",["require","exports","module"],function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/groovy_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.GroovyHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-textmate', function(A) { +define("ace/theme/textmate",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); + + +AUI.add('aui-ace-editor', function(A){}, '@VERSION@' ,{use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}); + diff --git a/build/aui-ace-editor/aui-ace-editor-keybinding-emacs-debug.js b/build/aui-ace-editor/aui-ace-editor-keybinding-emacs-debug.js new file mode 100644 index 00000000000..5e1e8317ec6 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-keybinding-emacs-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-keybinding-emacs', function(A) { +define("ace/keyboard/keybinding/emacs",["require","exports","module","ace/keyboard/state_handler"],function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"ctrl-x",then:"c-x"},{regex:["(?:command-([0-9]*))*","(down|ctrl-n)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(right|ctrl-f)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(up|ctrl-p)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(left|ctrl-b)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"This binding matches all printable characters except numbers as long as they are no numbers and print them n times.",regex:["(?:command-([0-9]*))","([^0-9]+)*"],match:e,exec:"inserttext",params:[{name:"times",match:1,type:"number",defaultValue:"1"},{name:"text",match:2}]},{comment:"This binding matches numbers as long as there is no meta_number in the buffer.",regex:["(command-[0-9]*)*","([0-9]+)"],match:e,disallowMatches:[1],exec:"inserttext",params:[{name:"text",match:2,type:"text"}]},{regex:["command-([0-9]*)","(command-[0-9]|[0-9])"],comment:"Stops execution if the regex /meta_[0-9]+/ matches to avoid resetting the buffer."}],"c-x":[{key:"ctrl-g",then:"start"},{key:"ctrl-s",exec:"save",then:"start"}]};b.Emacs=new d(f)}),define("ace/keyboard/state_handler",["require","exports","module"],function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b); +};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize();}),b.env=l;}),k.env=l;return k;};}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c);},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c);};}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e){this.subtype=a;}else{if(typeof a!="string"){throw new Error("Can' handle array subtype");}this.subtype=d.getType(a);if(this.subtype==null){throw new Error("Unknown array subtype: "+a);}}}function l(a){if(typeof a.defer!="function"){throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function"){throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a;},h.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to text.parse()");}return new f(a);},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null;},i.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to number.parse()");}if(a.replace(/\s/g,"").length===0){return new f(null,g.INCOMPLETE,"");}var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b;},i.decrement=function(a){return a-1;},i.increment=function(a){return a+1;},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a;},j.prototype.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to parse()");}if(!this.data){throw new Error("Missing data on selection type extension.");}var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b));},this);if(c){return new f(d);}this.noMatch&&this.noMatch(); +if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e);}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e);},j.prototype.fromString=function(a){return a;},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=b.length-1;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1;}return this.fromString(b[c]);},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=0;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1;}return this.fromString(b[c]);},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a;},fromString:function(a){return a==="true"?!0:!1;}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a);},l.prototype.parse=function(a){return this.defer().parse(a);},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined;},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined;},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ");},m.prototype.parse=function(a){return this.defer().parse(a);},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m));},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m);};}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c);}var d=g[a];typeof d=="function"&&(d=new d(b));return d;}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[];}var d={VALID:{toString:function(){return"VALID";},valueOf:function(){return 0;}},INCOMPLETE:{toString:function(){return"INCOMPLETE";},valueOf:function(){return 1;}},INVALID:{toString:function(){return"INVALID";},valueOf:function(){return 2;}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);}return b;}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented");},parse:function(a){throw new Error("not implemented");},name:undefined,increment:function(a){return undefined;},decrement:function(a){return undefined;},getDefault:function(){return this.parse("");}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f)){throw new Error("Can't registerType using: "+a);}if(!a.name){throw new Error("All registered types must have a name");}g[a.name]=a;}else{if(typeof a!="function"){throw new Error("Unknown type: "+a);}if(!a.prototype.name){throw new Error("All registered types must have a name");}g[a.prototype.name]=a;}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d);});},b.deregisterType=function(a){delete g[a.name];},b.getType=function(a){if(typeof a=="string"){return h(a);}if(typeof a=="object"){if(!a.name){throw new Error("Missing 'name' member to typeSpec");}return h(a.name,a);}throw new Error("Can't extract type from "+a);};}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames();},stringify:function(a){return a.name;},fromString:function(a){return d.getCommand(a);}});b.startup=function(){f.registerType(g);},b.shutdown=function(){f.unregisterType(g);};}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1;}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done();}typeof a=="string"&&(a=q[a]);if(!a){return !1;}var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return !1;}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider())){i=F;}i(g,function(){g.getStatus()==l.VALID&&h();});return !0;}h();return !0;}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI){H.shiftObject();}b._dispatchEvent("output",{requests:H,request:this});},J.prototype.doneWithError=function(a){this.error=!0,this.done(a);},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput();},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this;},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}));},b.Request=J;}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c));};}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d;});}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n");},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[];}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n");},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS;};}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b;};}(),b.mixin=function(a,b){for(var c in b){a[c]=b[c];}},b.implement=function(a,c){b.mixin(a,c);};}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10);}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a;}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase();};}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                            ";});}else{b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());}c.done(d);}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting); +d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".");}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e);},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e);};}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec){d.push(e.description?e.description:"No description for "+b.search);}else{var f=!1;e?(d.push("

                                                                            Sub-Commands of "+e.name+"

                                                                            "),d.push("

                                                                            "+e.description+"

                                                                            ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                            Commands starting with '"+b.search+"':

                                                                            ")):d.push("

                                                                            Available Commands:

                                                                            ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("");}d.push("
                                                                            '+e.name+""+e.description+"
                                                                            ");}c.done(d.join(""));}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript);}catch(e){result="Error: "+e.message+"";}var msg="",type="",x;if(checks.isFunction(result)){msg=(result+"").replace(/\n/g,"
                                                                            ").replace(/ /g," "),type="function";}else{if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result){result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));}items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                            ";}}else{msg=result,type=typeof result;}}request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                            "+msg);}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec);},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec);};}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d);},b.shutdown=function(a,b){a.env.settings.removeSetting(d);};}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED;},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e;}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this);}.bind(this));return e;},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e;}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this);}.bind(this));return e;},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f;}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this);}.bind(this));return f;},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c));}},b.PluginCatalog=function(){this.plugins={};},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)));}.bind(this));return d.group(f);},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b));}return d.group(c);}},b.catalog=new b.PluginCatalog;}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this;},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g;},Promise.prototype.isResolved=function(){return this._status==h;},Promise.prototype.isRejected=function(){return this._status==f;},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this;},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c));}catch(d){b.reject(d);}},function(a){b.reject(a);});return b;},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve");},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject");},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd(); +return this;}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value);},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20){l.shift();}return this;},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0){return(new Promise).resolve([]);}var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c);};};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f);});return b;},b.Promise=Promise,b._outstanding=k,b._recent=l;}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a);},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b);},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b);},b.addCssClass=function(a,b){a.classList.add(b);},b.removeCssClass=function(a,b){a.classList.remove(b);},b.toggleCssClass=function(a,b){return a.classList.toggle(b);}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1;},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c);},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1){break;}c.splice(d,1);}a.className=c.join(" ");},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1){break;}d=!1,c.splice(e,1);}d&&c.push(b),a.className=c.join(" ");return d;}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c);},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a;}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e);}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth;},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight;},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset;},b.getPageScrollLeft=function(){return window.pageXOffset;}):(b.getPageScrollTop=function(){return document.body.scrollTop;},b.getPageScrollLeft=function(){return document.body.scrollLeft;}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{};}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle;},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g;},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c;},b.setInnerText=function(a,b){document.body&&"textContent" in document.body?a.textContent=b:a.innerText=b;},b.getInnerText=function(a){return document.body&&"textContent" in document.body?a.textContent:a.innerText||a.textContent||"";},b.getParentWindow=function(a){return a.defaultView||a.parentWindow;},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0;}catch(c){b=0;}return b;},b.setSelectionStart=function(a,b){return a.selectionStart=b;},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0;}catch(c){b=0;}return b;},b.setSelectionEnd=function(a,b){return a.selectionEnd=b;};}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8;}c=0;}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1;}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener){return a.addEventListener(b,c,!1);}if(a.attachEvent){var d=function(){c(window.event);};c._wrapper=d,a.attachEvent("on"+b,d);}},b.removeListener=function(a,b,c){if(a.removeEventListener){return a.removeEventListener(b,c,!1);}a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c);},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return !1;},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1;},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX;},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY;},b.getButton=function(a){if(a.type=="dblclick"){return 0;}if(a.type=="contextmenu"){return 2;}return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button];},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture();}function e(a){c(a);return b.stopPropagation(a);}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture();}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation(); +}function d(a){b(a),a.stopPropagation();}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0);},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a);};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d);},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0;},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5){h=0;}h==d&&(h=0,g(a));if(e){return b.preventDefault(a);}};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k);},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode;}),d(a,"keypress",function(a){return g(c,a,f);});}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode);}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b){return g(c,a,a.keyCode);}h=null;});}};}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""));};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b);},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b);},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a);},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow());}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b}); +}},this.getSession=function(){return this.session;},this.getSelection=function(){return this.selection;},this.resize=function(){this.renderer.onResize();},this.setTheme=function(a){this.renderer.setTheme(a);},this.getTheme=function(){return this.renderer.getTheme();},this.setStyle=function(a){this.renderer.setStyle(a);},this.unsetStyle=function(a){this.renderer.unsetStyle(a);},this.setFontSize=function(a){this.container.style.fontSize=a;},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text");}},10);}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus();}),this.textInput.focus();},this.isFocused=function(){return this.textInput.isFocused();},this.blur=function(){this.textInput.blur();},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus");},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur");},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"){var d=c.end.row;}else{d=Infinity;}this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor();},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last);},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine();},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background");}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d);}else{this.$updateHighlightActiveLine();}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this);},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints());},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());},this.onChangeMode=function(){this.renderer.updateText();},this.onChangeWrapLimit=function(){this.renderer.updateFull();},this.onChangeWrapMode=function(){this.renderer.onResize(!0);},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull();},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a;},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection());}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text);}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection();}else{if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f);}}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r){j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);}b.remove(new m(p,0,p,r));}b.indentRows(d.row+1,l.row,k);}else{i&&c.autoOutdent(h,b,d.row);}}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a);}else{this.keyBinding.onTextInput(a);}},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c);},this.setOverwrite=function(a){this.session.setOverwrite(a);},this.getOverwrite=function(){return this.session.getOverwrite();},this.toggleOverwrite=function(){this.session.toggleOverwrite();},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a);},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}));},this.getSelectionStyle=function(){return this.$selectionStyle; +},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine());},this.getHighlightActiveLine=function(){return this.$highlightActiveLine;},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this));},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord;},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a);},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles();},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a);},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin();},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a);},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn();},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a;},this.getReadOnly=function(){return this.$readOnly;},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a;},this.getBehavioursEnabled=function(){return this.$modeBehaviours;},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d);}this.session.remove(a),this.clearSelection();}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection();}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a);}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty()){return;}var a=this.getCursorPosition(),b=a.column;if(b==0){return;}var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow();},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1;},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow();},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a);},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2); +this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column);},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column);},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow());},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow());},this.scrollToRow=function(a){this.renderer.scrollToRow(a);},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b);},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0);},this.getCursorPosition=function(){return this.selection.getCursor();},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition());},this.getSelectionRange=function(){return this.selection.getRange();},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1;},this.clearSelection=function(){this.selection.clearSelection();},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b);},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a);},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0);},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b);},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0);},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0);},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorLeft();}}this.clearSelection();},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorRight();}}this.clearSelection();},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection();},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection();},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection();},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection();},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection();},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection();},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c));},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e){this.$tryReplace(c[e],a);}this.selection.setSelectionRange(d),this.$blockScrolling-=1;}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a;}return null;},this.getLastSearchOptions=function(){return this.$search.getOptions();},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find();},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find();},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find();},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b));},this.undo=function(){this.session.getUndoManager().undo();},this.redo=function(){this.session.getUndoManager().redo();},this.destroy=function(){this.renderer.destroy();};}).call(o.prototype),b.Editor=o;}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c;}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u()){return !1;}}}i=!1,j=!1,c.value=g,c.select();}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data);},0);},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l();},0);},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0);},p=function(){!h||b.onCompositionUpdate(c.value);},q=function(a){h=!1,b.onCompositionEnd();},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l();},0);},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l(); +},0);};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o());});}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n();}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault();}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a);}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur();}),d.addListener(c,"focus",function(){b.onFocus(),c.select();}),this.focus=function(){b.onFocus(),c.select(),c.focus();},this.blur=function(){c.blur();},this.isFocused=u,this.getElement=function(){return c;},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="");},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l();},0);};};b.TextInput=g;}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b);}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a);});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this));};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a;},this.getScrollSpeed=function(){return this.$scrollSpeed;},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e;},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2));},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h;}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return;}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return;}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a);},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g;},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return;}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return;}l.selection.setSelectionRange(a);}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f);}else{if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging");}}}p==i?F():p==h&&E();}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection){if(m.$clickSelection.contains(a.row,a.column)){l.selection.setSelectionRange(m.$clickSelection);}else{if(m.$clickSelection.compare(a.row,a.column)==-1){var b=m.$clickSelection.end;}else{var b=m.$clickSelection.start;}l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a);}}else{l.selection.selectToPosition(a);}l.renderer.scrollCursorIntoView();},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x);};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a);}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange());},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a);};}).call(l.prototype),b.MouseHandler=l; +}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1);}),e.addListener(a,"focus",function(a){b._setFocused(!0);});};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused;},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"));};}).call(g.prototype),b.BrowserFocus=g;}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null;};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a);},this.getKeyboardHandler=function(){return this.$keyboardHandler;},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command){b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};}var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i;},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c);},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0);};}).call(i.prototype),b.KeyBinding=i;}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"};}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll();}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines();}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d);}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines();}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext();}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious();}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d);}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replace(e,{needle:d});}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replaceAll(e,{needle:d});}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo();}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo();}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite();}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp();}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp();}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart();}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart();}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp();}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times);}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown();}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown();}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd();}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd();}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown();}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times);}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft();}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft();}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart();}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft(); +}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times);}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight();}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight();}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd();}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight();}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times);}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown();}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown();}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown();}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp();}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp();}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp();}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight();}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft();}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart();}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd();}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft();}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight();}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent();}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent();}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1));}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection();}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine();}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters();}});}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString();});return a;},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h);};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510;}d.implement(this,f),this.setDocument=function(a){if(this.doc){throw new Error("Document is already set");}this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this));},this.getDocument=function(){return this.doc;},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];}else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return;}}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row);},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a);},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset(); +},this.getValue=this.toString=function(){return this.doc.getValue();},this.getSelection=function(){return this.selection;},this.getState=function(a){return this.bgTokenizer.getState(a);},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b);},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[];},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager);}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t";},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a);},this.getUseSoftTabs=function(){return this.$useSoftTabs;},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"));},this.getTabSize=function(){return this.$tabSize;},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0;},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"));},this.getOverwrite=function(){return this.$overwrite;},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);},this.getBreakpoints=function(){return this.$breakpoints;},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do{f--;}while(f>=0&&c.charAt(f).match(e));f++;}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0){return{row:e,column:d};}}else{h==a&&(f+=1);}d-=1;}e-=1;if(e<0){break;}var g=this.getLine(e),d=g.length-1;}return null;},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h){break;}var g=this.getLine(e),d=0;}return null;},this.insert=function(a,b){return this.doc.insert(a,b);},this.remove=function(a){return this.doc.remove(a);},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--){delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds);},this);}this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c;}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1){return 0;}var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1;},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d;},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1));},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0){a=0,b=0;}else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b);}return{row:a,column:b};},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return !0;}return !1;},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a);},this.getWrapLimit=function(){return this.$wrapLimit;},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0){if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1;}for(l;l=h.row&&k.shiftRow(-c);}f=e;}else{var n; +if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c);}}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c);}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i;},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l){j=this.$getDisplayTokens(e.stringTrimRight(c[m]));}else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k){j.pop();}}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1;}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1;}).replace(/2/g,function(a){e-=1;}),i+=e,d.push(i),f=b;}if(a.length==0){return[];}var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k){l++;}j(l);continue;}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--){if(a[l]==g){break;}}if(l>f){j(l);continue;}l=f+b;for(l;l=g){l++;break;}}if(l>f){j(l);continue;}l=f+b,j(f+b);}return d;},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb){break;}}return[c,e];},this.getRowLength=function(a){return !this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1;},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight;},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length);},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c);},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10);},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined;},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize;},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row;},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column;},this.screenToDocumentPosition=function(a,b){if(a<0){return{row:0,column:0};}var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m){break;}h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h});}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e};},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined"){var c=this.$clipPositionToDocument(a.row,a.column);}else{c=this.$clipPositionToDocument(a,b);}a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1){return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1};}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a){break;}o=this.getNextFold(j),p=o?o.start.row:Infinity;}else{j=k+1;}f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f});}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s]){f++,s++;}q=q.substring(r[s-1]||0,q.length);}return{row:f,column:this.$getStringScreenWidth(q)[0]};},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column;},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row;},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column;},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b);},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"));},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0);},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn();},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column);},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this);},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b);});},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a);});},this.selectUp=function(){this.$moveSelection(this.moveCursorUp);},this.selectDown=function(){this.$moveSelection(this.moveCursorDown);},this.selectRight=function(){this.$moveSelection(this.moveCursorRight);},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft);},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart);},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd);},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd);},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart);},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight);},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft);},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b);},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0);});},this.moveCursorUp=function(){this.moveCursorBy(-1,0);},this.moveCursorDown=function(){this.moveCursorBy(1,0);},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1)){this.moveCursorTo(b.start.row,b.start.column);}else{if(a.column==0){a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);}else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1);}}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1)){this.moveCursorTo(b.end.row,b.end.column);}else{if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length){this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h)){return;}h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h)){return; +}var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c);}}),a.$search.set(k);}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b);}),a.session.$selectionOccurrences=[]);},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break;}}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange);};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column);},this.getDocument=function(){return this.document;},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row){return; +}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return;}}c.running=!1,c.fireUpdateEvent(b,f-1);}};};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0);},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop();},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c});},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700);},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1;},this.getTokens=function(a,b){return this.$tokenizeRows(a,b);},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state;},this.$tokenizeRows=function(a,b){if(!this.doc){return[];}var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++){if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h);}else{var h=this.lines[g];d=h.state,c.push(h);}}return c;};}).call(f.prototype),b.BackgroundTokenizer=f;}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d){return null;}var e=d.folds;for(var f=0;f=a){return e;}if(e.end.row>a){return null;}}return null;},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a){return f;}}return null;},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break;}g>=a&&(h>=a?d-=g-h:d-=g-a+1);}return d;},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row;});return a;},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f){var g=a;}else{g=new f(b,a);}var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2){throw"Placeholder has to be at least 2 characters";}if(h==j&&k-i<2){throw"The range has to be at least 2 characters width";}var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i)){return g;}l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i)){throw"A fold can't start inside of an already existing fold";}l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k)){throw"A fold can't end inside of an already existing fold";}if(j>=this.doc.getLength()){throw"End of fold is outside of the document.";}if(k>this.getLine(j).length||i>this.getLine(h).length){throw"End of fold is outside of the document."; +}var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow){throw"Can't add a fold to this FoldLine as it has no connection";}this.folds.push(a),this.folds.sort(function(a,b){return -a.range.compareEnd(b.start.row,b.start.column);}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column);}else{if(a.start.row==this.end.row){this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;}else{if(a.end.row==this.start.row){this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;}else{throw"Trying to add fold to FoldRow that doesn't have a matching row";}}}a.foldLine=this;},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row;},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j)){return !0;}}});}};},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c);},this.$assembleRegExp=function(){if(this.$options.regExp){var a=this.$options.needle;}else{a=d.escapeRegExp(this.$options.needle);}this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c;},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f;}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l){return;}b++,g=0;if(b>h){if(i){b=e,g=f,j=!0;}else{return;}}b==d.row&&(l=!0),c=k(b);}}};},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m){return;}j--,l=0;if(j0;},this.hasRedo=function(){return this.$redoStack.length>0;};}).call(d.prototype),b.UndoManager=d;}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL); +}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin();};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL);},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)));}},this.getScrollTop=function(){return this.scrollTop;},this.getScrollLeft=function(){return this.scroller.scrollLeft;},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight;},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1);},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight);},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f){break;}var i=this.$annotations[e]||b;c.push("
                                                                            ",e+1);var j=this.session.getRowLength(e)-1;while(j--){c.push("
                                                                            ¦
                                                                            ");}c.push("
                                                                            "),e++;}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";};}).call(e.prototype),b.Gutter=e;}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element);};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.setMarkers=function(a){this.markers=a;},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty()){continue;}f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a);}else{f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type);}}this.element=e.setInnerHtml(this.element,b.join(""));}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight;},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f

                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "));},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background"){var i=d.width;}else{i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);}var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ");};}).call(f.prototype),b.Marker=f;}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges();};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"; +},this.getLineHeight=function(){return this.$characterSize.height||1;},this.getCharacterWidth=function(){return this.$characterSize.width||1;},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}));},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges();},500);},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1000;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body){document.body.appendChild(b);}else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor")){d=d.parentNode;}d.appendChild(b);}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles){c[h]=g[h];}var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i;},this.setSession=function(a){this.session=a;},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a){return !1;}this.showInvisibles=a;return !0;},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "));}},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--){c.removeChild(c.firstChild);}}if(b.lastRow>a.lastRow){for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--){c.removeChild(c.lastChild);}}if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e);}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c){break;}var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups()){i.className="ace_line_group",d.appendChild(i);}else{var l=i.childNodes;while(l.length){d.appendChild(l[0]);}}f++;}return d;},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d){break;}this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++;}this.element=e.setInnerHtml(this.element,b.join(""));},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32){return Array(a.length+1).join(" ");}if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i];}if(a=="&"){return g.isOldGecko?"&":"&";}if(a=="<"){return"<";}if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+"";}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+"";}return" ";}b+=1;return""+a+"";},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"");}else{a.push(i);}return b+d.length;},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h){j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;}n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n));}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ");},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d);}else{this.$renderFoldLine(a,b,c,d);}},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1;}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1;}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d));}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d);},this.$useLineGroups=function(){return this.session.getUseWrapMode();},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode;};}).call(i.prototype),b.Text=i;}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1;};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId);},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer();},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible";},400);},1000);}},this.getPixelPosition=function(a){if(!this.config||!this.session){return{left:0,top:0};}var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e};},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer();},this.destroy=function(){clearInterval(this.blinkId);};}).call(e.prototype),b.Cursor=e;}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this));};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop});},this.getWidth=function(){return this.width;},this.setHeight=function(a){this.element.style.height=a+"px";},this.setInnerHeight=function(a){this.inner.style.height=a+"px";},this.setScrollTop=function(a){this.element.scrollTop=a;};}).call(h.prototype),b.ScrollBar=h;}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0;};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a);});}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback());}),this.attached=!0;}this.callback=a,window.postMessage(this.messageName,"*");}):this.setTimeoutZero=function(a){setTimeout(a,0);};}).call(e.prototype),b.RenderLoop=e;}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}"; +d.importCssString(e),b.cssClass="ace-tm";}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d};}var d=a("pilot/settings").settings;b.create=e;}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a; +});var Lang=A.Lang,BOUNDING_BOX="boundingBox",CONTENT_BOX="contentBox",EMPTY_STR="",HEIGHT="height",WIDTH="width",NAME="ace-ditor";var AceEditor=A.Component.create({NAME:NAME,EXTENDS:A.Widget,ATTRS:{height:{value:400},highlightActiveLine:{lazyAdd:false,getter:"_getHighlightActiveLine",setter:"_setHighlightActiveLine",value:true},readOnly:{lazyAdd:false,getter:"_getReadOnly",setter:"_setReadOnly",value:false},showPrintMargin:{lazyAdd:false,getter:"_getShowPrintMargin",setter:"_setShowPrintMargin",value:true},tabSize:{lazyAdd:false,getter:"_getTabSize",setter:"_setTabSize",value:4},useSoftTabs:{lazyAdd:false,getter:"_getUseSoftTabs",setter:"_setUseSoftTabs",value:true},useWrapMode:{lazyAdd:false,getter:"_getUseWrapMode",setter:"_setUseWrapMode",value:true},value:{lazyAdd:false,getter:"_getValue",setter:"_setValue",value:EMPTY_STR,},width:{value:800}},UI_ATTRS:[HEIGHT,WIDTH],prototype:{getEditor:function(){var instance=this;if(!instance.editor){var boundingBox=instance.get(BOUNDING_BOX);instance.editor=ace.edit(boundingBox.getDOM());}return instance.editor;},getSelection:function(){var instance=this;return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange());},getSession:function(){var instance=this;return instance.getEditor().getSession();},gotoLine:function(line){var instance=this;instance.getEditor().gotoLine(line);},insert:function(text){var instance=this;instance.getEditor().insert(text);},_getHighlightActiveLine:function(){var instance=this;return instance.getEditor().getHighlightActiveLine();},_getReadOnly:function(){var instance=this;return instance.getEditor().getReadOnly();},_getShowPrintMargin:function(){var instance=this;return instance.getEditor().getShowPrintMargin();},_getTabSize:function(){var instance=this;return instance.getSession().getTabSize();},_getUseSoftTabs:function(){var instance=this;return instance.getSession().getUseSoftTabs();},_getUseWrapMode:function(){var instance=this;return instance.getSession().getUseWrapMode();},_getValue:function(){var instance=this;return instance.getSession().getValue();},_setHighlightActiveLine:function(value){var instance=this;instance.getEditor().setHighlightActiveLine(value);},_setReadOnly:function(value){var instance=this;instance.getEditor().setReadOnly(value);},_setShowPrintMargin:function(value){var instance=this;instance.getEditor().setShowPrintMargin(value);},_setTabSize:function(value){var instance=this;instance.getSession().setTabSize(value);},_setUseSoftTabs:function(value){var instance=this;instance.getSession().setUseSoftTabs(value);},_setUseWrapMode:function(value){var instance=this;instance.getSession().setUseWrapMode(value);},_setValue:function(value){var instance=this;instance.getSession().setValue(value);},_uiSetHeight:function(){var instance=this;A.AceEditor.superclass._uiSetHeight.apply(instance,arguments);instance.getEditor().resize();},_uiSetWidth:function(){var instance=this;A.AceEditor.superclass._uiSetWidth.apply(instance,arguments);instance.getEditor().resize();}}});A.AceEditor=AceEditor;},"@VERSION@",{skinnable:false,requires:["aui-component","aui-node"]});AUI.add("aui-ace-editor-mode-xml",function(a){define("ace/mode/xml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml"],function(s,r,q){var p=s("pilot/oop"),o=s("ace/mode/text").Mode,n=s("ace/tokenizer").Tokenizer,m=s("ace/mode/xml_highlight_rules").XmlHighlightRules,k=s("ace/mode/behaviour/xml").XmlBehaviour,j=function(){this.$tokenizer=new n((new m).getRules()),this.$behaviour=new k;};p.inherits(j,o),function(){this.getNextLineIndent=function(e,d,f){return this.$getIndent(d);};}.call(j.prototype),r.Mode=j;}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};m.inherits(j,k),g.XmlHighlightRules=j;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/behaviour").Behaviour,m=j("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.inherit(m,["string_dquotes"]),this.add("brackets","insertion",function(C,B,A,z,y){if(y=="<"){var x=A.getSelectionRange(),w=z.doc.getTextRange(x);return w!==""?!1:{text:"<>",selection:[1,1]};}if(y==">"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),t=u.substring(v.column,v.column+1);if(t==">"){return{text:"",selection:[1,1]};}}else{if(y=="\n"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),s=u.substring(v.column,v.column+2);if(s=="A.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-php",function(a){define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/php_highlight_rules").PhpHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=w("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p,this.$behaviour=new n;};t.inherits(m,s),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)#/;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new o(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),x=y.match(B);z.start.row=A,z.end.row=A,z.end.column=x[0].length,G.replace(z,x[1]);}}else{G.indentRows(F,E,"#");}},this.getNextLineIndent=function(k,j,C){var B=this.$getIndent(j),A=this.$tokenizer.getLineTokens(j,k),z=A.tokens,y=A.state;if(z.length&&z[z.length-1].type=="comment"){return B;}if(k=="start"){var x=j.match(/^.*[\{\(\[\:]\s*$/);x&&(B+=C);}return B;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(m.prototype),v.Mode=m;}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),e=p.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),x=p.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),w=p.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),v=p.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),u=p.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),t=p.arrayToMap("cfunction|old_function".split("|")),s=p.arrayToMap([]); +this.$rules={start:[{token:"support",regex:"<\\?(?:php|\\=)"},{token:"support",regex:"\\?>"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(b){if(t.hasOwnProperty(b)){return"invalid.deprecated";}if(e.hasOwnProperty(b)){return"keyword";}if(x.hasOwnProperty(b)){return"keyword";}if(w.hasOwnProperty(b)){return"constant.language";}if(v.hasOwnProperty(b)){return"variable.language";}if(s.hasOwnProperty(b)){return"invalid.illegal";}if(u.hasOwnProperty(b)){return"invalid.deprecated";}if(f.hasOwnProperty(b)){return"support.function";}if(b.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|self|parent)$/)){return"variable";}return"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.PhpHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row}); +if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t);return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-solarized_dark",function(a){define("ace/theme/solarized_dark",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-solarized-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-dark .ace_scroller {\n background-color: #002B36;\n}\n\n.ace-solarized-dark .ace_text-layer {\n cursor: text;\n color: #93A1A1;\n}\n\n.ace-solarized-dark .ace_cursor {\n border-left: 2px solid #D30102;\n}\n\n.ace-solarized-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #D30102;\n}\n \n.ace-solarized-dark .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_active_line {\n background: #073642;\n}\n\n \n.ace-solarized-dark .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-dark .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-dark .ace_constant {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-dark .ace_constant.ace_library {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-dark .ace_invalid {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-dark .ace_support {\n \n}\n\n.ace-solarized-dark .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-dark .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-dark .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-dark .ace_comment {\n font-style:italic;\ncolor:#657B83;\n}\n\n.ace-solarized-dark .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-dark .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_variable {\n \n}\n\n.ace-solarized-dark .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_xml_pe {\n \n}\n\n.ace-solarized-dark .ace_meta {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-dark .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-solarized-dark";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-ocaml",function(a){define("ace/mode/ocaml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/ocaml_highlight_rules").OcamlHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p; +};t.inherits(n,s);var m=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(E,D,C,B){var A,z,y=!0,x=/^\s*\(\*(.*)\*\)/;for(A=C;A<=B;A++){if(!x.test(D.getLine(A))){y=!1;break;}}var k=new o(0,0,0,0);for(A=C;A<=B;A++){z=D.getLine(A),k.start.row=A,k.end.row=A,k.end.column=z.length,D.replace(k,y?z.match(x)[1]:"(*"+z+"*)");}},this.getNextLineIndent=function(g,f,k){var j=this.$getIndent(f),h=this.$tokenizer.getLineTokens(f,g).tokens;(!h.length||h[h.length-1].type!=="comment")&&g==="start"&&m.test(f)&&(j+=k);return j;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}).call(n.prototype),v.Mode=n;}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var C=n.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),B=n.arrayToMap("true|false".split("|")),A=n.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),z="(?:(?:[1-9]\\d*)|(?:0))",y="(?:0[oO]?[0-7]+)",x="(?:0[xX][\\dA-Fa-f]+)",w="(?:0[bB][01]+)",v="(?:"+z+"|"+y+"|"+x+"|"+w+")",u="(?:[eE][+-]?\\d+)",t="(?:\\.\\d+)",s="(?:\\d+)",r="(?:(?:"+s+"?"+t+")|(?:"+s+"\\.))",q="(?:(?:"+r+"|"+s+")"+u+")",e="(?:"+q+"|"+r+")"; +this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+e+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:e},{token:"constant.numeric",regex:v+"\\b"},{token:function(b){return C.hasOwnProperty(b)?"keyword":B.hasOwnProperty(b)?"constant.language":A.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]};};o.inherits(k,m),h.OcamlHighlightRules=k;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-idle_fingers",function(a){define("ace/theme/idle_fingers",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-idle-fingers .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-idle-fingers .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-idle-fingers .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-idle-fingers .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-idle-fingers .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-idle-fingers .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-idle-fingers .ace_scroller {\n background-color: #323232;\n}\n\n.ace-idle-fingers .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-idle-fingers .ace_cursor {\n border-left: 2px solid #91FF00;\n}\n\n.ace-idle-fingers .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #91FF00;\n}\n \n.ace-idle-fingers .ace_marker-layer .ace_selection {\n background: rgba(90, 100, 126, 0.88);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #404040;\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_active_line {\n background: #353637;\n}\n\n \n.ace-idle-fingers .ace_invisible {\n color: #404040;\n}\n\n.ace-idle-fingers .ace_keyword {\n color:#CC7833;\n}\n\n.ace-idle-fingers .ace_keyword.ace_operator {\n \n}\n\n.ace-idle-fingers .ace_constant {\n color:#6C99BB;\n}\n\n.ace-idle-fingers .ace_constant.ace_language {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_library {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_numeric {\n \n}\n\n.ace-idle-fingers .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FF0000;\n}\n\n.ace-idle-fingers .ace_invalid.ace_illegal {\n \n}\n\n.ace-idle-fingers .ace_invalid.ace_deprecated {\n \n}\n\n.ace-idle-fingers .ace_support {\n \n}\n\n.ace-idle-fingers .ace_support.ace_function {\n color:#B83426;\n}\n\n.ace-idle-fingers .ace_function.ace_buildin {\n \n}\n\n.ace-idle-fingers .ace_string {\n color:#A5C261;\n}\n\n.ace-idle-fingers .ace_string.ace_regexp {\n color:#CCCC33;\n}\n\n.ace-idle-fingers .ace_comment {\n font-style:italic;\ncolor:#BC9458;\n}\n\n.ace-idle-fingers .ace_comment.ace_doc {\n \n}\n\n.ace-idle-fingers .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-idle-fingers .ace_variable {\n \n}\n\n.ace-idle-fingers .ace_variable.ace_language {\n \n}\n\n.ace-idle-fingers .ace_xml_pe {\n \n}\n\n.ace-idle-fingers .ace_meta {\n \n}\n\n.ace-idle-fingers .ace_meta.ace_tag {\n color:#FFE5BB;\n}\n\n.ace-idle-fingers .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-idle-fingers .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-idle-fingers .ace_collab.ace_user1 {\n color:#323232;\nbackground-color:#FFF980; \n}";j.importCssString(h),f.cssClass="ace-idle-fingers";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-html",function(a){define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/mode/javascript").Mode,q=w("ace/mode/css").Mode,p=w("ace/tokenizer").Tokenizer,o=w("ace/mode/html_highlight_rules").HtmlHighlightRules,n=w("ace/mode/behaviour/xml").XmlBehaviour,m=function(){var b=new o;this.$tokenizer=new p(b.getRules()),this.$behaviour=new n,this.$embeds=b.getEmbeds(),this.createModeDelegates({"js-":r,"css-":q});};t.inherits(m,s),function(){this.toggleCommentLines=function(f,e,h,g){return 0;},this.getNextLineIndent=function(e,d,f){return this.$getIndent(d);},this.checkOutdent=function(e,d,f){return !1;};}.call(m.prototype),v.Mode=m;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n; +};u.inherits(m,t),function(){this.toggleCommentLines=function(I,H,G,F){var E=!0,D=[],C=/^(\s*)\/\//;for(var B=G;B<=F;B++){if(!C.test(H.getLine(B))){E=!1;break;}}if(E){var A=new p(0,0,0,0);for(var B=G;B<=F;B++){var z=H.getLine(B),y=z.match(C);A.start.row=B,A.end.row=B,A.end.column=y[0].length,H.replace(A,y[1]);}}else{H.indentRows(G,F,"//");}},this.getNextLineIndent=function(k,j,D){var C=this.$getIndent(j),B=this.$tokenizer.getLineTokens(j,k),A=B.tokens,z=B.state;if(A.length&&A[A.length-1].type=="comment"){return C;}if(k=="start"){var y=j.match(/^.*[\{\(\[\:]\s*$/);y&&(C+=D);}else{if(k=="doc-start"){if(z=="start"){return"";}var y=j.match(/^\s*(\/?)\*/);y&&(y[1]&&(C+=" "),C+="* ");}}return C;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var k=[];for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/text").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/css_highlight_rules").CssHighlightRules,n=u("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=u("ace/worker/worker_client").WorkerClient,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n;};r.inherits(k,q),function(){this.getNextLineIndent=function(h,g,x){var w=this.$getIndent(g),v=this.$tokenizer.getLineTokens(g,h).tokens;if(v.length&&v[v.length-1].type=="comment"){return w;}var j=g.match(/^.*\{\s*$/);j&&(w+=x);return w;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new m(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("csslint",function(g){var h=[];g.data.forEach(function(b){h.push({row:b.line-1,column:b.col-1,text:b.message,type:b.type,lint:b});}),e.setAnnotations(h);});};}.call(k.prototype),t.Mode=k;}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){function w(g){var f=[],D=g.split(""); +for(var C=0;C",next:h},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(e("attribute-list")); +}function d(g,c){return[{token:"string",merge:!0,regex:".*"+g,next:c},{token:"string",merge:!0,regex:".+"}];}function e(b){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:b+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:b+"-qstring"}];}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":d("'","style"),"style-qqstring":d('"',"style"),"script-qstring":d("'","script"),"script-qqstring":d('"',"script"),"tag-qstring":d("'","tag"),"tag-qqstring":d('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},f(this.$rules,"tag","start"),f(this.$rules,"css","css-start"),f(this.$rules,"script","js-start"),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(p,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}]);};q.inherits(m,n),j.HtmlHighlightRules=m;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/behaviour").Behaviour,m=j("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.inherit(m,["string_dquotes"]),this.add("brackets","insertion",function(C,B,A,z,y){if(y=="<"){var x=A.getSelectionRange(),w=z.doc.getTextRange(x);return w!==""?!1:{text:"<>",selection:[1,1]};}if(y==">"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),t=u.substring(v.column,v.column+1);if(t==">"){return{text:"",selection:[1,1]};}}else{if(y=="\n"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),s=u.substring(v.column,v.column+2);if(s=="|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,e=/^(\s*)#/,h=/^\s*###(?!#)/,g=/^\s*/;this.getNextLineIndent=function(j,z,y){var x=this.$getIndent(z),k=this.$tokenizer.getLineTokens(z,j).tokens;(!k.length||k[k.length-1].type!=="comment")&&j==="start"&&f.test(z)&&(x+=y);return x;},this.toggleCommentLines=function(b,A,z,y){console.log("toggle");var x=new q(0,0,0,0);for(var d=z;d<=y;++d){var c=A.getLine(d);if(h.test(c)){continue;}e.test(c)?c=c.replace(e,"$1"):c=c.replace(g,"$&#"),x.end.row=x.start.row=d,x.end.column=c.length+1,A.replace(x,c);}},this.checkOutdent=function(j,d,k){return this.$outdent.checkOutdent(d,k);},this.autoOutdent=function(j,d,k){this.$outdent.autoOutdent(d,k);},this.createWorker=function(j){var d=j.getDocument(),k=new o(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");k.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},k.emit("change",b);}),k.on("error",function(c){j.setAnnotations([c.data]);}),k.on("ok",function(c){j.clearAnnotations();});};}.call(m.prototype),v.Mode=m;}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(f,e,h){function g(){var j="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",d="(?![$\\w]|\\s*:)",k={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+j},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+d},{token:"constant.language",regex:"(?:true|false|null|undefined)"+d},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+d},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+d},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+d},{token:"identifier",regex:j},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},k],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},k],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},k],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},k],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},k],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}; +}f("pilot/oop").inherits(g,f("ace/mode/text_highlight_rules").TextHighlightRules),e.CoffeeHighlightRules=g;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;r=2){var d=arguments[1];}else{do{if(c in this){d=this[c++]; +break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b); +}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join(""); +},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type;},LA:function(a){var b=a,c;if(a>0){if(a>5){throw new Error("Too much lookahead.");}while(b){c=this.get(),b--;}while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name; +},tokenType:function(a){return this._tokenData[a]||-1;},unget:function(){if(this._ltIndexCache.length){this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];}else{throw new Error("Too much lookahead.");}}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e};})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens);}function mix(a,b){for(var c in b){b.hasOwnProperty(c)&&(a[c]=b[c]);}return a;}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a));}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a));}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a);}function isNewLine(a){return a!=null&&nl.test(a);}function isWhitespace(a){return a!=null&&/\s/.test(a);}function isDigit(a){return a!=null&&/\d/.test(a);}function isHexDigit(a){return a!=null&&h.test(a);}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[];}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b;}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution";}}else{/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text);}}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b;}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null;}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c;}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b;}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling");}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}; +Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM){this._import(),this._skipCruft();}while(a.peek()==Tokens.NAMESPACE_SYM){this._namespace(),this._skipCruft();}d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset()){switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token());}}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});}else{throw e;}}d=a.peek();}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet");},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}));},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol});},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d});},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;){if(a.peek()==Tokens.PAGE_SYM){this._page();}else{if(!this._ruleset()){break;}}}a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c});},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA)){this._readWhitespace(),b.push(this._media_query());}return b;},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression())); +if(b===null&&e.length===0){return null;}this._readWhitespace();while(a.match(Tokens.IDENT)){a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());}return new MediaQuery(c,b,e,d.startLine,d.startCol);},_media_type:function(){return this._media_feature();},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null);},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token());},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c});},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return !0;}return !1;},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null;},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value;},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c});},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null;},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b;},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null;},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b;},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group();}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict)){throw d;}this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE){throw d;}return !0;}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c;},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA)){this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1));}}return b.length?b:null;},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null){return null;}b.push(c);do{d=this._combinator();if(d!==null){b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);}else{if(this._readWhitespace()){e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));}else{break;}}}while(!0);return new Selector(b,b[0].line,b[0].col);},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S){break;}while(f1&&a.unget());return null;}b&&(c.text=b+c.text,c.col-=b.length);return c;},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1);}return null;},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol);}return null;},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE){a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";}return b.length?b:null; +},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null;},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol);}return null;},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b;},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b;},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION])){b+=a.token().value,b+=this._readWhitespace();}return b.length?b:null;},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f;},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null;},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null;},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b;},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN){a.get(),b+=a.token().value,d=a.peek();}}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace();}return b;},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c)){throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);}this._readWhitespace();}return c;},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE){this._keyframe_rule(),this._readWhitespace(),c=a.peek();}this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE);},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token());},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col});},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace(); +while(a.match(Tokens.COMMA)){this._readWhitespace(),d.push(this._key()),this._readWhitespace();}return d;},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE)){return SyntaxUnit.fromToken(a.token());}if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value)){return SyntaxUnit.fromToken(b);}a.unget();}this._unexpectedToken(a.LT(1));},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC])){}},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration()){break;}if(!c.match(Tokens.SEMICOLON)){break;}}this._readWhitespace();}c.mustMatch(Tokens.RBRACE),this._readWhitespace();}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict)){throw e;}this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON){this._readDeclarations(!1,b);}else{if(d!=Tokens.RBRACE){throw e;}}}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S)){b+=a.token().value;}return b;},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol);},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1));},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet();},parseStyleSheet:function(a){return this.parse(a);},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b;},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b;},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b;},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b;}};for(b in c){a[b]=c[b];}return a;}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol);},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break;}default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);}break;}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d;},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()};},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN){f=Tokens.CHAR,d=a,e.reset();}return this.createToken(f,d,b,c);},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c);},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c);},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c);},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c);},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e==""){return this.createToken(Tokens.CDC,e,b,c);}d.reset();return this.charToken(a,b,c);},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c);},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*"){break;}g=this.readComment(h);if(g==""){break;}}else{if(isWhitespace(h)){e+=h+this.readWhitespace();}else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM); +break;}break;}}h=d.read();}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c);}return this.createToken(f,e,b,c);},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not("){return this.createToken(Tokens.NOT,e,b,c);}d.reset();return this.charToken(a,b,c);},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c);},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\"){break;}if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break;}g=i,i=f.read();}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c);},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c);},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c);},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6){b.read(),c+=d,d=b.peek();}if(a){while(d=="?"&&c.length<6){b.read(),c+=d,d=b.peek();}}return c;},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c)){a.read(),b+=c,c=a.peek();}return b;},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e)){c+=b.read();}else{if(e!="."){break;}if(d){break;}d=!0,c+=b.read();}e=b.peek();}return c;},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\"){break;}if(isNewLine(a.peek())&&e!="\\"){c="";break;}d=e,e=a.peek();}e==null&&(c="");return c;},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e)){b.read(),e=b.peek();}e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e)){b.read(),e=b.peek();}d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c;},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c)){b+=a.read(),c=a.peek();}return b;},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;){if(d=="\\"){c+=this.readEscape(b.read()),d=b.peek();}else{if(d&&isNameChar(d)){c+=b.read(),d=b.peek();}else{break;}}}return c;},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e)){do{c+=b.read(),e=b.peek();}while(e&&isHexDigit(e)&&++d<6);}c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e;},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break;}d=b.read();}return c;}return"";}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c);}}}}});}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={};}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b]){!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});}else{if(b=="width"||b=="height"){f[b]=1;}}}),a.addListener("endrule",function(){var a;if(f.height){for(a in e){e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);}}if(f.width){for(a in d){d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c);}}});}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d){if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b);}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)));}}for(j in f){if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length){for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c);});}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++;}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c);});}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++;}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c);});}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0};}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1);}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c);});}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c);}});}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c);});}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c));}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c);});}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1}; +a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c);});}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c);}}});}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c));}});}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1; +},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-keybinding-emacs",function(a){define("ace/keyboard/keybinding/emacs",["require","exports","module","ace/keyboard/state_handler"],function(h,g,n){var m=h("ace/keyboard/state_handler").StateHandler,k=h("ace/keyboard/state_handler").matchCharacterOnly,j={start:[{key:"ctrl-x",then:"c-x"},{regex:["(?:command-([0-9]*))*","(down|ctrl-n)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(right|ctrl-f)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(up|ctrl-p)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(left|ctrl-b)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"This binding matches all printable characters except numbers as long as they are no numbers and print them n times.",regex:["(?:command-([0-9]*))","([^0-9]+)*"],match:k,exec:"inserttext",params:[{name:"times",match:1,type:"number",defaultValue:"1"},{name:"text",match:2}]},{comment:"This binding matches numbers as long as there is no meta_number in the buffer.",regex:["(command-[0-9]*)*","([0-9]+)"],match:k,disallowMatches:[1],exec:"inserttext",params:[{name:"text",match:2,type:"text"}]},{regex:["command-([0-9]*)","(command-[0-9]|[0-9])"],comment:"Stops execution if the regex /meta_[0-9]+/ matches to avoid resetting the buffer."}],"c-x":[{key:"ctrl-g",then:"start"},{key:"ctrl-s",exec:"save",then:"start"}]}; +g.Emacs=new m(j);}),define("ace/keyboard/state_handler",["require","exports","module"],function(g,f,k){function h(b){this.keymapping=this.$buildKeymappingRegex(b);}var j=!1;h.prototype={$buildKeymappingRegex:function(b){for(state in b){this.$buildBindingsRegex(b[state]);}return b;},$buildBindingsRegex:function(b){b.forEach(function(c){c.key?c.key=new RegExp("^"+c.key+"$"):Array.isArray(c.regex)?(c.key=new RegExp("^"+c.regex[1]+"$"),c.regex=new RegExp(c.regex.join("")+"$")):c.regex&&(c.regex=new RegExp(c.regex+"$"));});},$composeBuffer:function(n,m,r){if(n.state==null||n.buffer==null){n.state="start",n.buffer="";}var q=[];m&1&&q.push("ctrl"),m&8&&q.push("command"),m&2&&q.push("option"),m&4&&q.push("shift"),r&&q.push(r);var p=q.join("-"),o=n.buffer+p;m!=2&&(n.buffer=o);return{bufferToUse:o,symbolicName:p};},$find:function(m,d,q,p,o){var n={};this.keymapping[m.state].some(function(r){var e;if(r.key&&!r.key.test(q)){return !1;}if(r.regex&&!(e=r.regex.exec(d))){return !1;}if(r.match&&!r.match(d,p,o,q)){return !1;}if(r.disallowMatches){for(var c=0;c>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen",regex:"[\\[\\(\\{]"},{token:"rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]};};o.inherits(k,m),h.PythonHighlightRules=k;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){}; +(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-dawn",function(a){define("ace/theme/dawn",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-dawn .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-dawn .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-dawn .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-dawn .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-dawn .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-dawn .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-dawn .ace_scroller {\n background-color: #F9F9F9;\n}\n\n.ace-dawn .ace_text-layer {\n cursor: text;\n color: #080808;\n}\n\n.ace-dawn .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-dawn .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-dawn .ace_marker-layer .ace_selection {\n background: rgba(39, 95, 255, 0.30);\n}\n\n.ace-dawn .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-dawn .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_marker-layer .ace_active_line {\n background: rgba(36, 99, 180, 0.12);\n}\n\n \n.ace-dawn .ace_invisible {\n color: rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_keyword {\n color:#794938;\n}\n\n.ace-dawn .ace_keyword.ace_operator {\n \n}\n\n.ace-dawn .ace_constant {\n color:#811F24;\n}\n\n.ace-dawn .ace_constant.ace_language {\n \n}\n\n.ace-dawn .ace_constant.ace_library {\n \n}\n\n.ace-dawn .ace_constant.ace_numeric {\n \n}\n\n.ace-dawn .ace_invalid {\n \n}\n\n.ace-dawn .ace_invalid.ace_illegal {\n text-decoration:underline;\nfont-style:italic;\ncolor:#F8F8F8;\nbackground-color:#B52A1D;\n}\n\n.ace-dawn .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#B52A1D;\n}\n\n.ace-dawn .ace_support {\n color:#691C97;\n}\n\n.ace-dawn .ace_support.ace_function {\n color:#693A17;\n}\n\n.ace-dawn .ace_function.ace_buildin {\n \n}\n\n.ace-dawn .ace_string {\n color:#0B6125;\n}\n\n.ace-dawn .ace_string.ace_regexp {\n color:#CF5628;\n}\n\n.ace-dawn .ace_comment {\n font-style:italic;\ncolor:#5A525F;\n}\n\n.ace-dawn .ace_comment.ace_doc {\n \n}\n\n.ace-dawn .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-dawn .ace_variable {\n color:#234A97;\n}\n\n.ace-dawn .ace_variable.ace_language {\n \n}\n\n.ace-dawn .ace_xml_pe {\n \n}\n\n.ace-dawn .ace_meta {\n \n}\n\n.ace-dawn .ace_meta.ace_tag {\n \n}\n\n.ace-dawn .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-dawn .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-dawn .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-dawn";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-vibrant_ink",function(a){define("ace/theme/vibrant_ink",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-vibrant-ink .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-vibrant-ink .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-vibrant-ink .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-vibrant-ink .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-vibrant-ink .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-vibrant-ink .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-vibrant-ink .ace_scroller {\n background-color: #0F0F0F;\n}\n\n.ace-vibrant-ink .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-vibrant-ink .ace_marker-layer .ace_selection {\n background: #6699CC;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #99CC99;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_active_line {\n background: #333333;\n}\n\n \n.ace-vibrant-ink .ace_invisible {\n color: #404040;\n}\n\n.ace-vibrant-ink .ace_keyword {\n color:#FF6600;\n}\n\n.ace-vibrant-ink .ace_keyword.ace_operator {\n \n}\n\n.ace-vibrant-ink .ace_constant {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_language {\n color:#339999;\n}\n\n.ace-vibrant-ink .ace_constant.ace_library {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_numeric {\n color:#99CC99;\n}\n\n.ace-vibrant-ink .ace_invalid {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_invalid.ace_illegal {\n \n}\n\n.ace-vibrant-ink .ace_invalid.ace_deprecated {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_support {\n \n}\n\n.ace-vibrant-ink .ace_support.ace_function {\n color:#FFCC00;\n}\n\n.ace-vibrant-ink .ace_function.ace_buildin {\n \n}\n\n.ace-vibrant-ink .ace_string {\n color:#66FF00;\n}\n\n.ace-vibrant-ink .ace_string.ace_regexp {\n color:#44B4CC;\n}\n\n.ace-vibrant-ink .ace_comment {\n color:#9933CC;\n}\n\n.ace-vibrant-ink .ace_comment.ace_doc {\n \n}\n\n.ace-vibrant-ink .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_variable {\n \n}\n\n.ace-vibrant-ink .ace_variable.ace_language {\n \n}\n\n.ace-vibrant-ink .ace_xml_pe {\n \n}\n\n.ace-vibrant-ink .ace_meta {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\n font-style:italic;\ncolor:#99CC99;\n}\n\n\n.ace-vibrant-ink .ace_collab.ace_user1 {\n \n}"; +j.importCssString(h),f.cssClass="ace-vibrant-ink";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-java",function(a){define("ace/mode/java",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/java_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/javascript").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/java_highlight_rules").JavaHighlightRules,n=u("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=u("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n,this.$behaviour=new m;};r.inherits(k,q),function(){this.createWorker=function(b){return null;};}.call(k.prototype),t.Mode=k;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n;};u.inherits(m,t),function(){this.toggleCommentLines=function(I,H,G,F){var E=!0,D=[],C=/^(\s*)\/\//;for(var B=G;B<=F;B++){if(!C.test(H.getLine(B))){E=!1;break;}}if(E){var A=new p(0,0,0,0);for(var B=G;B<=F;B++){var z=H.getLine(B),y=z.match(C);A.start.row=B,A.end.row=B,A.end.column=y[0].length,H.replace(A,y[1]);}}else{H.indentRows(G,F,"//");}},this.getNextLineIndent=function(k,j,D){var C=this.$getIndent(j),B=this.$tokenizer.getLineTokens(j,k),A=B.tokens,z=B.state;if(A.length&&A[A.length-1].type=="comment"){return C;}if(k=="start"){var y=j.match(/^.*[\{\(\[\:]\s*$/);y&&(C+=D);}else{if(k=="doc-start"){if(z=="start"){return"";}var y=j.match(/^\s*(\/?)\*/);y&&(y[1]&&(C+=" "),C+="* ");}}return C;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var k=[];for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; +};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/java_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while".split("|")),e=p.arrayToMap("null|Infinity|NaN|undefined".split("|")),h=p.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),g=p.arrayToMap("".split("|")); +this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.JavaHighlightRules=m;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-svg",function(a){define("ace/mode/svg",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/tokenizer","ace/mode/svg_highlight_rules","ace/mode/behaviour/xml"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/text").Mode,p=u("ace/mode/javascript").Mode,o=u("ace/tokenizer").Tokenizer,n=u("ace/mode/svg_highlight_rules").SvgHighlightRules,m=u("ace/mode/behaviour/xml").XmlBehaviour,k=function(){this.highlighter=new n,this.$tokenizer=new o(this.highlighter.getRules()),this.$behaviour=new m,this.$embeds=this.highlighter.getEmbeds(),this.createModeDelegates({"js-":p});};r.inherits(k,q),function(){this.toggleCommentLines=function(f,e,h,g){return 0;},this.getNextLineIndent=function(e,d,f){return this.$getIndent(d);},this.checkOutdent=function(e,d,f){return !1;};}.call(k.prototype),t.Mode=k;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n;};u.inherits(m,t),function(){this.toggleCommentLines=function(I,H,G,F){var E=!0,D=[],C=/^(\s*)\/\//;for(var B=G;B<=F;B++){if(!C.test(H.getLine(B))){E=!1;break;}}if(E){var A=new p(0,0,0,0);for(var B=G;B<=F;B++){var z=H.getLine(B),y=z.match(C);A.start.row=B,A.end.row=B,A.end.column=y[0].length,H.replace(A,y[1]);}}else{H.indentRows(G,F,"//");}},this.getNextLineIndent=function(k,j,D){var C=this.$getIndent(j),B=this.$tokenizer.getLineTokens(j,k),A=B.tokens,z=B.state;if(A.length&&A[A.length-1].type=="comment"){return C;}if(k=="start"){var y=j.match(/^.*[\{\(\[\:]\s*$/);y&&(C+=D);}else{if(k=="doc-start"){if(z=="start"){return"";}var y=j.match(/^\s*(\/?)\*/);y&&(y[1]&&(C+=" "),C+="* ");}}return C;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var k=[];for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/svg_highlight_rules",["require","exports","module","pilot/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,m=j("ace/mode/xml_highlight_rules").XmlHighlightRules,k=function(){m.call(this),this.$rules.start.splice(3,0,{token:"text",regex:"<(?=s*script)",next:"script"}),this.$rules.script=[{token:"text",regex:">",next:"js-start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],this.embedRules(n,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]);};o.inherits(k,m),h.SvgHighlightRules=k;}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};m.inherits(j,k),g.XmlHighlightRules=j;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/behaviour").Behaviour,m=j("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.inherit(m,["string_dquotes"]),this.add("brackets","insertion",function(C,B,A,z,y){if(y=="<"){var x=A.getSelectionRange(),w=z.doc.getTextRange(x);return w!==""?!1:{text:"<>",selection:[1,1]};}if(y==">"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),t=u.substring(v.column,v.column+1);if(t==">"){return{text:"",selection:[1,1]};}}else{if(y=="\n"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),s=u.substring(v.column,v.column+2);if(s=="A.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-textile",function(a){define("ace/mode/textile",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/text").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/textile_highlight_rules").TextileHighlightRules,n=u("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=u("ace/range").Range,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n; +};r.inherits(k,q),function(){this.getNextLineIndent=function(e,d,f){return e=="intag"?f:"";},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(k.prototype),t.Mode=k;}),define("ace/mode/textile_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"keyword",regex:"h1|h2|h3|h4|h5|h6|bq|p|bc|pre",next:"blocktag"},{token:"keyword",regex:"[\\*]+|[#]+"},{token:"text",regex:".+"}],blocktag:[{token:"keyword",regex:"\\. ",next:"start"},{token:"keyword",regex:"\\(",next:"blocktagproperties"}],blocktagproperties:[{token:"keyword",regex:"\\)",next:"blocktag"},{token:"string",regex:"[a-zA-Z0-9\\-_]+"},{token:"keyword",regex:"#"}]};};m.inherits(j,k),g.TextileHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-perl",function(a){define("ace/mode/perl",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/text").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/perl_highlight_rules").PerlHighlightRules,n=u("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=u("ace/range").Range,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n;};r.inherits(k,q),function(){this.toggleCommentLines=function(F,E,D,C){var B=!0,A=[],z=/^(\s*)#/;for(var y=D;y<=C;y++){if(!z.test(E.getLine(y))){B=!1;break;}}if(B){var x=new m(0,0,0,0);for(var y=D;y<=C;y++){var w=E.getLine(y),v=w.match(z);x.start.row=y,x.end.row=y,x.end.column=v[0].length,E.replace(x,v[1]);}}else{E.indentRows(D,C,"#");}},this.getNextLineIndent=function(v,j,B){var A=this.$getIndent(j),z=this.$tokenizer.getLineTokens(j,v),y=z.tokens,x=z.state;if(y.length&&y[y.length-1].type=="comment"){return A;}if(v=="start"){var w=j.match(/^.*[\{\(\[\:]\s*$/);w&&(A+=B);}return A;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(k.prototype),t.Mode=k;}),define("ace/mode/perl_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var e=n.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),d=n.arrayToMap("ARGV|ENV|INC|SIG".split("|")),f=n.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(b){return e.hasOwnProperty(b)?"keyword":d.hasOwnProperty(b)?"constant.language":f.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}; +};o.inherits(k,m),h.PerlHighlightRules=k;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-scad",function(a){define("ace/mode/scad",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/scad_highlight_rules").scadHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=w("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p,this.$behaviour=new n;};t.inherits(m,s),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new o(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),x=y.match(B);z.start.row=A,z.end.row=A,z.end.column=x[0].length,G.replace(z,x[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(k,j,C){var B=this.$getIndent(j),A=this.$tokenizer.getLineTokens(j,k),z=A.tokens,y=A.state;if(z.length&&z[z.length-1].type=="comment"){return B;}if(k=="start"){var x=j.match(/^.*[\{\(\[]\s*$/);x&&(B+=C);}else{if(k=="doc-start"){if(y=="start"){return"";}var x=j.match(/^\s*(\/?)\*/);x&&(x[1]&&(B+=" "),B+="* ");}}return B;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(m.prototype),v.Mode=m;}),define("ace/mode/scad_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var d=p.arrayToMap("module|if|else|for".split("|")),c=p.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(b){return b=="this"?"variable.language":d.hasOwnProperty(b)?"keyword":c.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.scadHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row}); +if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t);return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-kr_theme",function(a){define("ace/theme/kr_theme",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-kr-theme .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-kr-theme .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-kr-theme .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-kr-theme .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-kr-theme .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-kr-theme .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-kr-theme .ace_scroller {\n background-color: #0B0A09;\n}\n\n.ace-kr-theme .ace_text-layer {\n cursor: text;\n color: #FCFFE0;\n}\n\n.ace-kr-theme .ace_cursor {\n border-left: 2px solid #FF9900;\n}\n\n.ace-kr-theme .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FF9900;\n}\n \n.ace-kr-theme .ace_marker-layer .ace_selection {\n background: rgba(170, 0, 255, 0.45);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_active_line {\n background: #38403D;\n}\n\n \n.ace-kr-theme .ace_invisible {\n color: rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_keyword {\n color:#949C8B;\n}\n\n.ace-kr-theme .ace_keyword.ace_operator {\n \n}\n\n.ace-kr-theme .ace_constant {\n color:rgba(210, 117, 24, 0.76);\n}\n\n.ace-kr-theme .ace_constant.ace_language {\n \n}\n\n.ace-kr-theme .ace_constant.ace_library {\n \n}\n\n.ace-kr-theme .ace_constant.ace_numeric {\n \n}\n\n.ace-kr-theme .ace_invalid {\n color:#F8F8F8;\nbackground-color:#A41300;\n}\n\n.ace-kr-theme .ace_invalid.ace_illegal {\n \n}\n\n.ace-kr-theme .ace_invalid.ace_deprecated {\n \n}\n\n.ace-kr-theme .ace_support {\n color:#9FC28A;\n}\n\n.ace-kr-theme .ace_support.ace_function {\n color:#85873A;\n}\n\n.ace-kr-theme .ace_function.ace_buildin {\n \n}\n\n.ace-kr-theme .ace_string {\n \n}\n\n.ace-kr-theme .ace_string.ace_regexp {\n color:rgba(125, 255, 192, 0.65);\n}\n\n.ace-kr-theme .ace_comment {\n font-style:italic;\ncolor:#706D5B;\n}\n\n.ace-kr-theme .ace_comment.ace_doc {\n \n}\n\n.ace-kr-theme .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-kr-theme .ace_variable {\n color:#D1A796;\n}\n\n.ace-kr-theme .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-kr-theme .ace_xml_pe {\n \n}\n\n.ace-kr-theme .ace_meta {\n \n}\n\n.ace-kr-theme .ace_meta.ace_tag {\n color:#BABD9C;\n}\n\n.ace-kr-theme .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-kr-theme .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-kr-theme .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-kr-theme";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-c_cpp",function(a){define("ace/mode/c_cpp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/c_cpp_highlight_rules").c_cppHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=w("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p,this.$behaviour=new n; +};t.inherits(m,s),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new o(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),x=y.match(B);z.start.row=A,z.end.row=A,z.end.column=x[0].length,G.replace(z,x[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(k,j,C){var B=this.$getIndent(j),A=this.$tokenizer.getLineTokens(j,k),z=A.tokens,y=A.state;if(z.length&&z[z.length-1].type=="comment"){return B;}if(k=="start"){var x=j.match(/^.*[\{\(\[]\s*$/);x&&(B+=C);}else{if(k=="doc-start"){if(y=="start"){return"";}var x=j.match(/^\s*(\/?)\*/);x&&(x[1]&&(B+=" "),B+="* ");}}return B;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(m.prototype),v.Mode=m;}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var d=p.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),c=p.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(b){return b=="this"?"variable.language":d.hasOwnProperty(b)?"keyword":c.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.c_cppHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t); +return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-cockpit",function(A){define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c);};}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags);}function q(a){this.env=a,this.commandAssignment=new o(p,this);}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue);}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f;}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions;}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number"){this.start=c,this.end=d,this.predictions=e;}else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions;}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p);},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0;},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0){return d;}}return c.status-a.status;}),b!==undefined&&a.forEach(function(a){delete a.distance;},this);return a;},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter){throw new Error("Can't merge Arguments from different EventEmitters");}return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix);},setText:function(a){if(a==null){throw new Error("Illegal text for Argument: "+a);}var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b);},toString:function(){return this.prefix+this.text+this.suffix;}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f);},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0]);},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1;},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a); +},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a);},toString:function(){return this.arg?this.arg.toString():"";}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]");},this),c.push("
                                                                          "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                          "),a.params&&a.params.length>0&&(c.push("
                                                                            "),a.params.forEach(function(a){c.push("
                                                                          • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                          • ");},this),c.push("
                                                                          "));return new l(i.VALID,c.join(""),b);}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this);},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}));},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b];},getParameterNames:function(){return Object.keys(this._assignments);},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a];},this);},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint());},this),l.sort(this._hints);},getWorstHint:function(){return this._hints[0];},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value;},this);return a;},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a));},this);return b;},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined);},this);},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString());},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)));},this);return a.join("");}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints();},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID;});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++){b.status>a[c]&&(a[c]=b.status);}},this);return a;},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString();},this).join("");};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID);},this),l.sort(this._hints);},r.prototype.getHints=function(){return this._hints;},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""));}else{if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o));}}break;}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j="";}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j="";}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j="";}}h++;}return k;},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value){break;}if(this.commandAssignment.value.exec){for(var d=0;d=a.length){break;}continue;}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g));}}};}(),b.CliRequisition=r;}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i);},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i);};}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update());}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c;},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup");}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px";}.bind(this);this.outputHeight.addEventListener("change",b),b();}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this);}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1;}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup");}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this);},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight;},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px");},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN){d=!0;}else{if(b!=0||c!=0){d=h.execKeyCommand(this.env,"cli",b,c);}}d&&e.stopEvent(a);},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end));}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b;},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString()); +var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d);}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e);}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | ";},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1;},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break;}d!==a[c]&&(b+="");}return b;},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e;}}},b.CliView=n;}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this));}function k(b){var d;try{d=a("text!cockpit/ui/"+b);}catch(e){}if(d){return d;}var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b;}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b;}return f+b;}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed;},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec();},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a);},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a);},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a);},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1000+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b);},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block";}},b.RequestView=l;}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[];}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined){b={};}this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return;}if(a.hasAttribute("if")&&!this.processIf(a,b)){return;}b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a));},this),a.parentNode.removeChild(a));},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a;}return a.slice(2,-1);},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments);}:d;}if(!d){this.handleError("Can't find path="+a);return null;}return this.property(a.slice(1),d,c);}finally{this.scope.pop();}},Templater.prototype.envEval=function(script,env,context){with(env){try{this.scope.push(context);return eval(script);}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script;}finally{this.scope.pop();}}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b);},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a);},exports.Templater=Templater;}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                          "+d.responseText+"
                                                                          ");},d.send(null);}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e);},b.shutdown=function(a,b){d.removeCommand(e);};}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                          >
                                                                          ${request.typed}
                                                                          Hide command output Show command output Remove this command from the history
                                                                          '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); +},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-clouds",function(a){define("ace/theme/clouds",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-clouds";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-scss",function(a){define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(s,r,q){var p=s("pilot/oop"),o=s("ace/mode/text").Mode,n=s("ace/tokenizer").Tokenizer,m=s("ace/mode/scss_highlight_rules").ScssHighlightRules,k=s("ace/mode/matching_brace_outdent").MatchingBraceOutdent,j=function(){this.$tokenizer=new n((new m).getRules()),this.$outdent=new k;};p.inherits(j,o),function(){this.getNextLineIndent=function(h,g,w){var v=this.$getIndent(g),u=this.$tokenizer.getLineTokens(g,h).tokens;if(u.length&&u[u.length-1].type=="comment"){return v;}var t=g.match(/^.*\{\s*$/);t&&(v+=w);return v;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(j.prototype),r.Mode=j;}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){function r(g){var f=[],y=g.split("");for(var x=0;x|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]};};o.inherits(k,m),h.ScssHighlightRules=k;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-worker-coffee",function(a){function g(){var m=b("pilot/event_emitter").EventEmitter,k=b("pilot/oop"),n=function(){}; +(function(){k.implement(this,m),this.callback=function(p,o){postMessage({type:"call",id:o,data:p});},this.emit=function(p,o){postMessage({type:"event",name:p,data:o});};}).call(n.prototype);return new n;}function j(k){b.tlns=k;}var d={log:function(k){postMessage({type:"log",data:k});}},h={console:d},b=function(m){var k=b.modules[m];if(k){k.initialized||(k.exports=k.factory().exports,k.initialized=!0);return k.exports;}var n=m.split("/");n[0]=b.tlns[n[0]]||n[0],path=n.join("/")+".js",b.id=m,importScripts(path);return b(m);};b.modules={},b.tlns={};var f=function(m,k,n){arguments.length==2?n=k:arguments.length==1&&(n=m,m=b.id);m.indexOf("text/")!==0&&(b.modules[m]={factory:function(){var p={exports:{}},o=n(b,p.exports,p);o&&(p.exports=o);return p;}});},c,e;onmessage=function(m){var k=m.data;if(k.command){c[k.command].apply(c,k.args);}else{if(k.init){j(k.tlns),b("pilot/fixoldbrowsers"),e=g();var n=b(k.module)[k.classname];c=new n(e);}else{k.event&&e&&e._dispatchEvent(k.event,k.data);}}},f("pilot/fixoldbrowsers",["require","exports","module"],function(X,V,U){if(!Function.prototype.bind){var T=Array.prototype.slice;Function.prototype.bind=function(m){var k=this;if(typeof k.apply!="function"||typeof k.call!="function"){return new TypeError;}var p=T.call(arguments),o=function n(){if(this instanceof n){var q=Object.create(k.prototype);k.apply(q,p.concat(T.call(arguments)));return q;}return k.call.apply(k,p.concat(T.call(arguments)));};o.length=typeof k=="function"?Math.max(k.length-p.length,0):0;return o;};}var S=Function.prototype.call,R=Array.prototype,Q=Object.prototype,P=S.bind(Q.hasOwnProperty),O,N,M,L,K;if(K=P(Q,"__defineGetter__")){O=S.bind(Q.__defineGetter__),N=S.bind(Q.__defineSetter__),M=S.bind(Q.__lookupGetter__),L=S.bind(Q.__lookupSetter__);}Array.isArray||(Array.isArray=function(k){return Object.prototype.toString.call(k)==="[object Array]";}),Array.prototype.forEach||(Array.prototype.forEach=function(m,k){var o=+this.length;for(var n=0;n=2){var n=arguments[1];}else{do{if(o in this){n=this[o++];break;}if(++o>=k){throw new TypeError;}}while(!0);}for(;o=2){var n=arguments[1];}else{do{if(o in this){n=this[o--];break;}if(--o<0){throw new TypeError;}}while(!0);}for(;o>=0;o--){o in this&&(n=m.call(null,n,this[o],o,this));}return n;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(m){var k=this.length;if(!k){return -1;}var n=arguments[1]||0;if(n>=k){return -1;}n<0&&(n+=k);for(;n=0;n--){if(!P(this,n)){continue;}if(m===this[n]){return n;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||k.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var J="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(m,k){if(typeof m!="object"&&typeof m!="function"||m===null){throw new TypeError(J+m);}if(!P(m,k)){return undefined;}var q,p,o;q={enumerable:!0,configurable:!0};if(K){var n=m.__proto__;m.__proto__=Q;var p=M(m,k),o=L(m,k);m.__proto__=n;if(p||o){p&&(descriptor.get=p),o&&(descriptor.set=o);return descriptor;}}descriptor.value=m[k];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k);}),Object.create||(Object.create=function(m,k){var o;if(m===null){o={"__proto__":null};}else{if(typeof m!="object"){throw new TypeError("typeof prototype["+typeof m+"] != 'object'");}var n=function(){};n.prototype=m,o=new n,o.__proto__=m;}typeof k!="undefined"&&Object.defineProperties(o,k);return o;});if(!Object.defineProperty){var I="Property description must be an object: ",H="Object.defineProperty called on non-object: ",G="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(m,k,o){if(typeof m!="object"&&typeof m!="function"){throw new TypeError(H+m);}if(typeof m!="object"||m===null){throw new TypeError(I+o);}if(P(o,"value")){if(K&&(M(m,k)||L(m,k))){var n=m.__proto__;m.__proto__=Q,delete m[k],m[k]=o.value,m.prototype;}else{m[k]=o.value;}}else{if(!K){throw new TypeError(G);}P(o,"get")&&O(m,k,o.get),P(o,"set")&&N(m,k,o.set);}return m;};}Object.defineProperties||(Object.defineProperties=function(m,k){for(var n in k){P(k,n)&&Object.defineProperty(m,n,k[n]);}return m;}),Object.seal||(Object.seal=function(k){return k;}),Object.freeze||(Object.freeze=function(k){return k;});try{Object.freeze(function(){});}catch(F){Object.freeze=function(m){return function k(n){return typeof n=="function"?n:m(n);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(k){return k; +}),Object.isSealed||(Object.isSealed=function(k){return !1;}),Object.isFrozen||(Object.isFrozen=function(k){return !1;}),Object.isExtensible||(Object.isExtensible=function(k){return !0;});if(!Object.keys){var E=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=D.length;for(var B in {toString:null}){E=!1;}Object.keys=function y(n){if(typeof n!="object"&&typeof n!="function"||n===null){throw new TypeError("Object.keys called on a non-object");}var m=[];for(var k in n){P(n,k)&&m.push(k);}if(E){for(var q=0,p=C;q=7?new m(W,x,w,v,u,t,s):r>=6?new m(W,x,w,v,u,t):r>=5?new m(W,x,w,v,u):r>=4?new m(W,x,w,v):r>=3?new m(W,x,w):r>=2?new m(W,x):r>=1?new m(W):new m;q.constructor=k;return q;}return m.apply(this,arguments);},p=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var o in m){k[o]=m[o];}k.now=m.now,k.UTC=m.UTC,k.prototype=m.prototype,k.prototype.constructor=k,k.parse=function n(q){var u=p.exec(q);if(u){u.shift();var t=u[0]===undefined;for(var s=0;s<10;s++){if(s===7){continue;}u[s]=+(u[s]||(s<3?1:0)),s===1&&u[s]--;}if(t){return((u[3]*60+u[4])*60+u[5])*1000+u[6];}var r=(u[8]*60+u[9])*60*1000;u[6]==="-"&&(r=-r);return m.UTC.apply(this,u.slice(0,7))+r;}return m.parse.apply(this,arguments);};return k;}(Date));if(!String.prototype.trim){var A=/^\s\s*/,z=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(A,"").replace(z,"");};}}),f("pilot/event_emitter",["require","exports","module"],function(m,k,o){var n={};n._emit=n._dispatchEvent=function(q,p){this._eventRegistry=this._eventRegistry||{};var s=this._eventRegistry[q];if(!!s&&!!s.length){var p=p||{};p.type=q;for(var r=0;r=t&&(u.row=Math.max(0,t-1),u.column=this.getLine(t-1).length);return u;},this.insert=function(u,t){if(t.length==0){return u;}u=this.$clipPosition(u),this.getLength()<=1&&this.$detectNewLine(t);var x=this.$split(t),w=x.splice(0,1)[0],v=x.length==0?null:x.splice(x.length-1,1)[0];u=this.insertInLine(u,w),v!==null&&(u=this.insertNewLine(u),u=this.insertLines(u.row,x),u=this.insertInLine(u,v||""));return u;},this.insertLines=function(u,t){if(t.length==0){return{row:u,column:0};}var x=[u,0];x.push.apply(x,t),this.$lines.splice.apply(this.$lines,x);var w=new p(u,0,u+t.length,0),v={action:"insertLines",range:w,lines:t};this._dispatchEvent("change",{data:v});return w.end;},this.insertNewLine=function(u){u=this.$clipPosition(u);var t=this.$lines[u.row]||"";this.$lines[u.row]=t.substring(0,u.column),this.$lines.splice(u.row+1,0,t.substring(u.column,t.length));var w={row:u.row+1,column:0},v={action:"insertText",range:p.fromPoints(u,w),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});return w;},this.insertInLine=function(u,t){if(t.length==0){return u;}var x=this.$lines[u.row]||"";this.$lines[u.row]=x.substring(0,u.column)+t+x.substring(u.column);var w={row:u.row,column:u.column+t.length},v={action:"insertText",range:p.fromPoints(u,w),text:t};this._dispatchEvent("change",{data:v});return w;},this.remove=function(u){u.start=this.$clipPosition(u.start),u.end=this.$clipPosition(u.end);if(u.isEmpty()){return u.start;}var t=u.start.row,x=u.end.row;if(u.isMultiLine()){var w=u.start.column==0?t:t+1,v=x-1;u.end.column>0&&this.removeInLine(x,0,u.end.column),v>=w&&this.removeLines(w,v),w!=t&&(this.removeInLine(t,u.start.column,this.getLine(t).length),this.removeNewLine(u.start.row));}else{this.removeInLine(t,u.start.column,u.end.column);}return u.start;},this.removeInLine=function(u,t,A){if(t!=A){var z=new p(u,t,u,A),y=this.getLine(u),x=y.substring(t,A),w=y.substring(0,t)+y.substring(A,y.length);this.$lines.splice(u,1,w);var v={action:"removeText",range:z,text:x};this._dispatchEvent("change",{data:v});return z.start;}},this.removeLines=function(u,t){var x=new p(u,0,t+1,0),w=this.$lines.splice(u,t-u+1),v={action:"removeLines",range:x,nl:this.getNewLineCharacter(),lines:w};this._dispatchEvent("change",{data:v});return w;},this.removeNewLine=function(u){var t=this.getLine(u),y=this.getLine(u+1),x=new p(u,t.length,u+1,0),w=t+y;this.$lines.splice(u,2,w);var v={action:"removeText",range:x,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});},this.replace=function(u,t){if(t.length==0&&u.isEmpty()){return u.start;}if(t==this.getTextRange(u)){return u.end;}this.remove(u);if(t){var v=this.insert(u.start,t);}else{v=u.start;}return v;},this.applyDeltas=function(u){for(var t=0;t=0;t--){var w=u[t],v=p.fromPoints(w.range.start,w.range.end);w.action=="insertLines"?this.removeLines(v.start.row,v.end.row-1):w.action=="insertText"?this.remove(v):w.action=="removeLines"?this.insertLines(v.start.row,w.lines):w.action=="removeText"&&this.insert(v.start,w.text);}};}).call(n.prototype),k.Document=n;}),f("ace/range",["require","exports","module"],function(m,k,o){var n=function(q,p,s,r){this.start={row:q,column:p},this.end={row:s,column:r};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(q,p){return this.compare(q,p)==0;},this.compareRange=function(q){var p,s=q.end,r=q.start;p=this.compare(s.row,s.column);if(p==1){p=this.compare(r.row,r.column);return p==1?2:p==0?1:0;}if(p==-1){return -2;}p=this.compare(r.row,r.column);return p==-1?-1:p==1?42:0;},this.containsRange=function(q){var p=this.compareRange(q);return p==-1||p==0||p==1;},this.isEnd=function(q,p){return this.end.row==q&&this.end.column==p;},this.isStart=function(q,p){return this.start.row==q&&this.start.column==p;},this.setStart=function(q,p){typeof q=="object"?(this.start.column=q.column,this.start.row=q.row):(this.start.row=q,this.start.column=p);},this.setEnd=function(q,p){typeof q=="object"?(this.end.column=q.column,this.end.row=q.row):(this.end.row=q,this.end.column=p);},this.inside=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)||this.isStart(q,p)?!1:!0;}return !1;},this.insideStart=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)?!1:!0;}return !1;},this.insideEnd=function(q,p){if(this.compare(q,p)==0){return this.isStart(q,p)?!1:!0;}return !1;},this.compare=function(q,p){if(!this.isMultiLine()&&q===this.start.row){return pthis.end.column?1:0;}return qthis.end.row?1:this.start.row===q?p>=this.start.column?0:-1:this.end.row===q?p<=this.end.column?0:1:0;},this.compareStart=function(q,p){return this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.compareEnd=function(q,p){return this.end.row==q&&this.end.column==p?1:this.compare(q,p);},this.compareInside=function(q,p){return this.end.row==q&&this.end.column==p?1:this.start.row==q&&this.start.column==p?-1:this.compare(q,p); +},this.clipRows=function(q,p){if(this.end.row>p){var s={row:p+1,column:0};}if(this.start.row>p){var r={row:p+1,column:0};}if(this.start.rowthis.row){return;}if(v.start.row==this.row&&v.start.column>this.column){return;}var u=this.row,t=this.column;r.action==="insertText"?v.start.row===u&&v.start.column<=t?v.start.row===v.end.row?t+=v.end.column-v.start.column:(t-=v.start.column,u+=v.end.row-v.start.row):v.start.row!==v.end.row&&v.start.row=t?t=v.start.column:t=Math.max(0,t-(v.end.column-v.start.column)):v.start.row!==v.end.row&&v.start.row=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):s<0?(t.row=0,t.column=0):(t.row=s,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,r))),r<0&&(t.column=0);return t;};}).call(n.prototype);}),f("pilot/lang",["require","exports","module"],function(m,k,p){k.stringReverse=function(q){return q.split("").reverse().join("");},k.stringRepeat=function(r,q){return Array(q+1).join(r);};var o=/^\s\s*/,n=/\s\s*$/;k.stringTrimLeft=function(q){return q.replace(o,"");},k.stringTrimRight=function(q){return q.replace(n,"");},k.copyObject=function(r){var q={};for(var s in r){q[s]=r[s];}return q;},k.copyArray=function(r){var q=[];for(i=0,l=r.length;i=0||!t&&Z.call(aP,s)>=0){o=s.toUpperCase(),o==="WHEN"&&(m=this.tag(),Z.call(aB,m)>=0)?o="LEADING_WHEN":o==="FOR"?this.seenFor=!0:o==="UNLESS"?o="IF":Z.call(ah,o)>=0?o="UNARY":Z.call(an,o)>=0&&(o!=="INSTANCEOF"&&this.seenFor?(o="FOR"+o,this.seenFor=!1):(o="RELATION",this.value()==="!"&&(this.tokens.pop(),s="!"+s)));}Z.call(aD,s)>=0&&(t?(o="IDENTIFIER",s=new String(s),s.reserved=!0):Z.call(am,s)>=0&&this.identifierError(s)),t||(Z.call(aR,s)>=0&&(s=aQ[s]),o=function(){switch(s){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return o;}}()),this.token(o,s),u&&this.token(":",":");return r.length;},k.prototype.numberToken=function(){var n,m;if(!(n=aq.exec(this.chunk))){return 0;}m=n[0],this.token("NUMBER",m);return m.length;},k.prototype.stringToken=function(){var n,m;switch(this.chunk.charAt(0)){case"'":if(!(n=aj.exec(this.chunk))){return 0;}this.token("STRING",(m=n[0]).replace(aw,"\\\n"));break;case'"':if(!(m=this.balancedString(this.chunk,'"'))){return 0;}0=0)){return 0;}if(!(n=ao.exec(this.chunk))){return 0;}p=n[0],this.token("REGEX",p==="//"?"/(?:)/":p);return p.length;},k.prototype.heregexToken=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;y=B[0],A=B[1],z=B[2];if(0>A.indexOf("#{")){x=A.replace(aH,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(x||"(?:)")+"/"+z);return y.length;}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),v=[],r=this.interpolateString(A,{regex:!0});for(t=0,s=r.length;tthis.indent){if(q){this.indebt=o-this.indent,this.suppressNewlines();return m.length;}n=o-this.indent+this.outdebt,this.token("INDENT",n),this.indents.push(n),this.outdebt=this.indebt=0;}else{this.indebt=0,this.outdentToken(this.indent-o,q);}this.indent=o;return m.length;},k.prototype.outdentToken=function(n,m,q){var p,o;while(n>0){o=this.indents.length-1,this.indents[o]===void 0?n=0:this.indents[o]===this.outdebt?(n-=this.outdebt,this.outdebt=0):this.indents[o]=0)&&this.assignmentError();if((q=m[1])==="||"||q==="&&"){m[0]="COMPOUND_ASSIGN",m[1]+="=";return s.length;}}if(s===";"){t="TERMINATOR";}else{if(Z.call(ax,s)>=0){t="MATH";}else{if(Z.call(aN,s)>=0){t="COMPARE";}else{if(Z.call(aM,s)>=0){t="COMPOUND_ASSIGN";}else{if(Z.call(ah,s)>=0){t="UNARY";}else{if(Z.call(ak,s)>=0){t="SHIFT";}else{if(Z.call(az,s)>=0||s==="?"&&(m!=null?m.spaced:void 0)){t="LOGIC";}else{if(m&&!m.spaced){if(s==="("&&(p=m[0],Z.call(aT,p)>=0)){m[0]==="?"&&(m[0]="FUNC_EXIST"),t="CALL_START";}else{if(s==="["&&(o=m[0],Z.call(aF,o)>=0)){t="INDEX_START";switch(m[0]){case"?":m[0]="INDEX_SOAK";break;case"::":m[0]="INDEX_PROTO";}}}}}}}}}}}this.token(t,s);return s.length;},k.prototype.sanitizeHeredoc=function(n,m){var s,r,q,p,o;q=m.indent,r=m.herecomment;if(r){if(aK.test(n)){throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1)); +}if(n.indexOf("\n")<=0){return n;}}else{while(p=aJ.exec(n)){s=p[1];if(q===null||0<(o=s.length)&&oo;1<=o?s++:s--){switch(r=n.charAt(s)){case"\\":s++;continue;case m:p.pop();if(!p.length){return n.slice(0,s+1);}m=p[p.length-1];continue;}m!=="}"||r!=='"'&&r!=="'"?m==="}"&&r==="{"?p.push(m="}"):m==='"'&&q==="#"&&r==="{"&&p.push(m="}"):p.push(m=r),q=r;}throw new Error("missing "+p.pop()+", starting on line "+(this.line+1));},k.prototype.interpolateString=function(M,L){var K,J,I,H,G,F,E,D,C,B,A,z,y,x,w,v,u;L==null&&(L={}),J=L.heredoc,B=L.regex,z=[],C=0,I=-1;while(E=M.charAt(I+=1)){if(E==="\\"){I+=1;continue;}if(E!=="#"||M.charAt(I+1)!=="{"||!(K=this.balancedString(M.slice(I+1),"}"))){continue;}C1&&(D.unshift(["(","("]),D.push([")",")"])),z.push(["TOKENS",D]);}}I+=K.length,C=I+1;}I>C&&C1)&&this.token("(","(");for(I=0,x=z.length;I|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,ag=/^[^\n\S]+/,aO=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,aS=/^[-=]>/,av=/^(?:\n[^\n\S]*)+/,aj=/^'[^\\']*(?:\\.[^\\']*)*'/,aE=/^`[^\\`]*(?:\\.[^\\`]*)*`/,ao=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,aI=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,aH=/\s+(?:#.*)?/g,aw=/\n/g,aJ=/\n+([^\n\S]*)/g,aK=/\*\//,aV=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,aA=/^\s*(?:,|\??\.(?![.\d])|::)/,ai=/\s+$/,ar=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,aM=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],ah=["!","~","NEW","TYPEOF","DELETE","DO"],az=["&&","||","&","|","^"],ak=["<<",">>",">>>"],aN=["==","!=","<",">","<=",">="],ax=["*","/","%"],an=["IN","OF","INSTANCEOF"],aU=["TRUE","FALSE","NULL","UNDEFINED"],au=["NUMBER","REGEX","BOOL","++","--","]"],at=au.concat(")","}","THIS","IDENTIFIER","STRING"),aT=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],aF=aT.concat("NUMBER","BOOL"),aB=["INDENT","OUTDENT","TERMINATOR"];}),f("ace/mode/coffee/rewriter",["require","exports","module"],function(T,S,R){var Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,z,y=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k=0){s+=1;}else{if(o=r[0],y.call(O,o)>=0){s-=1;}}n+=1;}return n-1;},k.prototype.removeLeadingNewlines=function(){var n,m,p,o;o=this.tokens; +for(n=0,p=o.length;n=0)){p.splice(m,1);return 0;}return 1;});},k.prototype.closeOpenCalls=function(){var n,m;m=function(p,o){var q;return(q=p[0])===")"||q==="CALL_END"||p[0]==="OUTDENT"&&this.tag(o-1)===")";},n=function(p,o){return this.tokens[p[0]==="OUTDENT"?o-1:o][0]="CALL_END";};return this.scanTokens(function(p,o){p[0]==="CALL_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.closeOpenIndexes=function(){var n,m;m=function(p,o){var q;return(q=p[0])==="]"||q==="INDEX_END";},n=function(p,o){return p[0]="INDEX_END";};return this.scanTokens(function(p,o){p[0]==="INDEX_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.addImplicitBraces=function(){var n,m,q,p,o;q=[],p=null,o=0,m=function(s,r){var V,U,w,v,u,t;u=this.tokens.slice(r+1,r+3+1||9000000000),V=u[0],v=u[1],w=u[2];if("HERECOMMENT"===(V!=null?V[0]:void 0)){return !1;}U=s[0];return(U==="TERMINATOR"||U==="OUTDENT")&&(v!=null?v[0]:void 0)!==":"&&((V!=null?V[0]:void 0)!=="@"||(w!=null?w[0]:void 0)!==":")||U===","&&V&&(t=V[0])!=="IDENTIFIER"&&t!=="NUMBER"&&t!=="STRING"&&t!=="@"&&t!=="TERMINATOR"&&t!=="OUTDENT";},n=function(s,r){var t;t=["}","}",s[2]],t.generated=!0;return this.tokens.splice(r,0,t);};return this.scanTokens(function(X,W,V){var U,w,v,u,t,s,r;if(s=v=X[0],y.call(N,s)>=0){q.push([v==="INDENT"&&this.tag(W-1)==="{"?"{":v,W]);return 1;}if(y.call(O,v)>=0){p=q.pop();return 1;}if(v!==":"||(U=this.tag(W-2))!==":"&&((r=q[q.length-1])!=null?r[0]:void 0)==="{"){return 1;}q.push(["{"]),w=U==="@"?W-2:W-1;while(this.tag(w-2)==="HERECOMMENT"){w-=2;}t=new String("{"),t.generated=!0,u=["{",t,X[2]],u.generated=!0,V.splice(w,0,u),this.detectEnd(W+2,m,n);return 2;});},k.prototype.addImplicitParentheses=function(){var n,m;m=!1,n=function(p,o){var q;q=p[0]==="OUTDENT"?o+1:o;return this.tokens.splice(q,0,["CALL_END",")",p[2]]);};return this.scanTokens(function(ab,aa,Z){var Y,X,W,V,U,w,v,ae,ad,ac;v=ab[0];if(v==="CLASS"||v==="IF"){m=!0;}ae=Z.slice(aa-1,aa+1+1||9000000000),V=ae[0],X=ae[1],W=ae[2],Y=!m&&v==="INDENT"&&W&&W.generated&&W[0]==="{"&&V&&(ad=V[0],y.call(J,ad)>=0),w=!1,U=!1,y.call(G,v)>=0&&(m=!1),V&&!V.spaced&&v==="?"&&(ab.call=!0);if(ab.fromThen){return 1;}if(!(Y||(V!=null?V.spaced:void 0)&&(V.call||(ac=V[0],y.call(J,ac)>=0))&&(y.call(L,v)>=0||!ab.spaced&&!ab.newLine&&y.call(I,v)>=0))){return 1;}Z.splice(aa,0,["CALL_START","(",ab[2]]),this.detectEnd(aa+1,function(p,o){var r,q;v=p[0];if(!w&&p.fromThen){return !0;}if(v==="IF"||v==="ELSE"||v==="CATCH"||v==="->"||v==="=>"){w=!0;}if(v==="IF"||v==="ELSE"||v==="SWITCH"||v==="TRY"){U=!0;}return v!=="."&&v!=="?."&&v!=="::"||this.tag(o-1)!=="OUTDENT"?!p.generated&&this.tag(o-1)!==","&&(y.call(K,v)>=0||v==="INDENT"&&!U)&&(v!=="INDENT"||this.tag(o-2)!=="CLASS"&&(q=this.tag(o-1),y.call(M,q)<0)&&(!(r=this.tokens[o+1])||!r.generated||r[0]!=="{")):!0;},n),V[0]==="?"&&(V[0]="FUNC_EXIST");return 2;});},k.prototype.addImplicitIndentation=function(){return this.scanTokens(function(w,v,u){var t,s,r,q,p,o,n,m;o=w[0];if(o==="TERMINATOR"&&this.tag(v+1)==="THEN"){u.splice(v,1);return 0;}if(o==="ELSE"&&this.tag(v-1)!=="OUTDENT"){u.splice.apply(u,[v,0].concat(x.call(this.indentation(w))));return 2;}if(o!=="CATCH"||(n=this.tag(v+2))!=="OUTDENT"&&n!=="TERMINATOR"&&n!=="FINALLY"){if(y.call(E,o)>=0&&this.tag(v+1)!=="INDENT"&&(o!=="ELSE"||this.tag(v+1)!=="IF")){p=o,m=this.indentation(w),r=m[0],q=m[1],p==="THEN"&&(r.fromThen=!0),r.generated=q.generated=!0,u.splice(v+1,0,r),s=function(V,U){var W;return V[1]!==";"&&(W=V[0],y.call(F,W)>=0)&&(V[0]!=="ELSE"||p==="IF"||p==="THEN");},t=function(V,U){return this.tokens.splice(this.tag(U-1)===","?U-1:U,0,q);},this.detectEnd(v+2,s,t),o==="THEN"&&u.splice(v,1);return 1;}return 1;}u.splice.apply(u,[v+2,0].concat(x.call(this.indentation(w))));return 4;});},k.prototype.tagPostfixConditionals=function(){var m;m=function(o,n){var p;return(p=o[0])==="TERMINATOR"||p==="INDENT";};return this.scanTokens(function(n,p){var o;if(n[0]!=="IF"){return 1;}o=n,this.detectEnd(p+1,m,function(r,q){if(r[0]!=="INDENT"){return o[0]="POST_"+o[0];}});return 1;});},k.prototype.ensureBalance=function(Y){var X,W,V,U,w,v,u,t,s,r,q,p,o;V={},w={},p=this.tokens;for(t=0,r=p.length;t0){throw Error("unclosed "+U+" on line "+(w[U]+1));}}return this;},k.prototype.rewriteClosingParens=function(){var n,m,o;o=[],n={};for(m in H){n[m]=0;}return this.scanTokens(function(V,U,w){var v,u,t,s,r,q,p;if(p=r=V[0],y.call(N,p)>=0){o.push(V);return 1;}if(y.call(O,r)<0){return 1;}if(n[v=H[r]]>0){n[v]-=1,w.splice(U,1);return 0;}u=o.pop(),t=u[0],s=H[t];if(r===s){return 1;}n[t]+=1,q=[s,t==="INDENT"?u[1]:s],this.tag(U+2)===t?(w.splice(U+3,0,q),o.push(u)):w.splice(U,0,q);return 1;});},k.prototype.indentation=function(m){return[["INDENT",2,m[2]],["OUTDENT",2,m[2]]];},k.prototype.tag=function(n){var m;return(m=this.tokens[n])!=null?m[0]:void 0;};return k;}(),Q=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],H={},N=[],O=[];for(B=0,A=Q.length;B","=>","[","(","{","--","++"],I=["+","-"],M=["->","=>","{","[",","],K=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],E=["ELSE","->","=>","TRY","FINALLY","THEN"],F=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],G=["TERMINATOR","INDENT","OUTDENT"]; +}),f("ace/mode/coffee/helpers",["require","exports","module"],function(m,k,p){var o,n;k.starts=function(r,q,s){return q===r.substr(s,q.length);},k.ends=function(r,q,t){var s;s=q.length;return q===r.substr(r.length-s-(t||0),s);},k.compact=function(r){var q,u,t,s;s=[];for(u=0,t=r.length;u":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function o(s,r,y,x,w,v,u){var t=v.length-1;switch(w){case 1:return this.$=new x.Block;case 2:return this.$=v[t];case 3:return this.$=v[t-1];case 4:this.$=x.Block.wrap([v[t]]);break;case 5:this.$=v[t-2].push(v[t]);break;case 6:this.$=v[t-1];break;case 7:this.$=v[t];break;case 8:this.$=v[t];break;case 9:this.$=v[t];break;case 10:this.$=v[t];break;case 11:this.$=v[t];break;case 12:this.$=new x.Literal(v[t]);break;case 13:this.$=v[t];break;case 14:this.$=v[t];break;case 15:this.$=v[t];break;case 16:this.$=v[t];break;case 17:this.$=v[t];break;case 18:this.$=v[t];break;case 19:this.$=v[t];break;case 20:this.$=v[t];break;case 21:this.$=v[t];break;case 22:this.$=v[t];break;case 23:this.$=v[t];break;case 24:this.$=new x.Block;break;case 25:this.$=v[t-1];break;case 26:this.$=new x.Literal(v[t]);break;case 27:this.$=new x.Literal(v[t]);break;case 28:this.$=new x.Literal(v[t]);break;case 29:this.$=v[t];break;case 30:this.$=new x.Literal(v[t]);break;case 31:this.$=new x.Literal(v[t]);break;case 32:this.$=function(){var z;z=new x.Literal(v[t]),v[t]==="undefined"&&(z.isUndefined=!0);return z;}();break;case 33:this.$=new x.Assign(v[t-2],v[t]);break;case 34:this.$=new x.Assign(v[t-4],v[t-1]);break;case 35:this.$=new x.Value(v[t]);break;case 36:this.$=new x.Assign(new x.Value(v[t-2]),v[t],"object");break;case 37:this.$=new x.Assign(new x.Value(v[t-4]),v[t-1],"object");break;case 38:this.$=v[t];break;case 39:this.$=v[t];break; +case 40:this.$=v[t];break;case 41:this.$=v[t];break;case 42:this.$=new x.Return(v[t]);break;case 43:this.$=new x.Return;break;case 44:this.$=new x.Comment(v[t]);break;case 45:this.$=new x.Code(v[t-3],v[t],v[t-1]);break;case 46:this.$=new x.Code([],v[t],v[t-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=v[t];break;case 50:this.$=v[t];break;case 51:this.$=[];break;case 52:this.$=[v[t]];break;case 53:this.$=v[t-2].concat(v[t]);break;case 54:this.$=new x.Param(v[t]);break;case 55:this.$=new x.Param(v[t-1],null,!0);break;case 56:this.$=new x.Param(v[t-2],v[t]);break;case 57:this.$=v[t];break;case 58:this.$=v[t];break;case 59:this.$=v[t];break;case 60:this.$=v[t];break;case 61:this.$=new x.Splat(v[t-1]);break;case 62:this.$=new x.Value(v[t]);break;case 63:this.$=v[t-1].push(v[t]);break;case 64:this.$=new x.Value(v[t-1],[v[t]]);break;case 65:this.$=v[t];break;case 66:this.$=v[t];break;case 67:this.$=new x.Value(v[t]);break;case 68:this.$=new x.Value(v[t]);break;case 69:this.$=v[t];break;case 70:this.$=new x.Value(v[t]);break;case 71:this.$=new x.Value(v[t]);break;case 72:this.$=new x.Value(v[t]);break;case 73:this.$=v[t];break;case 74:this.$=new x.Access(v[t]);break;case 75:this.$=new x.Access(v[t],"soak");break;case 76:this.$=new x.Access(v[t],"proto");break;case 77:this.$=new x.Access(new x.Literal("prototype"));break;case 78:this.$=v[t];break;case 79:this.$=v[t-1];break;case 80:this.$=x.extend(v[t],{soak:!0});break;case 81:this.$=x.extend(v[t],{proto:!0});break;case 82:this.$=new x.Index(v[t]);break;case 83:this.$=new x.Slice(v[t]);break;case 84:this.$=new x.Obj(v[t-2],v[t-3].generated);break;case 85:this.$=[];break;case 86:this.$=[v[t]];break;case 87:this.$=v[t-2].concat(v[t]);break;case 88:this.$=v[t-3].concat(v[t]);break;case 89:this.$=v[t-5].concat(v[t-2]);break;case 90:this.$=new x.Class;break;case 91:this.$=new x.Class(null,null,v[t]);break;case 92:this.$=new x.Class(null,v[t]);break;case 93:this.$=new x.Class(null,v[t-1],v[t]);break;case 94:this.$=new x.Class(v[t]);break;case 95:this.$=new x.Class(v[t-1],null,v[t]);break;case 96:this.$=new x.Class(v[t-2],v[t]);break;case 97:this.$=new x.Class(v[t-3],v[t-1],v[t]);break;case 98:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 99:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 100:this.$=new x.Call("super",[new x.Splat(new x.Literal("arguments"))]);break;case 101:this.$=new x.Call("super",v[t]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=v[t-2];break;case 106:this.$=new x.Value(new x.Literal("this"));break;case 107:this.$=new x.Value(new x.Literal("this"));break;case 108:this.$=new x.Value(new x.Literal("this"),[new x.Access(v[t])],"this");break;case 109:this.$=new x.Arr([]);break;case 110:this.$=new x.Arr(v[t-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new x.Range(v[t-3],v[t-1],v[t-2]);break;case 114:this.$=new x.Range(v[t-2],v[t],v[t-1]);break;case 115:this.$=new x.Range(v[t-1],null,v[t]);break;case 116:this.$=new x.Range(null,v[t],v[t-1]);break;case 117:this.$=[v[t]];break;case 118:this.$=v[t-2].concat(v[t]);break;case 119:this.$=v[t-3].concat(v[t]);break;case 120:this.$=v[t-2];break;case 121:this.$=v[t-5].concat(v[t-2]);break;case 122:this.$=v[t];break;case 123:this.$=v[t];break;case 124:this.$=v[t];break;case 125:this.$=[].concat(v[t-2],v[t]);break;case 126:this.$=new x.Try(v[t]);break;case 127:this.$=new x.Try(v[t-1],v[t][0],v[t][1]);break;case 128:this.$=new x.Try(v[t-2],null,null,v[t]);break;case 129:this.$=new x.Try(v[t-3],v[t-2][0],v[t-2][1],v[t]);break;case 130:this.$=[v[t-1],v[t]];break;case 131:this.$=new x.Throw(v[t]);break;case 132:this.$=new x.Parens(v[t-1]);break;case 133:this.$=new x.Parens(v[t-2]);break;case 134:this.$=new x.While(v[t]);break;case 135:this.$=new x.While(v[t-2],{guard:v[t]});break;case 136:this.$=new x.While(v[t],{invert:!0});break;case 137:this.$=new x.While(v[t-2],{invert:!0,guard:v[t]});break;case 138:this.$=v[t-1].addBody(v[t]);break;case 139:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 140:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 141:this.$=v[t];break;case 142:this.$=(new x.While(new x.Literal("true"))).addBody(v[t]);break;case 143:this.$=(new x.While(new x.Literal("true"))).addBody(x.Block.wrap([v[t]]));break;case 144:this.$=new x.For(v[t-1],v[t]);break;case 145:this.$=new x.For(v[t-1],v[t]);break;case 146:this.$=new x.For(v[t],v[t-1]);break;case 147:this.$={source:new x.Value(v[t])};break;case 148:this.$=function(){v[t].own=v[t-1].own,v[t].name=v[t-1][0],v[t].index=v[t-1][1];return v[t];}();break;case 149:this.$=v[t];break;case 150:this.$=function(){v[t].own=!0;return v[t];}();break;case 151:this.$=v[t];break;case 152:this.$=new x.Value(v[t]);break;case 153:this.$=new x.Value(v[t]);break;case 154:this.$=[v[t]];break;case 155:this.$=[v[t-2],v[t]];break;case 156:this.$={source:v[t]};break;case 157:this.$={source:v[t],object:!0};break;case 158:this.$={source:v[t-2],guard:v[t]};break;case 159:this.$={source:v[t-2],guard:v[t],object:!0};break;case 160:this.$={source:v[t-2],step:v[t]};break;case 161:this.$={source:v[t-4],guard:v[t-2],step:v[t]};break;case 162:this.$={source:v[t-4],step:v[t-2],guard:v[t]};break;case 163:this.$=new x.Switch(v[t-3],v[t-1]);break;case 164:this.$=new x.Switch(v[t-5],v[t-3],v[t-1]);break;case 165:this.$=new x.Switch(null,v[t-1]);break;case 166:this.$=new x.Switch(null,v[t-3],v[t-1]);break;case 167:this.$=v[t];break;case 168:this.$=v[t-1].concat(v[t]);break;case 169:this.$=[[v[t-1],v[t]]];break;case 170:this.$=[[v[t-2],v[t-1]]];break;case 171:this.$=new x.If(v[t-1],v[t],{type:v[t-2]});break;case 172:this.$=v[t-4].addElse(new x.If(v[t-1],v[t],{type:v[t-2]}));break;case 173:this.$=v[t];break;case 174:this.$=v[t-2].addElse(v[t]);break;case 175:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 176:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 177:this.$=new x.Op(v[t-1],v[t]); +break;case 178:this.$=new x.Op("-",v[t]);break;case 179:this.$=new x.Op("+",v[t]);break;case 180:this.$=new x.Op("--",v[t]);break;case 181:this.$=new x.Op("++",v[t]);break;case 182:this.$=new x.Op("--",v[t-1],null,!0);break;case 183:this.$=new x.Op("++",v[t-1],null,!0);break;case 184:this.$=new x.Existence(v[t-1]);break;case 185:this.$=new x.Op("+",v[t-2],v[t]);break;case 186:this.$=new x.Op("-",v[t-2],v[t]);break;case 187:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 188:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 189:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 190:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 191:this.$=function(){return v[t-1].charAt(0)==="!"?(new x.Op(v[t-1].slice(1),v[t-2],v[t])).invert():new x.Op(v[t-1],v[t-2],v[t]);}();break;case 192:this.$=new x.Assign(v[t-2],v[t],v[t-1]);break;case 193:this.$=new x.Assign(v[t-4],v[t-1],v[t-3]);break;case 194:this.$=new x.Extends(v[t-2],v[t]);}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(s,r){throw new Error(s); +},parse:function n(ab){function N(){var r;r=aa.lexer.lex()||1,typeof r!="number"&&(r=aa.symbols_[r]||r);return r;}function O(r){Z.length=Z.length-2*r,Y.length=Y.length-r,X.length=X.length-r;}var aa=this,Z=[0],Y=[null],X=[],W=this.table,V="",U=0,T=0,S=0,R=2,Q=1;this.lexer.setInput(ab),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var P=this.lexer.yylloc;X.push(P),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var M,K,J,I,H,G,F={},E,D,C,B;for(;;){J=Z[Z.length-1],this.defaultActions[J]?I=this.defaultActions[J]:(M==null&&(M=N()),I=W[J]&&W[J][M]);if(typeof I=="undefined"||!I.length||!I[0]){if(!S){B=[];for(E in W[J]){this.terminals_[E]&&E>2&&B.push("'"+this.terminals_[E]+"'");}var L="";this.lexer.showPosition?L="Parse error on line "+(U+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+B.join(", "):L="Parse error on line "+(U+1)+": Unexpected "+(M==1?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(L,{text:this.lexer.match,token:this.terminals_[M]||M,line:this.lexer.yylineno,loc:P,expected:B});}if(S==3){if(M==Q){throw new Error(L||"Parsing halted.");}T=this.lexer.yyleng,V=this.lexer.yytext,U=this.lexer.yylineno,P=this.lexer.yylloc,M=N();}for(;;){if(R.toString() in W[J]){break;}if(J==0){throw new Error(L||"Parsing halted.");}O(1),J=Z[Z.length-1];}K=M,M=R,J=Z[Z.length-1],I=W[J]&&W[J][R],S=3;}if(I[0] instanceof Array&&I.length>1){throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+M);}switch(I[0]){case 1:Z.push(M),Y.push(this.lexer.yytext),X.push(this.lexer.yylloc),Z.push(I[1]),M=null,K?(M=K,K=null):(T=this.lexer.yyleng,V=this.lexer.yytext,U=this.lexer.yylineno,P=this.lexer.yylloc,S>0&&S--);break;case 2:D=this.productions_[I[1]][1],F.$=Y[Y.length-D],F._$={first_line:X[X.length-(D||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(D||1)].first_column,last_column:X[X.length-1].last_column},G=this.performAction.call(F,V,T,U,this.yy,I[1],Y,X);if(typeof G!="undefined"){return G;}D&&(Z=Z.slice(0,-1*D*2),Y=Y.slice(0,-1*D),X=X.slice(0,-1*D)),Z.push(this.productions_[I[1]][0]),Y.push(F.$),X.push(F._$),C=W[Z[Z.length-2]][Z[Z.length-1]],Z.push(C);break;case 3:return !0;}}return !0;}};q.exports=p;}),f("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(bp,bn,a8){var a6,a4,a2,a0,aY,aW,aU,aS,aQ,aP,aO,aN,aM,aL,aK,aJ,aI,aH,aG,aF,aE,aD,aC,aA,az,ay,ax,aw,av,au,at,ar,aq,ap,ao,an,am,al,ak,aj,ai,ah,ag,af,ae,ad,ac,ab,aa,aB,bs,br,bq,bo,a9,a7,a5,a3,a1,aZ,aX=Object.prototype.hasOwnProperty,aV=function(m,k){function n(){this.constructor=m;}for(var o in k){aX.call(k,o)&&(m[o]=k[o]);}n.prototype=k.prototype,m.prototype=new n,m.__super__=k.prototype;return m;},aT=function(m,k){return function(){return m.apply(k,arguments);};},aR=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k1&&n.level>=aE?"("+m+")":m;},k.prototype.compileRoot=function(n){var m;n.indent=this.tab=n.bare?"":ai,n.scope=new am(null,this,null),n.level=aA,m=this.compileWithDeclarations(n);return n.bare?m:"(function() {\n"+m+"\n}).call(this);\n";},k.prototype.compileWithDeclarations=function(w){var v,u,t,s,r,q,p,o,n,m;u=q="",m=this.expressions;for(r=0,n=m.length;r=aG?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+m+";":m;},k.prototype.toString=function(){return' "'+this.value+'"';};return k;}(),bn.Return=ao=function(){function k(m){m&&!m.unwrap().isUndefined&&(this.expression=m);}aV(k,a0),k.prototype.children=["expression"],k.prototype.isStatement=ab,k.prototype.makeReturn=ah,k.prototype.jumps=ah,k.prototype.compile=function(m,p){var o,n;o=(n=this.expression)!=null?n.makeReturn():void 0;return !o||o instanceof k?k.__super__.compile.call(this,m,p):o.compile(m,p);},k.prototype.compileNode=function(m){return this.tab+("return"+(this.expression?" "+this.expression.compile(m,aC):"")+";");};return k;}(),bn.Value=ad=function(){function k(m,o,n){if(!o&&m instanceof k){return m;}this.base=m,this.properties=o||[],n&&(this[n]=!0);return this;}aV(k,a0),k.prototype.children=["base","properties"],k.prototype.push=function(m){this.properties.push(m);return this;},k.prototype.hasProperties=function(){return !!this.properties.length;},k.prototype.isArray=function(){return !this.properties.length&&this.base instanceof a4;},k.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex();},k.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable();},k.prototype.isSimpleNumber=function(){return this.base instanceof az&&an.test(this.base.value);},k.prototype.isAtomic=function(){var n,m,p,o;o=this.properties.concat(this.base);for(m=0,p=o.length;m"+this.equals],s=o[0],v=o[1],x=this.stepNum?x=+this.stepNum>0?""+s+" "+this.toVar:""+v+" "+this.toVar:t?(n=[+this.fromNum,+this.toNum],w=n[0],q=n[1],n,x=w<=q?""+s+" "+q:""+v+" "+q):(y=""+this.fromVar+" <= "+this.toVar,x=""+y+" ? "+s+" "+this.toVar+" : "+v+" "+this.toVar),r=this.stepVar?""+u+" += "+this.stepVar:t?w<=q?""+u+"++":""+u+"--":""+y+" ? "+u+"++ : "+u+"--";return""+p+"; "+x+"; "+r;},k.prototype.compileArray=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){u=function(){o=[];for(var n=q=+this.fromNum,m=+this.toNum;q<=m?n<=m:n>=m;q<=m?n++:n--){o.push(n);}return o;}.apply(this,arguments),this.exclusive&&u.pop();return"["+u.join(", ")+"]";}x=this.tab+ai,y=B.scope.freeVariable("i"),t=B.scope.freeVariable("results"),v="\n"+x+t+" = [];",this.fromNum&&this.toNum?(B.index=y,A=this.compileNode(B)):(s=""+y+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),z=""+this.fromVar+" <= "+this.toVar,A="var "+s+"; "+z+" ? "+y+" <"+this.equals+" "+this.toVar+" : "+y+" >"+this.equals+" "+this.toVar+"; "+z+" ? "+y+"++ : "+y+"--"),w="{ "+t+".push("+y+"); }\n"+x+"return "+t+";\n"+B.indent; +return"(function() {"+v+"\n"+x+"for ("+A+")"+w+"}).apply(this, arguments)";};return k;}(),bn.Slice=al=function(){function k(m){this.range=m,k.__super__.constructor.call(this);}aV(k,a0),k.prototype.children=["range"],k.prototype.compileNode=function(n){var m,s,r,q,p,o;o=this.range,q=o.to,s=o.from,r=s&&s.compile(n,aC)||"0",m=q&&q.compile(n,aC),q&&(!!this.range.exclusive||+m!==-1)&&(p=", "+(this.range.exclusive?m:an.test(m)?(+m+1).toString():"("+m+" + 1) || 9e9"));return".slice("+r+(p||"")+")";};return k;}(),bn.Obj=av=function(){function k(n,m){this.generated=m!=null?m:!1,this.objects=this.properties=n||[];}aV(k,a0),k.prototype.children=["properties"],k.prototype.compileNode=function(y){var x,w,v,u,t,s,r,q,p,o,m;p=this.properties;if(!p.length){return this.front?"({})":"{}";}if(this.generated){for(o=0,m=p.length;o=0?"[\n"+n.indent+m+"\n"+this.tab+"]":"["+m+"]";},k.prototype.assigns=function(n){var m,q,p,o;o=this.objects;for(q=0,p=o.length;q=aD?"("+S+")":S;}P=this.variable.isObject();if(!H||L!==1||(N=M[0]) instanceof ak){x=A.compile(V,aE),T=[],I=!1;if(!aL.test(x)||this.variable.assigns(x)){T.push(""+(K=V.scope.freeVariable("ref"))+" = "+x),x=K;}for(R=0,u=M.length;R=0&&(m.isExistentialEquals=!0);return(new au(this.context.slice(0,-1),p,new k(o,this.value,"="))).compile(m);},k.prototype.compileSplice=function(z){var y,x,w,v,u,t,s,r,q,p,o,n;p=this.variable.properties.pop().range,w=p.from,s=p.to,x=p.exclusive,t=this.variable.compile(z),o=(w!=null?w.cache(z,aD):void 0)||["0","0"],v=o[0],u=o[1],s?(w!=null?w.isSimpleNumber():void 0)&&s.isSimpleNumber()?(s=+s.compile(z)-+u,x||(s+=1)):(s=s.compile(z)+" - "+u,x||(s+=" + 1")):s="9e9",n=this.value.cache(z,aE),r=n[0],q=n[1],y="[].splice.apply("+t+", ["+v+", "+s+"].concat("+r+")), "+q;return z.level>aA?"("+y+")":y;};return k;}(),bn.Code=aQ=function(){function k(n,m,o){this.params=n||[],this.body=m||new aY,this.bound=o==="boundfunc",this.bound&&(this.context="this");}aV(k,a0),k.prototype.children=["params","body"],k.prototype.isStatement=function(){return !!this.ctor;},k.prototype.jumps=aw,k.prototype.compileNode=function(Z){var Y,X,W,V,U,T,S,R,Q,P,O,N,M,K,J,G,F,E,B,v,s,L,I,H;Z.scope=new am(Z.scope,this.body,this),Z.scope.shared=aB(Z,"sharedScope"),Z.indent+=ai,delete Z.bare,N=[],X=[],s=this.params;for(K=0,F=s.length;K=aG?"("+Y+")":Y;},k.prototype.traverseChildren=function(m,n){if(m){return k.__super__.traverseChildren.call(this,m,n);}};return k;}(),bn.Param=at=function(){function k(n,m,o){this.name=n,this.value=m,this.splat=o;}aV(k,a0),k.prototype.children=["name","value"],k.prototype.compile=function(m){return this.name.compile(m,aE);},k.prototype.asReference=function(n){var m;if(this.reference){return this.reference;}m=this.name,m["this"]?(m=m.properties[0].name,m.value.reserved&&(m=new az("_"+m.value))):m.isComplex()&&(m=new az(n.scope.freeVariable("arg"))),m=new ad(m),this.splat&&(m=new ak(m));return this.reference=m;},k.prototype.isComplex=function(){return this.name.isComplex();};return k;}(),bn.Splat=ak=function(){function k(m){this.name=m.compile?m:new az(m);}aV(k,a0),k.prototype.children=["name"],k.prototype.isAssignable=ab,k.prototype.assigns=function(m){return this.name.assigns(m);},k.prototype.compile=function(m){return this.index!=null?this.compileParam(m):this.name.compile(m);},k.compileSplattedArray=function(v,u,t){var s,r,q,p,o,n,m;o=-1;while((n=u[++o])&&!(n instanceof k)){continue;}if(o>=u.length){return"";}if(u.length===1){q=u[0].compile(v,aE);return t?q:""+a1("slice")+".call("+q+")";}s=u.slice(o);for(p=0,m=s.length;paA||this.returns){p=n.scope.freeVariable("results"),o=""+this.tab+p+" = [];\n",m&&(m=aq.wrap(p,m));}this.guard&&(m=aY.wrap([new aJ(this.guard,m)])),m="\n"+m.compile(n,aA)+"\n"+this.tab;}q=o+this.tab+("while ("+this.condition.compile(n,aC)+") {"+m+"}"),this.returns&&(q+="\n"+this.tab+"return "+p+";");return q;};return k;}(),bn.Op=au=function(){function n(o,s,r,q){var p;if(o==="in"){return new aI(s,r);}if(o==="do"){p=new aW(s,s.params||[]),p["do"]=!0;return p;}if(o==="new"){if(s instanceof aW&&!s["do"]){return s.newInstance();}if(s instanceof aQ&&s.bound||s["do"]){s=new ar(s);}}this.operator=m[o]||o,this.first=s,this.second=r,this.flip=!!q;return this;}var m,k;aV(n,a0),m={"==":"===","!=":"!==",of:"in"},k={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isSimpleNumber=aw,n.prototype.isUnary=function(){return !this.second;},n.prototype.isComplex=function(){var o;return !this.isUnary()||(o=this.operator)!=="+"&&o!=="-"||this.first.isComplex();},n.prototype.isChainable=function(){var o;return(o=this.operator)==="<"||o===">"||o===">="||o==="<="||o==="==="||o==="!==";},n.prototype.invert=function(){var o,s,r,q,p;if(this.isChainable()&&this.first.isChainable()){o=!0,s=this;while(s&&s.operator){o&&(o=s.operator in k),s=s.first;}if(!o){return(new ar(this)).invert();}s=this;while(s&&s.operator){s.invert=!s.invert,s.operator=k[s.operator],s=s.first;}return this;}if(q=k[this.operator]){this.operator=q,this.first.unwrap() instanceof n&&this.first.invert();return this;}return this.second?(new ar(this)).invert():this.operator==="!"&&(r=this.first.unwrap()) instanceof n&&((p=r.operator)==="!"||p==="in"||p==="instanceof")?r:new n("!",this);},n.prototype.unfoldSoak=function(p){var o;return((o=this.operator)==="++"||o==="--"||o==="delete")&&a3(p,this,"first");},n.prototype.compileNode=function(p){var o;if(this.isUnary()){return this.compileUnary(p);}if(this.isChainable()&&this.first.isChainable()){return this.compileChain(p);}if(this.operator==="?"){return this.compileExistence(p);}this.first.front=this.front,o=this.first.compile(p,aD)+" "+this.operator+" "+this.second.compile(p,aD);return p.level<=aD?o:"("+o+")";},n.prototype.compileChain=function(p){var o,s,r,q;q=this.first.second.cache(p),this.first.second=q[0],r=q[1],s=this.first.compile(p,aD),o=""+s+" "+(this.invert?"&&":"||")+" "+r.compile(p)+" "+this.operator+" "+this.second.compile(p,aD);return"("+o+")";},n.prototype.compileExistence=function(p){var o,q;this.first.isComplex()?(q=new az(p.scope.freeVariable("ref")),o=new ar(new a2(q,this.first))):(o=this.first,q=o);return(new aJ(new aO(o),q,{type:"if"})).addElse(this.second).compile(p);},n.prototype.compileUnary=function(p){var o,q;q=[o=this.operator],(o==="new"||o==="typeof"||o==="delete"||(o==="+"||o==="-")&&this.first instanceof n&&this.first.operator===o)&&q.push(" "),o==="new"&&this.first.isStatement(p)&&(this.first=new ar(this.first)),q.push(this.first.compile(p,aD)),this.flip&&q.reverse();return q.join("");},n.prototype.toString=function(o){return n.__super__.toString.call(this,o,this.constructor.name+" "+this.operator);};return n;}(),bn.In=aI=function(){function k(n,m){this.object=n,this.array=m;}aV(k,a0),k.prototype.children=["object","array"],k.prototype.invert=ax,k.prototype.compileNode=function(n){var m,r,q,p,o;if(this.array instanceof ad&&this.array.isArray()){o=this.array.base.objects;for(q=0,p=o.length;q= 0");if(p===q){return m;}m=p+", "+m;return n.level=aF?"("+p+")":p;},k.prototype.unfoldSoak=function(){return this.soak&&this;};return k;}(),aq={wrap:function(m,k){return k.isEmpty()||bo(k.expressions).jumps()?k:k.push(new aW(new ad(new az(m),[new a6(new az("push"))]),[k.pop()]));}},aS={wrap:function(n,m,t){var s,r,q,p,o;if(n.jumps()){return n;}q=new aQ([],aY.wrap([n])),s=[];if((p=n.contains(this.literalArgs))||n.contains(this.literalThis)){o=new az(p?"apply":"call"),s=[new az("this")],p&&s.push(new az("arguments")),q=new ad(q,[new a6(o)]);}q.noReturn=t,r=new aW(q,s);return m?aY.wrap([r]):r;},literalArgs:function(k){return k instanceof az&&k.value==="arguments"&&!k.asKey;},literalThis:function(k){return k instanceof az&&k.value==="this"&&!k.asKey||k instanceof aQ&&k.bound;}},a3=function(m,k,o){var n;if(!!(n=k[o].unfoldSoak(m))){k[o]=n.body,n.body=new ad(k);return n;}},ae={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},aA=1,aC=2,aE=3,aF=4,aD=5,aG=6,ai=" ",aL=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,an=/^[+-]?\d+$/,ay=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,aK=/^['"]/,a1=function(m){var k;k="__"+m,am.root.assign(k,ae[m]);return k;},a7=function(m,k){return m.replace(/\n/g,"$&"+k);};}),f("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(m,k,r){var q,p,o,n;n=m("ace/mode/coffee/helpers"),p=n.extend,o=n.last,k.Scope=q=function(){function s(t,v,u){this.parent=t,this.expressions=v,this.method=u,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(s.root=this);}s.root=null,s.prototype.add=function(u,t,w){var v;return this.shared&&!w?this.parent.add(u,t,w):typeof(v=this.positions[u])=="number"?this.variables[v].type=t:this.positions[u]=this.variables.push({name:u,type:t})-1;},s.prototype.find=function(u,t){if(this.check(u,t)){return !0;}this.add(u,"var");return !1;},s.prototype.parameter=function(t){if(!this.shared||!this.parent.check(t,!0)){return this.add(t,"param");}},s.prototype.check=function(u,t){var w,v;w=!!this.type(u);return w||t?w:(v=this.parent)!=null?!!v.check(u):!!void 0;},s.prototype.temporary=function(u,t){return u.length>1?"_"+u+(t>1?t:""):"_"+(t+parseInt(u,36)).toString(36).replace(/\d/g,"a");},s.prototype.type=function(u){var t,x,w,v;v=this.variables;for(x=0,w=v.length;xhint.end){hint.distance=cursor-hint.end;}else{hint.distance=0;}}}},this);}hints.sort(function(hint1,hint2){if(cursor!==undefined){var diff=hint1.distance-hint2.distance;if(diff!=0){return diff;}}return hint2.status-hint1.status;});if(cursor!==undefined){hints.forEach(function(hint){delete hint.distance;},this);}return hints;};exports.Hint=Hint;function ConversionHint(conversion,arg){this.status=conversion.status;this.message=conversion.message;if(arg){this.start=arg.start;this.end=arg.end;}else{this.start=0;this.end=0;}this.predictions=conversion.predictions;}oop.inherits(ConversionHint,Hint);function Argument(emitter,text,start,end,prefix,suffix){this.emitter=emitter;this.setText(text);this.start=start;this.end=end;this.prefix=prefix;this.suffix=suffix;}Argument.prototype={merge:function(following){if(following.emitter!=this.emitter){throw new Error("Can't merge Arguments from different EventEmitters");}return new Argument(this.emitter,this.text+this.suffix+following.prefix+following.text,this.start,following.end,this.prefix,following.suffix);},setText:function(text){if(text==null){throw new Error("Illegal text for Argument: "+text);}var ev={argument:this,oldText:this.text,text:text};this.text=text;this.emitter._dispatchEvent("argumentChange",ev);},toString:function(){return this.prefix+this.text+this.suffix;}};Argument.merge=function(argArray,start,end){start=(start===undefined)?0:start;end=(end===undefined)?argArray.length:end;var joined;for(var i=start;i: ";if(this.param.description){message+=this.param.description.trim();if(message.charAt(message.length-1)!=="."){message+=".";}if(message.charAt(message.length-1)!==" "){message+=" ";}}var status=Status.VALID;var start=this.arg?this.arg.start:Argument.AT_CURSOR;var end=this.arg?this.arg.end:Argument.AT_CURSOR;var predictions;if(this.conversion){status=this.conversion.status;if(this.conversion.message){message+=this.conversion.message;}predictions=this.conversion.predictions;}var argProvided=this.arg&&this.arg.text!=="";var dataProvided=this.value!==undefined||argProvided;if(this.param.defaultValue===undefined&&!dataProvided){status=Status.INVALID;message+="Required";}return new Hint(status,message,start,end,predictions);},complete:function(){if(this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0){this.setValue(this.conversion.predictions[0]);}},isPositionCaptured:function(position){if(!this.arg){return false;}if(this.arg.start===-1){return false;}if(position>this.arg.end){return false;}if(position===this.arg.end){return this.conversion.status!==Status.VALID||this.conversion.predictions.length!==0;}return true;},decrement:function(){var replacement=this.param.type.decrement(this.value);if(replacement!=null){this.setValue(replacement);}},increment:function(){var replacement=this.param.type.increment(this.value);if(replacement!=null){this.setValue(replacement);}},toString:function(){return this.arg?this.arg.toString():"";}};exports.Assignment=Assignment;var commandParam={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(command,arg){var docs=[]; +docs.push(" > ");docs.push(command.name);if(command.params&&command.params.length>0){command.params.forEach(function(param){if(param.defaultValue===undefined){docs.push(" ["+param.name+"]");}else{docs.push(" ["+param.name+"]");}},this);}docs.push("
                                                                          ");docs.push(command.description?command.description:"(No description)");docs.push("
                                                                          ");if(command.params&&command.params.length>0){docs.push("
                                                                            ");command.params.forEach(function(param){docs.push("
                                                                          • ");docs.push(""+param.name+": ");docs.push(param.description?param.description:"(No description)");if(param.defaultValue===undefined){docs.push(" [Required]");}else{if(param.defaultValue===null){docs.push(" [Optional]");}else{docs.push(" [Default: "+param.defaultValue+"]");}}docs.push("
                                                                          • ");},this);docs.push("
                                                                          ");}return new Hint(Status.VALID,docs.join(""),arg);}};function Requisition(env){this.env=env;this.commandAssignment=new Assignment(commandParam,this);}Requisition.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(assignment){if(assignment.param.name!=="__command"){return;}this._assignments={};if(assignment.value){assignment.value.params.forEach(function(param){this._assignments[param.name]=new Assignment(param,this);},this);}this.assignmentCount=Object.keys(this._assignments).length;this._dispatchEvent("commandChange",{command:assignment.value});},getAssignment:function(nameOrNumber){var name=(typeof nameOrNumber==="string")?nameOrNumber:Object.keys(this._assignments)[nameOrNumber];return this._assignments[name];},getParameterNames:function(){return Object.keys(this._assignments);},cloneAssignments:function(){return Object.keys(this._assignments).map(function(name){return this._assignments[name];},this);},_updateHints:function(){this.getAssignments(true).forEach(function(assignment){this._hints.push(assignment.getHint());},this);Hint.sort(this._hints);},getWorstHint:function(){return this._hints[0];},getArgsObject:function(){var args={};this.getAssignments().forEach(function(assignment){args[assignment.param.name]=assignment.value;},this);return args;},getAssignments:function(includeCommand){var args=[];if(includeCommand===true){args.push(this.commandAssignment);}Object.keys(this._assignments).forEach(function(name){args.push(this.getAssignment(name));},this);return args;},setDefaultValues:function(){this.getAssignments().forEach(function(assignment){assignment.setValue(undefined);},this);},exec:function(){canon.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString());},toCanonicalString:function(){var line=[];line.push(this.commandAssignment.value.name);Object.keys(this._assignments).forEach(function(name){var assignment=this._assignments[name];var type=assignment.param.type;if(assignment.value!==assignment.param.defaultValue){line.push(" ");line.push(type.stringify(assignment.value));}},this);return line.join("");}};oop.implement(Requisition.prototype,EventEmitter);exports.Requisition=Requisition;function CliRequisition(env,options){Requisition.call(this,env);if(options&&options.flags){this.flags=options.flags;}}oop.inherits(CliRequisition,Requisition);(function(){CliRequisition.prototype.update=function(input){this.input=input;this._hints=[];var args=this._tokenize(input.typed);this._split(args);if(this.commandAssignment.value){this._assign(args);}this._updateHints();};CliRequisition.prototype.getInputStatusMarkup=function(){var scores=this.toString().split("").map(function(ch){return Status.VALID;});this._hints.forEach(function(hint){for(var i=hint.start;i<=hint.end;i++){if(hint.status>scores[i]){scores[i]=hint.status;}}},this);return scores;};CliRequisition.prototype.toString=function(){return this.getAssignments(true).map(function(assignment){return assignment.toString();},this).join("");};var superUpdateHints=CliRequisition.prototype._updateHints;CliRequisition.prototype._updateHints=function(){superUpdateHints.call(this);var c=this.input.cursor;this._hints.forEach(function(hint){var startInHint=c.start>=hint.start&&c.start<=hint.end;var endInHint=c.end>=hint.start&&c.end<=hint.end;var inHint=startInHint||endInHint;if(!inHint&&hint.status===Status.INCOMPLETE){hint.status=Status.INVALID;}},this);Hint.sort(this._hints);};CliRequisition.prototype.getHints=function(){return this._hints;};CliRequisition.prototype.getAssignmentAt=function(position){var assignments=this.getAssignments(true);for(var i=0;i=typed.length){if(mode!==OUTSIDE){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start,i,prefix,""));}else{if(i!==start){var extra=typed.substring(start,i);var lastArg=args[args.length-1];if(!lastArg){lastArg=new Argument(this,"",i,i,extra,"");args.push(lastArg);}else{lastArg.suffix+=extra;}}}break;}var c=typed[i];switch(mode){case OUTSIDE:if(c==="'"){prefix=typed.substring(start,i+1);mode=IN_SINGLE_Q;start=i+1;}else{if(c==='"'){prefix=typed.substring(start,i+1);mode=IN_DOUBLE_Q;start=i+1;}else{if(/ /.test(c)){}else{prefix=typed.substring(start,i);mode=IN_SIMPLE;start=i; +}}}break;case IN_SIMPLE:if(c===" "){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start,i,prefix,""));mode=OUTSIDE;start=i;prefix="";}break;case IN_SINGLE_Q:if(c==="'"){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start-1,i+1,prefix,c));mode=OUTSIDE;start=i+1;prefix="";}break;case IN_DOUBLE_Q:if(c==='"'){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start-1,i+1,prefix,c));mode=OUTSIDE;start=i+1;prefix="";}break;}i++;}return args;};CliRequisition.prototype._split=function(args){var argsUsed=1;var arg;while(argsUsed<=args.length){var arg=Argument.merge(args,0,argsUsed);this.commandAssignment.setArgument(arg);if(!this.commandAssignment.value){break;}if(this.commandAssignment.value.exec){for(var i=0;i=args.length){break;}continue;}if(assignment.param.type.name==="boolean"){assignment.setValue(true);}else{if(i+10){var remaining=Argument.merge(args);this._hints.push(new Hint(Status.INVALID,"Input '"+remaining.text+"' makes no sense.",remaining));}};})();exports.CliRequisition=CliRequisition;});define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(require,exports,module){var types=require("pilot/types");var SelectionType=require("pilot/types/basic").SelectionType;var direction=new SelectionType({name:"direction",data:["above","below"]});var hintDirectionSetting={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"};var outputDirectionSetting={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"};var outputHeightSetting={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};exports.startup=function(data,reason){types.registerType(direction);data.env.settings.addSetting(hintDirectionSetting);data.env.settings.addSetting(outputDirectionSetting);data.env.settings.addSetting(outputHeightSetting);};exports.shutdown=function(data,reason){types.unregisterType(direction);data.env.settings.removeSetting(hintDirectionSetting);data.env.settings.removeSetting(outputDirectionSetting);data.env.settings.removeSetting(outputHeightSetting);};});define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(require,exports,module){var editorCss=require("text!cockpit/ui/cli_view.css");var event=require("pilot/event");var dom=require("pilot/dom");dom.importCssString(editorCss);var event=require("pilot/event");var keys=require("pilot/keys");var canon=require("pilot/canon");var Status=require("pilot/types").Status;var CliRequisition=require("cockpit/cli").CliRequisition;var Hint=require("cockpit/cli").Hint;var RequestView=require("cockpit/ui/request_view").RequestView;var NO_HINT=new Hint(Status.VALID,"",0,0);exports.startup=function(data,reason){var cli=new CliRequisition(data.env);var cliView=new CliView(cli,data.env);data.env.cli=cli;};function CliView(cli,env){cli.cliView=this;this.cli=cli;this.doc=document;this.win=dom.getParentWindow(this.doc);this.env=env;this.element=this.doc.getElementById("cockpitInput");if(!this.element){return;}this.settings=env.settings;this.hintDirection=this.settings.getSetting("hintDirection");this.outputDirection=this.settings.getSetting("outputDirection");this.outputHeight=this.settings.getSetting("outputHeight");this.isUpdating=false;this.createElements();this.update();}CliView.prototype={createElements:function(){var input=this.element;this.element.spellcheck=false;this.output=this.doc.getElementById("cockpitOutput");this.popupOutput=(this.output==null);if(!this.output){this.output=this.doc.createElement("div");this.output.id="cockpitOutput";this.output.className="cptOutput";input.parentNode.insertBefore(this.output,input.nextSibling);var setMaxOutputHeight=function(){this.output.style.maxHeight=this.outputHeight.get()+"px";}.bind(this);this.outputHeight.addEventListener("change",setMaxOutputHeight);setMaxOutputHeight();}this.completer=this.doc.createElement("div");this.completer.className="cptCompletion VALID";this.completer.style.color=dom.computedStyle(input,"color");this.completer.style.fontSize=dom.computedStyle(input,"fontSize");this.completer.style.fontFamily=dom.computedStyle(input,"fontFamily");this.completer.style.fontWeight=dom.computedStyle(input,"fontWeight");this.completer.style.fontStyle=dom.computedStyle(input,"fontStyle");input.parentNode.insertBefore(this.completer,input.nextSibling);this.completer.style.backgroundColor=input.style.backgroundColor;input.style.backgroundColor="transparent";this.hinter=this.doc.createElement("div");this.hinter.className="cptHints"; +input.parentNode.insertBefore(this.hinter,input.nextSibling);var resizer=this.resizer.bind(this);event.addListener(this.win,"resize",resizer);this.hintDirection.addEventListener("change",resizer);this.outputDirection.addEventListener("change",resizer);resizer();canon.addEventListener("output",function(ev){new RequestView(ev.request,this);}.bind(this));event.addCommandKeyListener(input,this.onCommandKey.bind(this));event.addListener(input,"keyup",this.onKeyUp.bind(this));event.addListener(input,"mouseup",function(ev){this.isUpdating=true;this.update();this.isUpdating=false;}.bind(this));this.cli.addEventListener("argumentChange",this.onArgChange.bind(this));event.addListener(input,"focus",function(){dom.addCssClass(this.output,"cptFocusPopup");dom.addCssClass(this.hinter,"cptFocusPopup");}.bind(this));function hideOutput(){dom.removeCssClass(this.output,"cptFocusPopup");dom.removeCssClass(this.hinter,"cptFocusPopup");}event.addListener(input,"blur",hideOutput.bind(this));hideOutput.call(this);},scrollOutputToBottom:function(){var scrollHeight=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=scrollHeight-this.output.clientHeight;},resizer:function(){var rect=this.element.getClientRects()[0];this.completer.style.top=rect.top+"px";var height=rect.bottom-rect.top;this.completer.style.height=height+"px";this.completer.style.lineHeight=height+"px";this.completer.style.left=rect.left+"px";var width=rect.right-rect.left;this.completer.style.width=width+"px";if(this.hintDirection.get()==="below"){this.hinter.style.top=rect.bottom+"px";this.hinter.style.bottom="auto";}else{this.hinter.style.top="auto";this.hinter.style.bottom=(this.doc.documentElement.clientHeight-rect.top)+"px";}this.hinter.style.left=(rect.left+30)+"px";this.hinter.style.maxWidth=(width-110)+"px";if(this.popupOutput){if(this.outputDirection.get()==="below"){this.output.style.top=rect.bottom+"px";this.output.style.bottom="auto";}else{this.output.style.top="auto";this.output.style.bottom=(this.doc.documentElement.clientHeight-rect.top)+"px";}this.output.style.left=rect.left+"px";this.output.style.width=(width-80)+"px";}},onCommandKey:function(ev,hashId,keyCode){var stopEvent;if(keyCode===keys.TAB||keyCode===keys.UP||keyCode===keys.DOWN){stopEvent=true;}else{if(hashId!=0||keyCode!=0){stopEvent=canon.execKeyCommand(this.env,"cli",hashId,keyCode);}}stopEvent&&event.stopEvent(ev);},onKeyUp:function(ev){var handled;if(ev.keyCode===keys.RETURN){var worst=this.cli.getWorstHint();if(worst.status===Status.VALID){this.cli.exec();this.element.value="";}else{dom.setSelectionStart(this.element,worst.start);dom.setSelectionEnd(this.element,worst.end);}}this.update();var current=this.cli.getAssignmentAt(dom.getSelectionStart(this.element));if(current){if(ev.keyCode===keys.TAB){current.complete();this.update();}if(ev.keyCode===keys.UP){current.increment();this.update();}if(ev.keyCode===keys.DOWN){current.decrement();this.update();}}return handled;},update:function(){this.isUpdating=true;var input={typed:this.element.value,cursor:{start:dom.getSelectionStart(this.element),end:dom.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(input);var display=this.cli.getAssignmentAt(input.cursor.start).getHint();dom.removeCssClass(this.completer,Status.VALID.toString());dom.removeCssClass(this.completer,Status.INCOMPLETE.toString());dom.removeCssClass(this.completer,Status.INVALID.toString());var completion='> ';if(this.element.value.length>0){var scores=this.cli.getInputStatusMarkup();completion+=this.markupStatusScore(scores);}if(this.element.value.length>0&&display.predictions&&display.predictions.length>0){var tab=display.predictions[0];completion+="  ⇥ "+(tab.name?tab.name:tab);}this.completer.innerHTML=completion;dom.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var hint="";if(this.element.value.length!==0){hint+=display.message;if(display.predictions&&display.predictions.length>0){hint+=": [ ";display.predictions.forEach(function(prediction){hint+=(prediction.name?prediction.name:prediction);hint+=" | ";},this);hint=hint.replace(/\| $/,"]");}}this.hinter.innerHTML=hint;if(hint.length===0){dom.addCssClass(this.hinter,"cptNoPopup");}else{dom.removeCssClass(this.hinter,"cptNoPopup");}this.isUpdating=false;},markupStatusScore:function(scores){var completion="";var i=0;var lastStatus=-1;while(true){if(lastStatus!==scores[i]){completion+="";lastStatus=scores[i];}completion+=this.element.value[i];i++;if(i===this.element.value.length){completion+="";break;}if(lastStatus!==scores[i]){completion+="";}}return completion;},onArgChange:function(ev){if(this.isUpdating){return;}var prefix=this.element.value.substring(0,ev.argument.start);var suffix=this.element.value.substring(ev.argument.end);var insert=typeof ev.text==="string"?ev.text:ev.text.name;this.element.value=prefix+insert+suffix;var insertEnd=(prefix+insert).length;this.element.selectionStart=insertEnd;this.element.selectionEnd=insertEnd;}};exports.CliView=CliView;});define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(require,exports,module){var dom=require("pilot/dom");var event=require("pilot/event");var requestViewHtml=require("text!cockpit/ui/request_view.html");var Templater=require("pilot/domtemplate").Templater;var requestViewCss=require("text!cockpit/ui/request_view.css");dom.importCssString(requestViewCss);var templates=document.createElement("div");templates.innerHTML=requestViewHtml;var row=templates.querySelector(".cptRow");function imageUrl(path){var dataUrl;try{dataUrl=require("text!cockpit/ui/"+path);}catch(e){}if(dataUrl){return dataUrl;}var filename=module.id.split("/").pop()+".js";var imagePath;if(module.uri.substr(-filename.length)!==filename){console.error("Can't work out path from module.uri/module.id"); +return path;}if(module.uri){var end=module.uri.length-filename.length-1;return module.uri.substr(0,end)+"/"+path;}return filename+path;}function RequestView(request,cliView){this.request=request;this.cliView=cliView;this.imageUrl=imageUrl;this.rowin=null;this.rowout=null;this.output=null;this.hide=null;this.show=null;this.duration=null;this.throb=null;new Templater().processNode(row.cloneNode(true),this);this.cliView.output.appendChild(this.rowin);this.cliView.output.appendChild(this.rowout);this.request.addEventListener("output",this.onRequestChange.bind(this));}RequestView.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed;},executeRequest:function(ev){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}});this.cliView.cli.exec();},hideOutput:function(ev){this.output.style.display="none";dom.addCssClass(this.hide,"cmd_hidden");dom.removeCssClass(this.show,"cmd_hidden");event.stopPropagation(ev);},showOutput:function(ev){this.output.style.display="block";dom.removeCssClass(this.hide,"cmd_hidden");dom.addCssClass(this.show,"cmd_hidden");event.stopPropagation(ev);},remove:function(ev){this.cliView.output.removeChild(this.rowin);this.cliView.output.removeChild(this.rowout);event.stopPropagation(ev);},onRequestChange:function(ev){this.duration.innerHTML=this.request.duration?"completed in "+(this.request.duration/1000)+" sec ":"";this.output.innerHTML="";this.request.outputs.forEach(function(output){var node;if(typeof output=="string"){node=document.createElement("p");node.innerHTML=output;}else{node=output;}this.output.appendChild(node);},this);this.cliView.scrollOutputToBottom();dom.setCssClass(this.output,"cmd_error",this.request.error);this.throb.style.display=this.request.completed?"none":"block";}};exports.RequestView=RequestView;});define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[];}Templater.prototype.processNode=function(node,data){if(typeof node==="string"){node=document.getElementById(node);}if(data===null||data===undefined){data={};}this.scope.push(node.nodeName+(node.id?"#"+node.id:""));try{if(node.attributes&&node.attributes.length){if(node.hasAttribute("foreach")){this.processForEach(node,data);return;}if(node.hasAttribute("if")){if(!this.processIf(node,data)){return;}}data.__element=node;var attrs=Array.prototype.slice.call(node.attributes);for(var i=0;i1){parts.forEach(function(part){if(part===null||part===undefined||part===""){return;}if(part.charAt(0)==="$"){part=this.envEval(part.slice(1),data,node.data);}if(part===null){part="null";}if(part===undefined){part="undefined";}if(typeof part.cloneNode!=="function"){part=node.ownerDocument.createTextNode(part.toString());}node.parentNode.insertBefore(part,node);},this);node.parentNode.removeChild(node);}};Templater.prototype.stripBraces=function(str){if(!str.match(/\$\{.*\}/g)){this.handleError("Expected "+str+" to match ${...}"); +return str;}return str.slice(2,-1);};Templater.prototype.property=function(path,data,newValue){this.scope.push(path);try{if(typeof path==="string"){path=path.split(".");}var value=data[path[0]];if(path.length===1){if(newValue!==undefined){data[path[0]]=newValue;}if(typeof value==="function"){return function(){return value.apply(data,arguments);};}return value;}if(!value){this.handleError("Can't find path="+path);return null;}return this.property(path.slice(1),value,newValue);}finally{this.scope.pop();}};Templater.prototype.envEval=function(script,env,context){with(env){try{this.scope.push(context);return eval(script);}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script;}finally{this.scope.pop();}}};Templater.prototype.handleError=function(message,ex){this.logError(message);this.logError("In: "+this.scope.join(" > "));if(ex){this.logError(ex);}};Templater.prototype.logError=function(message){window.console&&window.console.log&&console.log(message);};exports.Templater=Templater;});define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(require,exports,module){var canon=require("pilot/canon");var bangCommandSpec={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(env,args,request){var req=new XMLHttpRequest();req.open("GET","/exec?args="+args.command,true);req.onreadystatechange=function(ev){if(req.readyState==4){if(req.status==200){request.done("
                                                                          "+req.responseText+"
                                                                          ");}}};req.send(null);}};var canon=require("pilot/canon");exports.startup=function(data,reason){canon.addCommand(bangCommandSpec);};exports.shutdown=function(data,reason){canon.removeCommand(bangCommandSpec);};});define("text!cockpit/ui/cli_view.css",[],""+"#cockpitInput { padding-left: 16px; }"+""+".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }"+""+".cptCompletion { padding: 0; position: absolute; z-index: -1000; }"+".cptCompletion.VALID { background: #FFF; }"+".cptCompletion.INCOMPLETE { background: #DDD; }"+".cptCompletion.INVALID { background: #DDD; }"+".cptCompletion span { color: #FFF; }"+".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }"+".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }"+"span.cptPrompt { color: #66F; font-weight: bold; }"+""+""+".cptHints {"+" color: #000;"+" position: absolute;"+" border: 1px solid rgba(230, 230, 230, 0.8);"+" background: rgba(250, 250, 250, 0.8);"+" -moz-border-radius-topleft: 10px;"+" -moz-border-radius-topright: 10px;"+" border-top-left-radius: 10px; border-top-right-radius: 10px;"+" z-index: 1000;"+" padding: 8px;"+" display: none;"+"}"+""+".cptFocusPopup { display: block; }"+".cptFocusPopup.cptNoPopup { display: none; }"+""+".cptHints ul { margin: 0; padding: 0 15px; }"+""+".cptGt { font-weight: bold; font-size: 120%; }"+"");define("text!cockpit/ui/request_view.css",[],""+".cptRowIn {"+" display: box; display: -moz-box; display: -webkit-box;"+" box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;"+" box-align: center; -moz-box-align: center; -webkit-box-align: center;"+" color: #333;"+" background-color: #EEE;"+" width: 100%;"+" font-family: consolas, courier, monospace;"+"}"+".cptRowIn > * { padding-left: 2px; padding-right: 2px; }"+".cptRowIn > img { cursor: pointer; }"+".cptHover { display: none; }"+".cptRowIn:hover > .cptHover { display: block; }"+".cptRowIn:hover > .cptHover.cptHidden { display: none; }"+".cptOutTyped {"+" box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;"+" font-weight: bold; color: #000; font-size: 120%;"+"}"+".cptRowOutput { padding-left: 10px; line-height: 1.2em; }"+".cptRowOutput strong,"+".cptRowOutput b,"+".cptRowOutput th,"+".cptRowOutput h1,"+".cptRowOutput h2,"+".cptRowOutput h3 { color: #000; }"+".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }"+".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }"+".cptRowOutput input[type=password],"+".cptRowOutput input[type=text],"+".cptRowOutput textarea {"+" color: #000; font-size: 120%;"+" background: transparent; padding: 3px;"+" border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;"+"}"+".cptRowOutput table,"+".cptRowOutput td,"+".cptRowOutput th { border: 0; padding: 0 2px; }"+".cptRowOutput .right { text-align: right; }"+"");define("text!cockpit/ui/request_view.html",[],""+"
                                                                          "+" "+'
                                                                          '+""+" "+'
                                                                          >
                                                                          '+'
                                                                          ${request.typed}
                                                                          '+""+" "+'
                                                                          '+' Hide command output'+' Show command output'+' Remove this command from the history"+""+"
                                                                          "+""+" "+'
                                                                          '+'
                                                                          '+' '+"
                                                                          "+"
                                                                          "+"");define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); +define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7");define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg==");define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII=");define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII=");define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); +define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII=");define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII=");define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); +},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-worker-javascript",function(A){function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a});},this.emit=function(a,b){postMessage({type:"event",name:a,data:b});};}).call(c.prototype);return new c;}function initBaseUrls(a){require.tlns=a;}var console={log:function(a){postMessage({type:"log",data:a});}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports;}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a);};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a;}});},main,sender;onmessage=function(a){var b=a.data;if(b.command){main[b.command].apply(main,b.args);}else{if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender);}else{b.event&&sender&&sender._dispatchEvent(b.event,b.data);}}},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function"){return new TypeError;}var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a;}return b.call.apply(b,c.concat(d.call(arguments)));};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e;};}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__")){i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);}Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]";}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); +}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b); +},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip){p+=A.indent;}!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt();}bm("}",h),p=e;}else{a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);}j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c;}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)"){x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());}return b;}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return !0;}return !1;}function bP(a){var b=p,c,d=G,e=x;if(e.id===";"){be("Unnecessary semicolon.",e),bm(";");}else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c;}}function bO(a){var b=0,c;if(x.id===";"&&!z){for(;;){c=bl(b);if(c.reach){return;}if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break;}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break;}b+=1;}}}function bN(a){var b=bM(a);if(b){return b;}O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value);}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value;}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this;};return c;}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b;}bg("Bad assignment.",b);},20);}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this;};return d;}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b;}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O);}bg("Bad assignment.",b);},20);}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined");}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this;};return c;}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function"){return b(a,this);}this.left=a,this.right=bn(c);return this;};return e;}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this;});}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c;}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c;}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--"){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);}return this;};return c;}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z"){a.identifier=a.reserved=!0;}return a;}function bz(a,b){var c=by(a,b);c.block=!0;return c;}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c;}function bx(a){return bw(a,0);}function bw(a,b){var c=M[a];if(!c||typeof c!="object"){M[a]=c={id:a,lbp:b,value:a};}return c;}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x);}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value);}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from)); +}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b);}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value);}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value);}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud){d=O.fud();}else{if(O.nud){d=O.nud();}else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O;}bg("Expected an identifier and instead saw '{a}'.",O,O.id);}while(b=A.maxerr&&bd("Too many errors.",i,h);return j;}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw {name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."};}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0);}function bb(a,b){var c;for(c in b){ba(b,c)&&(a[c]=b[c]);}}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b);}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$; +(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/;})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]";}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _;}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a){ba(a,c)&&b.push(c);}return b;}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">");}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿";}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9";}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b;});}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4);})+'"':'"'+this+'"';});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g;}function e(){var b,e;if(c>=s.length){return !1;}a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e);}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length){i=0,e()||bh("Unclosed string.",c,b);}h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g);}if(h<" "){if(h==="\n"||h==="\r"){break;}bf("Control character in string: {a}.",c,a+i,d.slice(0,i));}else{if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a);}}}j+=h,a+=1,i+=1;}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f;}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d){return f(e()?"(endline)":"(end)","");}r=s(U);if(!r){r="",h="";while(d&&d<"!"){d=d.substr(1);}d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1));}else{if(h.isAlpha()||h==="_"||h==="$"){return f("(identifier)",r);}if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r);}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0){break;}e()||bh("Unclosed comment.",c,a);}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0){p[d.charAt(n)]=!1,n+=1; +}a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n));}}else{i+=1;}break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" "){n+=1,p+=1;}p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0;}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h);}if(g){switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,o=+h+o*10;}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,l=+h+l*10;}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l);}}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h);}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r);}}}}};}();bC("(number)",function(){return this;}),bC("(string)",function(){return this;}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c){switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b);}}else{if(j["(global)"]){a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);}else{switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0){j[b]=!0;}else{if(c===null){be("'{a}' is not allowed.",O,b),bU(O);}else{if(typeof c!="object"){a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);}else{switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b);}}}}}}}return this;},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value);}},bC("(regexp)",function(){return this;}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a);}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a);}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.");},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b;},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this;}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this;}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a;}b.left=a,b.right=c;return b;},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this;}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130); +return this;},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this;}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this;},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this;}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this;}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this;}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function"){if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O));}}else{a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);}}else{A.supernew||be("Weird construction. Delete 'new'.",this);}bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this;}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b;},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")"){for(;;){d[d.length]=bn(10),c+=1;if(x.id!==","){break;}bv();}}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b;},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a;}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b;},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===","){be("Extra comma."),bm(",");}if(x.id==="]"){break;}a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==","){break;}bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break;}}a&&(p-=A.indent,bt()),bm("]",this);return this;},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}"){break;}a&&bt();if(x.value==="get"&&bl().id!==":"){bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);}else{c=bV();if(typeof c!="string"){break;}bm(":"),br(O,x),bn(10);}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===","){bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);}else{break;}}a&&(p-=A.indent,bt()),bm("}",this);return this;},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O);};}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a){break;}c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==","){break;}bv();}return this;});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens."); +return this;}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this;}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this;}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally"){bm("finally"),bS(!1);}else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this;}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;){switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O);}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O);}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b){switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O);}}else{bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value);}}}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this;}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;});a.labelled=!0,a.exps=!0;}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var"){bm("var"),bY.fud.call(bY,!0);}else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value);}bm();}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}if(x.id!==";"){if(x.id==="var"){bm("var"),bY.fud.call(bY);}else{for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")"){for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this;}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this;}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this;}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this;}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e){if(Array.isArray(e)){for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u){if(typeof u[i]=="number"){a.member=u;break;}}return a;},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                          "+a+" "),b=b.sort();for(d=0;d");}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                          Error:");if(b.errors){for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                          "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                          "));}}if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";}m.push("

                                                                          Implied global: "+n.join(", ")+"

                                                                          ");}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";}m.push("

                                                                          Unused variable: "+n.join(", ")+"

                                                                          ");}b.json&&m.push("

                                                                          JSON: bad.

                                                                          "),m.push("
                                                                          ");}if(!a){m.push("
                                                                          "),b.urls&&o("URLs
                                                                          ",b.urls,"
                                                                          "),b.json&&!f?m.push("

                                                                          JSON: good.

                                                                          "):b.globals?m.push("
                                                                          Global "+b.globals.sort().join(", ")+"
                                                                          "):m.push("
                                                                          No new global variables introduced.
                                                                          ");for(h=0;h
                                                                          "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                          "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);}if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                          /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                          "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                          ");}m.push("
                                                                          ");}}return m.join("");},b$.jshint=b$,b$.edition="2011-04-16";return b$;}();typeof b=="object"&&b&&(b.JSHINT=d);}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null){return null;}if(d.match(/^[\s]*\.end[\s]*$/)){break;}c+="\n"+d;}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f;}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c);}d(a.trim())&&(a="");for(;;){try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f;}catch(g){if(!e.unexpectedEOF){throw g;}var h;do{c&&putstr(c),h=readline();if(!h){throw g;}}while(d(h.trim()));a+="\n"+h;}}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done){throw d.newSyntaxError("Syntax error");}return e;}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue;}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA)){break;}}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal trailing ,");}break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break;}throw a.newSyntaxError("Invalid property name");}if(a.match(COLON)){d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);}else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY){throw a.newSyntaxError("missing : after property");}c.push(f);}}else{if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal property accessor");}c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM));}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY);}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand");}return c;}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0)){return c;}do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA){throw a.newSyntaxError("Yield expression must be parenthesized");}if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA){throw a.newSyntaxError("Generator expression must be parenthesized");}}c.push(d);}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c;}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b); +while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break;}default:a.unget();return d;}d=e;}return d;}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d);}return c;}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD)){d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;}return c;}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS)){d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;}return c;}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH)){d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;}return c;}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF)){d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;}return c;}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE)){d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;}return c;}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND)){d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;}return c;}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR)){d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;}return c;}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR)){d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;}return c;}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND)){d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;}return c;}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR)){d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;}return c;}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON)){throw a.newSyntaxError("missing : after ?");}c.push(AssignExpression(a,b));}return c;}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0)){return ReturnOrYield(a,b);}c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN)){return d;}c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment");}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c;}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}c.push(AssignExpression(a,b));}while(a.match(COMMA));}return c;}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}if(c.type===COMMA&&!c.parenthesized){throw a.newSyntaxError("Generator expression must be parenthesized");}c=GeneratorExpression(a,b,c);}return c;}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e]){throw a.newSyntaxError("Unparenthesized head followed by unbraced body");}}return d;}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier");}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d);}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c;}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)});}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d;}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP){throw a.newSyntaxError("Invalid array comprehension left-hand side");}if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0){throw a.newSyntaxError("More than one switch default");}case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case");}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY){f.statements.push(Statement(a,l));}e.cases.push(f);}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1){throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);}f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f;}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT){f.destructuredNames=checkDestructuring(a,m,f);}e.iterator=f;}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach){throw a.newSyntaxError("Invalid for each..in loop");}e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m);}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e;}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label);}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target){throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));}if(!e.target.isLoop&&j===CONTINUE){throw a.newSyntaxError("Invalid continue");}break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch");}if(a.match(IF)){if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal catch guard");}if(e.catchClauses.length&&!e.catchClauses.top().guard){throw a.newSyntaxError("Guarded catch after unguarded");}f.guard=Expression(a,b);}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f);}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock){throw a.newSyntaxError("Invalid try statement");}return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d)){throw a.newSyntaxError("Duplicate label");}a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e;}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end;}e.blockComments=n,MagicalSemicolon(a);return e;}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE){d.set(a,e);}else{if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f);}}}),this.node=a,this.exports=b,this.exportedModules=d;}function registerExport(a,b){function c(b,c){if(a.has(b)){throw new SyntaxError("multiple exports of "+b);}a.set(b,c);}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0){b+=c;}return b;},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export};}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null; +}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op==="."){continue;}var node=opTokens;for(var i=0;i"9"){throw this.newSyntaxError("Missing exponent");}do{ch=a[this.cursor++];}while(ch>="0"&&ch<="9");this.cursor--;return !0;}return !1;},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor);}else{if(a==="x"||a==="X"){do{a=c[this.cursor++];}while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{if(a>="0"&&a<="7"){do{a=c[this.cursor++];}while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{this.cursor--,this.lexExponent(),b.value=0;}}}},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do{a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);}while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f);},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor);}else{b.type=DOT,b.assignOp=null,b.value=".";}},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor){throw this.newSyntaxError("Unterminated string literal");}while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1);},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\"){this.cursor++;}else{if(ch==="["){do{if(ch===undefined){throw this.newSyntaxError("Unterminated character class");}ch==="\\"&&this.cursor++,ch=input[this.cursor++];}while(ch!=="]");}else{if(ch===undefined){throw this.newSyntaxError("Unterminated regex");}}}}while(ch!=="/");do{ch=input[this.cursor++];}while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor));},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f;},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null){c+=a;}b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c;},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines){return b.type;}}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length){return b.type=END;}b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null){this.lexIdent(d);}else{if(a&&e==="/"){this.lexRegExp(e);}else{if(e in opTokens){this.lexOp(e);}else{if(e==="."){this.lexDot(e);}else{if(e>="1"&&e<="9"){this.lexNumber(e);}else{if(e==="0"){this.lexZeroNumber(e);}else{if(e==='"'||e==="'"){this.lexString(e);}else{if(!this.scanNewlines||e!=="\n"&&e!=="\r"){throw this.newSyntaxError("Illegal token");}e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++;}}}}}}}b.end=this.cursor;return b.type; +},unget:function(){if(++this.lookahead===4){throw"PANIC: too much lookahead!";}this.tokenIndex=this.tokenIndex-1&3;},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b;},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length){return null;}var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16));}catch(d){return null;}this.cursor+=5;}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c;}return null;}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0;}catch(d){}f&&this.cursor++;return f?c:null;}};return{Tokenizer:Tokenizer};}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null;}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={}; +for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i;}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.CSharpHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t);return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-scala",function(a){define("ace/mode/scala",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/javascript").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/scala_highlight_rules").ScalaHighlightRules,n=u("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=u("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n,this.$behaviour=new m;};r.inherits(k,q),function(){this.createWorker=function(b){return null;};}.call(k.prototype),t.Mode=k;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n; +};u.inherits(m,t),function(){this.toggleCommentLines=function(I,H,G,F){var E=!0,D=[],C=/^(\s*)\/\//;for(var B=G;B<=F;B++){if(!C.test(H.getLine(B))){E=!1;break;}}if(E){var A=new p(0,0,0,0);for(var B=G;B<=F;B++){var z=H.getLine(B),y=z.match(C);A.start.row=B,A.end.row=B,A.end.column=y[0].length,H.replace(A,y[1]);}}else{H.indentRows(G,F,"//");}},this.getNextLineIndent=function(k,j,D){var C=this.$getIndent(j),B=this.$tokenizer.getLineTokens(j,k),A=B.tokens,z=B.state;if(A.length&&A[A.length-1].type=="comment"){return C;}if(k=="start"){var y=j.match(/^.*[\{\(\[\:]\s*$/);y&&(C+=D);}else{if(k=="doc-start"){if(z=="start"){return"";}var y=j.match(/^\s*(\/?)\*/);y&&(y[1]&&(C+=" "),C+="* ");}}return C;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var k=[];for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/scala_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),e=p.arrayToMap("true|false".split("|")),h=p.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),g=p.arrayToMap("".split("|")); +this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.ScalaHighlightRules=m;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-merbivore_soft",function(a){define("ace/theme/merbivore_soft",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-merbivore-soft .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore-soft .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore-soft .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore-soft .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore-soft .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore-soft .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore-soft .ace_scroller {\n background-color: #1C1C1C;\n}\n\n.ace-merbivore-soft .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore-soft .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore-soft .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore-soft .ace_marker-layer .ace_selection {\n background: #494949;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore-soft .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore-soft .ace_keyword {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore-soft .ace_constant {\n color:#68C1D8;\n}\n\n.ace-merbivore-soft .ace_constant.ace_language {\n color:#E1C582;\n}\n\n.ace-merbivore-soft .ace_constant.ace_library {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_constant.ace_numeric {\n color:#7FC578;\n}\n\n.ace-merbivore-soft .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore-soft .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_support {\n \n}\n\n.ace-merbivore-soft .ace_support.ace_function {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore-soft .ace_string {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore-soft .ace_comment {\n color:#AC4BB8;\n}\n\n.ace-merbivore-soft .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore-soft .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore-soft .ace_variable {\n \n}\n\n.ace-merbivore-soft .ace_variable.ace_language {\n \n}\n\n.ace-merbivore-soft .ace_xml_pe {\n \n}\n\n.ace-merbivore-soft .ace_meta {\n \n}\n\n.ace-merbivore-soft .ace_meta.ace_tag {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\n color:#EAF1A3;\n}\n\n\n.ace-merbivore-soft .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-merbivore-soft";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-clojure",function(a){define("ace/mode/clojure",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/text").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/clojure_highlight_rules").ClojureHighlightRules,n=u("ace/mode/matching_parens_outdent").MatchingParensOutdent,m=u("ace/range").Range,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n;};r.inherits(k,q),function(){this.toggleCommentLines=function(F,E,D,C){var B=!0,A=[],z=/^(\s*)#/;for(var y=D;y<=C;y++){if(!z.test(E.getLine(y))){B=!1;break;}}if(B){var x=new m(0,0,0,0);for(var y=D;y<=C;y++){var w=E.getLine(y),v=w.match(z);x.start.row=y,x.end.row=y,x.end.column=v[0].length,E.replace(x,v[1]);}}else{E.indentRows(D,C,";");}},this.getNextLineIndent=function(C,B,A){var z=this.$getIndent(B),y=z,x=this.$tokenizer.getLineTokens(B,C),w=x.tokens,v=x.state;if(w.length&&w[w.length-1].type=="comment"){return z;}if(C=="start"){var j=B.match(/[\(\[]/);j&&(z+=" "),j=B.match(/[\)]/),j&&(z="");}return z;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(k.prototype),t.Mode=k;}),define("ace/mode/clojure_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var e=n.arrayToMap("* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap ".split(" ")),d=n.arrayToMap("def do fn if let loop monitor-enter monitor-exit new quote recur set! throw try var".split(" ")),f=n.arrayToMap("true false nil".split(" ")); +this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(b){return d.hasOwnProperty(b)?"keyword":f.hasOwnProperty(b)?"constant.language":e.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|d)+"},{token:"string.regexp",regex:'/#"(?:.|(\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};o.inherits(k,m),h.ClojureHighlightRules=k;}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\)/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\))/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingParensOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-keybinding-vim",function(a){define("ace/keyboard/keybinding/vim",["require","exports","module","ace/keyboard/state_handler"],function(h,g,n){var m=h("ace/keyboard/state_handler").StateHandler,k=h("ace/keyboard/state_handler").matchCharacterOnly,j={start:[{key:"i",then:"insertMode"},{key:"d",then:"deleteMode"},{key:"a",exec:"gotoright",then:"insertMode"},{key:"shift-i",exec:"gotolinestart",then:"insertMode"},{key:"shift-a",exec:"gotolineend",then:"insertMode"},{key:"shift-c",exec:"removetolineend",then:"insertMode"},{key:"shift-r",exec:"overwrite",then:"replaceMode"},{regex:["([0-9]*)","(k|up)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(j|down|enter)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(l|right)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(h|left)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{key:"shift-g",exec:"gotoend"},{key:"b",exec:"gotowordleft"},{key:"e",exec:"gotowordright"},{key:"x",exec:"del"},{key:"shift-x",exec:"backspace"},{key:"shift-d",exec:"removetolineend"},{comment:"Catch some keyboard input to stop it here",match:k}],insertMode:[{key:"esc",then:"start"}],replaceMode:[{key:"esc",exec:"overwrite",then:"start"}],deleteMode:[{key:"d",exec:"removeline",then:"start"}]};g.Vim=new m(j);}),define("ace/keyboard/state_handler",["require","exports","module"],function(g,f,k){function h(b){this.keymapping=this.$buildKeymappingRegex(b);}var j=!1;h.prototype={$buildKeymappingRegex:function(b){for(state in b){this.$buildBindingsRegex(b[state]);}return b;},$buildBindingsRegex:function(b){b.forEach(function(c){c.key?c.key=new RegExp("^"+c.key+"$"):Array.isArray(c.regex)?(c.key=new RegExp("^"+c.regex[1]+"$"),c.regex=new RegExp(c.regex.join("")+"$")):c.regex&&(c.regex=new RegExp(c.regex+"$"));});},$composeBuffer:function(n,m,r){if(n.state==null||n.buffer==null){n.state="start",n.buffer="";}var q=[];m&1&&q.push("ctrl"),m&8&&q.push("command"),m&2&&q.push("option"),m&4&&q.push("shift"),r&&q.push(r);var p=q.join("-"),o=n.buffer+p;m!=2&&(n.buffer=o);return{bufferToUse:o,symbolicName:p};},$find:function(m,d,q,p,o){var n={};this.keymapping[m.state].some(function(r){var e;if(r.key&&!r.key.test(q)){return !1;}if(r.regex&&!(e=r.regex.exec(d))){return !1;}if(r.match&&!r.match(d,p,o,q)){return !1;}if(r.disallowMatches){for(var c=0;c=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; +};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/groovy_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),e=p.arrayToMap("null|Infinity|NaN|undefined".split("|")),h=p.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),g=p.arrayToMap("".split("|")); +this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.GroovyHighlightRules=m;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-textmate",function(a){define("ace/theme/textmate",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";j.importCssString(h),f.cssClass="ace-tm";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor",function(a){},"@VERSION@",{use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-c_cpp-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-c_cpp-debug.js new file mode 100644 index 00000000000..e2a6d062e5f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-c_cpp-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-c_cpp', function(A) { +define("ace/mode/c_cpp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/c_cpp_highlight_rules").c_cppHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.c_cppHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-c_cpp-min.js b/build/aui-ace-editor/aui-ace-editor-mode-c_cpp-min.js new file mode 100644 index 00000000000..c2d01eebccc --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-c_cpp-min.js @@ -0,0 +1,2 @@ +AUI.add("aui-ace-editor-mode-c_cpp",function(a){define("ace/mode/c_cpp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(v,u,t){var s=v("pilot/oop"),r=v("ace/mode/text").Mode,q=v("ace/tokenizer").Tokenizer,p=v("ace/mode/c_cpp_highlight_rules").c_cppHighlightRules,o=v("ace/mode/matching_brace_outdent").MatchingBraceOutdent,n=v("ace/range").Range,m=v("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new q((new p).getRules()),this.$outdent=new o,this.$behaviour=new m;};s.inherits(l,r),function(){this.toggleCommentLines=function(F,E,D,C){var B=!0,A=[],z=/^(\s*)\/\//;for(var y=D;y<=C;y++){if(!z.test(E.getLine(y))){B=!1;break;}}if(B){var x=new n(0,0,0,0);for(var y=D;y<=C;y++){var w=E.getLine(y),i=w.match(z);x.start.row=y,x.end.row=y,x.end.column=i[0].length,E.replace(x,i[1]);}}else{E.indentRows(D,C,"//");}},this.getNextLineIndent=function(j,i,A){var z=this.$getIndent(i),y=this.$tokenizer.getLineTokens(i,j),x=y.tokens,w=y.state;if(x.length&&x[x.length-1].type=="comment"){return z;}if(j=="start"){var k=i.match(/^.*[\{\(\[]\s*$/);k&&(z+=A);}else{if(j=="doc-start"){if(w=="start"){return"";}var k=i.match(/^\s*(\/?)\*/);k&&(k[1]&&(z+=" "),z+="* ");}}return z;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(l.prototype),u.Mode=l;}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(j,i,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,l=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var d=n.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),c=n.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new m).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(b){return b=="this"?"variable.language":d.hasOwnProperty(b)?"keyword":c.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};o.inherits(k,l),i.c_cppHighlightRules=k;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/behaviour").Behaviour,i=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1); +if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="{"){var p=s.doc.getLine(r.start.row),o=p.substring(r.end.column,r.end.column+1);if(o=="}"){r.end.column++;return r;}}return !1;}),this.add("parens","insertion",function(w,v,u,t,s){if(s=="("){var r=u.getSelectionRange(),q=t.doc.getTextRange(r);return q!==""?{text:"("+q+")",selection:!1}:{text:"()",selection:[1,1]};}if(s==")"){var p=u.getCursorPosition(),o=t.doc.getLine(p.row),n=o.substring(p.column,p.column+1);if(n==")"){var m=t.$findOpeningBracket(")",{column:p.column+1,row:p.row});if(m!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="("){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o==")"){r.end.column++;return r;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-c_cpp.js b/build/aui-ace-editor/aui-ace-editor-mode-c_cpp.js new file mode 100644 index 00000000000..e2a6d062e5f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-c_cpp.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-c_cpp', function(A) { +define("ace/mode/c_cpp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/c_cpp_highlight_rules").c_cppHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.c_cppHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-clojure-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-clojure-debug.js new file mode 100644 index 00000000000..199bba05797 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-clojure-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-clojure', function(A) { +define("ace/mode/clojure",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/clojure_highlight_rules").ClojureHighlightRules,h=a("ace/mode/matching_parens_outdent").MatchingParensOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,";")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=d,f=this.$tokenizer.getLineTokens(b,a),g=f.tokens,h=f.state;if(g.length&&g[g.length-1].type=="comment")return d;if(a=="start"){var i=b.match(/[\(\[]/);i&&(d+=" "),i=b.match(/[\)]/),i&&(d="")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/clojure_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap ".split(" ")),b=e.arrayToMap("def do fn if let loop monitor-enter monitor-exit new quote recur set! throw try var".split(" ")),c=e.arrayToMap("true false nil".split(" "));this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(d){return b.hasOwnProperty(d)?"keyword":c.hasOwnProperty(d)?"constant.language":a.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|d)+"},{token:"string.regexp",regex:'/#"(?:.|(\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ClojureHighlightRules=g}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\)/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\))/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingParensOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-clojure-min.js b/build/aui-ace-editor/aui-ace-editor-mode-clojure-min.js new file mode 100644 index 00000000000..c4e8de9bdf1 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-clojure-min.js @@ -0,0 +1,2 @@ +AUI.add("aui-ace-editor-mode-clojure",function(a){define("ace/mode/clojure",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/text").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/clojure_highlight_rules").ClojureHighlightRules,m=t("ace/mode/matching_parens_outdent").MatchingParensOutdent,l=t("ace/range").Range,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m;};q.inherits(k,p),function(){this.toggleCommentLines=function(D,C,B,A){var z=!0,y=[],x=/^(\s*)#/;for(var w=B;w<=A;w++){if(!x.test(C.getLine(w))){z=!1;break;}}if(z){var v=new l(0,0,0,0);for(var w=B;w<=A;w++){var u=C.getLine(w),i=u.match(x);v.start.row=w,v.end.row=w,v.end.column=i[0].length,C.replace(v,i[1]);}}else{C.indentRows(B,A,";");}},this.getNextLineIndent=function(B,A,z){var y=this.$getIndent(A),x=y,w=this.$tokenizer.getLineTokens(A,B),v=w.tokens,u=w.state;if(v.length&&v[v.length-1].type=="comment"){return y;}if(B=="start"){var j=A.match(/[\(\[]/);j&&(y+=" "),j=A.match(/[\)]/),j&&(y="");}return y;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(k.prototype),s.Mode=k;}),define("ace/mode/clojure_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){var e=l.arrayToMap("* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap ".split(" ")),d=l.arrayToMap("def do fn if let loop monitor-enter monitor-exit new quote recur set! throw try var".split(" ")),f=l.arrayToMap("true false nil".split(" ")); +this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(b){return d.hasOwnProperty(b)?"keyword":f.hasOwnProperty(b)?"constant.language":e.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|d)+"},{token:"string.regexp",regex:'/#"(?:.|(\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};m.inherits(j,k),h.ClojureHighlightRules=j;}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\)/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\))/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingParensOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-clojure.js b/build/aui-ace-editor/aui-ace-editor-mode-clojure.js new file mode 100644 index 00000000000..199bba05797 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-clojure.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-clojure', function(A) { +define("ace/mode/clojure",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/clojure_highlight_rules").ClojureHighlightRules,h=a("ace/mode/matching_parens_outdent").MatchingParensOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,";")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=d,f=this.$tokenizer.getLineTokens(b,a),g=f.tokens,h=f.state;if(g.length&&g[g.length-1].type=="comment")return d;if(a=="start"){var i=b.match(/[\(\[]/);i&&(d+=" "),i=b.match(/[\)]/),i&&(d="")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/clojure_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap ".split(" ")),b=e.arrayToMap("def do fn if let loop monitor-enter monitor-exit new quote recur set! throw try var".split(" ")),c=e.arrayToMap("true false nil".split(" "));this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(d){return b.hasOwnProperty(d)?"keyword":c.hasOwnProperty(d)?"constant.language":a.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|d)+"},{token:"string.regexp",regex:'/#"(?:.|(\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ClojureHighlightRules=g}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\)/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\))/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingParensOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-coffee-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-coffee-debug.js new file mode 100644 index 00000000000..2aa8a75dfa5 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-coffee-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-coffee', function(A) { +define("ace/mode/coffee",["require","exports","module","ace/tokenizer","ace/mode/coffee_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/text","ace/worker/worker_client","pilot/oop"],function(a,b,c){function k(){this.$tokenizer=new d((new e).getRules()),this.$outdent=new f}var d=a("ace/tokenizer").Tokenizer,e=a("ace/mode/coffee_highlight_rules").CoffeeHighlightRules,f=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,g=a("ace/range").Range,h=a("ace/mode/text").Mode,i=a("ace/worker/worker_client").WorkerClient,j=a("pilot/oop");j.inherits(k,h),function(){var a=/(?:[({[=:]|[-=]>|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,b=/^(\s*)#/,c=/^\s*###(?!#)/,d=/^\s*/;this.getNextLineIndent=function(b,c,d){var e=this.$getIndent(c),f=this.$tokenizer.getLineTokens(c,b).tokens;(!f.length||f[f.length-1].type!=="comment")&&b==="start"&&a.test(c)&&(e+=d);return e},this.toggleCommentLines=function(a,e,f,h){console.log("toggle");var i=new g(0,0,0,0);for(var j=f;j<=h;++j){var k=e.getLine(j);if(c.test(k))continue;b.test(k)?k=k.replace(b,"$1"):k=k.replace(d,"$&#"),i.end.row=i.start.row=j,i.end.column=k.length+1,e.replace(i,k)}},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("error",function(b){a.setAnnotations([b.data])}),c.on("ok",function(b){a.clearAnnotations()})}}.call(k.prototype),b.Mode=k}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){function d(){var a="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",b="(?![$\\w]|\\s*:)",c={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+a},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+b},{token:"constant.language",regex:"(?:true|false|null|undefined)"+b},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+b},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+b},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+b},{token:"identifier",regex:a},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},c],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},c],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},c],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},c],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},c],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}}a("pilot/oop").inherits(d,a("ace/mode/text_highlight_rules").TextHighlightRules),b.CoffeeHighlightRules=d}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;j|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,e=/^(\s*)#/,h=/^\s*###(?!#)/,g=/^\s*/;this.getNextLineIndent=function(i,x,w){var k=this.$getIndent(x),j=this.$tokenizer.getLineTokens(x,i).tokens;(!j.length||j[j.length-1].type!=="comment")&&i==="start"&&f.test(x)&&(k+=w);return k;},this.toggleCommentLines=function(b,z,y,x){console.log("toggle");var w=new p(0,0,0,0);for(var d=y;d<=x;++d){var c=z.getLine(d);if(h.test(c)){continue;}e.test(c)?c=c.replace(e,"$1"):c=c.replace(g,"$&#"),w.end.row=w.start.row=d,w.end.column=c.length+1,z.replace(w,c);}},this.checkOutdent=function(i,d,j){return this.$outdent.checkOutdent(d,j);},this.autoOutdent=function(i,d,j){this.$outdent.autoOutdent(d,j);},this.createWorker=function(i){var d=i.getDocument(),j=new n(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");j.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},j.emit("change",b);}),j.on("error",function(c){i.setAnnotations([c.data]);}),j.on("ok",function(c){i.clearAnnotations();});};}.call(l.prototype),u.Mode=l;}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(f,e,h){function g(){var i="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",d="(?![$\\w]|\\s*:)",j={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+i},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+d},{token:"constant.language",regex:"(?:true|false|null|undefined)"+d},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+d},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+d},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+d},{token:"identifier",regex:i},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},j],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},j],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},j],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},j],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},j],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]};}f("pilot/oop").inherits(g,f("ace/mode/text_highlight_rules").TextHighlightRules),e.CoffeeHighlightRules=g;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;q|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,b=/^(\s*)#/,c=/^\s*###(?!#)/,d=/^\s*/;this.getNextLineIndent=function(b,c,d){var e=this.$getIndent(c),f=this.$tokenizer.getLineTokens(c,b).tokens;(!f.length||f[f.length-1].type!=="comment")&&b==="start"&&a.test(c)&&(e+=d);return e},this.toggleCommentLines=function(a,e,f,h){console.log("toggle");var i=new g(0,0,0,0);for(var j=f;j<=h;++j){var k=e.getLine(j);if(c.test(k))continue;b.test(k)?k=k.replace(b,"$1"):k=k.replace(d,"$&#"),i.end.row=i.start.row=j,i.end.column=k.length+1,e.replace(i,k)}},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("error",function(b){a.setAnnotations([b.data])}),c.on("ok",function(b){a.clearAnnotations()})}}.call(k.prototype),b.Mode=k}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){function d(){var a="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",b="(?![$\\w]|\\s*:)",c={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+a},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+b},{token:"constant.language",regex:"(?:true|false|null|undefined)"+b},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+b},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+b},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+b},{token:"identifier",regex:a},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},c],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},c],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},c],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},c],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},c],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}}a("pilot/oop").inherits(d,a("ace/mode/text_highlight_rules").TextHighlightRules),b.CoffeeHighlightRules=d}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.CSharpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-csharp-min.js b/build/aui-ace-editor/aui-ace-editor-mode-csharp-min.js new file mode 100644 index 00000000000..a0835613b71 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-csharp-min.js @@ -0,0 +1,2 @@ +AUI.add("aui-ace-editor-mode-csharp",function(a){define("ace/mode/csharp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/csharp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/text").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/csharp_highlight_rules").CSharpHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m,this.$behaviour=new l;};q.inherits(k,p),function(){this.getNextLineIndent=function(j,i,z){var y=this.$getIndent(i),x=this.$tokenizer.getLineTokens(i,j),w=x.tokens,v=x.state;if(w.length&&w[w.length-1].type=="comment"){return y;}if(j=="start"){var u=i.match(/^.*[\{\(\[]\s*$/);u&&(y+=z);}return y;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(b){return null;};}.call(k.prototype),s.Mode=k;}),define("ace/mode/csharp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(j,i,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,l=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var d=n.arrayToMap("abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic".split("|")),c=n.arrayToMap("null|true|false".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new m).getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",merge:!0,next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":d.hasOwnProperty(b)?"keyword":c.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};o.inherits(k,l),i.CSharpHighlightRules=k;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/behaviour").Behaviour,i=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="{"){var p=s.doc.getLine(r.start.row),o=p.substring(r.end.column,r.end.column+1);if(o=="}"){r.end.column++;return r;}}return !1;}),this.add("parens","insertion",function(w,v,u,t,s){if(s=="("){var r=u.getSelectionRange(),q=t.doc.getTextRange(r);return q!==""?{text:"("+q+")",selection:!1}:{text:"()",selection:[1,1]}; +}if(s==")"){var p=u.getCursorPosition(),o=t.doc.getLine(p.row),n=o.substring(p.column,p.column+1);if(n==")"){var m=t.$findOpeningBracket(")",{column:p.column+1,row:p.row});if(m!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="("){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o==")"){r.end.column++;return r;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-csharp.js b/build/aui-ace-editor/aui-ace-editor-mode-csharp.js new file mode 100644 index 00000000000..95c427120fe --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-csharp.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-csharp', function(A) { +define("ace/mode/csharp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/csharp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/csharp_highlight_rules").CSharpHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/csharp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic".split("|")),b=e.arrayToMap("null|true|false".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",merge:!0,next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.CSharpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-css-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-css-debug.js new file mode 100644 index 00000000000..77f13dec1d8 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-css-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-css', function(A) { +define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/groovy_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.GroovyHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-groovy-min.js b/build/aui-ace-editor/aui-ace-editor-mode-groovy-min.js new file mode 100644 index 00000000000..797d9fdf31b --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-groovy-min.js @@ -0,0 +1,3 @@ +AUI.add("aui-ace-editor-mode-groovy",function(a){define("ace/mode/groovy",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/groovy_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/javascript").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/groovy_highlight_rules").GroovyHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m,this.$behaviour=new l;};q.inherits(k,p),function(){this.createWorker=function(b){return null;};}.call(k.prototype),s.Mode=k;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n;};u.inherits(m,t),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new p(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),i=y.match(B);z.start.row=A,z.end.row=A,z.end.column=i[0].length,G.replace(z,i[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(j,i,B){var A=this.$getIndent(i),z=this.$tokenizer.getLineTokens(i,j),y=z.tokens,l=z.state;if(y.length&&y[y.length-1].type=="comment"){return A;}if(j=="start"){var k=i.match(/^.*[\{\(\[\:]\s*$/);k&&(A+=B);}else{if(j=="doc-start"){if(l=="start"){return"";}var k=i.match(/^\s*(\/?)\*/);k&&(k[1]&&(A+=" "),A+="* ");}}return A;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var j=[];for(var i=0;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(l,"doc-",[(new l).getEndRule("start")]);};o.inherits(j,k),q.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; +};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;qA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;}),define("ace/mode/groovy_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(j,i,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,l=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var f=n.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),e=n.arrayToMap("null|Infinity|NaN|undefined".split("|")),h=n.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),g=n.arrayToMap("".split("|")); +this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new m).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};o.inherits(k,l),i.GroovyHighlightRules=k;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-groovy.js b/build/aui-ace-editor/aui-ace-editor-mode-groovy.js new file mode 100644 index 00000000000..5f3400ffb09 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-groovy.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-groovy', function(A) { +define("ace/mode/groovy",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/groovy_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/groovy_highlight_rules").GroovyHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/groovy_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.GroovyHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-html-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-html-debug.js new file mode 100644 index 00000000000..f4f1a900a30 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-html-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-html', function(A) { +define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/mode/css").Mode,h=a("ace/tokenizer").Tokenizer,i=a("ace/mode/html_highlight_rules").HtmlHighlightRules,j=a("ace/mode/behaviour/xml").XmlBehaviour,k=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g})};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(k.prototype),b.Mode=k}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(l,"doc-",[(new l).getEndRule("start")]);};o.inherits(j,k),q.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; +};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;qA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/text").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/css_highlight_rules").CssHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/worker/worker_client").WorkerClient,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m; +};q.inherits(k,p),function(){this.getNextLineIndent=function(h,g,v){var u=this.$getIndent(g),j=this.$tokenizer.getLineTokens(g,h).tokens;if(j.length&&j[j.length-1].type=="comment"){return u;}var i=g.match(/^.*\{\s*$/);i&&(u+=v);return u;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new l(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("csslint",function(g){var h=[];g.data.forEach(function(b){h.push({row:b.line-1,column:b.col-1,text:b.message,type:b.type,lint:b});}),e.setAnnotations(h);});};}.call(k.prototype),s.Mode=k;}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){function u(g){var f=[],B=g.split("");for(var A=0;A",next:h},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(e("attribute-list"));}function d(g,c){return[{token:"string",merge:!0,regex:".*"+g,next:c},{token:"string",merge:!0,regex:".+"}];}function e(b){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:b+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:b+"-qstring"}];}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":d("'","style"),"style-qqstring":d('"',"style"),"script-qstring":d("'","script"),"script-qqstring":d('"',"script"),"tag-qstring":d("'","tag"),"tag-qqstring":d('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},f(this.$rules,"tag","start"),f(this.$rules,"css","css-start"),f(this.$rules,"script","js-start"),this.embedRules(m,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(n,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}]);};o.inherits(k,l),i.HtmlHighlightRules=k;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(i,h,n){var m=i("pilot/oop"),l=i("ace/mode/behaviour").Behaviour,k=i("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.inherit(k,["string_dquotes"]),this.add("brackets","insertion",function(A,z,y,x,w){if(w=="<"){var v=y.getSelectionRange(),u=x.doc.getTextRange(v);return u!==""?!1:{text:"<>",selection:[1,1]};}if(w==">"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),r=s.substring(t.column,t.column+1);if(r==">"){return{text:"",selection:[1,1]};}}else{if(w=="\n"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),q=s.substring(t.column,t.column+2);if(q=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/java_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.JavaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-java-min.js b/build/aui-ace-editor/aui-ace-editor-mode-java-min.js new file mode 100644 index 00000000000..9b42c0d15ed --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-java-min.js @@ -0,0 +1,3 @@ +AUI.add("aui-ace-editor-mode-java",function(a){define("ace/mode/java",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/java_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/javascript").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/java_highlight_rules").JavaHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m,this.$behaviour=new l;};q.inherits(k,p),function(){this.createWorker=function(b){return null;};}.call(k.prototype),s.Mode=k;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n;};u.inherits(m,t),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new p(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),i=y.match(B);z.start.row=A,z.end.row=A,z.end.column=i[0].length,G.replace(z,i[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(j,i,B){var A=this.$getIndent(i),z=this.$tokenizer.getLineTokens(i,j),y=z.tokens,l=z.state;if(y.length&&y[y.length-1].type=="comment"){return A;}if(j=="start"){var k=i.match(/^.*[\{\(\[\:]\s*$/);k&&(A+=B);}else{if(j=="doc-start"){if(l=="start"){return"";}var k=i.match(/^\s*(\/?)\*/);k&&(k[1]&&(A+=" "),A+="* ");}}return A;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var j=[];for(var i=0;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(l,"doc-",[(new l).getEndRule("start")]);};o.inherits(j,k),q.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; +};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;qA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;}),define("ace/mode/java_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(j,i,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,l=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var f=n.arrayToMap("abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while".split("|")),e=n.arrayToMap("null|Infinity|NaN|undefined".split("|")),h=n.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),g=n.arrayToMap("".split("|")); +this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new m).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};o.inherits(k,l),i.JavaHighlightRules=k;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-java.js b/build/aui-ace-editor/aui-ace-editor-mode-java.js new file mode 100644 index 00000000000..30b6ba97f9f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-java.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-java', function(A) { +define("ace/mode/java",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/java_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/java_highlight_rules").JavaHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/java_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.JavaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-javascript-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-javascript-debug.js new file mode 100644 index 00000000000..9940eb6960e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-javascript-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-javascript', function(A) { +define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-javascript-min.js b/build/aui-ace-editor/aui-ace-editor-mode-javascript-min.js new file mode 100644 index 00000000000..955d5bc7d4a --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-javascript-min.js @@ -0,0 +1,2 @@ +AUI.add("aui-ace-editor-mode-javascript",function(a){define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n;};u.inherits(m,t),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new p(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),i=y.match(B);z.start.row=A,z.end.row=A,z.end.column=i[0].length,G.replace(z,i[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(j,i,B){var A=this.$getIndent(i),z=this.$tokenizer.getLineTokens(i,j),y=z.tokens,l=z.state;if(y.length&&y[y.length-1].type=="comment"){return A;}if(j=="start"){var k=i.match(/^.*[\{\(\[\:]\s*$/);k&&(A+=B);}else{if(j=="doc-start"){if(l=="start"){return"";}var k=i.match(/^\s*(\/?)\*/);k&&(k[1]&&(A+=" "),A+="* ");}}return A;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var j=[];for(var i=0;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(l,"doc-",[(new l).getEndRule("start")]);};o.inherits(j,k),q.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/); +if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;qA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-javascript.js b/build/aui-ace-editor/aui-ace-editor-mode-javascript.js new file mode 100644 index 00000000000..caf53ce8511 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-javascript.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-javascript', function(A) { +define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(){return null}}.call(l.prototype),b.Mode=l}),define("ace/mode/javascript_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/unicode","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/unicode"),g=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,h=a("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){var a=e.arrayToMap("break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|const|yield|import|get|set".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("class|enum|extends|super|export|implements|private|public|interface|package|protected|static".split("|")),d="["+f.packages.L+"\\$_]["+f.packages.L+f.packages.Mn+f.packages.Mc+f.packages.Nd+f.packages.Pc+"\\$_]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new g).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(d){return d=="this"?"variable.language":a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"invalid.illegal":d=="debugger"?"invalid.deprecated":"identifier"},regex:d},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-json-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-json-debug.js new file mode 100644 index 00000000000..968202709c9 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-json-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-json', function(A) { +define("ace/mode/json",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/json_highlight_rules").JsonHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/json_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){this.$rules={start:[{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}]}};d.inherits(g,f),b.JsonHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-json-min.js b/build/aui-ace-editor/aui-ace-editor-mode-json-min.js new file mode 100644 index 00000000000..986a5b29c91 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-json-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-mode-json",function(a){define("ace/mode/json",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(v,u,t){var s=v("pilot/oop"),r=v("ace/mode/text").Mode,q=v("ace/tokenizer").Tokenizer,p=v("ace/mode/json_highlight_rules").JsonHighlightRules,o=v("ace/mode/matching_brace_outdent").MatchingBraceOutdent,n=v("ace/range").Range,m=v("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new q((new p).getRules()),this.$outdent=new o,this.$behaviour=new m;};s.inherits(l,r),function(){this.getNextLineIndent=function(j,i,A){var z=this.$getIndent(i),y=this.$tokenizer.getLineTokens(i,j),x=y.tokens,w=y.state;if(j=="start"){var k=i.match(/^.*[\{\(\[]\s*$/);k&&(z+=A);}return z;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(l.prototype),u.Mode=l;}),define("ace/mode/json_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}]};};m.inherits(j,k),h.JsonHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/behaviour").Behaviour,i=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="{"){var p=s.doc.getLine(r.start.row),o=p.substring(r.end.column,r.end.column+1);if(o=="}"){r.end.column++;return r;}}return !1;}),this.add("parens","insertion",function(w,v,u,t,s){if(s=="("){var r=u.getSelectionRange(),q=t.doc.getTextRange(r);return q!==""?{text:"("+q+")",selection:!1}:{text:"()",selection:[1,1]};}if(s==")"){var p=u.getCursorPosition(),o=t.doc.getLine(p.row),n=o.substring(p.column,p.column+1);if(n==")"){var m=t.$findOpeningBracket(")",{column:p.column+1,row:p.row});if(m!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="("){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o==")"){r.end.column++;return r;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-json.js b/build/aui-ace-editor/aui-ace-editor-mode-json.js new file mode 100644 index 00000000000..968202709c9 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-json.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-json', function(A) { +define("ace/mode/json",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/json_highlight_rules").JsonHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/json_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){this.$rules={start:[{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}]}};d.inherits(g,f),b.JsonHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-ocaml-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-ocaml-debug.js new file mode 100644 index 00000000000..04b84357359 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-ocaml-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-ocaml', function(A) { +define("ace/mode/ocaml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/ocaml_highlight_rules").OcamlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e);var k=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(\*(.*)\*\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var j=new i(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),j.start.row=e,j.end.row=e,j.end.column=f.length,b.replace(j,g?f.match(h)[1]:"(*"+f+"*)")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;(!e.length||e[e.length-1].type!=="comment")&&a==="start"&&k.test(b)&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}).call(j.prototype),b.Mode=j}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),d="(?:(?:[1-9]\\d*)|(?:0))",f="(?:0[oO]?[0-7]+)",g="(?:0[xX][\\dA-Fa-f]+)",h="(?:0[bB][01]+)",i="(?:"+d+"|"+f+"|"+g+"|"+h+")",j="(?:[eE][+-]?\\d+)",k="(?:\\.\\d+)",l="(?:\\d+)",m="(?:(?:"+l+"?"+k+")|(?:"+l+"\\.))",n="(?:(?:"+m+"|"+l+")"+j+")",o="(?:"+n+"|"+m+")";this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+o+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:o},{token:"constant.numeric",regex:i+"\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.OcamlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-ocaml-min.js b/build/aui-ace-editor/aui-ace-editor-mode-ocaml-min.js new file mode 100644 index 00000000000..6bccc90f818 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-ocaml-min.js @@ -0,0 +1,2 @@ +AUI.add("aui-ace-editor-mode-ocaml",function(a){define("ace/mode/ocaml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(v,u,t){var s=v("pilot/oop"),r=v("ace/mode/text").Mode,q=v("ace/tokenizer").Tokenizer,p=v("ace/mode/ocaml_highlight_rules").OcamlHighlightRules,o=v("ace/mode/matching_brace_outdent").MatchingBraceOutdent,n=v("ace/range").Range,m=function(){this.$tokenizer=new q((new p).getRules()),this.$outdent=new o;};s.inherits(m,r);var l=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(C,B,A,z){var y,x,w=!0,k=/^\s*\(\*(.*)\*\)/;for(y=A;y<=z;y++){if(!k.test(B.getLine(y))){w=!1;break;}}var i=new n(0,0,0,0);for(y=A;y<=z;y++){x=B.getLine(y),i.start.row=y,i.end.row=y,i.end.column=x.length,B.replace(i,w?x.match(k)[1]:"(*"+x+"*)");}},this.getNextLineIndent=function(g,f,j){var i=this.$getIndent(f),h=this.$tokenizer.getLineTokens(f,g).tokens;(!h.length||h[h.length-1].type!=="comment")&&g==="start"&&l.test(f)&&(i+=j);return i;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}).call(m.prototype),u.Mode=m;}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){var B=l.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),A=l.arrayToMap("true|false".split("|")),z=l.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),y="(?:(?:[1-9]\\d*)|(?:0))",x="(?:0[oO]?[0-7]+)",w="(?:0[xX][\\dA-Fa-f]+)",v="(?:0[bB][01]+)",u="(?:"+y+"|"+x+"|"+w+"|"+v+")",t="(?:[eE][+-]?\\d+)",s="(?:\\.\\d+)",r="(?:\\d+)",q="(?:(?:"+r+"?"+s+")|(?:"+r+"\\.))",p="(?:(?:"+q+"|"+r+")"+t+")",e="(?:"+p+"|"+q+")"; +this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+e+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:e},{token:"constant.numeric",regex:u+"\\b"},{token:function(b){return B.hasOwnProperty(b)?"keyword":A.hasOwnProperty(b)?"constant.language":z.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]};};m.inherits(j,k),h.OcamlHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-ocaml.js b/build/aui-ace-editor/aui-ace-editor-mode-ocaml.js new file mode 100644 index 00000000000..04b84357359 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-ocaml.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-ocaml', function(A) { +define("ace/mode/ocaml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/ocaml_highlight_rules").OcamlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e);var k=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(\*(.*)\*\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var j=new i(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),j.start.row=e,j.end.row=e,j.end.column=f.length,b.replace(j,g?f.match(h)[1]:"(*"+f+"*)")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;(!e.length||e[e.length-1].type!=="comment")&&a==="start"&&k.test(b)&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}).call(j.prototype),b.Mode=j}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),d="(?:(?:[1-9]\\d*)|(?:0))",f="(?:0[oO]?[0-7]+)",g="(?:0[xX][\\dA-Fa-f]+)",h="(?:0[bB][01]+)",i="(?:"+d+"|"+f+"|"+g+"|"+h+")",j="(?:[eE][+-]?\\d+)",k="(?:\\.\\d+)",l="(?:\\d+)",m="(?:(?:"+l+"?"+k+")|(?:"+l+"\\.))",n="(?:(?:"+m+"|"+l+")"+j+")",o="(?:"+n+"|"+m+")";this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+o+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:o},{token:"constant.numeric",regex:i+"\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.OcamlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-perl-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-perl-debug.js new file mode 100644 index 00000000000..906edb3edbf --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-perl-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-perl', function(A) { +define("ace/mode/perl",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/perl_highlight_rules").PerlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/perl_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),b=e.arrayToMap("ARGV|ENV|INC|SIG".split("|")),c=e.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PerlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-perl-min.js b/build/aui-ace-editor/aui-ace-editor-mode-perl-min.js new file mode 100644 index 00000000000..c9adc30afe4 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-perl-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-mode-perl",function(a){define("ace/mode/perl",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/text").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/perl_highlight_rules").PerlHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/range").Range,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m;};q.inherits(k,p),function(){this.toggleCommentLines=function(D,C,B,A){var z=!0,y=[],x=/^(\s*)#/;for(var w=B;w<=A;w++){if(!x.test(C.getLine(w))){z=!1;break;}}if(z){var v=new l(0,0,0,0);for(var w=B;w<=A;w++){var u=C.getLine(w),i=u.match(x);v.start.row=w,v.end.row=w,v.end.column=i[0].length,C.replace(v,i[1]);}}else{C.indentRows(B,A,"#");}},this.getNextLineIndent=function(j,i,z){var y=this.$getIndent(i),x=this.$tokenizer.getLineTokens(i,j),w=x.tokens,v=x.state;if(w.length&&w[w.length-1].type=="comment"){return y;}if(j=="start"){var u=i.match(/^.*[\{\(\[\:]\s*$/);u&&(y+=z);}return y;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(k.prototype),s.Mode=k;}),define("ace/mode/perl_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){var e=l.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),d=l.arrayToMap("ARGV|ENV|INC|SIG".split("|")),f=l.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(b){return e.hasOwnProperty(b)?"keyword":d.hasOwnProperty(b)?"constant.language":f.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]};};m.inherits(j,k),h.PerlHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-perl.js b/build/aui-ace-editor/aui-ace-editor-mode-perl.js new file mode 100644 index 00000000000..906edb3edbf --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-perl.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-perl', function(A) { +define("ace/mode/perl",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/perl_highlight_rules").PerlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/perl_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),b=e.arrayToMap("ARGV|ENV|INC|SIG".split("|")),c=e.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PerlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-php-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-php-debug.js new file mode 100644 index 00000000000..299513f6333 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-php-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-php', function(A) { +define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/php_highlight_rules").PhpHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),b=e.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),c=e.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),d=e.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),g=e.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),h=e.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),i=e.arrayToMap("cfunction|old_function".split("|")),j=e.arrayToMap([]);this.$rules={start:[{token:"support",regex:"<\\?(?:php|\\=)"},{token:"support",regex:"\\?>"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(e){if(i.hasOwnProperty(e))return"invalid.deprecated";if(b.hasOwnProperty(e))return"keyword";if(c.hasOwnProperty(e))return"keyword";if(d.hasOwnProperty(e))return"constant.language";if(g.hasOwnProperty(e))return"variable.language";if(j.hasOwnProperty(e))return"invalid.illegal";if(h.hasOwnProperty(e))return"invalid.deprecated";if(a.hasOwnProperty(e))return"support.function";if(e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|self|parent)$/))return"variable";return"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.PhpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-php-min.js b/build/aui-ace-editor/aui-ace-editor-mode-php-min.js new file mode 100644 index 00000000000..b2fb435dcb2 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-php-min.js @@ -0,0 +1,3 @@ +AUI.add("aui-ace-editor-mode-php",function(a){define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(v,u,t){var s=v("pilot/oop"),r=v("ace/mode/text").Mode,q=v("ace/tokenizer").Tokenizer,p=v("ace/mode/php_highlight_rules").PhpHighlightRules,o=v("ace/mode/matching_brace_outdent").MatchingBraceOutdent,n=v("ace/range").Range,m=v("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new q((new p).getRules()),this.$outdent=new o,this.$behaviour=new m;};s.inherits(l,r),function(){this.toggleCommentLines=function(F,E,D,C){var B=!0,A=[],z=/^(\s*)#/;for(var y=D;y<=C;y++){if(!z.test(E.getLine(y))){B=!1;break;}}if(B){var x=new n(0,0,0,0);for(var y=D;y<=C;y++){var w=E.getLine(y),i=w.match(z);x.start.row=y,x.end.row=y,x.end.column=i[0].length,E.replace(x,i[1]);}}else{E.indentRows(D,C,"#");}},this.getNextLineIndent=function(j,i,A){var z=this.$getIndent(i),y=this.$tokenizer.getLineTokens(i,j),x=y.tokens,w=y.state;if(x.length&&x[x.length-1].type=="comment"){return z;}if(j=="start"){var k=i.match(/^.*[\{\(\[\:]\s*$/);k&&(z+=A);}return z;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(l.prototype),u.Mode=l;}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(j,i,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,l=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var f=n.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),e=n.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),v=n.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),u=n.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),t=n.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),s=n.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),r=n.arrayToMap("cfunction|old_function".split("|")),q=n.arrayToMap([]); +this.$rules={start:[{token:"support",regex:"<\\?(?:php|\\=)"},{token:"support",regex:"\\?>"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},(new m).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(b){if(r.hasOwnProperty(b)){return"invalid.deprecated";}if(e.hasOwnProperty(b)){return"keyword";}if(v.hasOwnProperty(b)){return"keyword";}if(u.hasOwnProperty(b)){return"constant.language";}if(t.hasOwnProperty(b)){return"variable.language";}if(q.hasOwnProperty(b)){return"invalid.illegal";}if(s.hasOwnProperty(b)){return"invalid.deprecated";}if(f.hasOwnProperty(b)){return"support.function";}if(b.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|self|parent)$/)){return"variable";}return"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};o.inherits(k,l),i.PhpHighlightRules=k;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/behaviour").Behaviour,i=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row}); +if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="{"){var p=s.doc.getLine(r.start.row),o=p.substring(r.end.column,r.end.column+1);if(o=="}"){r.end.column++;return r;}}return !1;}),this.add("parens","insertion",function(w,v,u,t,s){if(s=="("){var r=u.getSelectionRange(),q=t.doc.getTextRange(r);return q!==""?{text:"("+q+")",selection:!1}:{text:"()",selection:[1,1]};}if(s==")"){var p=u.getCursorPosition(),o=t.doc.getLine(p.row),n=o.substring(p.column,p.column+1);if(n==")"){var m=t.$findOpeningBracket(")",{column:p.column+1,row:p.row});if(m!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="("){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o==")"){r.end.column++;return r;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-php.js b/build/aui-ace-editor/aui-ace-editor-mode-php.js new file mode 100644 index 00000000000..299513f6333 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-php.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-php', function(A) { +define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/php_highlight_rules").PhpHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),b=e.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),c=e.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),d=e.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),g=e.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),h=e.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),i=e.arrayToMap("cfunction|old_function".split("|")),j=e.arrayToMap([]);this.$rules={start:[{token:"support",regex:"<\\?(?:php|\\=)"},{token:"support",regex:"\\?>"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(e){if(i.hasOwnProperty(e))return"invalid.deprecated";if(b.hasOwnProperty(e))return"keyword";if(c.hasOwnProperty(e))return"keyword";if(d.hasOwnProperty(e))return"constant.language";if(g.hasOwnProperty(e))return"variable.language";if(j.hasOwnProperty(e))return"invalid.illegal";if(h.hasOwnProperty(e))return"invalid.deprecated";if(a.hasOwnProperty(e))return"support.function";if(e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|self|parent)$/))return"variable";return"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.PhpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-python-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-python-debug.js new file mode 100644 index 00000000000..d3434cd1a65 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-python-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-python', function(A) { +define("ace/mode/python",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/python_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/python_highlight_rules").PythonHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/python_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield".split("|")),b=e.arrayToMap("True|False|None|NotImplemented|Ellipsis|__debug__".split("|")),c=e.arrayToMap("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern".split("|")),d=e.arrayToMap("".split("|")),f="(?:r|u|ur|R|U|UR|Ur|uR)?",g="(?:(?:[1-9]\\d*)|(?:0))",h="(?:0[oO]?[0-7]+)",i="(?:0[xX][\\dA-Fa-f]+)",j="(?:0[bB][01]+)",k="(?:"+g+"|"+h+"|"+i+"|"+j+")",l="(?:[eE][+-]?\\d+)",m="(?:\\.\\d+)",n="(?:\\d+)",o="(?:(?:"+n+"?"+m+")|(?:"+n+"\\.))",p="(?:(?:"+o+"|"+n+")"+l+")",q="(?:"+p+"|"+o+")";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:f+'"{3}(?:[^\\\\]|\\\\.)*?"{3}'},{token:"string",merge:!0,regex:f+'"{3}.*$',next:"qqstring"},{token:"string",regex:f+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:f+"'{3}(?:[^\\\\]|\\\\.)*?'{3}"},{token:"string",merge:!0,regex:f+"'{3}.*$",next:"qstring"},{token:"string",regex:f+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:"+q+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:q},{token:"constant.numeric",regex:k+"[lL]\\b"},{token:"constant.numeric",regex:k+"\\b"},{token:function(e){return a.hasOwnProperty(e)?"keyword":b.hasOwnProperty(e)?"constant.language":d.hasOwnProperty(e)?"invalid.illegal":c.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen",regex:"[\\[\\(\\{]"},{token:"rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PythonHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-python-min.js b/build/aui-ace-editor/aui-ace-editor-mode-python-min.js new file mode 100644 index 00000000000..816e61b404f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-python-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-mode-python",function(a){define("ace/mode/python",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/python_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/text").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/python_highlight_rules").PythonHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/range").Range,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m;};q.inherits(k,p),function(){this.toggleCommentLines=function(D,C,B,A){var z=!0,y=[],x=/^(\s*)#/;for(var w=B;w<=A;w++){if(!x.test(C.getLine(w))){z=!1;break;}}if(z){var v=new l(0,0,0,0);for(var w=B;w<=A;w++){var u=C.getLine(w),i=u.match(x);v.start.row=w,v.end.row=w,v.end.column=i[0].length,C.replace(v,i[1]);}}else{C.indentRows(B,A,"#");}},this.getNextLineIndent=function(j,i,z){var y=this.$getIndent(i),x=this.$tokenizer.getLineTokens(i,j),w=x.tokens,v=x.state;if(w.length&&w[w.length-1].type=="comment"){return y;}if(j=="start"){var u=i.match(/^.*[\{\(\[\:]\s*$/);u&&(y+=z);}return y;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(k.prototype),s.Mode=k;}),define("ace/mode/python_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){var F=l.arrayToMap("and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield".split("|")),E=l.arrayToMap("True|False|None|NotImplemented|Ellipsis|__debug__".split("|")),D=l.arrayToMap("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern".split("|")),C=l.arrayToMap("".split("|")),B="(?:r|u|ur|R|U|UR|Ur|uR)?",A="(?:(?:[1-9]\\d*)|(?:0))",z="(?:0[oO]?[0-7]+)",y="(?:0[xX][\\dA-Fa-f]+)",x="(?:0[bB][01]+)",w="(?:"+A+"|"+z+"|"+y+"|"+x+")",v="(?:[eE][+-]?\\d+)",u="(?:\\.\\d+)",t="(?:\\d+)",s="(?:(?:"+t+"?"+u+")|(?:"+t+"\\.))",r="(?:(?:"+s+"|"+t+")"+v+")",e="(?:"+r+"|"+s+")";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:B+'"{3}(?:[^\\\\]|\\\\.)*?"{3}'},{token:"string",merge:!0,regex:B+'"{3}.*$',next:"qqstring"},{token:"string",regex:B+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:B+"'{3}(?:[^\\\\]|\\\\.)*?'{3}"},{token:"string",merge:!0,regex:B+"'{3}.*$",next:"qstring"},{token:"string",regex:B+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:"+e+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:e},{token:"constant.numeric",regex:w+"[lL]\\b"},{token:"constant.numeric",regex:w+"\\b"},{token:function(b){return F.hasOwnProperty(b)?"keyword":E.hasOwnProperty(b)?"constant.language":C.hasOwnProperty(b)?"invalid.illegal":D.hasOwnProperty(b)?"support.function":b=="debugger"?"invalid.deprecated":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen",regex:"[\\[\\(\\{]"},{token:"rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]};};m.inherits(j,k),h.PythonHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-python.js b/build/aui-ace-editor/aui-ace-editor-mode-python.js new file mode 100644 index 00000000000..d3434cd1a65 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-python.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-python', function(A) { +define("ace/mode/python",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/python_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/python_highlight_rules").PythonHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/python_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield".split("|")),b=e.arrayToMap("True|False|None|NotImplemented|Ellipsis|__debug__".split("|")),c=e.arrayToMap("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern".split("|")),d=e.arrayToMap("".split("|")),f="(?:r|u|ur|R|U|UR|Ur|uR)?",g="(?:(?:[1-9]\\d*)|(?:0))",h="(?:0[oO]?[0-7]+)",i="(?:0[xX][\\dA-Fa-f]+)",j="(?:0[bB][01]+)",k="(?:"+g+"|"+h+"|"+i+"|"+j+")",l="(?:[eE][+-]?\\d+)",m="(?:\\.\\d+)",n="(?:\\d+)",o="(?:(?:"+n+"?"+m+")|(?:"+n+"\\.))",p="(?:(?:"+o+"|"+n+")"+l+")",q="(?:"+p+"|"+o+")";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:f+'"{3}(?:[^\\\\]|\\\\.)*?"{3}'},{token:"string",merge:!0,regex:f+'"{3}.*$',next:"qqstring"},{token:"string",regex:f+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:f+"'{3}(?:[^\\\\]|\\\\.)*?'{3}"},{token:"string",merge:!0,regex:f+"'{3}.*$",next:"qstring"},{token:"string",regex:f+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:"+q+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:q},{token:"constant.numeric",regex:k+"[lL]\\b"},{token:"constant.numeric",regex:k+"\\b"},{token:function(e){return a.hasOwnProperty(e)?"keyword":b.hasOwnProperty(e)?"constant.language":d.hasOwnProperty(e)?"invalid.illegal":c.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen",regex:"[\\[\\(\\{]"},{token:"rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PythonHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-ruby-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-ruby-debug.js new file mode 100644 index 00000000000..b56112456f7 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-ruby-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-ruby', function(A) { +define("ace/mode/ruby",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/ruby_highlight_rules").RubyHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/ruby_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|h|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|t|l|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many".split("|")),b=e.arrayToMap("alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield".split("|")),c=e.arrayToMap("true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING".split("|")),d=e.arrayToMap("$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment",merge:!0,regex:"^=begin$",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"},{token:"text",regex:"::"},{token:"variable.instancce",regex:"@{1,2}(?:[a-zA-Z_]|d)+"},{token:"variable.class",regex:"[A-Z](?:[a-zA-Z_]|d)+"},{token:"string",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},{token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="self"?"variable.language":b.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"constant.language":d.hasOwnProperty(e)?"variable.language":a.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.RubyHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-ruby-min.js b/build/aui-ace-editor/aui-ace-editor-mode-ruby-min.js new file mode 100644 index 00000000000..15bfc04c3a9 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-ruby-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-mode-ruby",function(a){},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-ruby.js b/build/aui-ace-editor/aui-ace-editor-mode-ruby.js new file mode 100644 index 00000000000..aae1d6c0209 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-ruby.js @@ -0,0 +1,3 @@ +AUI.add('aui-ace-editor-mode-ruby', function(A) { + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scad-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-scad-debug.js new file mode 100644 index 00000000000..b38498ddaca --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scad-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-scad', function(A) { +define("ace/mode/scad",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scad_highlight_rules").scadHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/scad_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("module|if|else|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.scadHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scad-min.js b/build/aui-ace-editor/aui-ace-editor-mode-scad-min.js new file mode 100644 index 00000000000..8b8e67e3527 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scad-min.js @@ -0,0 +1,2 @@ +AUI.add("aui-ace-editor-mode-scad",function(a){define("ace/mode/scad",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(v,u,t){var s=v("pilot/oop"),r=v("ace/mode/text").Mode,q=v("ace/tokenizer").Tokenizer,p=v("ace/mode/scad_highlight_rules").scadHighlightRules,o=v("ace/mode/matching_brace_outdent").MatchingBraceOutdent,n=v("ace/range").Range,m=v("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new q((new p).getRules()),this.$outdent=new o,this.$behaviour=new m;};s.inherits(l,r),function(){this.toggleCommentLines=function(F,E,D,C){var B=!0,A=[],z=/^(\s*)\/\//;for(var y=D;y<=C;y++){if(!z.test(E.getLine(y))){B=!1;break;}}if(B){var x=new n(0,0,0,0);for(var y=D;y<=C;y++){var w=E.getLine(y),i=w.match(z);x.start.row=y,x.end.row=y,x.end.column=i[0].length,E.replace(x,i[1]);}}else{E.indentRows(D,C,"//");}},this.getNextLineIndent=function(j,i,A){var z=this.$getIndent(i),y=this.$tokenizer.getLineTokens(i,j),x=y.tokens,w=y.state;if(x.length&&x[x.length-1].type=="comment"){return z;}if(j=="start"){var k=i.match(/^.*[\{\(\[]\s*$/);k&&(z+=A);}else{if(j=="doc-start"){if(w=="start"){return"";}var k=i.match(/^\s*(\/?)\*/);k&&(k[1]&&(z+=" "),z+="* ");}}return z;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(l.prototype),u.Mode=l;}),define("ace/mode/scad_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(j,i,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,l=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var d=n.arrayToMap("module|if|else|for".split("|")),c=n.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new m).getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(b){return b=="this"?"variable.language":d.hasOwnProperty(b)?"keyword":c.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};o.inherits(k,l),i.scadHighlightRules=k;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/behaviour").Behaviour,i=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="{"){var p=s.doc.getLine(r.start.row),o=p.substring(r.end.column,r.end.column+1);if(o=="}"){r.end.column++;return r;}}return !1;}),this.add("parens","insertion",function(w,v,u,t,s){if(s=="("){var r=u.getSelectionRange(),q=t.doc.getTextRange(r); +return q!==""?{text:"("+q+")",selection:!1}:{text:"()",selection:[1,1]};}if(s==")"){var p=u.getCursorPosition(),o=t.doc.getLine(p.row),n=o.substring(p.column,p.column+1);if(n==")"){var m=t.$findOpeningBracket(")",{column:p.column+1,row:p.row});if(m!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=="("){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o==")"){r.end.column++;return r;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scad.js b/build/aui-ace-editor/aui-ace-editor-mode-scad.js new file mode 100644 index 00000000000..b38498ddaca --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scad.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-scad', function(A) { +define("ace/mode/scad",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scad_highlight_rules").scadHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/scad_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("module|if|else|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.scadHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scala-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-scala-debug.js new file mode 100644 index 00000000000..dc95ef3666c --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scala-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-scala', function(A) { +define("ace/mode/scala",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scala_highlight_rules").ScalaHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/scala_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.ScalaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scala-min.js b/build/aui-ace-editor/aui-ace-editor-mode-scala-min.js new file mode 100644 index 00000000000..cfbfcae64ca --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scala-min.js @@ -0,0 +1,3 @@ +AUI.add("aui-ace-editor-mode-scala",function(a){define("ace/mode/scala",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/javascript").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/scala_highlight_rules").ScalaHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m,this.$behaviour=new l;};q.inherits(k,p),function(){this.createWorker=function(b){return null;};}.call(k.prototype),s.Mode=k;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n;};u.inherits(m,t),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new p(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),i=y.match(B);z.start.row=A,z.end.row=A,z.end.column=i[0].length,G.replace(z,i[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(j,i,B){var A=this.$getIndent(i),z=this.$tokenizer.getLineTokens(i,j),y=z.tokens,l=z.state;if(y.length&&y[y.length-1].type=="comment"){return A;}if(j=="start"){var k=i.match(/^.*[\{\(\[\:]\s*$/);k&&(A+=B);}else{if(j=="doc-start"){if(l=="start"){return"";}var k=i.match(/^\s*(\/?)\*/);k&&(k[1]&&(A+=" "),A+="* ");}}return A;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var j=[];for(var i=0;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(l,"doc-",[(new l).getEndRule("start")]);};o.inherits(j,k),q.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; +};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;qA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;}),define("ace/mode/scala_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(j,i,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,l=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var f=n.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),e=n.arrayToMap("true|false".split("|")),h=n.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),g=n.arrayToMap("".split("|")); +this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new m).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};o.inherits(k,l),i.ScalaHighlightRules=k;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scala.js b/build/aui-ace-editor/aui-ace-editor-mode-scala.js new file mode 100644 index 00000000000..dc95ef3666c --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scala.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-scala', function(A) { +define("ace/mode/scala",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scala_highlight_rules").ScalaHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/scala_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.ScalaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scss-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-scss-debug.js new file mode 100644 index 00000000000..2927dd707b0 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scss-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-scss', function(A) { +define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scss_highlight_rules").ScssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(i.prototype),b.Mode=i}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function i(a){var b=[],c=a.split("");for(var d=0;d|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ScssHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scss-min.js b/build/aui-ace-editor/aui-ace-editor-mode-scss-min.js new file mode 100644 index 00000000000..e143d10df54 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scss-min.js @@ -0,0 +1,2 @@ +AUI.add("aui-ace-editor-mode-scss",function(a){define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(r,q,p){var o=r("pilot/oop"),n=r("ace/mode/text").Mode,m=r("ace/tokenizer").Tokenizer,l=r("ace/mode/scss_highlight_rules").ScssHighlightRules,k=r("ace/mode/matching_brace_outdent").MatchingBraceOutdent,j=function(){this.$tokenizer=new m((new l).getRules()),this.$outdent=new k;};o.inherits(j,n),function(){this.getNextLineIndent=function(h,g,u){var t=this.$getIndent(g),s=this.$tokenizer.getLineTokens(g,h).tokens;if(s.length&&s[s.length-1].type=="comment"){return t;}var i=g.match(/^.*\{\s*$/);i&&(t+=u);return t;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(j.prototype),q.Mode=j;}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){function p(g){var f=[],w=g.split("");for(var v=0;v|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]};};m.inherits(j,k),h.ScssHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-scss.js b/build/aui-ace-editor/aui-ace-editor-mode-scss.js new file mode 100644 index 00000000000..2927dd707b0 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-scss.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-scss', function(A) { +define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scss_highlight_rules").ScssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(i.prototype),b.Mode=i}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function i(a){var b=[],c=a.split("");for(var d=0;d|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ScssHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-svg-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-svg-debug.js new file mode 100644 index 00000000000..7becb364bf0 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-svg-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-svg', function(A) { +define("ace/mode/svg",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/tokenizer","ace/mode/svg_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/tokenizer").Tokenizer,h=a("ace/mode/svg_highlight_rules").SvgHighlightRules,i=a("ace/mode/behaviour/xml").XmlBehaviour,j=function(){this.highlighter=new h,this.$tokenizer=new g(this.highlighter.getRules()),this.$behaviour=new i,this.$embeds=this.highlighter.getEmbeds(),this.createModeDelegates({"js-":f})};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/svg_highlight_rules",["require","exports","module","pilot/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,f=a("ace/mode/xml_highlight_rules").XmlHighlightRules,g=function(){f.call(this),this.$rules.start.splice(3,0,{token:"text",regex:"<(?=s*script)",next:"script"}),this.$rules.script=[{token:"text",regex:">",next:"js-start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],this.embedRules(e,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}])};d.inherits(g,f),b.SvgHighlightRules=g}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(l,"doc-",[(new l).getEndRule("start")]);};o.inherits(j,k),q.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; +};k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;qA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;}),define("ace/mode/svg_highlight_rules",["require","exports","module","pilot/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,k=i("ace/mode/xml_highlight_rules").XmlHighlightRules,j=function(){k.call(this),this.$rules.start.splice(3,0,{token:"text",regex:"<(?=s*script)",next:"script"}),this.$rules.script=[{token:"text",regex:">",next:"js-start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],this.embedRules(l,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]); +};m.inherits(j,k),h.SvgHighlightRules=j;}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};k.inherits(i,j),g.XmlHighlightRules=i;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(i,h,n){var m=i("pilot/oop"),l=i("ace/mode/behaviour").Behaviour,k=i("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.inherit(k,["string_dquotes"]),this.add("brackets","insertion",function(A,z,y,x,w){if(w=="<"){var v=y.getSelectionRange(),u=x.doc.getTextRange(v);return u!==""?!1:{text:"<>",selection:[1,1]};}if(w==">"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),r=s.substring(t.column,t.column+1);if(r==">"){return{text:"",selection:[1,1]};}}else{if(w=="\n"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),q=s.substring(t.column,t.column+2);if(q=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/svg_highlight_rules",["require","exports","module","pilot/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,f=a("ace/mode/xml_highlight_rules").XmlHighlightRules,g=function(){f.call(this),this.$rules.start.splice(3,0,{token:"text",regex:"<(?=s*script)",next:"script"}),this.$rules.script=[{token:"text",regex:">",next:"js-start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],this.embedRules(e,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}])};d.inherits(g,f),b.SvgHighlightRules=g}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k==""},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-mode-xml-min.js b/build/aui-ace-editor/aui-ace-editor-mode-xml-min.js new file mode 100644 index 00000000000..7a3f693ca61 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-xml-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-mode-xml",function(a){define("ace/mode/xml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml"],function(r,q,p){var o=r("pilot/oop"),n=r("ace/mode/text").Mode,m=r("ace/tokenizer").Tokenizer,l=r("ace/mode/xml_highlight_rules").XmlHighlightRules,k=r("ace/mode/behaviour/xml").XmlBehaviour,j=function(){this.$tokenizer=new m((new l).getRules()),this.$behaviour=new k;};o.inherits(j,n),function(){this.getNextLineIndent=function(e,d,f){return this.$getIndent(d);};}.call(j.prototype),q.Mode=j;}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};k.inherits(i,j),g.XmlHighlightRules=i;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(i,h,n){var m=i("pilot/oop"),l=i("ace/mode/behaviour").Behaviour,k=i("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.inherit(k,["string_dquotes"]),this.add("brackets","insertion",function(A,z,y,x,w){if(w=="<"){var v=y.getSelectionRange(),u=x.doc.getTextRange(v);return u!==""?!1:{text:"<>",selection:[1,1]};}if(w==">"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),r=s.substring(t.column,t.column+1);if(r==">"){return{text:"",selection:[1,1]};}}else{if(w=="\n"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),q=s.substring(t.column,t.column+2);if(q=="A.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-xml.js b/build/aui-ace-editor/aui-ace-editor-mode-xml.js new file mode 100644 index 00000000000..e8e5d796503 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-mode-xml.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-mode-xml', function(A) { +define("ace/mode/xml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/xml_highlight_rules").XmlHighlightRules,h=a("ace/mode/behaviour/xml").XmlBehaviour,i=function(){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(i.prototype),b.Mode=i}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-clouds-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-clouds-debug.js new file mode 100644 index 00000000000..5fe463ccd68 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-clouds-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-clouds', function(A) { +define("ace/theme/clouds",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-clouds-min.js b/build/aui-ace-editor/aui-ace-editor-theme-clouds-min.js new file mode 100644 index 00000000000..841f2757a74 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-clouds-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-clouds",function(a){define("ace/theme/clouds",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-clouds";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-clouds.js b/build/aui-ace-editor/aui-ace-editor-theme-clouds.js new file mode 100644 index 00000000000..5fe463ccd68 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-clouds.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-clouds', function(A) { +define("ace/theme/clouds",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-debug.js new file mode 100644 index 00000000000..270a47a9f32 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-clouds_midnight', function(A) { +define("ace/theme/clouds_midnight",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds-midnight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds-midnight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds-midnight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds-midnight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds-midnight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds-midnight .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds-midnight .ace_scroller {\n background-color: #191919;\n}\n\n.ace-clouds-midnight .ace_text-layer {\n cursor: text;\n color: #929292;\n}\n\n.ace-clouds-midnight .ace_cursor {\n border-left: 2px solid #7DA5DC;\n}\n\n.ace-clouds-midnight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #7DA5DC;\n}\n \n.ace-clouds-midnight .ace_marker-layer .ace_selection {\n background: #000000;\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_active_line {\n background: rgba(215, 215, 215, 0.031);\n}\n\n \n.ace-clouds-midnight .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds-midnight .ace_keyword {\n color:#927C5D;\n}\n\n.ace-clouds-midnight .ace_keyword.ace_operator {\n color:#4B4B4B;\n}\n\n.ace-clouds-midnight .ace_constant {\n \n}\n\n.ace-clouds-midnight .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds-midnight .ace_constant.ace_library {\n \n}\n\n.ace-clouds-midnight .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds-midnight .ace_invalid {\n color:#FFFFFF;\nbackground-color:#E92E2E;\n}\n\n.ace-clouds-midnight .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds-midnight .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds-midnight .ace_support {\n \n}\n\n.ace-clouds-midnight .ace_support.ace_function {\n color:#E92E2E;\n}\n\n.ace-clouds-midnight .ace_function.ace_buildin {\n \n}\n\n.ace-clouds-midnight .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds-midnight .ace_string.ace_regexp {\n \n}\n\n.ace-clouds-midnight .ace_comment {\n color:#3C403B;\n}\n\n.ace-clouds-midnight .ace_comment.ace_doc {\n \n}\n\n.ace-clouds-midnight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds-midnight .ace_variable {\n \n}\n\n.ace-clouds-midnight .ace_variable.ace_language {\n \n}\n\n.ace-clouds-midnight .ace_xml_pe {\n \n}\n\n.ace-clouds-midnight .ace_meta {\n \n}\n\n.ace-clouds-midnight .ace_meta.ace_tag {\n \n}\n\n.ace-clouds-midnight .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds-midnight .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds-midnight"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-min.js b/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-min.js new file mode 100644 index 00000000000..4f9652f6793 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-clouds_midnight",function(a){define("ace/theme/clouds_midnight",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-clouds-midnight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds-midnight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds-midnight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds-midnight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds-midnight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds-midnight .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds-midnight .ace_scroller {\n background-color: #191919;\n}\n\n.ace-clouds-midnight .ace_text-layer {\n cursor: text;\n color: #929292;\n}\n\n.ace-clouds-midnight .ace_cursor {\n border-left: 2px solid #7DA5DC;\n}\n\n.ace-clouds-midnight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #7DA5DC;\n}\n \n.ace-clouds-midnight .ace_marker-layer .ace_selection {\n background: #000000;\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_active_line {\n background: rgba(215, 215, 215, 0.031);\n}\n\n \n.ace-clouds-midnight .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds-midnight .ace_keyword {\n color:#927C5D;\n}\n\n.ace-clouds-midnight .ace_keyword.ace_operator {\n color:#4B4B4B;\n}\n\n.ace-clouds-midnight .ace_constant {\n \n}\n\n.ace-clouds-midnight .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds-midnight .ace_constant.ace_library {\n \n}\n\n.ace-clouds-midnight .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds-midnight .ace_invalid {\n color:#FFFFFF;\nbackground-color:#E92E2E;\n}\n\n.ace-clouds-midnight .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds-midnight .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds-midnight .ace_support {\n \n}\n\n.ace-clouds-midnight .ace_support.ace_function {\n color:#E92E2E;\n}\n\n.ace-clouds-midnight .ace_function.ace_buildin {\n \n}\n\n.ace-clouds-midnight .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds-midnight .ace_string.ace_regexp {\n \n}\n\n.ace-clouds-midnight .ace_comment {\n color:#3C403B;\n}\n\n.ace-clouds-midnight .ace_comment.ace_doc {\n \n}\n\n.ace-clouds-midnight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds-midnight .ace_variable {\n \n}\n\n.ace-clouds-midnight .ace_variable.ace_language {\n \n}\n\n.ace-clouds-midnight .ace_xml_pe {\n \n}\n\n.ace-clouds-midnight .ace_meta {\n \n}\n\n.ace-clouds-midnight .ace_meta.ace_tag {\n \n}\n\n.ace-clouds-midnight .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds-midnight .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-clouds-midnight";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight.js b/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight.js new file mode 100644 index 00000000000..270a47a9f32 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-clouds_midnight.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-clouds_midnight', function(A) { +define("ace/theme/clouds_midnight",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds-midnight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds-midnight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds-midnight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds-midnight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds-midnight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds-midnight .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds-midnight .ace_scroller {\n background-color: #191919;\n}\n\n.ace-clouds-midnight .ace_text-layer {\n cursor: text;\n color: #929292;\n}\n\n.ace-clouds-midnight .ace_cursor {\n border-left: 2px solid #7DA5DC;\n}\n\n.ace-clouds-midnight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #7DA5DC;\n}\n \n.ace-clouds-midnight .ace_marker-layer .ace_selection {\n background: #000000;\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds-midnight .ace_marker-layer .ace_active_line {\n background: rgba(215, 215, 215, 0.031);\n}\n\n \n.ace-clouds-midnight .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds-midnight .ace_keyword {\n color:#927C5D;\n}\n\n.ace-clouds-midnight .ace_keyword.ace_operator {\n color:#4B4B4B;\n}\n\n.ace-clouds-midnight .ace_constant {\n \n}\n\n.ace-clouds-midnight .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds-midnight .ace_constant.ace_library {\n \n}\n\n.ace-clouds-midnight .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds-midnight .ace_invalid {\n color:#FFFFFF;\nbackground-color:#E92E2E;\n}\n\n.ace-clouds-midnight .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds-midnight .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds-midnight .ace_support {\n \n}\n\n.ace-clouds-midnight .ace_support.ace_function {\n color:#E92E2E;\n}\n\n.ace-clouds-midnight .ace_function.ace_buildin {\n \n}\n\n.ace-clouds-midnight .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds-midnight .ace_string.ace_regexp {\n \n}\n\n.ace-clouds-midnight .ace_comment {\n color:#3C403B;\n}\n\n.ace-clouds-midnight .ace_comment.ace_doc {\n \n}\n\n.ace-clouds-midnight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds-midnight .ace_variable {\n \n}\n\n.ace-clouds-midnight .ace_variable.ace_language {\n \n}\n\n.ace-clouds-midnight .ace_xml_pe {\n \n}\n\n.ace-clouds-midnight .ace_meta {\n \n}\n\n.ace-clouds-midnight .ace_meta.ace_tag {\n \n}\n\n.ace-clouds-midnight .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds-midnight .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds-midnight"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-cobalt-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-cobalt-debug.js new file mode 100644 index 00000000000..513e91a3926 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-cobalt-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-cobalt', function(A) { +define("ace/theme/cobalt",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-cobalt .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-cobalt .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-cobalt .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-cobalt .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-cobalt .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-cobalt .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-cobalt .ace_scroller {\n background-color: #002240;\n}\n\n.ace-cobalt .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-cobalt .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-cobalt .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-cobalt .ace_marker-layer .ace_selection {\n background: rgba(179, 101, 57, 0.75);\n}\n\n.ace-cobalt .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-cobalt .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.15);\n}\n\n.ace-cobalt .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.35);\n}\n\n \n.ace-cobalt .ace_invisible {\n color: rgba(255, 255, 255, 0.15);\n}\n\n.ace-cobalt .ace_keyword {\n color:#FF9D00;\n}\n\n.ace-cobalt .ace_keyword.ace_operator {\n \n}\n\n.ace-cobalt .ace_constant {\n color:#FF628C;\n}\n\n.ace-cobalt .ace_constant.ace_language {\n \n}\n\n.ace-cobalt .ace_constant.ace_library {\n \n}\n\n.ace-cobalt .ace_constant.ace_numeric {\n \n}\n\n.ace-cobalt .ace_invalid {\n color:#F8F8F8;\nbackground-color:#800F00;\n}\n\n.ace-cobalt .ace_invalid.ace_illegal {\n \n}\n\n.ace-cobalt .ace_invalid.ace_deprecated {\n \n}\n\n.ace-cobalt .ace_support {\n color:#80FFBB;\n}\n\n.ace-cobalt .ace_support.ace_function {\n color:#FFB054;\n}\n\n.ace-cobalt .ace_function.ace_buildin {\n \n}\n\n.ace-cobalt .ace_string {\n \n}\n\n.ace-cobalt .ace_string.ace_regexp {\n color:#80FFC2;\n}\n\n.ace-cobalt .ace_comment {\n font-style:italic;\ncolor:#0088FF;\n}\n\n.ace-cobalt .ace_comment.ace_doc {\n \n}\n\n.ace-cobalt .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-cobalt .ace_variable {\n color:#CCCCCC;\n}\n\n.ace-cobalt .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-cobalt .ace_xml_pe {\n \n}\n\n.ace-cobalt .ace_meta {\n \n}\n\n.ace-cobalt .ace_meta.ace_tag {\n color:#9EFFFF;\n}\n\n.ace-cobalt .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-cobalt .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-cobalt .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-cobalt"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-cobalt-min.js b/build/aui-ace-editor/aui-ace-editor-theme-cobalt-min.js new file mode 100644 index 00000000000..faefe4480bc --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-cobalt-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-cobalt",function(a){define("ace/theme/cobalt",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-cobalt .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-cobalt .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-cobalt .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-cobalt .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-cobalt .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-cobalt .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-cobalt .ace_scroller {\n background-color: #002240;\n}\n\n.ace-cobalt .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-cobalt .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-cobalt .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-cobalt .ace_marker-layer .ace_selection {\n background: rgba(179, 101, 57, 0.75);\n}\n\n.ace-cobalt .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-cobalt .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.15);\n}\n\n.ace-cobalt .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.35);\n}\n\n \n.ace-cobalt .ace_invisible {\n color: rgba(255, 255, 255, 0.15);\n}\n\n.ace-cobalt .ace_keyword {\n color:#FF9D00;\n}\n\n.ace-cobalt .ace_keyword.ace_operator {\n \n}\n\n.ace-cobalt .ace_constant {\n color:#FF628C;\n}\n\n.ace-cobalt .ace_constant.ace_language {\n \n}\n\n.ace-cobalt .ace_constant.ace_library {\n \n}\n\n.ace-cobalt .ace_constant.ace_numeric {\n \n}\n\n.ace-cobalt .ace_invalid {\n color:#F8F8F8;\nbackground-color:#800F00;\n}\n\n.ace-cobalt .ace_invalid.ace_illegal {\n \n}\n\n.ace-cobalt .ace_invalid.ace_deprecated {\n \n}\n\n.ace-cobalt .ace_support {\n color:#80FFBB;\n}\n\n.ace-cobalt .ace_support.ace_function {\n color:#FFB054;\n}\n\n.ace-cobalt .ace_function.ace_buildin {\n \n}\n\n.ace-cobalt .ace_string {\n \n}\n\n.ace-cobalt .ace_string.ace_regexp {\n color:#80FFC2;\n}\n\n.ace-cobalt .ace_comment {\n font-style:italic;\ncolor:#0088FF;\n}\n\n.ace-cobalt .ace_comment.ace_doc {\n \n}\n\n.ace-cobalt .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-cobalt .ace_variable {\n color:#CCCCCC;\n}\n\n.ace-cobalt .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-cobalt .ace_xml_pe {\n \n}\n\n.ace-cobalt .ace_meta {\n \n}\n\n.ace-cobalt .ace_meta.ace_tag {\n color:#9EFFFF;\n}\n\n.ace-cobalt .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-cobalt .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-cobalt .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-cobalt";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-cobalt.js b/build/aui-ace-editor/aui-ace-editor-theme-cobalt.js new file mode 100644 index 00000000000..513e91a3926 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-cobalt.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-cobalt', function(A) { +define("ace/theme/cobalt",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-cobalt .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-cobalt .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-cobalt .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-cobalt .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-cobalt .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-cobalt .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-cobalt .ace_scroller {\n background-color: #002240;\n}\n\n.ace-cobalt .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-cobalt .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-cobalt .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-cobalt .ace_marker-layer .ace_selection {\n background: rgba(179, 101, 57, 0.75);\n}\n\n.ace-cobalt .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-cobalt .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.15);\n}\n\n.ace-cobalt .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.35);\n}\n\n \n.ace-cobalt .ace_invisible {\n color: rgba(255, 255, 255, 0.15);\n}\n\n.ace-cobalt .ace_keyword {\n color:#FF9D00;\n}\n\n.ace-cobalt .ace_keyword.ace_operator {\n \n}\n\n.ace-cobalt .ace_constant {\n color:#FF628C;\n}\n\n.ace-cobalt .ace_constant.ace_language {\n \n}\n\n.ace-cobalt .ace_constant.ace_library {\n \n}\n\n.ace-cobalt .ace_constant.ace_numeric {\n \n}\n\n.ace-cobalt .ace_invalid {\n color:#F8F8F8;\nbackground-color:#800F00;\n}\n\n.ace-cobalt .ace_invalid.ace_illegal {\n \n}\n\n.ace-cobalt .ace_invalid.ace_deprecated {\n \n}\n\n.ace-cobalt .ace_support {\n color:#80FFBB;\n}\n\n.ace-cobalt .ace_support.ace_function {\n color:#FFB054;\n}\n\n.ace-cobalt .ace_function.ace_buildin {\n \n}\n\n.ace-cobalt .ace_string {\n \n}\n\n.ace-cobalt .ace_string.ace_regexp {\n color:#80FFC2;\n}\n\n.ace-cobalt .ace_comment {\n font-style:italic;\ncolor:#0088FF;\n}\n\n.ace-cobalt .ace_comment.ace_doc {\n \n}\n\n.ace-cobalt .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-cobalt .ace_variable {\n color:#CCCCCC;\n}\n\n.ace-cobalt .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-cobalt .ace_xml_pe {\n \n}\n\n.ace-cobalt .ace_meta {\n \n}\n\n.ace-cobalt .ace_meta.ace_tag {\n color:#9EFFFF;\n}\n\n.ace-cobalt .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-cobalt .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-cobalt .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-cobalt"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-debug.js new file mode 100644 index 00000000000..76cbb2e8182 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-crimson_editor', function(A) { +define("ace/theme/crimson_editor",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-crimson-editor .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-crimson-editor .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-crimson-editor .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-crimson-editor .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-crimson-editor .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-crimson-editor .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-crimson-editor .ace_text-layer {\n cursor: text;\n color: rgb(64, 64, 64);\n}\n\n.ace-crimson-editor .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-crimson-editor .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n\n.ace-crimson-editor .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-crimson-editor .ace_line .ace_identifier {\n color: black;\n}\n\n.ace-crimson-editor .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_language {\n color: rgb(255, 156, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-crimson-editor .ace_line .ace_invalid {\n text-decoration: line-through;\n color: rgb(224, 0, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_function {\n color: rgb(192, 0, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_type,\n.ace-crimson-editor .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-crimson-editor .ace_line .ace_keyword.ace_operator {\n color: rgb(49, 132, 149);\n}\n\n.ace-crimson-editor .ace_line .ace_string {\n color: rgb(128, 0, 128);\n}\n\n.ace-crimson-editor .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-crimson-editor .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-crimson-editor .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 64);\n}\n\n.ace-crimson-editor .ace_line .ace_variable {\n color: rgb(0, 64, 128);\n}\n\n.ace-crimson-editor .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_active_line {\n background: rgb(232, 242, 254);\n}\n\n.ace-crimson-editor .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-crimson-editor .ace_string.ace_regex {\n color: rgb(192, 0, 192);\n}";d.importCssString(e),b.cssClass="ace-crimson-editor"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-min.js b/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-min.js new file mode 100644 index 00000000000..dc5c86b7d4a --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-crimson_editor",function(a){define("ace/theme/crimson_editor",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-crimson-editor .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-crimson-editor .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-crimson-editor .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-crimson-editor .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-crimson-editor .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-crimson-editor .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-crimson-editor .ace_text-layer {\n cursor: text;\n color: rgb(64, 64, 64);\n}\n\n.ace-crimson-editor .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-crimson-editor .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n\n.ace-crimson-editor .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-crimson-editor .ace_line .ace_identifier {\n color: black;\n}\n\n.ace-crimson-editor .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_language {\n color: rgb(255, 156, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-crimson-editor .ace_line .ace_invalid {\n text-decoration: line-through;\n color: rgb(224, 0, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_function {\n color: rgb(192, 0, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_type,\n.ace-crimson-editor .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-crimson-editor .ace_line .ace_keyword.ace_operator {\n color: rgb(49, 132, 149);\n}\n\n.ace-crimson-editor .ace_line .ace_string {\n color: rgb(128, 0, 128);\n}\n\n.ace-crimson-editor .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-crimson-editor .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-crimson-editor .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 64);\n}\n\n.ace-crimson-editor .ace_line .ace_variable {\n color: rgb(0, 64, 128);\n}\n\n.ace-crimson-editor .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_active_line {\n background: rgb(232, 242, 254);\n}\n\n.ace-crimson-editor .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-crimson-editor .ace_string.ace_regex {\n color: rgb(192, 0, 192);\n}";i.importCssString(h),f.cssClass="ace-crimson-editor";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor.js b/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor.js new file mode 100644 index 00000000000..76cbb2e8182 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-crimson_editor.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-crimson_editor', function(A) { +define("ace/theme/crimson_editor",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-crimson-editor .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-crimson-editor .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-crimson-editor .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-crimson-editor .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-crimson-editor .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-crimson-editor .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-crimson-editor .ace_text-layer {\n cursor: text;\n color: rgb(64, 64, 64);\n}\n\n.ace-crimson-editor .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-crimson-editor .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n\n.ace-crimson-editor .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-crimson-editor .ace_line .ace_identifier {\n color: black;\n}\n\n.ace-crimson-editor .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_language {\n color: rgb(255, 156, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-crimson-editor .ace_line .ace_invalid {\n text-decoration: line-through;\n color: rgb(224, 0, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_function {\n color: rgb(192, 0, 0);\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-crimson-editor .ace_line .ace_support.ace_type,\n.ace-crimson-editor .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-crimson-editor .ace_line .ace_keyword.ace_operator {\n color: rgb(49, 132, 149);\n}\n\n.ace-crimson-editor .ace_line .ace_string {\n color: rgb(128, 0, 128);\n}\n\n.ace-crimson-editor .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-crimson-editor .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-crimson-editor .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-crimson-editor .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 64);\n}\n\n.ace-crimson-editor .ace_line .ace_variable {\n color: rgb(0, 64, 128);\n}\n\n.ace-crimson-editor .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_active_line {\n background: rgb(232, 242, 254);\n}\n\n.ace-crimson-editor .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-crimson-editor .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-crimson-editor .ace_string.ace_regex {\n color: rgb(192, 0, 192);\n}";d.importCssString(e),b.cssClass="ace-crimson-editor"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-dawn-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-dawn-debug.js new file mode 100644 index 00000000000..4bab29ea86a --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-dawn-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-dawn', function(A) { +define("ace/theme/dawn",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-dawn .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-dawn .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-dawn .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-dawn .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-dawn .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-dawn .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-dawn .ace_scroller {\n background-color: #F9F9F9;\n}\n\n.ace-dawn .ace_text-layer {\n cursor: text;\n color: #080808;\n}\n\n.ace-dawn .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-dawn .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-dawn .ace_marker-layer .ace_selection {\n background: rgba(39, 95, 255, 0.30);\n}\n\n.ace-dawn .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-dawn .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_marker-layer .ace_active_line {\n background: rgba(36, 99, 180, 0.12);\n}\n\n \n.ace-dawn .ace_invisible {\n color: rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_keyword {\n color:#794938;\n}\n\n.ace-dawn .ace_keyword.ace_operator {\n \n}\n\n.ace-dawn .ace_constant {\n color:#811F24;\n}\n\n.ace-dawn .ace_constant.ace_language {\n \n}\n\n.ace-dawn .ace_constant.ace_library {\n \n}\n\n.ace-dawn .ace_constant.ace_numeric {\n \n}\n\n.ace-dawn .ace_invalid {\n \n}\n\n.ace-dawn .ace_invalid.ace_illegal {\n text-decoration:underline;\nfont-style:italic;\ncolor:#F8F8F8;\nbackground-color:#B52A1D;\n}\n\n.ace-dawn .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#B52A1D;\n}\n\n.ace-dawn .ace_support {\n color:#691C97;\n}\n\n.ace-dawn .ace_support.ace_function {\n color:#693A17;\n}\n\n.ace-dawn .ace_function.ace_buildin {\n \n}\n\n.ace-dawn .ace_string {\n color:#0B6125;\n}\n\n.ace-dawn .ace_string.ace_regexp {\n color:#CF5628;\n}\n\n.ace-dawn .ace_comment {\n font-style:italic;\ncolor:#5A525F;\n}\n\n.ace-dawn .ace_comment.ace_doc {\n \n}\n\n.ace-dawn .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-dawn .ace_variable {\n color:#234A97;\n}\n\n.ace-dawn .ace_variable.ace_language {\n \n}\n\n.ace-dawn .ace_xml_pe {\n \n}\n\n.ace-dawn .ace_meta {\n \n}\n\n.ace-dawn .ace_meta.ace_tag {\n \n}\n\n.ace-dawn .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-dawn .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-dawn .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-dawn"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-dawn-min.js b/build/aui-ace-editor/aui-ace-editor-theme-dawn-min.js new file mode 100644 index 00000000000..2b5b665f094 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-dawn-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-dawn",function(a){define("ace/theme/dawn",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-dawn .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-dawn .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-dawn .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-dawn .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-dawn .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-dawn .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-dawn .ace_scroller {\n background-color: #F9F9F9;\n}\n\n.ace-dawn .ace_text-layer {\n cursor: text;\n color: #080808;\n}\n\n.ace-dawn .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-dawn .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-dawn .ace_marker-layer .ace_selection {\n background: rgba(39, 95, 255, 0.30);\n}\n\n.ace-dawn .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-dawn .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_marker-layer .ace_active_line {\n background: rgba(36, 99, 180, 0.12);\n}\n\n \n.ace-dawn .ace_invisible {\n color: rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_keyword {\n color:#794938;\n}\n\n.ace-dawn .ace_keyword.ace_operator {\n \n}\n\n.ace-dawn .ace_constant {\n color:#811F24;\n}\n\n.ace-dawn .ace_constant.ace_language {\n \n}\n\n.ace-dawn .ace_constant.ace_library {\n \n}\n\n.ace-dawn .ace_constant.ace_numeric {\n \n}\n\n.ace-dawn .ace_invalid {\n \n}\n\n.ace-dawn .ace_invalid.ace_illegal {\n text-decoration:underline;\nfont-style:italic;\ncolor:#F8F8F8;\nbackground-color:#B52A1D;\n}\n\n.ace-dawn .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#B52A1D;\n}\n\n.ace-dawn .ace_support {\n color:#691C97;\n}\n\n.ace-dawn .ace_support.ace_function {\n color:#693A17;\n}\n\n.ace-dawn .ace_function.ace_buildin {\n \n}\n\n.ace-dawn .ace_string {\n color:#0B6125;\n}\n\n.ace-dawn .ace_string.ace_regexp {\n color:#CF5628;\n}\n\n.ace-dawn .ace_comment {\n font-style:italic;\ncolor:#5A525F;\n}\n\n.ace-dawn .ace_comment.ace_doc {\n \n}\n\n.ace-dawn .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-dawn .ace_variable {\n color:#234A97;\n}\n\n.ace-dawn .ace_variable.ace_language {\n \n}\n\n.ace-dawn .ace_xml_pe {\n \n}\n\n.ace-dawn .ace_meta {\n \n}\n\n.ace-dawn .ace_meta.ace_tag {\n \n}\n\n.ace-dawn .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-dawn .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-dawn .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-dawn";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-dawn.js b/build/aui-ace-editor/aui-ace-editor-theme-dawn.js new file mode 100644 index 00000000000..4bab29ea86a --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-dawn.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-dawn', function(A) { +define("ace/theme/dawn",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-dawn .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-dawn .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-dawn .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-dawn .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-dawn .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-dawn .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-dawn .ace_scroller {\n background-color: #F9F9F9;\n}\n\n.ace-dawn .ace_text-layer {\n cursor: text;\n color: #080808;\n}\n\n.ace-dawn .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-dawn .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-dawn .ace_marker-layer .ace_selection {\n background: rgba(39, 95, 255, 0.30);\n}\n\n.ace-dawn .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-dawn .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_marker-layer .ace_active_line {\n background: rgba(36, 99, 180, 0.12);\n}\n\n \n.ace-dawn .ace_invisible {\n color: rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_keyword {\n color:#794938;\n}\n\n.ace-dawn .ace_keyword.ace_operator {\n \n}\n\n.ace-dawn .ace_constant {\n color:#811F24;\n}\n\n.ace-dawn .ace_constant.ace_language {\n \n}\n\n.ace-dawn .ace_constant.ace_library {\n \n}\n\n.ace-dawn .ace_constant.ace_numeric {\n \n}\n\n.ace-dawn .ace_invalid {\n \n}\n\n.ace-dawn .ace_invalid.ace_illegal {\n text-decoration:underline;\nfont-style:italic;\ncolor:#F8F8F8;\nbackground-color:#B52A1D;\n}\n\n.ace-dawn .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#B52A1D;\n}\n\n.ace-dawn .ace_support {\n color:#691C97;\n}\n\n.ace-dawn .ace_support.ace_function {\n color:#693A17;\n}\n\n.ace-dawn .ace_function.ace_buildin {\n \n}\n\n.ace-dawn .ace_string {\n color:#0B6125;\n}\n\n.ace-dawn .ace_string.ace_regexp {\n color:#CF5628;\n}\n\n.ace-dawn .ace_comment {\n font-style:italic;\ncolor:#5A525F;\n}\n\n.ace-dawn .ace_comment.ace_doc {\n \n}\n\n.ace-dawn .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-dawn .ace_variable {\n color:#234A97;\n}\n\n.ace-dawn .ace_variable.ace_language {\n \n}\n\n.ace-dawn .ace_xml_pe {\n \n}\n\n.ace-dawn .ace_meta {\n \n}\n\n.ace-dawn .ace_meta.ace_tag {\n \n}\n\n.ace-dawn .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-dawn .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-dawn .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-dawn"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-eclipse-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-eclipse-debug.js new file mode 100644 index 00000000000..c9fe56a37b2 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-eclipse-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-eclipse', function(A) { +define("ace/theme/eclipse",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-eclipse .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-eclipse .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-eclipse .ace_gutter {\n width: 50px;\n background: rgb(227, 227, 227);\n border-right: 1px solid rgb(159, 159, 159);\t \n color: rgb(136, 136, 136);\n}\n\n.ace-eclipse .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-eclipse .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-eclipse .ace_text-layer {\n cursor: text;\n}\n\n.ace-eclipse .ace_cursor {\n border-left: 1px solid black;\n}\n\n.ace-eclipse .ace_line .ace_keyword, .ace-eclipse .ace_line .ace_variable {\n color: rgb(127, 0, 85);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-eclipse .ace_line .ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-eclipse .ace_line .ace_string {\n color: rgb(42, 0, 255);\n}\n\n.ace-eclipse .ace_line .ace_comment {\n color: rgb(63, 127, 95);\n}\n\n.ace-eclipse .ace_line .ace_comment.ace_doc {\n color: rgb(63, 95, 191);\n}\n\n.ace-eclipse .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(127, 159, 191);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_numeric {\n}\n\n.ace-eclipse .ace_line .ace_tag {\n color: rgb(63, 127, 127);\n}\n\n.ace-eclipse .ace_line .ace_type {\n color: rgb(127, 0, 127);\n}\n\n.ace-eclipse .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-eclipse .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-eclipse .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-eclipse .ace_line .ace_meta.ace_tag {\n color:rgb(63, 127, 127);\n}\n\n.ace-eclipse .ace_entity.ace_other.ace_attribute-name {\n color:rgb(127, 0, 127);\n}\n\n.ace-eclipse .ace_marker-layer .ace_active_line {\n background: rgb(232, 242, 254);\n}";d.importCssString(e),b.cssClass="ace-eclipse"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-eclipse-min.js b/build/aui-ace-editor/aui-ace-editor-theme-eclipse-min.js new file mode 100644 index 00000000000..89ffede5d23 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-eclipse-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-eclipse",function(a){define("ace/theme/eclipse",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-eclipse .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-eclipse .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-eclipse .ace_gutter {\n width: 50px;\n background: rgb(227, 227, 227);\n border-right: 1px solid rgb(159, 159, 159);\t \n color: rgb(136, 136, 136);\n}\n\n.ace-eclipse .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-eclipse .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-eclipse .ace_text-layer {\n cursor: text;\n}\n\n.ace-eclipse .ace_cursor {\n border-left: 1px solid black;\n}\n\n.ace-eclipse .ace_line .ace_keyword, .ace-eclipse .ace_line .ace_variable {\n color: rgb(127, 0, 85);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-eclipse .ace_line .ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-eclipse .ace_line .ace_string {\n color: rgb(42, 0, 255);\n}\n\n.ace-eclipse .ace_line .ace_comment {\n color: rgb(63, 127, 95);\n}\n\n.ace-eclipse .ace_line .ace_comment.ace_doc {\n color: rgb(63, 95, 191);\n}\n\n.ace-eclipse .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(127, 159, 191);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_numeric {\n}\n\n.ace-eclipse .ace_line .ace_tag {\n color: rgb(63, 127, 127);\n}\n\n.ace-eclipse .ace_line .ace_type {\n color: rgb(127, 0, 127);\n}\n\n.ace-eclipse .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-eclipse .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-eclipse .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-eclipse .ace_line .ace_meta.ace_tag {\n color:rgb(63, 127, 127);\n}\n\n.ace-eclipse .ace_entity.ace_other.ace_attribute-name {\n color:rgb(127, 0, 127);\n}\n\n.ace-eclipse .ace_marker-layer .ace_active_line {\n background: rgb(232, 242, 254);\n}";i.importCssString(h),f.cssClass="ace-eclipse";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-eclipse.js b/build/aui-ace-editor/aui-ace-editor-theme-eclipse.js new file mode 100644 index 00000000000..c9fe56a37b2 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-eclipse.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-eclipse', function(A) { +define("ace/theme/eclipse",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-eclipse .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-eclipse .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-eclipse .ace_gutter {\n width: 50px;\n background: rgb(227, 227, 227);\n border-right: 1px solid rgb(159, 159, 159);\t \n color: rgb(136, 136, 136);\n}\n\n.ace-eclipse .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-eclipse .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-eclipse .ace_text-layer {\n cursor: text;\n}\n\n.ace-eclipse .ace_cursor {\n border-left: 1px solid black;\n}\n\n.ace-eclipse .ace_line .ace_keyword, .ace-eclipse .ace_line .ace_variable {\n color: rgb(127, 0, 85);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-eclipse .ace_line .ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-eclipse .ace_line .ace_string {\n color: rgb(42, 0, 255);\n}\n\n.ace-eclipse .ace_line .ace_comment {\n color: rgb(63, 127, 95);\n}\n\n.ace-eclipse .ace_line .ace_comment.ace_doc {\n color: rgb(63, 95, 191);\n}\n\n.ace-eclipse .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(127, 159, 191);\n}\n\n.ace-eclipse .ace_line .ace_constant.ace_numeric {\n}\n\n.ace-eclipse .ace_line .ace_tag {\n color: rgb(63, 127, 127);\n}\n\n.ace-eclipse .ace_line .ace_type {\n color: rgb(127, 0, 127);\n}\n\n.ace-eclipse .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-eclipse .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-eclipse .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-eclipse .ace_line .ace_meta.ace_tag {\n color:rgb(63, 127, 127);\n}\n\n.ace-eclipse .ace_entity.ace_other.ace_attribute-name {\n color:rgb(127, 0, 127);\n}\n\n.ace-eclipse .ace_marker-layer .ace_active_line {\n background: rgb(232, 242, 254);\n}";d.importCssString(e),b.cssClass="ace-eclipse"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-debug.js new file mode 100644 index 00000000000..42691a5ea4e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-idle_fingers', function(A) { +define("ace/theme/idle_fingers",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-idle-fingers .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-idle-fingers .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-idle-fingers .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-idle-fingers .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-idle-fingers .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-idle-fingers .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-idle-fingers .ace_scroller {\n background-color: #323232;\n}\n\n.ace-idle-fingers .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-idle-fingers .ace_cursor {\n border-left: 2px solid #91FF00;\n}\n\n.ace-idle-fingers .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #91FF00;\n}\n \n.ace-idle-fingers .ace_marker-layer .ace_selection {\n background: rgba(90, 100, 126, 0.88);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #404040;\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_active_line {\n background: #353637;\n}\n\n \n.ace-idle-fingers .ace_invisible {\n color: #404040;\n}\n\n.ace-idle-fingers .ace_keyword {\n color:#CC7833;\n}\n\n.ace-idle-fingers .ace_keyword.ace_operator {\n \n}\n\n.ace-idle-fingers .ace_constant {\n color:#6C99BB;\n}\n\n.ace-idle-fingers .ace_constant.ace_language {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_library {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_numeric {\n \n}\n\n.ace-idle-fingers .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FF0000;\n}\n\n.ace-idle-fingers .ace_invalid.ace_illegal {\n \n}\n\n.ace-idle-fingers .ace_invalid.ace_deprecated {\n \n}\n\n.ace-idle-fingers .ace_support {\n \n}\n\n.ace-idle-fingers .ace_support.ace_function {\n color:#B83426;\n}\n\n.ace-idle-fingers .ace_function.ace_buildin {\n \n}\n\n.ace-idle-fingers .ace_string {\n color:#A5C261;\n}\n\n.ace-idle-fingers .ace_string.ace_regexp {\n color:#CCCC33;\n}\n\n.ace-idle-fingers .ace_comment {\n font-style:italic;\ncolor:#BC9458;\n}\n\n.ace-idle-fingers .ace_comment.ace_doc {\n \n}\n\n.ace-idle-fingers .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-idle-fingers .ace_variable {\n \n}\n\n.ace-idle-fingers .ace_variable.ace_language {\n \n}\n\n.ace-idle-fingers .ace_xml_pe {\n \n}\n\n.ace-idle-fingers .ace_meta {\n \n}\n\n.ace-idle-fingers .ace_meta.ace_tag {\n color:#FFE5BB;\n}\n\n.ace-idle-fingers .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-idle-fingers .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-idle-fingers .ace_collab.ace_user1 {\n color:#323232;\nbackground-color:#FFF980; \n}";d.importCssString(e),b.cssClass="ace-idle-fingers"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-min.js b/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-min.js new file mode 100644 index 00000000000..38f00a65ba6 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-idle_fingers",function(a){define("ace/theme/idle_fingers",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-idle-fingers .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-idle-fingers .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-idle-fingers .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-idle-fingers .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-idle-fingers .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-idle-fingers .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-idle-fingers .ace_scroller {\n background-color: #323232;\n}\n\n.ace-idle-fingers .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-idle-fingers .ace_cursor {\n border-left: 2px solid #91FF00;\n}\n\n.ace-idle-fingers .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #91FF00;\n}\n \n.ace-idle-fingers .ace_marker-layer .ace_selection {\n background: rgba(90, 100, 126, 0.88);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #404040;\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_active_line {\n background: #353637;\n}\n\n \n.ace-idle-fingers .ace_invisible {\n color: #404040;\n}\n\n.ace-idle-fingers .ace_keyword {\n color:#CC7833;\n}\n\n.ace-idle-fingers .ace_keyword.ace_operator {\n \n}\n\n.ace-idle-fingers .ace_constant {\n color:#6C99BB;\n}\n\n.ace-idle-fingers .ace_constant.ace_language {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_library {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_numeric {\n \n}\n\n.ace-idle-fingers .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FF0000;\n}\n\n.ace-idle-fingers .ace_invalid.ace_illegal {\n \n}\n\n.ace-idle-fingers .ace_invalid.ace_deprecated {\n \n}\n\n.ace-idle-fingers .ace_support {\n \n}\n\n.ace-idle-fingers .ace_support.ace_function {\n color:#B83426;\n}\n\n.ace-idle-fingers .ace_function.ace_buildin {\n \n}\n\n.ace-idle-fingers .ace_string {\n color:#A5C261;\n}\n\n.ace-idle-fingers .ace_string.ace_regexp {\n color:#CCCC33;\n}\n\n.ace-idle-fingers .ace_comment {\n font-style:italic;\ncolor:#BC9458;\n}\n\n.ace-idle-fingers .ace_comment.ace_doc {\n \n}\n\n.ace-idle-fingers .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-idle-fingers .ace_variable {\n \n}\n\n.ace-idle-fingers .ace_variable.ace_language {\n \n}\n\n.ace-idle-fingers .ace_xml_pe {\n \n}\n\n.ace-idle-fingers .ace_meta {\n \n}\n\n.ace-idle-fingers .ace_meta.ace_tag {\n color:#FFE5BB;\n}\n\n.ace-idle-fingers .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-idle-fingers .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-idle-fingers .ace_collab.ace_user1 {\n color:#323232;\nbackground-color:#FFF980; \n}";i.importCssString(h),f.cssClass="ace-idle-fingers";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers.js b/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers.js new file mode 100644 index 00000000000..42691a5ea4e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-idle_fingers.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-idle_fingers', function(A) { +define("ace/theme/idle_fingers",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-idle-fingers .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-idle-fingers .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-idle-fingers .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-idle-fingers .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-idle-fingers .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-idle-fingers .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-idle-fingers .ace_scroller {\n background-color: #323232;\n}\n\n.ace-idle-fingers .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-idle-fingers .ace_cursor {\n border-left: 2px solid #91FF00;\n}\n\n.ace-idle-fingers .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #91FF00;\n}\n \n.ace-idle-fingers .ace_marker-layer .ace_selection {\n background: rgba(90, 100, 126, 0.88);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #404040;\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_active_line {\n background: #353637;\n}\n\n \n.ace-idle-fingers .ace_invisible {\n color: #404040;\n}\n\n.ace-idle-fingers .ace_keyword {\n color:#CC7833;\n}\n\n.ace-idle-fingers .ace_keyword.ace_operator {\n \n}\n\n.ace-idle-fingers .ace_constant {\n color:#6C99BB;\n}\n\n.ace-idle-fingers .ace_constant.ace_language {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_library {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_numeric {\n \n}\n\n.ace-idle-fingers .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FF0000;\n}\n\n.ace-idle-fingers .ace_invalid.ace_illegal {\n \n}\n\n.ace-idle-fingers .ace_invalid.ace_deprecated {\n \n}\n\n.ace-idle-fingers .ace_support {\n \n}\n\n.ace-idle-fingers .ace_support.ace_function {\n color:#B83426;\n}\n\n.ace-idle-fingers .ace_function.ace_buildin {\n \n}\n\n.ace-idle-fingers .ace_string {\n color:#A5C261;\n}\n\n.ace-idle-fingers .ace_string.ace_regexp {\n color:#CCCC33;\n}\n\n.ace-idle-fingers .ace_comment {\n font-style:italic;\ncolor:#BC9458;\n}\n\n.ace-idle-fingers .ace_comment.ace_doc {\n \n}\n\n.ace-idle-fingers .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-idle-fingers .ace_variable {\n \n}\n\n.ace-idle-fingers .ace_variable.ace_language {\n \n}\n\n.ace-idle-fingers .ace_xml_pe {\n \n}\n\n.ace-idle-fingers .ace_meta {\n \n}\n\n.ace-idle-fingers .ace_meta.ace_tag {\n color:#FFE5BB;\n}\n\n.ace-idle-fingers .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-idle-fingers .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-idle-fingers .ace_collab.ace_user1 {\n color:#323232;\nbackground-color:#FFF980; \n}";d.importCssString(e),b.cssClass="ace-idle-fingers"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-kr_theme-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-kr_theme-debug.js new file mode 100644 index 00000000000..674ab23d022 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-kr_theme-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-kr_theme', function(A) { +define("ace/theme/kr_theme",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-kr-theme .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-kr-theme .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-kr-theme .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-kr-theme .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-kr-theme .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-kr-theme .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-kr-theme .ace_scroller {\n background-color: #0B0A09;\n}\n\n.ace-kr-theme .ace_text-layer {\n cursor: text;\n color: #FCFFE0;\n}\n\n.ace-kr-theme .ace_cursor {\n border-left: 2px solid #FF9900;\n}\n\n.ace-kr-theme .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FF9900;\n}\n \n.ace-kr-theme .ace_marker-layer .ace_selection {\n background: rgba(170, 0, 255, 0.45);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_active_line {\n background: #38403D;\n}\n\n \n.ace-kr-theme .ace_invisible {\n color: rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_keyword {\n color:#949C8B;\n}\n\n.ace-kr-theme .ace_keyword.ace_operator {\n \n}\n\n.ace-kr-theme .ace_constant {\n color:rgba(210, 117, 24, 0.76);\n}\n\n.ace-kr-theme .ace_constant.ace_language {\n \n}\n\n.ace-kr-theme .ace_constant.ace_library {\n \n}\n\n.ace-kr-theme .ace_constant.ace_numeric {\n \n}\n\n.ace-kr-theme .ace_invalid {\n color:#F8F8F8;\nbackground-color:#A41300;\n}\n\n.ace-kr-theme .ace_invalid.ace_illegal {\n \n}\n\n.ace-kr-theme .ace_invalid.ace_deprecated {\n \n}\n\n.ace-kr-theme .ace_support {\n color:#9FC28A;\n}\n\n.ace-kr-theme .ace_support.ace_function {\n color:#85873A;\n}\n\n.ace-kr-theme .ace_function.ace_buildin {\n \n}\n\n.ace-kr-theme .ace_string {\n \n}\n\n.ace-kr-theme .ace_string.ace_regexp {\n color:rgba(125, 255, 192, 0.65);\n}\n\n.ace-kr-theme .ace_comment {\n font-style:italic;\ncolor:#706D5B;\n}\n\n.ace-kr-theme .ace_comment.ace_doc {\n \n}\n\n.ace-kr-theme .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-kr-theme .ace_variable {\n color:#D1A796;\n}\n\n.ace-kr-theme .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-kr-theme .ace_xml_pe {\n \n}\n\n.ace-kr-theme .ace_meta {\n \n}\n\n.ace-kr-theme .ace_meta.ace_tag {\n color:#BABD9C;\n}\n\n.ace-kr-theme .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-kr-theme .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-kr-theme .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-kr-theme"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-kr_theme-min.js b/build/aui-ace-editor/aui-ace-editor-theme-kr_theme-min.js new file mode 100644 index 00000000000..27246070736 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-kr_theme-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-kr_theme",function(a){define("ace/theme/kr_theme",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-kr-theme .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-kr-theme .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-kr-theme .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-kr-theme .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-kr-theme .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-kr-theme .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-kr-theme .ace_scroller {\n background-color: #0B0A09;\n}\n\n.ace-kr-theme .ace_text-layer {\n cursor: text;\n color: #FCFFE0;\n}\n\n.ace-kr-theme .ace_cursor {\n border-left: 2px solid #FF9900;\n}\n\n.ace-kr-theme .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FF9900;\n}\n \n.ace-kr-theme .ace_marker-layer .ace_selection {\n background: rgba(170, 0, 255, 0.45);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_active_line {\n background: #38403D;\n}\n\n \n.ace-kr-theme .ace_invisible {\n color: rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_keyword {\n color:#949C8B;\n}\n\n.ace-kr-theme .ace_keyword.ace_operator {\n \n}\n\n.ace-kr-theme .ace_constant {\n color:rgba(210, 117, 24, 0.76);\n}\n\n.ace-kr-theme .ace_constant.ace_language {\n \n}\n\n.ace-kr-theme .ace_constant.ace_library {\n \n}\n\n.ace-kr-theme .ace_constant.ace_numeric {\n \n}\n\n.ace-kr-theme .ace_invalid {\n color:#F8F8F8;\nbackground-color:#A41300;\n}\n\n.ace-kr-theme .ace_invalid.ace_illegal {\n \n}\n\n.ace-kr-theme .ace_invalid.ace_deprecated {\n \n}\n\n.ace-kr-theme .ace_support {\n color:#9FC28A;\n}\n\n.ace-kr-theme .ace_support.ace_function {\n color:#85873A;\n}\n\n.ace-kr-theme .ace_function.ace_buildin {\n \n}\n\n.ace-kr-theme .ace_string {\n \n}\n\n.ace-kr-theme .ace_string.ace_regexp {\n color:rgba(125, 255, 192, 0.65);\n}\n\n.ace-kr-theme .ace_comment {\n font-style:italic;\ncolor:#706D5B;\n}\n\n.ace-kr-theme .ace_comment.ace_doc {\n \n}\n\n.ace-kr-theme .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-kr-theme .ace_variable {\n color:#D1A796;\n}\n\n.ace-kr-theme .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-kr-theme .ace_xml_pe {\n \n}\n\n.ace-kr-theme .ace_meta {\n \n}\n\n.ace-kr-theme .ace_meta.ace_tag {\n color:#BABD9C;\n}\n\n.ace-kr-theme .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-kr-theme .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-kr-theme .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-kr-theme";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-kr_theme.js b/build/aui-ace-editor/aui-ace-editor-theme-kr_theme.js new file mode 100644 index 00000000000..674ab23d022 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-kr_theme.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-kr_theme', function(A) { +define("ace/theme/kr_theme",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-kr-theme .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-kr-theme .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-kr-theme .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-kr-theme .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-kr-theme .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-kr-theme .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-kr-theme .ace_scroller {\n background-color: #0B0A09;\n}\n\n.ace-kr-theme .ace_text-layer {\n cursor: text;\n color: #FCFFE0;\n}\n\n.ace-kr-theme .ace_cursor {\n border-left: 2px solid #FF9900;\n}\n\n.ace-kr-theme .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FF9900;\n}\n \n.ace-kr-theme .ace_marker-layer .ace_selection {\n background: rgba(170, 0, 255, 0.45);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_active_line {\n background: #38403D;\n}\n\n \n.ace-kr-theme .ace_invisible {\n color: rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_keyword {\n color:#949C8B;\n}\n\n.ace-kr-theme .ace_keyword.ace_operator {\n \n}\n\n.ace-kr-theme .ace_constant {\n color:rgba(210, 117, 24, 0.76);\n}\n\n.ace-kr-theme .ace_constant.ace_language {\n \n}\n\n.ace-kr-theme .ace_constant.ace_library {\n \n}\n\n.ace-kr-theme .ace_constant.ace_numeric {\n \n}\n\n.ace-kr-theme .ace_invalid {\n color:#F8F8F8;\nbackground-color:#A41300;\n}\n\n.ace-kr-theme .ace_invalid.ace_illegal {\n \n}\n\n.ace-kr-theme .ace_invalid.ace_deprecated {\n \n}\n\n.ace-kr-theme .ace_support {\n color:#9FC28A;\n}\n\n.ace-kr-theme .ace_support.ace_function {\n color:#85873A;\n}\n\n.ace-kr-theme .ace_function.ace_buildin {\n \n}\n\n.ace-kr-theme .ace_string {\n \n}\n\n.ace-kr-theme .ace_string.ace_regexp {\n color:rgba(125, 255, 192, 0.65);\n}\n\n.ace-kr-theme .ace_comment {\n font-style:italic;\ncolor:#706D5B;\n}\n\n.ace-kr-theme .ace_comment.ace_doc {\n \n}\n\n.ace-kr-theme .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-kr-theme .ace_variable {\n color:#D1A796;\n}\n\n.ace-kr-theme .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-kr-theme .ace_xml_pe {\n \n}\n\n.ace-kr-theme .ace_meta {\n \n}\n\n.ace-kr-theme .ace_meta.ace_tag {\n color:#BABD9C;\n}\n\n.ace-kr-theme .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-kr-theme .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-kr-theme .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-kr-theme"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-merbivore-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-merbivore-debug.js new file mode 100644 index 00000000000..045247e874e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-merbivore-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-merbivore', function(A) { +define("ace/theme/merbivore",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-merbivore .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore .ace_scroller {\n background-color: #161616;\n}\n\n.ace-merbivore .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore .ace_marker-layer .ace_selection {\n background: #454545;\n}\n\n.ace-merbivore .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore .ace_keyword {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore .ace_constant {\n color:#1EDAFB;\n}\n\n.ace-merbivore .ace_constant.ace_language {\n color:#FDC251;\n}\n\n.ace-merbivore .ace_constant.ace_library {\n color:#8DFF0A;\n}\n\n.ace-merbivore .ace_constant.ace_numeric {\n color:#58C554;\n}\n\n.ace-merbivore .ace_invalid {\n color:#FFFFFF;\nbackground-color:#990000;\n}\n\n.ace-merbivore .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#990000;\n}\n\n.ace-merbivore .ace_support {\n \n}\n\n.ace-merbivore .ace_support.ace_function {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore .ace_string {\n color:#8DFF0A;\n}\n\n.ace-merbivore .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore .ace_comment {\n color:#AD2EA4;\n}\n\n.ace-merbivore .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore .ace_variable {\n \n}\n\n.ace-merbivore .ace_variable.ace_language {\n \n}\n\n.ace-merbivore .ace_xml_pe {\n \n}\n\n.ace-merbivore .ace_meta {\n \n}\n\n.ace-merbivore .ace_meta.ace_tag {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore .ace_entity.ace_other.ace_attribute-name {\n color:#FFFF89;\n}\n\n\n.ace-merbivore .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-merbivore"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-merbivore-min.js b/build/aui-ace-editor/aui-ace-editor-theme-merbivore-min.js new file mode 100644 index 00000000000..7c35bdce00d --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-merbivore-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-merbivore",function(a){define("ace/theme/merbivore",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-merbivore .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore .ace_scroller {\n background-color: #161616;\n}\n\n.ace-merbivore .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore .ace_marker-layer .ace_selection {\n background: #454545;\n}\n\n.ace-merbivore .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore .ace_keyword {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore .ace_constant {\n color:#1EDAFB;\n}\n\n.ace-merbivore .ace_constant.ace_language {\n color:#FDC251;\n}\n\n.ace-merbivore .ace_constant.ace_library {\n color:#8DFF0A;\n}\n\n.ace-merbivore .ace_constant.ace_numeric {\n color:#58C554;\n}\n\n.ace-merbivore .ace_invalid {\n color:#FFFFFF;\nbackground-color:#990000;\n}\n\n.ace-merbivore .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#990000;\n}\n\n.ace-merbivore .ace_support {\n \n}\n\n.ace-merbivore .ace_support.ace_function {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore .ace_string {\n color:#8DFF0A;\n}\n\n.ace-merbivore .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore .ace_comment {\n color:#AD2EA4;\n}\n\n.ace-merbivore .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore .ace_variable {\n \n}\n\n.ace-merbivore .ace_variable.ace_language {\n \n}\n\n.ace-merbivore .ace_xml_pe {\n \n}\n\n.ace-merbivore .ace_meta {\n \n}\n\n.ace-merbivore .ace_meta.ace_tag {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore .ace_entity.ace_other.ace_attribute-name {\n color:#FFFF89;\n}\n\n\n.ace-merbivore .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-merbivore";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-merbivore.js b/build/aui-ace-editor/aui-ace-editor-theme-merbivore.js new file mode 100644 index 00000000000..045247e874e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-merbivore.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-merbivore', function(A) { +define("ace/theme/merbivore",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-merbivore .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore .ace_scroller {\n background-color: #161616;\n}\n\n.ace-merbivore .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore .ace_marker-layer .ace_selection {\n background: #454545;\n}\n\n.ace-merbivore .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore .ace_keyword {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore .ace_constant {\n color:#1EDAFB;\n}\n\n.ace-merbivore .ace_constant.ace_language {\n color:#FDC251;\n}\n\n.ace-merbivore .ace_constant.ace_library {\n color:#8DFF0A;\n}\n\n.ace-merbivore .ace_constant.ace_numeric {\n color:#58C554;\n}\n\n.ace-merbivore .ace_invalid {\n color:#FFFFFF;\nbackground-color:#990000;\n}\n\n.ace-merbivore .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#990000;\n}\n\n.ace-merbivore .ace_support {\n \n}\n\n.ace-merbivore .ace_support.ace_function {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore .ace_string {\n color:#8DFF0A;\n}\n\n.ace-merbivore .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore .ace_comment {\n color:#AD2EA4;\n}\n\n.ace-merbivore .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore .ace_variable {\n \n}\n\n.ace-merbivore .ace_variable.ace_language {\n \n}\n\n.ace-merbivore .ace_xml_pe {\n \n}\n\n.ace-merbivore .ace_meta {\n \n}\n\n.ace-merbivore .ace_meta.ace_tag {\n color:#FC6F09;\n}\n\n.ace-merbivore .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore .ace_entity.ace_other.ace_attribute-name {\n color:#FFFF89;\n}\n\n\n.ace-merbivore .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-merbivore"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-debug.js new file mode 100644 index 00000000000..5944a21c209 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-merbivore_soft', function(A) { +define("ace/theme/merbivore_soft",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-merbivore-soft .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore-soft .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore-soft .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore-soft .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore-soft .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore-soft .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore-soft .ace_scroller {\n background-color: #1C1C1C;\n}\n\n.ace-merbivore-soft .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore-soft .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore-soft .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore-soft .ace_marker-layer .ace_selection {\n background: #494949;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore-soft .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore-soft .ace_keyword {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore-soft .ace_constant {\n color:#68C1D8;\n}\n\n.ace-merbivore-soft .ace_constant.ace_language {\n color:#E1C582;\n}\n\n.ace-merbivore-soft .ace_constant.ace_library {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_constant.ace_numeric {\n color:#7FC578;\n}\n\n.ace-merbivore-soft .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore-soft .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_support {\n \n}\n\n.ace-merbivore-soft .ace_support.ace_function {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore-soft .ace_string {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore-soft .ace_comment {\n color:#AC4BB8;\n}\n\n.ace-merbivore-soft .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore-soft .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore-soft .ace_variable {\n \n}\n\n.ace-merbivore-soft .ace_variable.ace_language {\n \n}\n\n.ace-merbivore-soft .ace_xml_pe {\n \n}\n\n.ace-merbivore-soft .ace_meta {\n \n}\n\n.ace-merbivore-soft .ace_meta.ace_tag {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\n color:#EAF1A3;\n}\n\n\n.ace-merbivore-soft .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-merbivore-soft"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-min.js b/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-min.js new file mode 100644 index 00000000000..9ebabc70e0b --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-merbivore_soft",function(a){define("ace/theme/merbivore_soft",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-merbivore-soft .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore-soft .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore-soft .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore-soft .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore-soft .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore-soft .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore-soft .ace_scroller {\n background-color: #1C1C1C;\n}\n\n.ace-merbivore-soft .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore-soft .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore-soft .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore-soft .ace_marker-layer .ace_selection {\n background: #494949;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore-soft .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore-soft .ace_keyword {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore-soft .ace_constant {\n color:#68C1D8;\n}\n\n.ace-merbivore-soft .ace_constant.ace_language {\n color:#E1C582;\n}\n\n.ace-merbivore-soft .ace_constant.ace_library {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_constant.ace_numeric {\n color:#7FC578;\n}\n\n.ace-merbivore-soft .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore-soft .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_support {\n \n}\n\n.ace-merbivore-soft .ace_support.ace_function {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore-soft .ace_string {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore-soft .ace_comment {\n color:#AC4BB8;\n}\n\n.ace-merbivore-soft .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore-soft .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore-soft .ace_variable {\n \n}\n\n.ace-merbivore-soft .ace_variable.ace_language {\n \n}\n\n.ace-merbivore-soft .ace_xml_pe {\n \n}\n\n.ace-merbivore-soft .ace_meta {\n \n}\n\n.ace-merbivore-soft .ace_meta.ace_tag {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\n color:#EAF1A3;\n}\n\n\n.ace-merbivore-soft .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-merbivore-soft";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft.js b/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft.js new file mode 100644 index 00000000000..5944a21c209 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-merbivore_soft.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-merbivore_soft', function(A) { +define("ace/theme/merbivore_soft",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-merbivore-soft .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore-soft .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore-soft .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore-soft .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore-soft .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore-soft .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore-soft .ace_scroller {\n background-color: #1C1C1C;\n}\n\n.ace-merbivore-soft .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore-soft .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore-soft .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore-soft .ace_marker-layer .ace_selection {\n background: #494949;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore-soft .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore-soft .ace_keyword {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore-soft .ace_constant {\n color:#68C1D8;\n}\n\n.ace-merbivore-soft .ace_constant.ace_language {\n color:#E1C582;\n}\n\n.ace-merbivore-soft .ace_constant.ace_library {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_constant.ace_numeric {\n color:#7FC578;\n}\n\n.ace-merbivore-soft .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore-soft .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_support {\n \n}\n\n.ace-merbivore-soft .ace_support.ace_function {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore-soft .ace_string {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore-soft .ace_comment {\n color:#AC4BB8;\n}\n\n.ace-merbivore-soft .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore-soft .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore-soft .ace_variable {\n \n}\n\n.ace-merbivore-soft .ace_variable.ace_language {\n \n}\n\n.ace-merbivore-soft .ace_xml_pe {\n \n}\n\n.ace-merbivore-soft .ace_meta {\n \n}\n\n.ace-merbivore-soft .ace_meta.ace_tag {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\n color:#EAF1A3;\n}\n\n\n.ace-merbivore-soft .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-merbivore-soft"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-debug.js new file mode 100644 index 00000000000..16ca7a677c4 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-mono_industrial', function(A) { +define("ace/theme/mono_industrial",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-mono-industrial .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-mono-industrial .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-mono-industrial .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-mono-industrial .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-mono-industrial .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-mono-industrial .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-mono-industrial .ace_scroller {\n background-color: #222C28;\n}\n\n.ace-mono-industrial .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-mono-industrial .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-mono-industrial .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-mono-industrial .ace_marker-layer .ace_selection {\n background: rgba(145, 153, 148, 0.40);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(102, 108, 104, 0.50);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_active_line {\n background: rgba(12, 13, 12, 0.25);\n}\n\n \n.ace-mono-industrial .ace_invisible {\n color: rgba(102, 108, 104, 0.50);\n}\n\n.ace-mono-industrial .ace_keyword {\n color:#A39E64;\n}\n\n.ace-mono-industrial .ace_keyword.ace_operator {\n color:#A8B3AB;\n}\n\n.ace-mono-industrial .ace_constant {\n color:#E98800;\n}\n\n.ace-mono-industrial .ace_constant.ace_language {\n \n}\n\n.ace-mono-industrial .ace_constant.ace_library {\n \n}\n\n.ace-mono-industrial .ace_constant.ace_numeric {\n color:#E98800;\n}\n\n.ace-mono-industrial .ace_invalid {\n color:#FFFFFF;\nbackground-color:rgba(153, 0, 0, 0.68);\n}\n\n.ace-mono-industrial .ace_invalid.ace_illegal {\n \n}\n\n.ace-mono-industrial .ace_invalid.ace_deprecated {\n \n}\n\n.ace-mono-industrial .ace_support {\n \n}\n\n.ace-mono-industrial .ace_support.ace_function {\n color:#588E60;\n}\n\n.ace-mono-industrial .ace_function.ace_buildin {\n \n}\n\n.ace-mono-industrial .ace_string {\n \n}\n\n.ace-mono-industrial .ace_string.ace_regexp {\n \n}\n\n.ace-mono-industrial .ace_comment {\n color:#666C68;\nbackground-color:#151C19;\n}\n\n.ace-mono-industrial .ace_comment.ace_doc {\n \n}\n\n.ace-mono-industrial .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-mono-industrial .ace_variable {\n \n}\n\n.ace-mono-industrial .ace_variable.ace_language {\n color:#648BD2;\n}\n\n.ace-mono-industrial .ace_xml_pe {\n \n}\n\n.ace-mono-industrial .ace_meta {\n \n}\n\n.ace-mono-industrial .ace_meta.ace_tag {\n \n}\n\n.ace-mono-industrial .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {\n color:#909993;\n}\n\n\n.ace-mono-industrial .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-mono-industrial"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-min.js b/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-min.js new file mode 100644 index 00000000000..e60dda1b7f4 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-mono_industrial",function(a){define("ace/theme/mono_industrial",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-mono-industrial .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-mono-industrial .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-mono-industrial .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-mono-industrial .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-mono-industrial .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-mono-industrial .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-mono-industrial .ace_scroller {\n background-color: #222C28;\n}\n\n.ace-mono-industrial .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-mono-industrial .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-mono-industrial .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-mono-industrial .ace_marker-layer .ace_selection {\n background: rgba(145, 153, 148, 0.40);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(102, 108, 104, 0.50);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_active_line {\n background: rgba(12, 13, 12, 0.25);\n}\n\n \n.ace-mono-industrial .ace_invisible {\n color: rgba(102, 108, 104, 0.50);\n}\n\n.ace-mono-industrial .ace_keyword {\n color:#A39E64;\n}\n\n.ace-mono-industrial .ace_keyword.ace_operator {\n color:#A8B3AB;\n}\n\n.ace-mono-industrial .ace_constant {\n color:#E98800;\n}\n\n.ace-mono-industrial .ace_constant.ace_language {\n \n}\n\n.ace-mono-industrial .ace_constant.ace_library {\n \n}\n\n.ace-mono-industrial .ace_constant.ace_numeric {\n color:#E98800;\n}\n\n.ace-mono-industrial .ace_invalid {\n color:#FFFFFF;\nbackground-color:rgba(153, 0, 0, 0.68);\n}\n\n.ace-mono-industrial .ace_invalid.ace_illegal {\n \n}\n\n.ace-mono-industrial .ace_invalid.ace_deprecated {\n \n}\n\n.ace-mono-industrial .ace_support {\n \n}\n\n.ace-mono-industrial .ace_support.ace_function {\n color:#588E60;\n}\n\n.ace-mono-industrial .ace_function.ace_buildin {\n \n}\n\n.ace-mono-industrial .ace_string {\n \n}\n\n.ace-mono-industrial .ace_string.ace_regexp {\n \n}\n\n.ace-mono-industrial .ace_comment {\n color:#666C68;\nbackground-color:#151C19;\n}\n\n.ace-mono-industrial .ace_comment.ace_doc {\n \n}\n\n.ace-mono-industrial .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-mono-industrial .ace_variable {\n \n}\n\n.ace-mono-industrial .ace_variable.ace_language {\n color:#648BD2;\n}\n\n.ace-mono-industrial .ace_xml_pe {\n \n}\n\n.ace-mono-industrial .ace_meta {\n \n}\n\n.ace-mono-industrial .ace_meta.ace_tag {\n \n}\n\n.ace-mono-industrial .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {\n color:#909993;\n}\n\n\n.ace-mono-industrial .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-mono-industrial";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial.js b/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial.js new file mode 100644 index 00000000000..16ca7a677c4 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-mono_industrial.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-mono_industrial', function(A) { +define("ace/theme/mono_industrial",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-mono-industrial .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-mono-industrial .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-mono-industrial .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-mono-industrial .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-mono-industrial .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-mono-industrial .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-mono-industrial .ace_scroller {\n background-color: #222C28;\n}\n\n.ace-mono-industrial .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-mono-industrial .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-mono-industrial .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-mono-industrial .ace_marker-layer .ace_selection {\n background: rgba(145, 153, 148, 0.40);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(102, 108, 104, 0.50);\n}\n\n.ace-mono-industrial .ace_marker-layer .ace_active_line {\n background: rgba(12, 13, 12, 0.25);\n}\n\n \n.ace-mono-industrial .ace_invisible {\n color: rgba(102, 108, 104, 0.50);\n}\n\n.ace-mono-industrial .ace_keyword {\n color:#A39E64;\n}\n\n.ace-mono-industrial .ace_keyword.ace_operator {\n color:#A8B3AB;\n}\n\n.ace-mono-industrial .ace_constant {\n color:#E98800;\n}\n\n.ace-mono-industrial .ace_constant.ace_language {\n \n}\n\n.ace-mono-industrial .ace_constant.ace_library {\n \n}\n\n.ace-mono-industrial .ace_constant.ace_numeric {\n color:#E98800;\n}\n\n.ace-mono-industrial .ace_invalid {\n color:#FFFFFF;\nbackground-color:rgba(153, 0, 0, 0.68);\n}\n\n.ace-mono-industrial .ace_invalid.ace_illegal {\n \n}\n\n.ace-mono-industrial .ace_invalid.ace_deprecated {\n \n}\n\n.ace-mono-industrial .ace_support {\n \n}\n\n.ace-mono-industrial .ace_support.ace_function {\n color:#588E60;\n}\n\n.ace-mono-industrial .ace_function.ace_buildin {\n \n}\n\n.ace-mono-industrial .ace_string {\n \n}\n\n.ace-mono-industrial .ace_string.ace_regexp {\n \n}\n\n.ace-mono-industrial .ace_comment {\n color:#666C68;\nbackground-color:#151C19;\n}\n\n.ace-mono-industrial .ace_comment.ace_doc {\n \n}\n\n.ace-mono-industrial .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-mono-industrial .ace_variable {\n \n}\n\n.ace-mono-industrial .ace_variable.ace_language {\n color:#648BD2;\n}\n\n.ace-mono-industrial .ace_xml_pe {\n \n}\n\n.ace-mono-industrial .ace_meta {\n \n}\n\n.ace-mono-industrial .ace_meta.ace_tag {\n \n}\n\n.ace-mono-industrial .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {\n color:#909993;\n}\n\n\n.ace-mono-industrial .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-mono-industrial"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-monokai-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-monokai-debug.js new file mode 100644 index 00000000000..49dd804ed65 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-monokai-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-monokai', function(A) { +define("ace/theme/monokai",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-monokai .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-monokai .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-monokai .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-monokai .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-monokai .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-monokai .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-monokai .ace_scroller {\n background-color: #272822;\n}\n\n.ace-monokai .ace_text-layer {\n cursor: text;\n color: #F8F8F2;\n}\n\n.ace-monokai .ace_cursor {\n border-left: 2px solid #F8F8F0;\n}\n\n.ace-monokai .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #F8F8F0;\n}\n \n.ace-monokai .ace_marker-layer .ace_selection {\n background: #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-monokai .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_active_line {\n background: #49483E;\n}\n\n \n.ace-monokai .ace_invisible {\n color: #49483E;\n}\n\n.ace-monokai .ace_keyword {\n color:#F92672;\n}\n\n.ace-monokai .ace_keyword.ace_operator {\n \n}\n\n.ace-monokai .ace_constant {\n \n}\n\n.ace-monokai .ace_constant.ace_language {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_constant.ace_library {\n \n}\n\n.ace-monokai .ace_constant.ace_numeric {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_invalid {\n color:#F8F8F0;\nbackground-color:#F92672;\n}\n\n.ace-monokai .ace_invalid.ace_illegal {\n \n}\n\n.ace-monokai .ace_invalid.ace_deprecated {\n color:#F8F8F0;\nbackground-color:#AE81FF;\n}\n\n.ace-monokai .ace_support {\n \n}\n\n.ace-monokai .ace_support.ace_function {\n color:#66D9EF;\n}\n\n.ace-monokai .ace_function.ace_buildin {\n \n}\n\n.ace-monokai .ace_string {\n color:#E6DB74;\n}\n\n.ace-monokai .ace_string.ace_regexp {\n \n}\n\n.ace-monokai .ace_comment {\n color:#75715E;\n}\n\n.ace-monokai .ace_comment.ace_doc {\n \n}\n\n.ace-monokai .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-monokai .ace_variable {\n \n}\n\n.ace-monokai .ace_variable.ace_language {\n \n}\n\n.ace-monokai .ace_xml_pe {\n \n}\n\n.ace-monokai .ace_meta {\n \n}\n\n.ace-monokai .ace_meta.ace_tag {\n \n}\n\n.ace-monokai .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-monokai .ace_entity.ace_other.ace_attribute-name {\n color:#A6E22E;\n}\n\n\n.ace-monokai .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-monokai"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-monokai-min.js b/build/aui-ace-editor/aui-ace-editor-theme-monokai-min.js new file mode 100644 index 00000000000..8b6b134212e --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-monokai-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-monokai",function(a){define("ace/theme/monokai",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-monokai .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-monokai .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-monokai .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-monokai .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-monokai .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-monokai .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-monokai .ace_scroller {\n background-color: #272822;\n}\n\n.ace-monokai .ace_text-layer {\n cursor: text;\n color: #F8F8F2;\n}\n\n.ace-monokai .ace_cursor {\n border-left: 2px solid #F8F8F0;\n}\n\n.ace-monokai .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #F8F8F0;\n}\n \n.ace-monokai .ace_marker-layer .ace_selection {\n background: #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-monokai .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_active_line {\n background: #49483E;\n}\n\n \n.ace-monokai .ace_invisible {\n color: #49483E;\n}\n\n.ace-monokai .ace_keyword {\n color:#F92672;\n}\n\n.ace-monokai .ace_keyword.ace_operator {\n \n}\n\n.ace-monokai .ace_constant {\n \n}\n\n.ace-monokai .ace_constant.ace_language {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_constant.ace_library {\n \n}\n\n.ace-monokai .ace_constant.ace_numeric {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_invalid {\n color:#F8F8F0;\nbackground-color:#F92672;\n}\n\n.ace-monokai .ace_invalid.ace_illegal {\n \n}\n\n.ace-monokai .ace_invalid.ace_deprecated {\n color:#F8F8F0;\nbackground-color:#AE81FF;\n}\n\n.ace-monokai .ace_support {\n \n}\n\n.ace-monokai .ace_support.ace_function {\n color:#66D9EF;\n}\n\n.ace-monokai .ace_function.ace_buildin {\n \n}\n\n.ace-monokai .ace_string {\n color:#E6DB74;\n}\n\n.ace-monokai .ace_string.ace_regexp {\n \n}\n\n.ace-monokai .ace_comment {\n color:#75715E;\n}\n\n.ace-monokai .ace_comment.ace_doc {\n \n}\n\n.ace-monokai .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-monokai .ace_variable {\n \n}\n\n.ace-monokai .ace_variable.ace_language {\n \n}\n\n.ace-monokai .ace_xml_pe {\n \n}\n\n.ace-monokai .ace_meta {\n \n}\n\n.ace-monokai .ace_meta.ace_tag {\n \n}\n\n.ace-monokai .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-monokai .ace_entity.ace_other.ace_attribute-name {\n color:#A6E22E;\n}\n\n\n.ace-monokai .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-monokai";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-monokai.js b/build/aui-ace-editor/aui-ace-editor-theme-monokai.js new file mode 100644 index 00000000000..49dd804ed65 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-monokai.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-monokai', function(A) { +define("ace/theme/monokai",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-monokai .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-monokai .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-monokai .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-monokai .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-monokai .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-monokai .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-monokai .ace_scroller {\n background-color: #272822;\n}\n\n.ace-monokai .ace_text-layer {\n cursor: text;\n color: #F8F8F2;\n}\n\n.ace-monokai .ace_cursor {\n border-left: 2px solid #F8F8F0;\n}\n\n.ace-monokai .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #F8F8F0;\n}\n \n.ace-monokai .ace_marker-layer .ace_selection {\n background: #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-monokai .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #49483E;\n}\n\n.ace-monokai .ace_marker-layer .ace_active_line {\n background: #49483E;\n}\n\n \n.ace-monokai .ace_invisible {\n color: #49483E;\n}\n\n.ace-monokai .ace_keyword {\n color:#F92672;\n}\n\n.ace-monokai .ace_keyword.ace_operator {\n \n}\n\n.ace-monokai .ace_constant {\n \n}\n\n.ace-monokai .ace_constant.ace_language {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_constant.ace_library {\n \n}\n\n.ace-monokai .ace_constant.ace_numeric {\n color:#AE81FF;\n}\n\n.ace-monokai .ace_invalid {\n color:#F8F8F0;\nbackground-color:#F92672;\n}\n\n.ace-monokai .ace_invalid.ace_illegal {\n \n}\n\n.ace-monokai .ace_invalid.ace_deprecated {\n color:#F8F8F0;\nbackground-color:#AE81FF;\n}\n\n.ace-monokai .ace_support {\n \n}\n\n.ace-monokai .ace_support.ace_function {\n color:#66D9EF;\n}\n\n.ace-monokai .ace_function.ace_buildin {\n \n}\n\n.ace-monokai .ace_string {\n color:#E6DB74;\n}\n\n.ace-monokai .ace_string.ace_regexp {\n \n}\n\n.ace-monokai .ace_comment {\n color:#75715E;\n}\n\n.ace-monokai .ace_comment.ace_doc {\n \n}\n\n.ace-monokai .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-monokai .ace_variable {\n \n}\n\n.ace-monokai .ace_variable.ace_language {\n \n}\n\n.ace-monokai .ace_xml_pe {\n \n}\n\n.ace-monokai .ace_meta {\n \n}\n\n.ace-monokai .ace_meta.ace_tag {\n \n}\n\n.ace-monokai .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-monokai .ace_entity.ace_other.ace_attribute-name {\n color:#A6E22E;\n}\n\n\n.ace-monokai .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-monokai"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-debug.js new file mode 100644 index 00000000000..7b045d721e2 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-pastel_on_dark', function(A) { +define("ace/theme/pastel_on_dark",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-pastel-on-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-pastel-on-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-pastel-on-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-pastel-on-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-pastel-on-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-pastel-on-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-pastel-on-dark .ace_scroller {\n background-color: #2c2828;\n}\n\n.ace-pastel-on-dark .ace_text-layer {\n cursor: text;\n color: #8f938f;\n}\n\n.ace-pastel-on-dark .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-pastel-on-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n \n.ace-pastel-on-dark .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-pastel-on-dark .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-pastel-on-dark .ace_keyword {\n color:#757ad8;\n}\n\n.ace-pastel-on-dark .ace_keyword.ace_operator {\n color:#797878;\n}\n\n.ace-pastel-on-dark .ace_constant {\n color:#4fb7c5;\n}\n\n.ace-pastel-on-dark .ace_constant.ace_language {\n \n}\n\n.ace-pastel-on-dark .ace_constant.ace_library {\n \n}\n\n.ace-pastel-on-dark .ace_constant.ace_numeric {\n \n}\n\n.ace-pastel-on-dark .ace_invalid {\n \n}\n\n.ace-pastel-on-dark .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-pastel-on-dark .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-pastel-on-dark .ace_support {\n color:#9a9a9a;\n}\n\n.ace-pastel-on-dark .ace_support.ace_function {\n color:#aeb2f8;\n}\n\n.ace-pastel-on-dark .ace_function.ace_buildin {\n \n}\n\n.ace-pastel-on-dark .ace_string {\n color:#66a968;\n}\n\n.ace-pastel-on-dark .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-pastel-on-dark .ace_comment {\n color:#656865;\n}\n\n.ace-pastel-on-dark .ace_comment.ace_doc {\n color:A6C6FF;\n}\n\n.ace-pastel-on-dark .ace_comment.ace_doc.ace_tag {\n color:A6C6FF;\n}\n\n.ace-pastel-on-dark .ace_variable {\n color:#bebf55;\n}\n\n.ace-pastel-on-dark .ace_variable.ace_language {\n color:#bebf55;\n}\n\n.ace-pastel-on-dark .ace_xml_pe {\n color:#494949;\n}";d.importCssString(e),b.cssClass="ace-pastel-on-dark"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-min.js b/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-min.js new file mode 100644 index 00000000000..2960e9fc57f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-pastel_on_dark",function(a){define("ace/theme/pastel_on_dark",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-pastel-on-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-pastel-on-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-pastel-on-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-pastel-on-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-pastel-on-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-pastel-on-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-pastel-on-dark .ace_scroller {\n background-color: #2c2828;\n}\n\n.ace-pastel-on-dark .ace_text-layer {\n cursor: text;\n color: #8f938f;\n}\n\n.ace-pastel-on-dark .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-pastel-on-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n \n.ace-pastel-on-dark .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-pastel-on-dark .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-pastel-on-dark .ace_keyword {\n color:#757ad8;\n}\n\n.ace-pastel-on-dark .ace_keyword.ace_operator {\n color:#797878;\n}\n\n.ace-pastel-on-dark .ace_constant {\n color:#4fb7c5;\n}\n\n.ace-pastel-on-dark .ace_constant.ace_language {\n \n}\n\n.ace-pastel-on-dark .ace_constant.ace_library {\n \n}\n\n.ace-pastel-on-dark .ace_constant.ace_numeric {\n \n}\n\n.ace-pastel-on-dark .ace_invalid {\n \n}\n\n.ace-pastel-on-dark .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-pastel-on-dark .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-pastel-on-dark .ace_support {\n color:#9a9a9a;\n}\n\n.ace-pastel-on-dark .ace_support.ace_function {\n color:#aeb2f8;\n}\n\n.ace-pastel-on-dark .ace_function.ace_buildin {\n \n}\n\n.ace-pastel-on-dark .ace_string {\n color:#66a968;\n}\n\n.ace-pastel-on-dark .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-pastel-on-dark .ace_comment {\n color:#656865;\n}\n\n.ace-pastel-on-dark .ace_comment.ace_doc {\n color:A6C6FF;\n}\n\n.ace-pastel-on-dark .ace_comment.ace_doc.ace_tag {\n color:A6C6FF;\n}\n\n.ace-pastel-on-dark .ace_variable {\n color:#bebf55;\n}\n\n.ace-pastel-on-dark .ace_variable.ace_language {\n color:#bebf55;\n}\n\n.ace-pastel-on-dark .ace_xml_pe {\n color:#494949;\n}";i.importCssString(h),f.cssClass="ace-pastel-on-dark";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark.js b/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark.js new file mode 100644 index 00000000000..7b045d721e2 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-pastel_on_dark.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-pastel_on_dark', function(A) { +define("ace/theme/pastel_on_dark",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-pastel-on-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-pastel-on-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-pastel-on-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-pastel-on-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-pastel-on-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-pastel-on-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-pastel-on-dark .ace_scroller {\n background-color: #2c2828;\n}\n\n.ace-pastel-on-dark .ace_text-layer {\n cursor: text;\n color: #8f938f;\n}\n\n.ace-pastel-on-dark .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-pastel-on-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n \n.ace-pastel-on-dark .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-pastel-on-dark .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-pastel-on-dark .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-pastel-on-dark .ace_keyword {\n color:#757ad8;\n}\n\n.ace-pastel-on-dark .ace_keyword.ace_operator {\n color:#797878;\n}\n\n.ace-pastel-on-dark .ace_constant {\n color:#4fb7c5;\n}\n\n.ace-pastel-on-dark .ace_constant.ace_language {\n \n}\n\n.ace-pastel-on-dark .ace_constant.ace_library {\n \n}\n\n.ace-pastel-on-dark .ace_constant.ace_numeric {\n \n}\n\n.ace-pastel-on-dark .ace_invalid {\n \n}\n\n.ace-pastel-on-dark .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-pastel-on-dark .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-pastel-on-dark .ace_support {\n color:#9a9a9a;\n}\n\n.ace-pastel-on-dark .ace_support.ace_function {\n color:#aeb2f8;\n}\n\n.ace-pastel-on-dark .ace_function.ace_buildin {\n \n}\n\n.ace-pastel-on-dark .ace_string {\n color:#66a968;\n}\n\n.ace-pastel-on-dark .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-pastel-on-dark .ace_comment {\n color:#656865;\n}\n\n.ace-pastel-on-dark .ace_comment.ace_doc {\n color:A6C6FF;\n}\n\n.ace-pastel-on-dark .ace_comment.ace_doc.ace_tag {\n color:A6C6FF;\n}\n\n.ace-pastel-on-dark .ace_variable {\n color:#bebf55;\n}\n\n.ace-pastel-on-dark .ace_variable.ace_language {\n color:#bebf55;\n}\n\n.ace-pastel-on-dark .ace_xml_pe {\n color:#494949;\n}";d.importCssString(e),b.cssClass="ace-pastel-on-dark"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-debug.js new file mode 100644 index 00000000000..9fd13283c64 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-solarized_dark', function(A) { +define("ace/theme/solarized_dark",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-solarized-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-dark .ace_scroller {\n background-color: #002B36;\n}\n\n.ace-solarized-dark .ace_text-layer {\n cursor: text;\n color: #93A1A1;\n}\n\n.ace-solarized-dark .ace_cursor {\n border-left: 2px solid #D30102;\n}\n\n.ace-solarized-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #D30102;\n}\n \n.ace-solarized-dark .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_active_line {\n background: #073642;\n}\n\n \n.ace-solarized-dark .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-dark .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-dark .ace_constant {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-dark .ace_constant.ace_library {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-dark .ace_invalid {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-dark .ace_support {\n \n}\n\n.ace-solarized-dark .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-dark .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-dark .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-dark .ace_comment {\n font-style:italic;\ncolor:#657B83;\n}\n\n.ace-solarized-dark .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-dark .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_variable {\n \n}\n\n.ace-solarized-dark .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_xml_pe {\n \n}\n\n.ace-solarized-dark .ace_meta {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-dark .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-solarized-dark"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-min.js b/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-min.js new file mode 100644 index 00000000000..4f5f0c30098 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-solarized_dark",function(a){define("ace/theme/solarized_dark",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-solarized-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-dark .ace_scroller {\n background-color: #002B36;\n}\n\n.ace-solarized-dark .ace_text-layer {\n cursor: text;\n color: #93A1A1;\n}\n\n.ace-solarized-dark .ace_cursor {\n border-left: 2px solid #D30102;\n}\n\n.ace-solarized-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #D30102;\n}\n \n.ace-solarized-dark .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_active_line {\n background: #073642;\n}\n\n \n.ace-solarized-dark .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-dark .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-dark .ace_constant {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-dark .ace_constant.ace_library {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-dark .ace_invalid {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-dark .ace_support {\n \n}\n\n.ace-solarized-dark .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-dark .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-dark .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-dark .ace_comment {\n font-style:italic;\ncolor:#657B83;\n}\n\n.ace-solarized-dark .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-dark .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_variable {\n \n}\n\n.ace-solarized-dark .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_xml_pe {\n \n}\n\n.ace-solarized-dark .ace_meta {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-dark .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-solarized-dark";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark.js b/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark.js new file mode 100644 index 00000000000..9fd13283c64 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-solarized_dark.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-solarized_dark', function(A) { +define("ace/theme/solarized_dark",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-solarized-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-dark .ace_scroller {\n background-color: #002B36;\n}\n\n.ace-solarized-dark .ace_text-layer {\n cursor: text;\n color: #93A1A1;\n}\n\n.ace-solarized-dark .ace_cursor {\n border-left: 2px solid #D30102;\n}\n\n.ace-solarized-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #D30102;\n}\n \n.ace-solarized-dark .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_active_line {\n background: #073642;\n}\n\n \n.ace-solarized-dark .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-dark .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-dark .ace_constant {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-dark .ace_constant.ace_library {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-dark .ace_invalid {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-dark .ace_support {\n \n}\n\n.ace-solarized-dark .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-dark .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-dark .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-dark .ace_comment {\n font-style:italic;\ncolor:#657B83;\n}\n\n.ace-solarized-dark .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-dark .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_variable {\n \n}\n\n.ace-solarized-dark .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_xml_pe {\n \n}\n\n.ace-solarized-dark .ace_meta {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-dark .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-solarized-dark"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-solarized_light-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-solarized_light-debug.js new file mode 100644 index 00000000000..3ef2ab581aa --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-solarized_light-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-solarized_light', function(A) { +define("ace/theme/solarized_light",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-solarized-light .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-light .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-light .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-light .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-light .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-light .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-light .ace_scroller {\n background-color: #FDF6E3;\n}\n\n.ace-solarized-light .ace_text-layer {\n cursor: text;\n color: #586E75;\n}\n\n.ace-solarized-light .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-solarized-light .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-solarized-light .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-light .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-light .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-light .ace_marker-layer .ace_active_line {\n background: #EEE8D5;\n}\n\n \n.ace-solarized-light .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-light .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-light .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-light .ace_constant {\n \n}\n\n.ace-solarized-light .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-light .ace_constant.ace_library {\n \n}\n\n.ace-solarized-light .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-light .ace_invalid {\n \n}\n\n.ace-solarized-light .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-light .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-light .ace_support {\n \n}\n\n.ace-solarized-light .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-light .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-light .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-light .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-light .ace_comment {\n color:#93A1A1;\n}\n\n.ace-solarized-light .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-light .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-light .ace_variable {\n \n}\n\n.ace-solarized-light .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-light .ace_xml_pe {\n \n}\n\n.ace-solarized-light .ace_meta {\n \n}\n\n.ace-solarized-light .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-light .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-light .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-solarized-light"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-solarized_light-min.js b/build/aui-ace-editor/aui-ace-editor-theme-solarized_light-min.js new file mode 100644 index 00000000000..3864bb58368 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-solarized_light-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-solarized_light",function(a){define("ace/theme/solarized_light",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-solarized-light .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-light .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-light .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-light .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-light .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-light .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-light .ace_scroller {\n background-color: #FDF6E3;\n}\n\n.ace-solarized-light .ace_text-layer {\n cursor: text;\n color: #586E75;\n}\n\n.ace-solarized-light .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-solarized-light .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-solarized-light .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-light .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-light .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-light .ace_marker-layer .ace_active_line {\n background: #EEE8D5;\n}\n\n \n.ace-solarized-light .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-light .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-light .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-light .ace_constant {\n \n}\n\n.ace-solarized-light .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-light .ace_constant.ace_library {\n \n}\n\n.ace-solarized-light .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-light .ace_invalid {\n \n}\n\n.ace-solarized-light .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-light .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-light .ace_support {\n \n}\n\n.ace-solarized-light .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-light .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-light .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-light .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-light .ace_comment {\n color:#93A1A1;\n}\n\n.ace-solarized-light .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-light .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-light .ace_variable {\n \n}\n\n.ace-solarized-light .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-light .ace_xml_pe {\n \n}\n\n.ace-solarized-light .ace_meta {\n \n}\n\n.ace-solarized-light .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-light .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-light .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-solarized-light";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-solarized_light.js b/build/aui-ace-editor/aui-ace-editor-theme-solarized_light.js new file mode 100644 index 00000000000..3ef2ab581aa --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-solarized_light.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-solarized_light', function(A) { +define("ace/theme/solarized_light",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-solarized-light .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-light .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-light .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-light .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-light .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-light .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-light .ace_scroller {\n background-color: #FDF6E3;\n}\n\n.ace-solarized-light .ace_text-layer {\n cursor: text;\n color: #586E75;\n}\n\n.ace-solarized-light .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-solarized-light .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-solarized-light .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-light .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-light .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-light .ace_marker-layer .ace_active_line {\n background: #EEE8D5;\n}\n\n \n.ace-solarized-light .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-light .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-light .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-light .ace_constant {\n \n}\n\n.ace-solarized-light .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-light .ace_constant.ace_library {\n \n}\n\n.ace-solarized-light .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-light .ace_invalid {\n \n}\n\n.ace-solarized-light .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-light .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-light .ace_support {\n \n}\n\n.ace-solarized-light .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-light .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-light .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-light .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-light .ace_comment {\n color:#93A1A1;\n}\n\n.ace-solarized-light .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-light .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-light .ace_variable {\n \n}\n\n.ace-solarized-light .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-light .ace_xml_pe {\n \n}\n\n.ace-solarized-light .ace_meta {\n \n}\n\n.ace-solarized-light .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-light .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-light .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-solarized-light"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-textmate-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-textmate-debug.js new file mode 100644 index 00000000000..e4c6a6b6da8 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-textmate-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-textmate', function(A) { +define("ace/theme/textmate",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-textmate-min.js b/build/aui-ace-editor/aui-ace-editor-theme-textmate-min.js new file mode 100644 index 00000000000..a4a87f1ee7f --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-textmate-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-textmate",function(a){define("ace/theme/textmate",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";i.importCssString(h),f.cssClass="ace-tm";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-textmate.js b/build/aui-ace-editor/aui-ace-editor-theme-textmate.js new file mode 100644 index 00000000000..e4c6a6b6da8 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-textmate.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-textmate', function(A) { +define("ace/theme/textmate",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-twilight-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-twilight-debug.js new file mode 100644 index 00000000000..e70bebcc087 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-twilight-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-twilight', function(A) { +define("ace/theme/twilight",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-twilight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-twilight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-twilight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-twilight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-twilight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-twilight .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-twilight .ace_scroller {\n background-color: #141414;\n}\n\n.ace-twilight .ace_text-layer {\n cursor: text;\n color: #F8F8F8;\n}\n\n.ace-twilight .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-twilight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n \n.ace-twilight .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-twilight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-twilight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-twilight .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_keyword {\n color:#CDA869;\n}\n\n.ace-twilight .ace_keyword.ace_operator {\n \n}\n\n.ace-twilight .ace_constant {\n color:#CF6A4C;\n}\n\n.ace-twilight .ace_constant.ace_language {\n \n}\n\n.ace-twilight .ace_constant.ace_library {\n \n}\n\n.ace-twilight .ace_constant.ace_numeric {\n \n}\n\n.ace-twilight .ace_invalid {\n \n}\n\n.ace-twilight .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-twilight .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-twilight .ace_support {\n color:#9B859D;\n}\n\n.ace-twilight .ace_support.ace_function {\n color:#DAD085;\n}\n\n.ace-twilight .ace_function.ace_buildin {\n \n}\n\n.ace-twilight .ace_string {\n color:#8F9D6A;\n}\n\n.ace-twilight .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-twilight .ace_comment {\n font-style:italic;\ncolor:#5F5A60;\n}\n\n.ace-twilight .ace_comment.ace_doc {\n \n}\n\n.ace-twilight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-twilight .ace_variable {\n color:#7587A6;\n}\n\n.ace-twilight .ace_variable.ace_language {\n \n}\n\n.ace-twilight .ace_xml_pe {\n color:#494949;\n}\n\n.ace-twilight .ace_meta {\n \n}\n\n.ace-twilight .ace_meta.ace_tag {\n color:#AC885B;\n}\n\n.ace-twilight .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-twilight .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-twilight .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-twilight"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-twilight-min.js b/build/aui-ace-editor/aui-ace-editor-theme-twilight-min.js new file mode 100644 index 00000000000..db4e9bec703 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-twilight-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-twilight",function(a){define("ace/theme/twilight",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-twilight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-twilight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-twilight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-twilight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-twilight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-twilight .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-twilight .ace_scroller {\n background-color: #141414;\n}\n\n.ace-twilight .ace_text-layer {\n cursor: text;\n color: #F8F8F8;\n}\n\n.ace-twilight .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-twilight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n \n.ace-twilight .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-twilight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-twilight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-twilight .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_keyword {\n color:#CDA869;\n}\n\n.ace-twilight .ace_keyword.ace_operator {\n \n}\n\n.ace-twilight .ace_constant {\n color:#CF6A4C;\n}\n\n.ace-twilight .ace_constant.ace_language {\n \n}\n\n.ace-twilight .ace_constant.ace_library {\n \n}\n\n.ace-twilight .ace_constant.ace_numeric {\n \n}\n\n.ace-twilight .ace_invalid {\n \n}\n\n.ace-twilight .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-twilight .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-twilight .ace_support {\n color:#9B859D;\n}\n\n.ace-twilight .ace_support.ace_function {\n color:#DAD085;\n}\n\n.ace-twilight .ace_function.ace_buildin {\n \n}\n\n.ace-twilight .ace_string {\n color:#8F9D6A;\n}\n\n.ace-twilight .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-twilight .ace_comment {\n font-style:italic;\ncolor:#5F5A60;\n}\n\n.ace-twilight .ace_comment.ace_doc {\n \n}\n\n.ace-twilight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-twilight .ace_variable {\n color:#7587A6;\n}\n\n.ace-twilight .ace_variable.ace_language {\n \n}\n\n.ace-twilight .ace_xml_pe {\n color:#494949;\n}\n\n.ace-twilight .ace_meta {\n \n}\n\n.ace-twilight .ace_meta.ace_tag {\n color:#AC885B;\n}\n\n.ace-twilight .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-twilight .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-twilight .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-twilight";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-twilight.js b/build/aui-ace-editor/aui-ace-editor-theme-twilight.js new file mode 100644 index 00000000000..e70bebcc087 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-twilight.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-twilight', function(A) { +define("ace/theme/twilight",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-twilight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-twilight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-twilight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-twilight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-twilight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-twilight .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-twilight .ace_scroller {\n background-color: #141414;\n}\n\n.ace-twilight .ace_text-layer {\n cursor: text;\n color: #F8F8F8;\n}\n\n.ace-twilight .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-twilight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n \n.ace-twilight .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-twilight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-twilight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-twilight .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_keyword {\n color:#CDA869;\n}\n\n.ace-twilight .ace_keyword.ace_operator {\n \n}\n\n.ace-twilight .ace_constant {\n color:#CF6A4C;\n}\n\n.ace-twilight .ace_constant.ace_language {\n \n}\n\n.ace-twilight .ace_constant.ace_library {\n \n}\n\n.ace-twilight .ace_constant.ace_numeric {\n \n}\n\n.ace-twilight .ace_invalid {\n \n}\n\n.ace-twilight .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-twilight .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-twilight .ace_support {\n color:#9B859D;\n}\n\n.ace-twilight .ace_support.ace_function {\n color:#DAD085;\n}\n\n.ace-twilight .ace_function.ace_buildin {\n \n}\n\n.ace-twilight .ace_string {\n color:#8F9D6A;\n}\n\n.ace-twilight .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-twilight .ace_comment {\n font-style:italic;\ncolor:#5F5A60;\n}\n\n.ace-twilight .ace_comment.ace_doc {\n \n}\n\n.ace-twilight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-twilight .ace_variable {\n color:#7587A6;\n}\n\n.ace-twilight .ace_variable.ace_language {\n \n}\n\n.ace-twilight .ace_xml_pe {\n color:#494949;\n}\n\n.ace-twilight .ace_meta {\n \n}\n\n.ace-twilight .ace_meta.ace_tag {\n color:#AC885B;\n}\n\n.ace-twilight .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-twilight .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-twilight .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-twilight"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-debug.js b/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-debug.js new file mode 100644 index 00000000000..e110cfe2966 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-vibrant_ink', function(A) { +define("ace/theme/vibrant_ink",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-vibrant-ink .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-vibrant-ink .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-vibrant-ink .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-vibrant-ink .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-vibrant-ink .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-vibrant-ink .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-vibrant-ink .ace_scroller {\n background-color: #0F0F0F;\n}\n\n.ace-vibrant-ink .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-vibrant-ink .ace_marker-layer .ace_selection {\n background: #6699CC;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #99CC99;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_active_line {\n background: #333333;\n}\n\n \n.ace-vibrant-ink .ace_invisible {\n color: #404040;\n}\n\n.ace-vibrant-ink .ace_keyword {\n color:#FF6600;\n}\n\n.ace-vibrant-ink .ace_keyword.ace_operator {\n \n}\n\n.ace-vibrant-ink .ace_constant {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_language {\n color:#339999;\n}\n\n.ace-vibrant-ink .ace_constant.ace_library {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_numeric {\n color:#99CC99;\n}\n\n.ace-vibrant-ink .ace_invalid {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_invalid.ace_illegal {\n \n}\n\n.ace-vibrant-ink .ace_invalid.ace_deprecated {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_support {\n \n}\n\n.ace-vibrant-ink .ace_support.ace_function {\n color:#FFCC00;\n}\n\n.ace-vibrant-ink .ace_function.ace_buildin {\n \n}\n\n.ace-vibrant-ink .ace_string {\n color:#66FF00;\n}\n\n.ace-vibrant-ink .ace_string.ace_regexp {\n color:#44B4CC;\n}\n\n.ace-vibrant-ink .ace_comment {\n color:#9933CC;\n}\n\n.ace-vibrant-ink .ace_comment.ace_doc {\n \n}\n\n.ace-vibrant-ink .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_variable {\n \n}\n\n.ace-vibrant-ink .ace_variable.ace_language {\n \n}\n\n.ace-vibrant-ink .ace_xml_pe {\n \n}\n\n.ace-vibrant-ink .ace_meta {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\n font-style:italic;\ncolor:#99CC99;\n}\n\n\n.ace-vibrant-ink .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-vibrant-ink"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-min.js b/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-min.js new file mode 100644 index 00000000000..564dac38482 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink-min.js @@ -0,0 +1 @@ +AUI.add("aui-ace-editor-theme-vibrant_ink",function(a){define("ace/theme/vibrant_ink",["require","exports","module"],function(g,f,j){var i=g("pilot/dom"),h=".ace-vibrant-ink .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-vibrant-ink .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-vibrant-ink .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-vibrant-ink .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-vibrant-ink .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-vibrant-ink .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-vibrant-ink .ace_scroller {\n background-color: #0F0F0F;\n}\n\n.ace-vibrant-ink .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-vibrant-ink .ace_marker-layer .ace_selection {\n background: #6699CC;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #99CC99;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_active_line {\n background: #333333;\n}\n\n \n.ace-vibrant-ink .ace_invisible {\n color: #404040;\n}\n\n.ace-vibrant-ink .ace_keyword {\n color:#FF6600;\n}\n\n.ace-vibrant-ink .ace_keyword.ace_operator {\n \n}\n\n.ace-vibrant-ink .ace_constant {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_language {\n color:#339999;\n}\n\n.ace-vibrant-ink .ace_constant.ace_library {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_numeric {\n color:#99CC99;\n}\n\n.ace-vibrant-ink .ace_invalid {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_invalid.ace_illegal {\n \n}\n\n.ace-vibrant-ink .ace_invalid.ace_deprecated {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_support {\n \n}\n\n.ace-vibrant-ink .ace_support.ace_function {\n color:#FFCC00;\n}\n\n.ace-vibrant-ink .ace_function.ace_buildin {\n \n}\n\n.ace-vibrant-ink .ace_string {\n color:#66FF00;\n}\n\n.ace-vibrant-ink .ace_string.ace_regexp {\n color:#44B4CC;\n}\n\n.ace-vibrant-ink .ace_comment {\n color:#9933CC;\n}\n\n.ace-vibrant-ink .ace_comment.ace_doc {\n \n}\n\n.ace-vibrant-ink .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_variable {\n \n}\n\n.ace-vibrant-ink .ace_variable.ace_language {\n \n}\n\n.ace-vibrant-ink .ace_xml_pe {\n \n}\n\n.ace-vibrant-ink .ace_meta {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\n font-style:italic;\ncolor:#99CC99;\n}\n\n\n.ace-vibrant-ink .ace_collab.ace_user1 {\n \n}";i.importCssString(h),f.cssClass="ace-vibrant-ink";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink.js b/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink.js new file mode 100644 index 00000000000..e110cfe2966 --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-theme-vibrant_ink.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-theme-vibrant_ink', function(A) { +define("ace/theme/vibrant_ink",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-vibrant-ink .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-vibrant-ink .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-vibrant-ink .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-vibrant-ink .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-vibrant-ink .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-vibrant-ink .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-vibrant-ink .ace_scroller {\n background-color: #0F0F0F;\n}\n\n.ace-vibrant-ink .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-vibrant-ink .ace_marker-layer .ace_selection {\n background: #6699CC;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #99CC99;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_active_line {\n background: #333333;\n}\n\n \n.ace-vibrant-ink .ace_invisible {\n color: #404040;\n}\n\n.ace-vibrant-ink .ace_keyword {\n color:#FF6600;\n}\n\n.ace-vibrant-ink .ace_keyword.ace_operator {\n \n}\n\n.ace-vibrant-ink .ace_constant {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_language {\n color:#339999;\n}\n\n.ace-vibrant-ink .ace_constant.ace_library {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_numeric {\n color:#99CC99;\n}\n\n.ace-vibrant-ink .ace_invalid {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_invalid.ace_illegal {\n \n}\n\n.ace-vibrant-ink .ace_invalid.ace_deprecated {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_support {\n \n}\n\n.ace-vibrant-ink .ace_support.ace_function {\n color:#FFCC00;\n}\n\n.ace-vibrant-ink .ace_function.ace_buildin {\n \n}\n\n.ace-vibrant-ink .ace_string {\n color:#66FF00;\n}\n\n.ace-vibrant-ink .ace_string.ace_regexp {\n color:#44B4CC;\n}\n\n.ace-vibrant-ink .ace_comment {\n color:#9933CC;\n}\n\n.ace-vibrant-ink .ace_comment.ace_doc {\n \n}\n\n.ace-vibrant-ink .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_variable {\n \n}\n\n.ace-vibrant-ink .ace_variable.ace_language {\n \n}\n\n.ace-vibrant-ink .ace_xml_pe {\n \n}\n\n.ace-vibrant-ink .ace_meta {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\n font-style:italic;\ncolor:#99CC99;\n}\n\n\n.ace-vibrant-ink .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-vibrant-ink"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); diff --git a/build/aui-ace-editor/aui-ace-editor-worker-coffee-debug.js b/build/aui-ace-editor/aui-ace-editor-worker-coffee-debug.js new file mode 100644 index 00000000000..431fa140e7c --- /dev/null +++ b/build/aui-ace-editor/aui-ace-editor-worker-coffee-debug.js @@ -0,0 +1,4 @@ +AUI.add('aui-ace-editor-worker-coffee', function(A) { +function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2){var n=arguments[1];}else{do{if(o in this){n=this[o++];break;}if(++o>=k){throw new TypeError;}}while(!0);}for(;o=2){var n=arguments[1];}else{do{if(o in this){n=this[o--];break;}if(--o<0){throw new TypeError;}}while(!0);}for(;o>=0;o--){o in this&&(n=m.call(null,n,this[o],o,this));}return n;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(m){var k=this.length;if(!k){return -1;}var n=arguments[1]||0;if(n>=k){return -1;}n<0&&(n+=k);for(;n=0;n--){if(!P(this,n)){continue;}if(m===this[n]){return n;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||k.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var J="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(m,k){if(typeof m!="object"&&typeof m!="function"||m===null){throw new TypeError(J+m);}if(!P(m,k)){return undefined;}var q,p,o;q={enumerable:!0,configurable:!0};if(K){var n=m.__proto__;m.__proto__=Q;var p=M(m,k),o=L(m,k);m.__proto__=n;if(p||o){p&&(descriptor.get=p),o&&(descriptor.set=o);return descriptor;}}descriptor.value=m[k];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k);}),Object.create||(Object.create=function(m,k){var o;if(m===null){o={"__proto__":null};}else{if(typeof m!="object"){throw new TypeError("typeof prototype["+typeof m+"] != 'object'");}var n=function(){};n.prototype=m,o=new n,o.__proto__=m;}typeof k!="undefined"&&Object.defineProperties(o,k);return o;});if(!Object.defineProperty){var I="Property description must be an object: ",H="Object.defineProperty called on non-object: ",G="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(m,k,o){if(typeof m!="object"&&typeof m!="function"){throw new TypeError(H+m);}if(typeof m!="object"||m===null){throw new TypeError(I+o);}if(P(o,"value")){if(K&&(M(m,k)||L(m,k))){var n=m.__proto__;m.__proto__=Q,delete m[k],m[k]=o.value,m.prototype;}else{m[k]=o.value;}}else{if(!K){throw new TypeError(G);}P(o,"get")&&O(m,k,o.get),P(o,"set")&&N(m,k,o.set);}return m;};}Object.defineProperties||(Object.defineProperties=function(m,k){for(var n in k){P(k,n)&&Object.defineProperty(m,n,k[n]);}return m;}),Object.seal||(Object.seal=function(k){return k;}),Object.freeze||(Object.freeze=function(k){return k;});try{Object.freeze(function(){});}catch(F){Object.freeze=function(m){return function k(n){return typeof n=="function"?n:m(n); +};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(k){return k;}),Object.isSealed||(Object.isSealed=function(k){return !1;}),Object.isFrozen||(Object.isFrozen=function(k){return !1;}),Object.isExtensible||(Object.isExtensible=function(k){return !0;});if(!Object.keys){var E=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=D.length;for(var B in {toString:null}){E=!1;}Object.keys=function y(n){if(typeof n!="object"&&typeof n!="function"||n===null){throw new TypeError("Object.keys called on a non-object");}var m=[];for(var k in n){P(n,k)&&m.push(k);}if(E){for(var q=0,p=C;q=7?new m(W,x,w,v,u,t,s):r>=6?new m(W,x,w,v,u,t):r>=5?new m(W,x,w,v,u):r>=4?new m(W,x,w,v):r>=3?new m(W,x,w):r>=2?new m(W,x):r>=1?new m(W):new m;q.constructor=k;return q;}return m.apply(this,arguments);},p=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var o in m){k[o]=m[o];}k.now=m.now,k.UTC=m.UTC,k.prototype=m.prototype,k.prototype.constructor=k,k.parse=function n(q){var u=p.exec(q);if(u){u.shift();var t=u[0]===undefined;for(var s=0;s<10;s++){if(s===7){continue;}u[s]=+(u[s]||(s<3?1:0)),s===1&&u[s]--;}if(t){return((u[3]*60+u[4])*60+u[5])*1000+u[6];}var r=(u[8]*60+u[9])*60*1000;u[6]==="-"&&(r=-r);return m.UTC.apply(this,u.slice(0,7))+r;}return m.parse.apply(this,arguments);};return k;}(Date));if(!String.prototype.trim){var A=/^\s\s*/,z=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(A,"").replace(z,"");};}}),f("pilot/event_emitter",["require","exports","module"],function(m,k,o){var n={};n._emit=n._dispatchEvent=function(q,p){this._eventRegistry=this._eventRegistry||{};var s=this._eventRegistry[q];if(!!s&&!!s.length){var p=p||{};p.type=q;for(var r=0;r=t&&(u.row=Math.max(0,t-1),u.column=this.getLine(t-1).length);return u;},this.insert=function(u,t){if(t.length==0){return u;}u=this.$clipPosition(u),this.getLength()<=1&&this.$detectNewLine(t);var x=this.$split(t),w=x.splice(0,1)[0],v=x.length==0?null:x.splice(x.length-1,1)[0];u=this.insertInLine(u,w),v!==null&&(u=this.insertNewLine(u),u=this.insertLines(u.row,x),u=this.insertInLine(u,v||""));return u;},this.insertLines=function(u,t){if(t.length==0){return{row:u,column:0};}var x=[u,0];x.push.apply(x,t),this.$lines.splice.apply(this.$lines,x);var w=new p(u,0,u+t.length,0),v={action:"insertLines",range:w,lines:t};this._dispatchEvent("change",{data:v});return w.end;},this.insertNewLine=function(u){u=this.$clipPosition(u);var t=this.$lines[u.row]||"";this.$lines[u.row]=t.substring(0,u.column),this.$lines.splice(u.row+1,0,t.substring(u.column,t.length));var w={row:u.row+1,column:0},v={action:"insertText",range:p.fromPoints(u,w),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});return w;},this.insertInLine=function(u,t){if(t.length==0){return u;}var x=this.$lines[u.row]||"";this.$lines[u.row]=x.substring(0,u.column)+t+x.substring(u.column);var w={row:u.row,column:u.column+t.length},v={action:"insertText",range:p.fromPoints(u,w),text:t};this._dispatchEvent("change",{data:v});return w;},this.remove=function(u){u.start=this.$clipPosition(u.start),u.end=this.$clipPosition(u.end);if(u.isEmpty()){return u.start;}var t=u.start.row,x=u.end.row;if(u.isMultiLine()){var w=u.start.column==0?t:t+1,v=x-1;u.end.column>0&&this.removeInLine(x,0,u.end.column),v>=w&&this.removeLines(w,v),w!=t&&(this.removeInLine(t,u.start.column,this.getLine(t).length),this.removeNewLine(u.start.row));}else{this.removeInLine(t,u.start.column,u.end.column);}return u.start;},this.removeInLine=function(u,t,A){if(t!=A){var z=new p(u,t,u,A),y=this.getLine(u),x=y.substring(t,A),w=y.substring(0,t)+y.substring(A,y.length);this.$lines.splice(u,1,w);var v={action:"removeText",range:z,text:x};this._dispatchEvent("change",{data:v});return z.start;}},this.removeLines=function(u,t){var x=new p(u,0,t+1,0),w=this.$lines.splice(u,t-u+1),v={action:"removeLines",range:x,nl:this.getNewLineCharacter(),lines:w};this._dispatchEvent("change",{data:v});return w;},this.removeNewLine=function(u){var t=this.getLine(u),y=this.getLine(u+1),x=new p(u,t.length,u+1,0),w=t+y;this.$lines.splice(u,2,w);var v={action:"removeText",range:x,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});},this.replace=function(u,t){if(t.length==0&&u.isEmpty()){return u.start;}if(t==this.getTextRange(u)){return u.end;}this.remove(u);if(t){var v=this.insert(u.start,t);}else{v=u.start;}return v;},this.applyDeltas=function(u){for(var t=0;t=0;t--){var w=u[t],v=p.fromPoints(w.range.start,w.range.end);w.action=="insertLines"?this.removeLines(v.start.row,v.end.row-1):w.action=="insertText"?this.remove(v):w.action=="removeLines"?this.insertLines(v.start.row,w.lines):w.action=="removeText"&&this.insert(v.start,w.text);}};}).call(n.prototype),k.Document=n;}),f("ace/range",["require","exports","module"],function(m,k,o){var n=function(q,p,s,r){this.start={row:q,column:p},this.end={row:s,column:r};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(q,p){return this.compare(q,p)==0;},this.compareRange=function(q){var p,s=q.end,r=q.start;p=this.compare(s.row,s.column);if(p==1){p=this.compare(r.row,r.column);return p==1?2:p==0?1:0;}if(p==-1){return -2;}p=this.compare(r.row,r.column);return p==-1?-1:p==1?42:0;},this.containsRange=function(q){var p=this.compareRange(q);return p==-1||p==0||p==1;},this.isEnd=function(q,p){return this.end.row==q&&this.end.column==p;},this.isStart=function(q,p){return this.start.row==q&&this.start.column==p;},this.setStart=function(q,p){typeof q=="object"?(this.start.column=q.column,this.start.row=q.row):(this.start.row=q,this.start.column=p);},this.setEnd=function(q,p){typeof q=="object"?(this.end.column=q.column,this.end.row=q.row):(this.end.row=q,this.end.column=p);},this.inside=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)||this.isStart(q,p)?!1:!0;}return !1;},this.insideStart=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)?!1:!0;}return !1;},this.insideEnd=function(q,p){if(this.compare(q,p)==0){return this.isStart(q,p)?!1:!0;}return !1;},this.compare=function(q,p){if(!this.isMultiLine()&&q===this.start.row){return pthis.end.column?1:0;}return qthis.end.row?1:this.start.row===q?p>=this.start.column?0:-1:this.end.row===q?p<=this.end.column?0:1:0;},this.compareStart=function(q,p){return this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.compareEnd=function(q,p){return this.end.row==q&&this.end.column==p?1:this.compare(q,p);},this.compareInside=function(q,p){return this.end.row==q&&this.end.column==p?1:this.start.row==q&&this.start.column==p?-1:this.compare(q,p); +},this.clipRows=function(q,p){if(this.end.row>p){var s={row:p+1,column:0};}if(this.start.row>p){var r={row:p+1,column:0};}if(this.start.rowthis.row){return;}if(v.start.row==this.row&&v.start.column>this.column){return;}var u=this.row,t=this.column;r.action==="insertText"?v.start.row===u&&v.start.column<=t?v.start.row===v.end.row?t+=v.end.column-v.start.column:(t-=v.start.column,u+=v.end.row-v.start.row):v.start.row!==v.end.row&&v.start.row=t?t=v.start.column:t=Math.max(0,t-(v.end.column-v.start.column)):v.start.row!==v.end.row&&v.start.row=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):s<0?(t.row=0,t.column=0):(t.row=s,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,r))),r<0&&(t.column=0);return t;};}).call(n.prototype);}),f("pilot/lang",["require","exports","module"],function(m,k,p){k.stringReverse=function(q){return q.split("").reverse().join("");},k.stringRepeat=function(r,q){return Array(q+1).join(r);};var o=/^\s\s*/,n=/\s\s*$/;k.stringTrimLeft=function(q){return q.replace(o,"");},k.stringTrimRight=function(q){return q.replace(n,"");},k.copyObject=function(r){var q={};for(var s in r){q[s]=r[s];}return q;},k.copyArray=function(r){var q=[];for(i=0,l=r.length;i=0||!t&&Z.call(aP,s)>=0){o=s.toUpperCase(),o==="WHEN"&&(m=this.tag(),Z.call(aB,m)>=0)?o="LEADING_WHEN":o==="FOR"?this.seenFor=!0:o==="UNLESS"?o="IF":Z.call(ah,o)>=0?o="UNARY":Z.call(an,o)>=0&&(o!=="INSTANCEOF"&&this.seenFor?(o="FOR"+o,this.seenFor=!1):(o="RELATION",this.value()==="!"&&(this.tokens.pop(),s="!"+s)));}Z.call(aD,s)>=0&&(t?(o="IDENTIFIER",s=new String(s),s.reserved=!0):Z.call(am,s)>=0&&this.identifierError(s)),t||(Z.call(aR,s)>=0&&(s=aQ[s]),o=function(){switch(s){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return o;}}()),this.token(o,s),u&&this.token(":",":");return r.length;},k.prototype.numberToken=function(){var n,m;if(!(n=aq.exec(this.chunk))){return 0;}m=n[0],this.token("NUMBER",m);return m.length;},k.prototype.stringToken=function(){var n,m;switch(this.chunk.charAt(0)){case"'":if(!(n=aj.exec(this.chunk))){return 0;}this.token("STRING",(m=n[0]).replace(aw,"\\\n"));break;case'"':if(!(m=this.balancedString(this.chunk,'"'))){return 0;}0=0)){return 0;}if(!(n=ao.exec(this.chunk))){return 0;}p=n[0],this.token("REGEX",p==="//"?"/(?:)/":p);return p.length;},k.prototype.heregexToken=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;y=B[0],A=B[1],z=B[2];if(0>A.indexOf("#{")){x=A.replace(aH,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(x||"(?:)")+"/"+z);return y.length;}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),v=[],r=this.interpolateString(A,{regex:!0});for(t=0,s=r.length;tthis.indent){if(q){this.indebt=o-this.indent,this.suppressNewlines();return m.length;}n=o-this.indent+this.outdebt,this.token("INDENT",n),this.indents.push(n),this.outdebt=this.indebt=0;}else{this.indebt=0,this.outdentToken(this.indent-o,q);}this.indent=o;return m.length;},k.prototype.outdentToken=function(n,m,q){var p,o;while(n>0){o=this.indents.length-1,this.indents[o]===void 0?n=0:this.indents[o]===this.outdebt?(n-=this.outdebt,this.outdebt=0):this.indents[o]=0)&&this.assignmentError();if((q=m[1])==="||"||q==="&&"){m[0]="COMPOUND_ASSIGN",m[1]+="=";return s.length;}}if(s===";"){t="TERMINATOR";}else{if(Z.call(ax,s)>=0){t="MATH";}else{if(Z.call(aN,s)>=0){t="COMPARE";}else{if(Z.call(aM,s)>=0){t="COMPOUND_ASSIGN";}else{if(Z.call(ah,s)>=0){t="UNARY";}else{if(Z.call(ak,s)>=0){t="SHIFT";}else{if(Z.call(az,s)>=0||s==="?"&&(m!=null?m.spaced:void 0)){t="LOGIC";}else{if(m&&!m.spaced){if(s==="("&&(p=m[0],Z.call(aT,p)>=0)){m[0]==="?"&&(m[0]="FUNC_EXIST"),t="CALL_START";}else{if(s==="["&&(o=m[0],Z.call(aF,o)>=0)){t="INDEX_START";switch(m[0]){case"?":m[0]="INDEX_SOAK";break;case"::":m[0]="INDEX_PROTO";}}}}}}}}}}}this.token(t,s);return s.length;},k.prototype.sanitizeHeredoc=function(n,m){var s,r,q,p,o;q=m.indent,r=m.herecomment;if(r){if(aK.test(n)){throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1)); +}if(n.indexOf("\n")<=0){return n;}}else{while(p=aJ.exec(n)){s=p[1];if(q===null||0<(o=s.length)&&oo;1<=o?s++:s--){switch(r=n.charAt(s)){case"\\":s++;continue;case m:p.pop();if(!p.length){return n.slice(0,s+1);}m=p[p.length-1];continue;}m!=="}"||r!=='"'&&r!=="'"?m==="}"&&r==="{"?p.push(m="}"):m==='"'&&q==="#"&&r==="{"&&p.push(m="}"):p.push(m=r),q=r;}throw new Error("missing "+p.pop()+", starting on line "+(this.line+1));},k.prototype.interpolateString=function(M,L){var K,J,I,H,G,F,E,D,C,B,A,z,y,x,w,v,u;L==null&&(L={}),J=L.heredoc,B=L.regex,z=[],C=0,I=-1;while(E=M.charAt(I+=1)){if(E==="\\"){I+=1;continue;}if(E!=="#"||M.charAt(I+1)!=="{"||!(K=this.balancedString(M.slice(I+1),"}"))){continue;}C1&&(D.unshift(["(","("]),D.push([")",")"])),z.push(["TOKENS",D]);}}I+=K.length,C=I+1;}I>C&&C1)&&this.token("(","(");for(I=0,x=z.length;I|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,ag=/^[^\n\S]+/,aO=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,aS=/^[-=]>/,av=/^(?:\n[^\n\S]*)+/,aj=/^'[^\\']*(?:\\.[^\\']*)*'/,aE=/^`[^\\`]*(?:\\.[^\\`]*)*`/,ao=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,aI=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,aH=/\s+(?:#.*)?/g,aw=/\n/g,aJ=/\n+([^\n\S]*)/g,aK=/\*\//,aV=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,aA=/^\s*(?:,|\??\.(?![.\d])|::)/,ai=/\s+$/,ar=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,aM=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],ah=["!","~","NEW","TYPEOF","DELETE","DO"],az=["&&","||","&","|","^"],ak=["<<",">>",">>>"],aN=["==","!=","<",">","<=",">="],ax=["*","/","%"],an=["IN","OF","INSTANCEOF"],aU=["TRUE","FALSE","NULL","UNDEFINED"],au=["NUMBER","REGEX","BOOL","++","--","]"],at=au.concat(")","}","THIS","IDENTIFIER","STRING"),aT=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],aF=aT.concat("NUMBER","BOOL"),aB=["INDENT","OUTDENT","TERMINATOR"];}),f("ace/mode/coffee/rewriter",["require","exports","module"],function(T,S,R){var Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,z,y=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k=0){s+=1;}else{if(o=r[0],y.call(O,o)>=0){s-=1;}}n+=1;}return n-1;},k.prototype.removeLeadingNewlines=function(){var n,m,p,o;o=this.tokens; +for(n=0,p=o.length;n=0)){p.splice(m,1);return 0;}return 1;});},k.prototype.closeOpenCalls=function(){var n,m;m=function(p,o){var q;return(q=p[0])===")"||q==="CALL_END"||p[0]==="OUTDENT"&&this.tag(o-1)===")";},n=function(p,o){return this.tokens[p[0]==="OUTDENT"?o-1:o][0]="CALL_END";};return this.scanTokens(function(p,o){p[0]==="CALL_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.closeOpenIndexes=function(){var n,m;m=function(p,o){var q;return(q=p[0])==="]"||q==="INDEX_END";},n=function(p,o){return p[0]="INDEX_END";};return this.scanTokens(function(p,o){p[0]==="INDEX_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.addImplicitBraces=function(){var n,m,q,p,o;q=[],p=null,o=0,m=function(s,r){var V,U,w,v,u,t;u=this.tokens.slice(r+1,r+3+1||9000000000),V=u[0],v=u[1],w=u[2];if("HERECOMMENT"===(V!=null?V[0]:void 0)){return !1;}U=s[0];return(U==="TERMINATOR"||U==="OUTDENT")&&(v!=null?v[0]:void 0)!==":"&&((V!=null?V[0]:void 0)!=="@"||(w!=null?w[0]:void 0)!==":")||U===","&&V&&(t=V[0])!=="IDENTIFIER"&&t!=="NUMBER"&&t!=="STRING"&&t!=="@"&&t!=="TERMINATOR"&&t!=="OUTDENT";},n=function(s,r){var t;t=["}","}",s[2]],t.generated=!0;return this.tokens.splice(r,0,t);};return this.scanTokens(function(X,W,V){var U,w,v,u,t,s,r;if(s=v=X[0],y.call(N,s)>=0){q.push([v==="INDENT"&&this.tag(W-1)==="{"?"{":v,W]);return 1;}if(y.call(O,v)>=0){p=q.pop();return 1;}if(v!==":"||(U=this.tag(W-2))!==":"&&((r=q[q.length-1])!=null?r[0]:void 0)==="{"){return 1;}q.push(["{"]),w=U==="@"?W-2:W-1;while(this.tag(w-2)==="HERECOMMENT"){w-=2;}t=new String("{"),t.generated=!0,u=["{",t,X[2]],u.generated=!0,V.splice(w,0,u),this.detectEnd(W+2,m,n);return 2;});},k.prototype.addImplicitParentheses=function(){var n,m;m=!1,n=function(p,o){var q;q=p[0]==="OUTDENT"?o+1:o;return this.tokens.splice(q,0,["CALL_END",")",p[2]]);};return this.scanTokens(function(ab,aa,Z){var Y,X,W,V,U,w,v,ae,ad,ac;v=ab[0];if(v==="CLASS"||v==="IF"){m=!0;}ae=Z.slice(aa-1,aa+1+1||9000000000),V=ae[0],X=ae[1],W=ae[2],Y=!m&&v==="INDENT"&&W&&W.generated&&W[0]==="{"&&V&&(ad=V[0],y.call(J,ad)>=0),w=!1,U=!1,y.call(G,v)>=0&&(m=!1),V&&!V.spaced&&v==="?"&&(ab.call=!0);if(ab.fromThen){return 1;}if(!(Y||(V!=null?V.spaced:void 0)&&(V.call||(ac=V[0],y.call(J,ac)>=0))&&(y.call(L,v)>=0||!ab.spaced&&!ab.newLine&&y.call(I,v)>=0))){return 1;}Z.splice(aa,0,["CALL_START","(",ab[2]]),this.detectEnd(aa+1,function(p,o){var r,q;v=p[0];if(!w&&p.fromThen){return !0;}if(v==="IF"||v==="ELSE"||v==="CATCH"||v==="->"||v==="=>"){w=!0;}if(v==="IF"||v==="ELSE"||v==="SWITCH"||v==="TRY"){U=!0;}return v!=="."&&v!=="?."&&v!=="::"||this.tag(o-1)!=="OUTDENT"?!p.generated&&this.tag(o-1)!==","&&(y.call(K,v)>=0||v==="INDENT"&&!U)&&(v!=="INDENT"||this.tag(o-2)!=="CLASS"&&(q=this.tag(o-1),y.call(M,q)<0)&&(!(r=this.tokens[o+1])||!r.generated||r[0]!=="{")):!0;},n),V[0]==="?"&&(V[0]="FUNC_EXIST");return 2;});},k.prototype.addImplicitIndentation=function(){return this.scanTokens(function(w,v,u){var t,s,r,q,p,o,n,m;o=w[0];if(o==="TERMINATOR"&&this.tag(v+1)==="THEN"){u.splice(v,1);return 0;}if(o==="ELSE"&&this.tag(v-1)!=="OUTDENT"){u.splice.apply(u,[v,0].concat(x.call(this.indentation(w))));return 2;}if(o!=="CATCH"||(n=this.tag(v+2))!=="OUTDENT"&&n!=="TERMINATOR"&&n!=="FINALLY"){if(y.call(E,o)>=0&&this.tag(v+1)!=="INDENT"&&(o!=="ELSE"||this.tag(v+1)!=="IF")){p=o,m=this.indentation(w),r=m[0],q=m[1],p==="THEN"&&(r.fromThen=!0),r.generated=q.generated=!0,u.splice(v+1,0,r),s=function(V,U){var W;return V[1]!==";"&&(W=V[0],y.call(F,W)>=0)&&(V[0]!=="ELSE"||p==="IF"||p==="THEN");},t=function(V,U){return this.tokens.splice(this.tag(U-1)===","?U-1:U,0,q);},this.detectEnd(v+2,s,t),o==="THEN"&&u.splice(v,1);return 1;}return 1;}u.splice.apply(u,[v+2,0].concat(x.call(this.indentation(w))));return 4;});},k.prototype.tagPostfixConditionals=function(){var m;m=function(o,n){var p;return(p=o[0])==="TERMINATOR"||p==="INDENT";};return this.scanTokens(function(n,p){var o;if(n[0]!=="IF"){return 1;}o=n,this.detectEnd(p+1,m,function(r,q){if(r[0]!=="INDENT"){return o[0]="POST_"+o[0];}});return 1;});},k.prototype.ensureBalance=function(Y){var X,W,V,U,w,v,u,t,s,r,q,p,o;V={},w={},p=this.tokens;for(t=0,r=p.length;t0){throw Error("unclosed "+U+" on line "+(w[U]+1));}}return this;},k.prototype.rewriteClosingParens=function(){var n,m,o;o=[],n={};for(m in H){n[m]=0;}return this.scanTokens(function(V,U,w){var v,u,t,s,r,q,p;if(p=r=V[0],y.call(N,p)>=0){o.push(V);return 1;}if(y.call(O,r)<0){return 1;}if(n[v=H[r]]>0){n[v]-=1,w.splice(U,1);return 0;}u=o.pop(),t=u[0],s=H[t];if(r===s){return 1;}n[t]+=1,q=[s,t==="INDENT"?u[1]:s],this.tag(U+2)===t?(w.splice(U+3,0,q),o.push(u)):w.splice(U,0,q);return 1;});},k.prototype.indentation=function(m){return[["INDENT",2,m[2]],["OUTDENT",2,m[2]]];},k.prototype.tag=function(n){var m;return(m=this.tokens[n])!=null?m[0]:void 0;};return k;}(),Q=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],H={},N=[],O=[];for(B=0,A=Q.length;B","=>","[","(","{","--","++"],I=["+","-"],M=["->","=>","{","[",","],K=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],E=["ELSE","->","=>","TRY","FINALLY","THEN"],F=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],G=["TERMINATOR","INDENT","OUTDENT"]; +}),f("ace/mode/coffee/helpers",["require","exports","module"],function(m,k,p){var o,n;k.starts=function(r,q,s){return q===r.substr(s,q.length);},k.ends=function(r,q,t){var s;s=q.length;return q===r.substr(r.length-s-(t||0),s);},k.compact=function(r){var q,u,t,s;s=[];for(u=0,t=r.length;u":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function o(s,r,y,x,w,v,u){var t=v.length-1;switch(w){case 1:return this.$=new x.Block;case 2:return this.$=v[t];case 3:return this.$=v[t-1];case 4:this.$=x.Block.wrap([v[t]]);break;case 5:this.$=v[t-2].push(v[t]);break;case 6:this.$=v[t-1];break;case 7:this.$=v[t];break;case 8:this.$=v[t];break;case 9:this.$=v[t];break;case 10:this.$=v[t];break;case 11:this.$=v[t];break;case 12:this.$=new x.Literal(v[t]);break;case 13:this.$=v[t];break;case 14:this.$=v[t];break;case 15:this.$=v[t];break;case 16:this.$=v[t];break;case 17:this.$=v[t];break;case 18:this.$=v[t];break;case 19:this.$=v[t];break;case 20:this.$=v[t];break;case 21:this.$=v[t];break;case 22:this.$=v[t];break;case 23:this.$=v[t];break;case 24:this.$=new x.Block;break;case 25:this.$=v[t-1];break;case 26:this.$=new x.Literal(v[t]);break;case 27:this.$=new x.Literal(v[t]);break;case 28:this.$=new x.Literal(v[t]);break;case 29:this.$=v[t];break;case 30:this.$=new x.Literal(v[t]);break;case 31:this.$=new x.Literal(v[t]);break;case 32:this.$=function(){var z;z=new x.Literal(v[t]),v[t]==="undefined"&&(z.isUndefined=!0);return z;}();break;case 33:this.$=new x.Assign(v[t-2],v[t]);break;case 34:this.$=new x.Assign(v[t-4],v[t-1]);break;case 35:this.$=new x.Value(v[t]);break;case 36:this.$=new x.Assign(new x.Value(v[t-2]),v[t],"object");break;case 37:this.$=new x.Assign(new x.Value(v[t-4]),v[t-1],"object");break;case 38:this.$=v[t];break;case 39:this.$=v[t];break; +case 40:this.$=v[t];break;case 41:this.$=v[t];break;case 42:this.$=new x.Return(v[t]);break;case 43:this.$=new x.Return;break;case 44:this.$=new x.Comment(v[t]);break;case 45:this.$=new x.Code(v[t-3],v[t],v[t-1]);break;case 46:this.$=new x.Code([],v[t],v[t-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=v[t];break;case 50:this.$=v[t];break;case 51:this.$=[];break;case 52:this.$=[v[t]];break;case 53:this.$=v[t-2].concat(v[t]);break;case 54:this.$=new x.Param(v[t]);break;case 55:this.$=new x.Param(v[t-1],null,!0);break;case 56:this.$=new x.Param(v[t-2],v[t]);break;case 57:this.$=v[t];break;case 58:this.$=v[t];break;case 59:this.$=v[t];break;case 60:this.$=v[t];break;case 61:this.$=new x.Splat(v[t-1]);break;case 62:this.$=new x.Value(v[t]);break;case 63:this.$=v[t-1].push(v[t]);break;case 64:this.$=new x.Value(v[t-1],[v[t]]);break;case 65:this.$=v[t];break;case 66:this.$=v[t];break;case 67:this.$=new x.Value(v[t]);break;case 68:this.$=new x.Value(v[t]);break;case 69:this.$=v[t];break;case 70:this.$=new x.Value(v[t]);break;case 71:this.$=new x.Value(v[t]);break;case 72:this.$=new x.Value(v[t]);break;case 73:this.$=v[t];break;case 74:this.$=new x.Access(v[t]);break;case 75:this.$=new x.Access(v[t],"soak");break;case 76:this.$=new x.Access(v[t],"proto");break;case 77:this.$=new x.Access(new x.Literal("prototype"));break;case 78:this.$=v[t];break;case 79:this.$=v[t-1];break;case 80:this.$=x.extend(v[t],{soak:!0});break;case 81:this.$=x.extend(v[t],{proto:!0});break;case 82:this.$=new x.Index(v[t]);break;case 83:this.$=new x.Slice(v[t]);break;case 84:this.$=new x.Obj(v[t-2],v[t-3].generated);break;case 85:this.$=[];break;case 86:this.$=[v[t]];break;case 87:this.$=v[t-2].concat(v[t]);break;case 88:this.$=v[t-3].concat(v[t]);break;case 89:this.$=v[t-5].concat(v[t-2]);break;case 90:this.$=new x.Class;break;case 91:this.$=new x.Class(null,null,v[t]);break;case 92:this.$=new x.Class(null,v[t]);break;case 93:this.$=new x.Class(null,v[t-1],v[t]);break;case 94:this.$=new x.Class(v[t]);break;case 95:this.$=new x.Class(v[t-1],null,v[t]);break;case 96:this.$=new x.Class(v[t-2],v[t]);break;case 97:this.$=new x.Class(v[t-3],v[t-1],v[t]);break;case 98:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 99:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 100:this.$=new x.Call("super",[new x.Splat(new x.Literal("arguments"))]);break;case 101:this.$=new x.Call("super",v[t]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=v[t-2];break;case 106:this.$=new x.Value(new x.Literal("this"));break;case 107:this.$=new x.Value(new x.Literal("this"));break;case 108:this.$=new x.Value(new x.Literal("this"),[new x.Access(v[t])],"this");break;case 109:this.$=new x.Arr([]);break;case 110:this.$=new x.Arr(v[t-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new x.Range(v[t-3],v[t-1],v[t-2]);break;case 114:this.$=new x.Range(v[t-2],v[t],v[t-1]);break;case 115:this.$=new x.Range(v[t-1],null,v[t]);break;case 116:this.$=new x.Range(null,v[t],v[t-1]);break;case 117:this.$=[v[t]];break;case 118:this.$=v[t-2].concat(v[t]);break;case 119:this.$=v[t-3].concat(v[t]);break;case 120:this.$=v[t-2];break;case 121:this.$=v[t-5].concat(v[t-2]);break;case 122:this.$=v[t];break;case 123:this.$=v[t];break;case 124:this.$=v[t];break;case 125:this.$=[].concat(v[t-2],v[t]);break;case 126:this.$=new x.Try(v[t]);break;case 127:this.$=new x.Try(v[t-1],v[t][0],v[t][1]);break;case 128:this.$=new x.Try(v[t-2],null,null,v[t]);break;case 129:this.$=new x.Try(v[t-3],v[t-2][0],v[t-2][1],v[t]);break;case 130:this.$=[v[t-1],v[t]];break;case 131:this.$=new x.Throw(v[t]);break;case 132:this.$=new x.Parens(v[t-1]);break;case 133:this.$=new x.Parens(v[t-2]);break;case 134:this.$=new x.While(v[t]);break;case 135:this.$=new x.While(v[t-2],{guard:v[t]});break;case 136:this.$=new x.While(v[t],{invert:!0});break;case 137:this.$=new x.While(v[t-2],{invert:!0,guard:v[t]});break;case 138:this.$=v[t-1].addBody(v[t]);break;case 139:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 140:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 141:this.$=v[t];break;case 142:this.$=(new x.While(new x.Literal("true"))).addBody(v[t]);break;case 143:this.$=(new x.While(new x.Literal("true"))).addBody(x.Block.wrap([v[t]]));break;case 144:this.$=new x.For(v[t-1],v[t]);break;case 145:this.$=new x.For(v[t-1],v[t]);break;case 146:this.$=new x.For(v[t],v[t-1]);break;case 147:this.$={source:new x.Value(v[t])};break;case 148:this.$=function(){v[t].own=v[t-1].own,v[t].name=v[t-1][0],v[t].index=v[t-1][1];return v[t];}();break;case 149:this.$=v[t];break;case 150:this.$=function(){v[t].own=!0;return v[t];}();break;case 151:this.$=v[t];break;case 152:this.$=new x.Value(v[t]);break;case 153:this.$=new x.Value(v[t]);break;case 154:this.$=[v[t]];break;case 155:this.$=[v[t-2],v[t]];break;case 156:this.$={source:v[t]};break;case 157:this.$={source:v[t],object:!0};break;case 158:this.$={source:v[t-2],guard:v[t]};break;case 159:this.$={source:v[t-2],guard:v[t],object:!0};break;case 160:this.$={source:v[t-2],step:v[t]};break;case 161:this.$={source:v[t-4],guard:v[t-2],step:v[t]};break;case 162:this.$={source:v[t-4],step:v[t-2],guard:v[t]};break;case 163:this.$=new x.Switch(v[t-3],v[t-1]);break;case 164:this.$=new x.Switch(v[t-5],v[t-3],v[t-1]);break;case 165:this.$=new x.Switch(null,v[t-1]);break;case 166:this.$=new x.Switch(null,v[t-3],v[t-1]);break;case 167:this.$=v[t];break;case 168:this.$=v[t-1].concat(v[t]);break;case 169:this.$=[[v[t-1],v[t]]];break;case 170:this.$=[[v[t-2],v[t-1]]];break;case 171:this.$=new x.If(v[t-1],v[t],{type:v[t-2]});break;case 172:this.$=v[t-4].addElse(new x.If(v[t-1],v[t],{type:v[t-2]}));break;case 173:this.$=v[t];break;case 174:this.$=v[t-2].addElse(v[t]);break;case 175:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 176:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 177:this.$=new x.Op(v[t-1],v[t]); +break;case 178:this.$=new x.Op("-",v[t]);break;case 179:this.$=new x.Op("+",v[t]);break;case 180:this.$=new x.Op("--",v[t]);break;case 181:this.$=new x.Op("++",v[t]);break;case 182:this.$=new x.Op("--",v[t-1],null,!0);break;case 183:this.$=new x.Op("++",v[t-1],null,!0);break;case 184:this.$=new x.Existence(v[t-1]);break;case 185:this.$=new x.Op("+",v[t-2],v[t]);break;case 186:this.$=new x.Op("-",v[t-2],v[t]);break;case 187:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 188:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 189:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 190:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 191:this.$=function(){return v[t-1].charAt(0)==="!"?(new x.Op(v[t-1].slice(1),v[t-2],v[t])).invert():new x.Op(v[t-1],v[t-2],v[t]);}();break;case 192:this.$=new x.Assign(v[t-2],v[t],v[t-1]);break;case 193:this.$=new x.Assign(v[t-4],v[t-1],v[t-3]);break;case 194:this.$=new x.Extends(v[t-2],v[t]);}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(s,r){throw new Error(s); +},parse:function n(ab){function N(){var r;r=aa.lexer.lex()||1,typeof r!="number"&&(r=aa.symbols_[r]||r);return r;}function O(r){Z.length=Z.length-2*r,Y.length=Y.length-r,X.length=X.length-r;}var aa=this,Z=[0],Y=[null],X=[],W=this.table,V="",U=0,T=0,S=0,R=2,Q=1;this.lexer.setInput(ab),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var P=this.lexer.yylloc;X.push(P),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var M,K,J,I,H,G,F={},E,D,C,B;for(;;){J=Z[Z.length-1],this.defaultActions[J]?I=this.defaultActions[J]:(M==null&&(M=N()),I=W[J]&&W[J][M]);if(typeof I=="undefined"||!I.length||!I[0]){if(!S){B=[];for(E in W[J]){this.terminals_[E]&&E>2&&B.push("'"+this.terminals_[E]+"'");}var L="";this.lexer.showPosition?L="Parse error on line "+(U+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+B.join(", "):L="Parse error on line "+(U+1)+": Unexpected "+(M==1?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(L,{text:this.lexer.match,token:this.terminals_[M]||M,line:this.lexer.yylineno,loc:P,expected:B});}if(S==3){if(M==Q){throw new Error(L||"Parsing halted.");}T=this.lexer.yyleng,V=this.lexer.yytext,U=this.lexer.yylineno,P=this.lexer.yylloc,M=N();}for(;;){if(R.toString() in W[J]){break;}if(J==0){throw new Error(L||"Parsing halted.");}O(1),J=Z[Z.length-1];}K=M,M=R,J=Z[Z.length-1],I=W[J]&&W[J][R],S=3;}if(I[0] instanceof Array&&I.length>1){throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+M);}switch(I[0]){case 1:Z.push(M),Y.push(this.lexer.yytext),X.push(this.lexer.yylloc),Z.push(I[1]),M=null,K?(M=K,K=null):(T=this.lexer.yyleng,V=this.lexer.yytext,U=this.lexer.yylineno,P=this.lexer.yylloc,S>0&&S--);break;case 2:D=this.productions_[I[1]][1],F.$=Y[Y.length-D],F._$={first_line:X[X.length-(D||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(D||1)].first_column,last_column:X[X.length-1].last_column},G=this.performAction.call(F,V,T,U,this.yy,I[1],Y,X);if(typeof G!="undefined"){return G;}D&&(Z=Z.slice(0,-1*D*2),Y=Y.slice(0,-1*D),X=X.slice(0,-1*D)),Z.push(this.productions_[I[1]][0]),Y.push(F.$),X.push(F._$),C=W[Z[Z.length-2]][Z[Z.length-1]],Z.push(C);break;case 3:return !0;}}return !0;}};q.exports=p;}),f("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(bp,bn,a8){var a6,a4,a2,a0,aY,aW,aU,aS,aQ,aP,aO,aN,aM,aL,aK,aJ,aI,aH,aG,aF,aE,aD,aC,aA,az,ay,ax,aw,av,au,at,ar,aq,ap,ao,an,am,al,ak,aj,ai,ah,ag,af,ae,ad,ac,ab,aa,aB,bs,br,bq,bo,a9,a7,a5,a3,a1,aZ,aX=Object.prototype.hasOwnProperty,aV=function(m,k){function n(){this.constructor=m;}for(var o in k){aX.call(k,o)&&(m[o]=k[o]);}n.prototype=k.prototype,m.prototype=new n,m.__super__=k.prototype;return m;},aT=function(m,k){return function(){return m.apply(k,arguments);};},aR=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k1&&n.level>=aE?"("+m+")":m;},k.prototype.compileRoot=function(n){var m;n.indent=this.tab=n.bare?"":ai,n.scope=new am(null,this,null),n.level=aA,m=this.compileWithDeclarations(n);return n.bare?m:"(function() {\n"+m+"\n}).call(this);\n";},k.prototype.compileWithDeclarations=function(w){var v,u,t,s,r,q,p,o,n,m;u=q="",m=this.expressions;for(r=0,n=m.length;r=aG?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+m+";":m;},k.prototype.toString=function(){return' "'+this.value+'"';};return k;}(),bn.Return=ao=function(){function k(m){m&&!m.unwrap().isUndefined&&(this.expression=m);}aV(k,a0),k.prototype.children=["expression"],k.prototype.isStatement=ab,k.prototype.makeReturn=ah,k.prototype.jumps=ah,k.prototype.compile=function(m,p){var o,n;o=(n=this.expression)!=null?n.makeReturn():void 0;return !o||o instanceof k?k.__super__.compile.call(this,m,p):o.compile(m,p);},k.prototype.compileNode=function(m){return this.tab+("return"+(this.expression?" "+this.expression.compile(m,aC):"")+";");};return k;}(),bn.Value=ad=function(){function k(m,o,n){if(!o&&m instanceof k){return m;}this.base=m,this.properties=o||[],n&&(this[n]=!0);return this;}aV(k,a0),k.prototype.children=["base","properties"],k.prototype.push=function(m){this.properties.push(m);return this;},k.prototype.hasProperties=function(){return !!this.properties.length;},k.prototype.isArray=function(){return !this.properties.length&&this.base instanceof a4;},k.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex();},k.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable();},k.prototype.isSimpleNumber=function(){return this.base instanceof az&&an.test(this.base.value);},k.prototype.isAtomic=function(){var n,m,p,o;o=this.properties.concat(this.base);for(m=0,p=o.length;m"+this.equals],s=o[0],v=o[1],x=this.stepNum?x=+this.stepNum>0?""+s+" "+this.toVar:""+v+" "+this.toVar:t?(n=[+this.fromNum,+this.toNum],w=n[0],q=n[1],n,x=w<=q?""+s+" "+q:""+v+" "+q):(y=""+this.fromVar+" <= "+this.toVar,x=""+y+" ? "+s+" "+this.toVar+" : "+v+" "+this.toVar),r=this.stepVar?""+u+" += "+this.stepVar:t?w<=q?""+u+"++":""+u+"--":""+y+" ? "+u+"++ : "+u+"--";return""+p+"; "+x+"; "+r;},k.prototype.compileArray=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){u=function(){o=[];for(var n=q=+this.fromNum,m=+this.toNum;q<=m?n<=m:n>=m;q<=m?n++:n--){o.push(n);}return o;}.apply(this,arguments),this.exclusive&&u.pop();return"["+u.join(", ")+"]";}x=this.tab+ai,y=B.scope.freeVariable("i"),t=B.scope.freeVariable("results"),v="\n"+x+t+" = [];",this.fromNum&&this.toNum?(B.index=y,A=this.compileNode(B)):(s=""+y+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),z=""+this.fromVar+" <= "+this.toVar,A="var "+s+"; "+z+" ? "+y+" <"+this.equals+" "+this.toVar+" : "+y+" >"+this.equals+" "+this.toVar+"; "+z+" ? "+y+"++ : "+y+"--"),w="{ "+t+".push("+y+"); }\n"+x+"return "+t+";\n"+B.indent; +return"(function() {"+v+"\n"+x+"for ("+A+")"+w+"}).apply(this, arguments)";};return k;}(),bn.Slice=al=function(){function k(m){this.range=m,k.__super__.constructor.call(this);}aV(k,a0),k.prototype.children=["range"],k.prototype.compileNode=function(n){var m,s,r,q,p,o;o=this.range,q=o.to,s=o.from,r=s&&s.compile(n,aC)||"0",m=q&&q.compile(n,aC),q&&(!!this.range.exclusive||+m!==-1)&&(p=", "+(this.range.exclusive?m:an.test(m)?(+m+1).toString():"("+m+" + 1) || 9e9"));return".slice("+r+(p||"")+")";};return k;}(),bn.Obj=av=function(){function k(n,m){this.generated=m!=null?m:!1,this.objects=this.properties=n||[];}aV(k,a0),k.prototype.children=["properties"],k.prototype.compileNode=function(y){var x,w,v,u,t,s,r,q,p,o,m;p=this.properties;if(!p.length){return this.front?"({})":"{}";}if(this.generated){for(o=0,m=p.length;o=0?"[\n"+n.indent+m+"\n"+this.tab+"]":"["+m+"]";},k.prototype.assigns=function(n){var m,q,p,o;o=this.objects;for(q=0,p=o.length;q=aD?"("+S+")":S;}P=this.variable.isObject();if(!H||L!==1||(N=M[0]) instanceof ak){x=A.compile(V,aE),T=[],I=!1;if(!aL.test(x)||this.variable.assigns(x)){T.push(""+(K=V.scope.freeVariable("ref"))+" = "+x),x=K;}for(R=0,u=M.length;R=0&&(m.isExistentialEquals=!0);return(new au(this.context.slice(0,-1),p,new k(o,this.value,"="))).compile(m);},k.prototype.compileSplice=function(z){var y,x,w,v,u,t,s,r,q,p,o,n;p=this.variable.properties.pop().range,w=p.from,s=p.to,x=p.exclusive,t=this.variable.compile(z),o=(w!=null?w.cache(z,aD):void 0)||["0","0"],v=o[0],u=o[1],s?(w!=null?w.isSimpleNumber():void 0)&&s.isSimpleNumber()?(s=+s.compile(z)-+u,x||(s+=1)):(s=s.compile(z)+" - "+u,x||(s+=" + 1")):s="9e9",n=this.value.cache(z,aE),r=n[0],q=n[1],y="[].splice.apply("+t+", ["+v+", "+s+"].concat("+r+")), "+q;return z.level>aA?"("+y+")":y;};return k;}(),bn.Code=aQ=function(){function k(n,m,o){this.params=n||[],this.body=m||new aY,this.bound=o==="boundfunc",this.bound&&(this.context="this");}aV(k,a0),k.prototype.children=["params","body"],k.prototype.isStatement=function(){return !!this.ctor;},k.prototype.jumps=aw,k.prototype.compileNode=function(Z){var Y,X,W,V,U,T,S,R,Q,P,O,N,M,K,J,G,F,E,B,v,s,L,I,H;Z.scope=new am(Z.scope,this.body,this),Z.scope.shared=aB(Z,"sharedScope"),Z.indent+=ai,delete Z.bare,N=[],X=[],s=this.params;for(K=0,F=s.length;K=aG?"("+Y+")":Y;},k.prototype.traverseChildren=function(m,n){if(m){return k.__super__.traverseChildren.call(this,m,n);}};return k;}(),bn.Param=at=function(){function k(n,m,o){this.name=n,this.value=m,this.splat=o;}aV(k,a0),k.prototype.children=["name","value"],k.prototype.compile=function(m){return this.name.compile(m,aE);},k.prototype.asReference=function(n){var m;if(this.reference){return this.reference;}m=this.name,m["this"]?(m=m.properties[0].name,m.value.reserved&&(m=new az("_"+m.value))):m.isComplex()&&(m=new az(n.scope.freeVariable("arg"))),m=new ad(m),this.splat&&(m=new ak(m));return this.reference=m;},k.prototype.isComplex=function(){return this.name.isComplex();};return k;}(),bn.Splat=ak=function(){function k(m){this.name=m.compile?m:new az(m);}aV(k,a0),k.prototype.children=["name"],k.prototype.isAssignable=ab,k.prototype.assigns=function(m){return this.name.assigns(m);},k.prototype.compile=function(m){return this.index!=null?this.compileParam(m):this.name.compile(m);},k.compileSplattedArray=function(v,u,t){var s,r,q,p,o,n,m;o=-1;while((n=u[++o])&&!(n instanceof k)){continue;}if(o>=u.length){return"";}if(u.length===1){q=u[0].compile(v,aE);return t?q:""+a1("slice")+".call("+q+")";}s=u.slice(o);for(p=0,m=s.length;paA||this.returns){p=n.scope.freeVariable("results"),o=""+this.tab+p+" = [];\n",m&&(m=aq.wrap(p,m));}this.guard&&(m=aY.wrap([new aJ(this.guard,m)])),m="\n"+m.compile(n,aA)+"\n"+this.tab;}q=o+this.tab+("while ("+this.condition.compile(n,aC)+") {"+m+"}"),this.returns&&(q+="\n"+this.tab+"return "+p+";");return q;};return k;}(),bn.Op=au=function(){function n(o,s,r,q){var p;if(o==="in"){return new aI(s,r);}if(o==="do"){p=new aW(s,s.params||[]),p["do"]=!0;return p;}if(o==="new"){if(s instanceof aW&&!s["do"]){return s.newInstance();}if(s instanceof aQ&&s.bound||s["do"]){s=new ar(s);}}this.operator=m[o]||o,this.first=s,this.second=r,this.flip=!!q;return this;}var m,k;aV(n,a0),m={"==":"===","!=":"!==",of:"in"},k={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isSimpleNumber=aw,n.prototype.isUnary=function(){return !this.second;},n.prototype.isComplex=function(){var o;return !this.isUnary()||(o=this.operator)!=="+"&&o!=="-"||this.first.isComplex();},n.prototype.isChainable=function(){var o;return(o=this.operator)==="<"||o===">"||o===">="||o==="<="||o==="==="||o==="!==";},n.prototype.invert=function(){var o,s,r,q,p;if(this.isChainable()&&this.first.isChainable()){o=!0,s=this;while(s&&s.operator){o&&(o=s.operator in k),s=s.first;}if(!o){return(new ar(this)).invert();}s=this;while(s&&s.operator){s.invert=!s.invert,s.operator=k[s.operator],s=s.first;}return this;}if(q=k[this.operator]){this.operator=q,this.first.unwrap() instanceof n&&this.first.invert();return this;}return this.second?(new ar(this)).invert():this.operator==="!"&&(r=this.first.unwrap()) instanceof n&&((p=r.operator)==="!"||p==="in"||p==="instanceof")?r:new n("!",this);},n.prototype.unfoldSoak=function(p){var o;return((o=this.operator)==="++"||o==="--"||o==="delete")&&a3(p,this,"first");},n.prototype.compileNode=function(p){var o;if(this.isUnary()){return this.compileUnary(p);}if(this.isChainable()&&this.first.isChainable()){return this.compileChain(p);}if(this.operator==="?"){return this.compileExistence(p);}this.first.front=this.front,o=this.first.compile(p,aD)+" "+this.operator+" "+this.second.compile(p,aD);return p.level<=aD?o:"("+o+")";},n.prototype.compileChain=function(p){var o,s,r,q;q=this.first.second.cache(p),this.first.second=q[0],r=q[1],s=this.first.compile(p,aD),o=""+s+" "+(this.invert?"&&":"||")+" "+r.compile(p)+" "+this.operator+" "+this.second.compile(p,aD);return"("+o+")";},n.prototype.compileExistence=function(p){var o,q;this.first.isComplex()?(q=new az(p.scope.freeVariable("ref")),o=new ar(new a2(q,this.first))):(o=this.first,q=o);return(new aJ(new aO(o),q,{type:"if"})).addElse(this.second).compile(p);},n.prototype.compileUnary=function(p){var o,q;q=[o=this.operator],(o==="new"||o==="typeof"||o==="delete"||(o==="+"||o==="-")&&this.first instanceof n&&this.first.operator===o)&&q.push(" "),o==="new"&&this.first.isStatement(p)&&(this.first=new ar(this.first)),q.push(this.first.compile(p,aD)),this.flip&&q.reverse();return q.join("");},n.prototype.toString=function(o){return n.__super__.toString.call(this,o,this.constructor.name+" "+this.operator);};return n;}(),bn.In=aI=function(){function k(n,m){this.object=n,this.array=m;}aV(k,a0),k.prototype.children=["object","array"],k.prototype.invert=ax,k.prototype.compileNode=function(n){var m,r,q,p,o;if(this.array instanceof ad&&this.array.isArray()){o=this.array.base.objects;for(q=0,p=o.length;q= 0");if(p===q){return m;}m=p+", "+m;return n.level=aF?"("+p+")":p;},k.prototype.unfoldSoak=function(){return this.soak&&this;};return k;}(),aq={wrap:function(m,k){return k.isEmpty()||bo(k.expressions).jumps()?k:k.push(new aW(new ad(new az(m),[new a6(new az("push"))]),[k.pop()]));}},aS={wrap:function(n,m,t){var s,r,q,p,o;if(n.jumps()){return n;}q=new aQ([],aY.wrap([n])),s=[];if((p=n.contains(this.literalArgs))||n.contains(this.literalThis)){o=new az(p?"apply":"call"),s=[new az("this")],p&&s.push(new az("arguments")),q=new ad(q,[new a6(o)]);}q.noReturn=t,r=new aW(q,s);return m?aY.wrap([r]):r;},literalArgs:function(k){return k instanceof az&&k.value==="arguments"&&!k.asKey;},literalThis:function(k){return k instanceof az&&k.value==="this"&&!k.asKey||k instanceof aQ&&k.bound;}},a3=function(m,k,o){var n;if(!!(n=k[o].unfoldSoak(m))){k[o]=n.body,n.body=new ad(k);return n;}},ae={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},aA=1,aC=2,aE=3,aF=4,aD=5,aG=6,ai=" ",aL=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,an=/^[+-]?\d+$/,ay=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,aK=/^['"]/,a1=function(m){var k;k="__"+m,am.root.assign(k,ae[m]);return k;},a7=function(m,k){return m.replace(/\n/g,"$&"+k);};}),f("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(m,k,r){var q,p,o,n;n=m("ace/mode/coffee/helpers"),p=n.extend,o=n.last,k.Scope=q=function(){function s(t,v,u){this.parent=t,this.expressions=v,this.method=u,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(s.root=this);}s.root=null,s.prototype.add=function(u,t,w){var v;return this.shared&&!w?this.parent.add(u,t,w):typeof(v=this.positions[u])=="number"?this.variables[v].type=t:this.positions[u]=this.variables.push({name:u,type:t})-1;},s.prototype.find=function(u,t){if(this.check(u,t)){return !0;}this.add(u,"var");return !1;},s.prototype.parameter=function(t){if(!this.shared||!this.parent.check(t,!0)){return this.add(t,"param");}},s.prototype.check=function(u,t){var w,v;w=!!this.type(u);return w||t?w:(v=this.parent)!=null?!!v.check(u):!!void 0;},s.prototype.temporary=function(u,t){return u.length>1?"_"+u+(t>1?t:""):"_"+(t+parseInt(u,36)).toString(36).replace(/\d/g,"a");},s.prototype.type=function(u){var t,x,w,v;v=this.variables;for(x=0,w=v.length;x=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); +}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b); +},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type;},LA:function(a){var b=a,c;if(a>0){if(a>5){throw new Error("Too much lookahead.");}while(b){c=this.get(),b--;}while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name;},tokenType:function(a){return this._tokenData[a]||-1;},unget:function(){if(this._ltIndexCache.length){this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];}else{throw new Error("Too much lookahead.");}}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e};})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens);}function mix(a,b){for(var c in b){b.hasOwnProperty(c)&&(a[c]=b[c]);}return a;}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a));}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a));}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a);}function isNewLine(a){return a!=null&&nl.test(a);}function isWhitespace(a){return a!=null&&/\s/.test(a);}function isDigit(a){return a!=null&&/\d/.test(a);}function isHexDigit(a){return a!=null&&h.test(a);}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[];}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b;}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution";}}else{/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text); +}}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b;}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null;}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c;}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b;}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling");}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1}; +MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM){this._import(),this._skipCruft();}while(a.peek()==Tokens.NAMESPACE_SYM){this._namespace(),this._skipCruft();}d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset()){switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token());}}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});}else{throw e;}}d=a.peek();}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet");},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}));},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol});},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d});},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;){if(a.peek()==Tokens.PAGE_SYM){this._page();}else{if(!this._ruleset()){break;}}}a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c});},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA)){this._readWhitespace(),b.push(this._media_query());}return b;},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0){return null;}this._readWhitespace();while(a.match(Tokens.IDENT)){a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());}return new MediaQuery(c,b,e,d.startLine,d.startCol);},_media_type:function(){return this._media_feature();},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null);},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token());},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c});},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return !0;}return !1;},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null;},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value;},_font_face:function(){var a=this._tokenStream,b,c; +a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c});},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null;},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b;},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null;},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b;},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group();}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict)){throw d;}this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE){throw d;}return !0;}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c;},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA)){this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1));}}return b.length?b:null;},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null){return null;}b.push(c);do{d=this._combinator();if(d!==null){b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);}else{if(this._readWhitespace()){e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));}else{break;}}}while(!0);return new Selector(b,b[0].line,b[0].col);},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S){break;}while(f1&&a.unget());return null;}b&&(c.text=b+c.text,c.col-=b.length);return c;},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1);}return null;},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol);}return null;},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE){a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";}return b.length?b:null;},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null;},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol);}return null;},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b;},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b;},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION])){b+=a.token().value,b+=this._readWhitespace();}return b.length?b:null;},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f;},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i; +g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null;},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null;},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b;},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN){a.get(),b+=a.token().value,d=a.peek();}}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace();}return b;},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c)){throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);}this._readWhitespace();}return c;},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE){this._keyframe_rule(),this._readWhitespace(),c=a.peek();}this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE);},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token());},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col});},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA)){this._readWhitespace(),d.push(this._key()),this._readWhitespace();}return d;},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE)){return SyntaxUnit.fromToken(a.token());}if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value)){return SyntaxUnit.fromToken(b);}a.unget();}this._unexpectedToken(a.LT(1));},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC])){}},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration()){break;}if(!c.match(Tokens.SEMICOLON)){break;}}this._readWhitespace();}c.mustMatch(Tokens.RBRACE),this._readWhitespace();}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict)){throw e;}this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON){this._readDeclarations(!1,b);}else{if(d!=Tokens.RBRACE){throw e;}}}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S)){b+=a.token().value;}return b;},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol);},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1));},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet();},parseStyleSheet:function(a){return this.parse(a);},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b;},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b;},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b;},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b;}};for(b in c){a[b]=c[b];}return a;}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol); +},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break;}default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);}break;}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d;},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()};},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN){f=Tokens.CHAR,d=a,e.reset();}return this.createToken(f,d,b,c);},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c);},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c);},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c);},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c);},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e==""){return this.createToken(Tokens.CDC,e,b,c);}d.reset();return this.charToken(a,b,c);},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c);},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*"){break;}g=this.readComment(h);if(g==""){break;}}else{if(isWhitespace(h)){e+=h+this.readWhitespace();}else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break;}break;}}h=d.read();}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c);}return this.createToken(f,e,b,c);},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not("){return this.createToken(Tokens.NOT,e,b,c);}d.reset();return this.charToken(a,b,c);},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c);},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\"){break;}if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break;}g=i,i=f.read();}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c);},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c);},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c);},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6){b.read(),c+=d,d=b.peek();}if(a){while(d=="?"&&c.length<6){b.read(),c+=d,d=b.peek();}}return c;},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c)){a.read(),b+=c,c=a.peek();}return b;},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e)){c+=b.read();}else{if(e!="."){break;}if(d){break;}d=!0,c+=b.read();}e=b.peek();}return c;},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\"){break;}if(isNewLine(a.peek())&&e!="\\"){c="";break;}d=e,e=a.peek();}e==null&&(c="");return c;},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e)){b.read(),e=b.peek();}e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e)){b.read(),e=b.peek();}d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c;},readURL:function(){var a=this._reader,b="",c=a.peek(); +while(/^[!#$%&\\*-~]$/.test(c)){b+=a.read(),c=a.peek();}return b;},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;){if(d=="\\"){c+=this.readEscape(b.read()),d=b.peek();}else{if(d&&isNameChar(d)){c+=b.read(),d=b.peek();}else{break;}}}return c;},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e)){do{c+=b.read(),e=b.peek();}while(e&&isHexDigit(e)&&++d<6);}c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e;},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break;}d=b.read();}return c;}return"";}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c);}}}}});}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={};}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b]){!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});}else{if(b=="width"||b=="height"){f[b]=1; +}}}),a.addListener("endrule",function(){var a;if(f.height){for(a in e){e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);}}if(f.width){for(a in d){d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c);}}});}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d){if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b);}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)));}}for(j in f){if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length){for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c); +});}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++;}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c);});}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++;}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c);});}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0};}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1);}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c);});}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c);}});}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c);});}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c));}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c);});}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1}; +a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c);});}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c);}}});}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c));}});}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                          "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                          Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                          "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                          "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                          Implied global: "+n.join(", ")+"

                                                                          ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                          Unused variable: "+n.join(", ")+"

                                                                          ")}b.json&&m.push("

                                                                          JSON: bad.

                                                                          "),m.push("
                                                                          ")}if(!a){m.push("
                                                                          "),b.urls&&o("URLs
                                                                          ",b.urls,"
                                                                          "),b.json&&!f?m.push("

                                                                          JSON: good.

                                                                          "):b.globals?m.push("
                                                                          Global "+b.globals.sort().join(", ")+"
                                                                          "):m.push("
                                                                          No new global variables introduced.
                                                                          ");for(h=0;h
                                                                          "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                          "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                          /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                          "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                          ")}m.push("
                                                                          ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); +}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b); +},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip){p+=A.indent;}!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt();}bm("}",h),p=e;}else{a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);}j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c;}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)"){x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());}return b;}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return !0;}return !1;}function bP(a){var b=p,c,d=G,e=x;if(e.id===";"){be("Unnecessary semicolon.",e),bm(";");}else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c;}}function bO(a){var b=0,c;if(x.id===";"&&!z){for(;;){c=bl(b);if(c.reach){return;}if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break;}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break;}b+=1;}}}function bN(a){var b=bM(a);if(b){return b;}O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value);}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value;}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this;};return c;}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b;}bg("Bad assignment.",b);},20);}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this;};return d;}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b;}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O);}bg("Bad assignment.",b);},20);}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined");}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this;};return c;}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function"){return b(a,this);}this.left=a,this.right=bn(c);return this;};return e;}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this;});}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c;}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c;}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--"){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);}return this;};return c;}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z"){a.identifier=a.reserved=!0;}return a;}function bz(a,b){var c=by(a,b);c.block=!0;return c;}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c;}function bx(a){return bw(a,0);}function bw(a,b){var c=M[a];if(!c||typeof c!="object"){M[a]=c={id:a,lbp:b,value:a};}return c;}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x);}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value);}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from)); +}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b);}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value);}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value);}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud){d=O.fud();}else{if(O.nud){d=O.nud();}else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O;}bg("Expected an identifier and instead saw '{a}'.",O,O.id);}while(b=A.maxerr&&bd("Too many errors.",i,h);return j;}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw {name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."};}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0);}function bb(a,b){var c;for(c in b){ba(b,c)&&(a[c]=b[c]);}}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b);}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$; +(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/;})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]";}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _;}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a){ba(a,c)&&b.push(c);}return b;}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">");}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿";}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9";}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b;});}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4);})+'"':'"'+this+'"';});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g;}function e(){var b,e;if(c>=s.length){return !1;}a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e);}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length){i=0,e()||bh("Unclosed string.",c,b);}h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g);}if(h<" "){if(h==="\n"||h==="\r"){break;}bf("Control character in string: {a}.",c,a+i,d.slice(0,i));}else{if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a);}}}j+=h,a+=1,i+=1;}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f;}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d){return f(e()?"(endline)":"(end)","");}r=s(U);if(!r){r="",h="";while(d&&d<"!"){d=d.substr(1);}d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1));}else{if(h.isAlpha()||h==="_"||h==="$"){return f("(identifier)",r);}if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r);}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0){break;}e()||bh("Unclosed comment.",c,a);}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0){p[d.charAt(n)]=!1,n+=1; +}a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n));}}else{i+=1;}break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" "){n+=1,p+=1;}p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0;}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h);}if(g){switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,o=+h+o*10;}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,l=+h+l*10;}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l);}}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h);}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r);}}}}};}();bC("(number)",function(){return this;}),bC("(string)",function(){return this;}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c){switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b);}}else{if(j["(global)"]){a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);}else{switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0){j[b]=!0;}else{if(c===null){be("'{a}' is not allowed.",O,b),bU(O);}else{if(typeof c!="object"){a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);}else{switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b);}}}}}}}return this;},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value);}},bC("(regexp)",function(){return this;}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a);}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a);}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.");},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b;},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this;}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this;}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a;}b.left=a,b.right=c;return b;},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this;}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130); +return this;},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this;}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this;},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this;}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this;}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this;}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function"){if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O));}}else{a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);}}else{A.supernew||be("Weird construction. Delete 'new'.",this);}bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this;}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b;},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")"){for(;;){d[d.length]=bn(10),c+=1;if(x.id!==","){break;}bv();}}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b;},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a;}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b;},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===","){be("Extra comma."),bm(",");}if(x.id==="]"){break;}a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==","){break;}bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break;}}a&&(p-=A.indent,bt()),bm("]",this);return this;},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}"){break;}a&&bt();if(x.value==="get"&&bl().id!==":"){bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);}else{c=bV();if(typeof c!="string"){break;}bm(":"),br(O,x),bn(10);}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===","){bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);}else{break;}}a&&(p-=A.indent,bt()),bm("}",this);return this;},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O);};}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a){break;}c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==","){break;}bv();}return this;});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens."); +return this;}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this;}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this;}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally"){bm("finally"),bS(!1);}else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this;}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;){switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O);}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O);}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b){switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O);}}else{bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value);}}}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this;}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;});a.labelled=!0,a.exps=!0;}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var"){bm("var"),bY.fud.call(bY,!0);}else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value);}bm();}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}if(x.id!==";"){if(x.id==="var"){bm("var"),bY.fud.call(bY);}else{for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")"){for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this;}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this;}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this;}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this;}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e){if(Array.isArray(e)){for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u){if(typeof u[i]=="number"){a.member=u;break;}}return a;},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                          "+a+" "),b=b.sort();for(d=0;d");}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                          Error:");if(b.errors){for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                          "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                          "));}}if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";}m.push("

                                                                          Implied global: "+n.join(", ")+"

                                                                          ");}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";}m.push("

                                                                          Unused variable: "+n.join(", ")+"

                                                                          ");}b.json&&m.push("

                                                                          JSON: bad.

                                                                          "),m.push("
                                                                          ");}if(!a){m.push("
                                                                          "),b.urls&&o("URLs
                                                                          ",b.urls,"
                                                                          "),b.json&&!f?m.push("

                                                                          JSON: good.

                                                                          "):b.globals?m.push("
                                                                          Global "+b.globals.sort().join(", ")+"
                                                                          "):m.push("
                                                                          No new global variables introduced.
                                                                          ");for(h=0;h
                                                                          "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                          "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);}if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                          /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                          "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                          ");}m.push("
                                                                          ");}}return m.join("");},b$.jshint=b$,b$.edition="2011-04-16";return b$;}();typeof b=="object"&&b&&(b.JSHINT=d);}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null){return null;}if(d.match(/^[\s]*\.end[\s]*$/)){break;}c+="\n"+d;}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f;}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c);}d(a.trim())&&(a="");for(;;){try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f;}catch(g){if(!e.unexpectedEOF){throw g;}var h;do{c&&putstr(c),h=readline();if(!h){throw g;}}while(d(h.trim()));a+="\n"+h;}}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done){throw d.newSyntaxError("Syntax error");}return e;}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue;}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA)){break;}}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal trailing ,");}break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break;}throw a.newSyntaxError("Invalid property name");}if(a.match(COLON)){d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);}else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY){throw a.newSyntaxError("missing : after property");}c.push(f);}}else{if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal property accessor");}c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM));}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY);}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand");}return c;}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0)){return c;}do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA){throw a.newSyntaxError("Yield expression must be parenthesized");}if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA){throw a.newSyntaxError("Generator expression must be parenthesized");}}c.push(d);}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c;}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b); +while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break;}default:a.unget();return d;}d=e;}return d;}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d);}return c;}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD)){d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;}return c;}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS)){d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;}return c;}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH)){d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;}return c;}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF)){d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;}return c;}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE)){d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;}return c;}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND)){d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;}return c;}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR)){d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;}return c;}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR)){d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;}return c;}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND)){d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;}return c;}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR)){d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;}return c;}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON)){throw a.newSyntaxError("missing : after ?");}c.push(AssignExpression(a,b));}return c;}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0)){return ReturnOrYield(a,b);}c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN)){return d;}c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment");}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c;}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}c.push(AssignExpression(a,b));}while(a.match(COMMA));}return c;}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}if(c.type===COMMA&&!c.parenthesized){throw a.newSyntaxError("Generator expression must be parenthesized");}c=GeneratorExpression(a,b,c);}return c;}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e]){throw a.newSyntaxError("Unparenthesized head followed by unbraced body");}}return d;}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier");}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d);}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c;}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)});}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d;}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP){throw a.newSyntaxError("Invalid array comprehension left-hand side");}if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0){throw a.newSyntaxError("More than one switch default");}case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case");}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY){f.statements.push(Statement(a,l));}e.cases.push(f);}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1){throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);}f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f;}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT){f.destructuredNames=checkDestructuring(a,m,f);}e.iterator=f;}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach){throw a.newSyntaxError("Invalid for each..in loop");}e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m);}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e;}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label);}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target){throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));}if(!e.target.isLoop&&j===CONTINUE){throw a.newSyntaxError("Invalid continue");}break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch");}if(a.match(IF)){if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal catch guard");}if(e.catchClauses.length&&!e.catchClauses.top().guard){throw a.newSyntaxError("Guarded catch after unguarded");}f.guard=Expression(a,b);}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f);}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock){throw a.newSyntaxError("Invalid try statement");}return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d)){throw a.newSyntaxError("Duplicate label");}a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e;}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end;}e.blockComments=n,MagicalSemicolon(a);return e;}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE){d.set(a,e);}else{if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f);}}}),this.node=a,this.exports=b,this.exportedModules=d;}function registerExport(a,b){function c(b,c){if(a.has(b)){throw new SyntaxError("multiple exports of "+b);}a.set(b,c);}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0){b+=c;}return b;},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export};}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null; +}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op==="."){continue;}var node=opTokens;for(var i=0;i"9"){throw this.newSyntaxError("Missing exponent");}do{ch=a[this.cursor++];}while(ch>="0"&&ch<="9");this.cursor--;return !0;}return !1;},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor);}else{if(a==="x"||a==="X"){do{a=c[this.cursor++];}while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{if(a>="0"&&a<="7"){do{a=c[this.cursor++];}while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{this.cursor--,this.lexExponent(),b.value=0;}}}},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do{a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);}while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f);},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor);}else{b.type=DOT,b.assignOp=null,b.value=".";}},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor){throw this.newSyntaxError("Unterminated string literal");}while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1);},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\"){this.cursor++;}else{if(ch==="["){do{if(ch===undefined){throw this.newSyntaxError("Unterminated character class");}ch==="\\"&&this.cursor++,ch=input[this.cursor++];}while(ch!=="]");}else{if(ch===undefined){throw this.newSyntaxError("Unterminated regex");}}}}while(ch!=="/");do{ch=input[this.cursor++];}while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor));},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f;},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null){c+=a;}b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c;},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines){return b.type;}}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length){return b.type=END;}b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null){this.lexIdent(d);}else{if(a&&e==="/"){this.lexRegExp(e);}else{if(e in opTokens){this.lexOp(e);}else{if(e==="."){this.lexDot(e);}else{if(e>="1"&&e<="9"){this.lexNumber(e);}else{if(e==="0"){this.lexZeroNumber(e);}else{if(e==='"'||e==="'"){this.lexString(e);}else{if(!this.scanNewlines||e!=="\n"&&e!=="\r"){throw this.newSyntaxError("Illegal token");}e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++;}}}}}}}b.end=this.cursor;return b.type; +},unget:function(){if(++this.lookahead===4){throw"PANIC: too much lookahead!";}this.tokenIndex=this.tokenIndex-1&3;},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b;},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length){return null;}var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16));}catch(d){return null;}this.cursor+=5;}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c;}return null;}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0;}catch(d){}f&&this.cursor++;return f?c:null;}};return{Tokenizer:Tokenizer};}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null;}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={}; +for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i;}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                          "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                          Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                          "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                          "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                          Implied global: "+n.join(", ")+"

                                                                          ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                          Unused variable: "+n.join(", ")+"

                                                                          ")}b.json&&m.push("

                                                                          JSON: bad.

                                                                          "),m.push("
                                                                          ")}if(!a){m.push("
                                                                          "),b.urls&&o("URLs
                                                                          ",b.urls,"
                                                                          "),b.json&&!f?m.push("

                                                                          JSON: good.

                                                                          "):b.globals?m.push("
                                                                          Global "+b.globals.sort().join(", ")+"
                                                                          "):m.push("
                                                                          No new global variables introduced.
                                                                          ");for(h=0;h
                                                                          "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                          "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                          /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                          "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                          ")}m.push("
                                                                          ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push("
                                                                          "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +var Lang = A.Lang, + + BOUNDING_BOX = 'boundingBox', + CONTENT_BOX = 'contentBox', + EMPTY_STR = '', + HEIGHT = 'height', + WIDTH = 'width', + + NAME = 'ace-ditor'; + +var AceEditor = A.Component.create( + { + NAME: NAME, + + EXTENDS: A.Widget, + + ATTRS: { + + height: { + value: 400 + }, + + highlightActiveLine: { + lazyAdd: false, + getter: '_getHighlightActiveLine', + setter: '_setHighlightActiveLine', + value: true + }, + + readOnly: { + lazyAdd: false, + getter: '_getReadOnly', + setter: '_setReadOnly', + value: false + }, + + showPrintMargin: { + lazyAdd: false, + getter: '_getShowPrintMargin', + setter: '_setShowPrintMargin', + value: true + }, + + tabSize: { + lazyAdd: false, + getter: '_getTabSize', + setter: '_setTabSize', + value: 4 + }, + + useSoftTabs: { + lazyAdd: false, + getter: '_getUseSoftTabs', + setter: '_setUseSoftTabs', + value: true + }, + + useWrapMode: { + lazyAdd: false, + getter: '_getUseWrapMode', + setter: '_setUseWrapMode', + value: true + }, + + value: { + lazyAdd: false, + getter: '_getValue', + setter: '_setValue', + value: EMPTY_STR, + }, + + width: { + value: 800 + } + + }, + + UI_ATTRS: [HEIGHT, WIDTH], + + prototype: { + + getEditor: function() { + var instance = this; + + if (!instance.editor) { + var boundingBox = instance.get(BOUNDING_BOX); + + instance.editor = ace.edit(boundingBox.getDOM()); + } + + return instance.editor; + }, + + getSelection: function() { + var instance = this; + + return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange()) + }, + + getSession: function() { + var instance = this; + + return instance.getEditor().getSession(); + }, + + gotoLine: function(line) { + var instance = this; + + instance.getEditor().gotoLine(line); + }, + + insert: function(text) { + var instance = this; + + instance.getEditor().insert(text); + }, + + _getHighlightActiveLine: function() { + var instance = this; + + return instance.getEditor().getHighlightActiveLine(); + }, + + _getReadOnly: function() { + var instance = this; + + return instance.getEditor().getReadOnly(); + }, + + _getShowPrintMargin: function() { + var instance = this; + + return instance.getEditor().getShowPrintMargin(); + }, + + _getTabSize: function() { + var instance = this; + + return instance.getSession().getTabSize(); + }, + + _getUseSoftTabs: function() { + var instance = this; + + return instance.getSession().getUseSoftTabs(); + }, + + _getUseWrapMode: function() { + var instance = this; + + return instance.getSession().getUseWrapMode(); + }, + + _getValue: function() { + var instance = this; + + return instance.getSession().getValue(); + }, + + _setHighlightActiveLine: function(value) { + var instance = this; + + instance.getEditor().setHighlightActiveLine(value); + }, + + _setReadOnly: function(value) { + var instance = this; + + instance.getEditor().setReadOnly(value) + }, + + _setShowPrintMargin: function(value) { + var instance = this; + + instance.getEditor().setShowPrintMargin(value); + }, + + _setTabSize: function(value) { + var instance = this; + + instance.getSession().setTabSize(value); + }, + + _setUseSoftTabs: function(value) { + var instance = this; + + instance.getSession().setUseSoftTabs(value); + }, + + _setUseWrapMode: function(value) { + var instance = this; + + instance.getSession().setUseWrapMode(value); + }, + + _setValue: function(value) { + var instance = this; + + instance.getSession().setValue(value); + }, + + _uiSetHeight: function() { + var instance = this; + + A.AceEditor.superclass._uiSetHeight.apply(instance, arguments); + + instance.getEditor().resize(); + }, + + _uiSetWidth: function() { + var instance = this; + + A.AceEditor.superclass._uiSetWidth.apply(instance, arguments); + + instance.getEditor().resize(); + } + } + } +); + +A.AceEditor = AceEditor; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-component', 'aui-node']}); +AUI.add('aui-ace-editor-mode-xml', function(A) { +define("ace/mode/xml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/xml_highlight_rules").XmlHighlightRules,h=a("ace/mode/behaviour/xml").XmlBehaviour,i=function(){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(i.prototype),b.Mode=i}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-php', function(A) { +define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/php_highlight_rules").PhpHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),b=e.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),c=e.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),d=e.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),g=e.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),h=e.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),i=e.arrayToMap("cfunction|old_function".split("|")),j=e.arrayToMap([]);this.$rules={start:[{token:"support",regex:"<\\?(?:php|\\=)"},{token:"support",regex:"\\?>"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(e){if(i.hasOwnProperty(e))return"invalid.deprecated";if(b.hasOwnProperty(e))return"keyword";if(c.hasOwnProperty(e))return"keyword";if(d.hasOwnProperty(e))return"constant.language";if(g.hasOwnProperty(e))return"variable.language";if(j.hasOwnProperty(e))return"invalid.illegal";if(h.hasOwnProperty(e))return"invalid.deprecated";if(a.hasOwnProperty(e))return"support.function";if(e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|self|parent)$/))return"variable";return"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.PhpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-solarized_dark', function(A) { +define("ace/theme/solarized_dark",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-solarized-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-dark .ace_scroller {\n background-color: #002B36;\n}\n\n.ace-solarized-dark .ace_text-layer {\n cursor: text;\n color: #93A1A1;\n}\n\n.ace-solarized-dark .ace_cursor {\n border-left: 2px solid #D30102;\n}\n\n.ace-solarized-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #D30102;\n}\n \n.ace-solarized-dark .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_active_line {\n background: #073642;\n}\n\n \n.ace-solarized-dark .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-dark .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-dark .ace_constant {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-dark .ace_constant.ace_library {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-dark .ace_invalid {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-dark .ace_support {\n \n}\n\n.ace-solarized-dark .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-dark .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-dark .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-dark .ace_comment {\n font-style:italic;\ncolor:#657B83;\n}\n\n.ace-solarized-dark .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-dark .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_variable {\n \n}\n\n.ace-solarized-dark .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_xml_pe {\n \n}\n\n.ace-solarized-dark .ace_meta {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-dark .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-solarized-dark"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-ocaml', function(A) { +define("ace/mode/ocaml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/ocaml_highlight_rules").OcamlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e);var k=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(\*(.*)\*\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var j=new i(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),j.start.row=e,j.end.row=e,j.end.column=f.length,b.replace(j,g?f.match(h)[1]:"(*"+f+"*)")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;(!e.length||e[e.length-1].type!=="comment")&&a==="start"&&k.test(b)&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}).call(j.prototype),b.Mode=j}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),d="(?:(?:[1-9]\\d*)|(?:0))",f="(?:0[oO]?[0-7]+)",g="(?:0[xX][\\dA-Fa-f]+)",h="(?:0[bB][01]+)",i="(?:"+d+"|"+f+"|"+g+"|"+h+")",j="(?:[eE][+-]?\\d+)",k="(?:\\.\\d+)",l="(?:\\d+)",m="(?:(?:"+l+"?"+k+")|(?:"+l+"\\.))",n="(?:(?:"+m+"|"+l+")"+j+")",o="(?:"+n+"|"+m+")";this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+o+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:o},{token:"constant.numeric",regex:i+"\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.OcamlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-idle_fingers', function(A) { +define("ace/theme/idle_fingers",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-idle-fingers .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-idle-fingers .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-idle-fingers .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-idle-fingers .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-idle-fingers .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-idle-fingers .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-idle-fingers .ace_scroller {\n background-color: #323232;\n}\n\n.ace-idle-fingers .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-idle-fingers .ace_cursor {\n border-left: 2px solid #91FF00;\n}\n\n.ace-idle-fingers .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #91FF00;\n}\n \n.ace-idle-fingers .ace_marker-layer .ace_selection {\n background: rgba(90, 100, 126, 0.88);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #404040;\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_active_line {\n background: #353637;\n}\n\n \n.ace-idle-fingers .ace_invisible {\n color: #404040;\n}\n\n.ace-idle-fingers .ace_keyword {\n color:#CC7833;\n}\n\n.ace-idle-fingers .ace_keyword.ace_operator {\n \n}\n\n.ace-idle-fingers .ace_constant {\n color:#6C99BB;\n}\n\n.ace-idle-fingers .ace_constant.ace_language {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_library {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_numeric {\n \n}\n\n.ace-idle-fingers .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FF0000;\n}\n\n.ace-idle-fingers .ace_invalid.ace_illegal {\n \n}\n\n.ace-idle-fingers .ace_invalid.ace_deprecated {\n \n}\n\n.ace-idle-fingers .ace_support {\n \n}\n\n.ace-idle-fingers .ace_support.ace_function {\n color:#B83426;\n}\n\n.ace-idle-fingers .ace_function.ace_buildin {\n \n}\n\n.ace-idle-fingers .ace_string {\n color:#A5C261;\n}\n\n.ace-idle-fingers .ace_string.ace_regexp {\n color:#CCCC33;\n}\n\n.ace-idle-fingers .ace_comment {\n font-style:italic;\ncolor:#BC9458;\n}\n\n.ace-idle-fingers .ace_comment.ace_doc {\n \n}\n\n.ace-idle-fingers .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-idle-fingers .ace_variable {\n \n}\n\n.ace-idle-fingers .ace_variable.ace_language {\n \n}\n\n.ace-idle-fingers .ace_xml_pe {\n \n}\n\n.ace-idle-fingers .ace_meta {\n \n}\n\n.ace-idle-fingers .ace_meta.ace_tag {\n color:#FFE5BB;\n}\n\n.ace-idle-fingers .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-idle-fingers .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-idle-fingers .ace_collab.ace_user1 {\n color:#323232;\nbackground-color:#FFF980; \n}";d.importCssString(e),b.cssClass="ace-idle-fingers"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-html', function(A) { +define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/mode/css").Mode,h=a("ace/tokenizer").Tokenizer,i=a("ace/mode/html_highlight_rules").HtmlHighlightRules,j=a("ace/mode/behaviour/xml").XmlBehaviour,k=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g})};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(k.prototype),b.Mode=k}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,b=/^(\s*)#/,c=/^\s*###(?!#)/,d=/^\s*/;this.getNextLineIndent=function(b,c,d){var e=this.$getIndent(c),f=this.$tokenizer.getLineTokens(c,b).tokens;(!f.length||f[f.length-1].type!=="comment")&&b==="start"&&a.test(c)&&(e+=d);return e},this.toggleCommentLines=function(a,e,f,h){console.log("toggle");var i=new g(0,0,0,0);for(var j=f;j<=h;++j){var k=e.getLine(j);if(c.test(k))continue;b.test(k)?k=k.replace(b,"$1"):k=k.replace(d,"$&#"),i.end.row=i.start.row=j,i.end.column=k.length+1,e.replace(i,k)}},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("error",function(b){a.setAnnotations([b.data])}),c.on("ok",function(b){a.clearAnnotations()})}}.call(k.prototype),b.Mode=k}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){function d(){var a="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",b="(?![$\\w]|\\s*:)",c={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+a},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+b},{token:"constant.language",regex:"(?:true|false|null|undefined)"+b},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+b},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+b},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+b},{token:"identifier",regex:a},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},c],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},c],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},c],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},c],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},c],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}}a("pilot/oop").inherits(d,a("ace/mode/text_highlight_rules").TextHighlightRules),b.CoffeeHighlightRules=d}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;j=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-keybinding-emacs', function(A) { +define("ace/keyboard/keybinding/emacs",["require","exports","module","ace/keyboard/state_handler"],function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"ctrl-x",then:"c-x"},{regex:["(?:command-([0-9]*))*","(down|ctrl-n)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(right|ctrl-f)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(up|ctrl-p)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(left|ctrl-b)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"This binding matches all printable characters except numbers as long as they are no numbers and print them n times.",regex:["(?:command-([0-9]*))","([^0-9]+)*"],match:e,exec:"inserttext",params:[{name:"times",match:1,type:"number",defaultValue:"1"},{name:"text",match:2}]},{comment:"This binding matches numbers as long as there is no meta_number in the buffer.",regex:["(command-[0-9]*)*","([0-9]+)"],match:e,disallowMatches:[1],exec:"inserttext",params:[{name:"text",match:2,type:"text"}]},{regex:["command-([0-9]*)","(command-[0-9]|[0-9])"],comment:"Stops execution if the regex /meta_[0-9]+/ matches to avoid resetting the buffer."}],"c-x":[{key:"ctrl-g",then:"start"},{key:"ctrl-s",exec:"save",then:"start"}]};b.Emacs=new d(f)}),define("ace/keyboard/state_handler",["require","exports","module"],function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen",regex:"[\\[\\(\\{]"},{token:"rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PythonHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-dawn', function(A) { +define("ace/theme/dawn",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-dawn .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-dawn .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-dawn .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-dawn .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-dawn .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-dawn .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-dawn .ace_scroller {\n background-color: #F9F9F9;\n}\n\n.ace-dawn .ace_text-layer {\n cursor: text;\n color: #080808;\n}\n\n.ace-dawn .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-dawn .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-dawn .ace_marker-layer .ace_selection {\n background: rgba(39, 95, 255, 0.30);\n}\n\n.ace-dawn .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-dawn .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_marker-layer .ace_active_line {\n background: rgba(36, 99, 180, 0.12);\n}\n\n \n.ace-dawn .ace_invisible {\n color: rgba(75, 75, 126, 0.50);\n}\n\n.ace-dawn .ace_keyword {\n color:#794938;\n}\n\n.ace-dawn .ace_keyword.ace_operator {\n \n}\n\n.ace-dawn .ace_constant {\n color:#811F24;\n}\n\n.ace-dawn .ace_constant.ace_language {\n \n}\n\n.ace-dawn .ace_constant.ace_library {\n \n}\n\n.ace-dawn .ace_constant.ace_numeric {\n \n}\n\n.ace-dawn .ace_invalid {\n \n}\n\n.ace-dawn .ace_invalid.ace_illegal {\n text-decoration:underline;\nfont-style:italic;\ncolor:#F8F8F8;\nbackground-color:#B52A1D;\n}\n\n.ace-dawn .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#B52A1D;\n}\n\n.ace-dawn .ace_support {\n color:#691C97;\n}\n\n.ace-dawn .ace_support.ace_function {\n color:#693A17;\n}\n\n.ace-dawn .ace_function.ace_buildin {\n \n}\n\n.ace-dawn .ace_string {\n color:#0B6125;\n}\n\n.ace-dawn .ace_string.ace_regexp {\n color:#CF5628;\n}\n\n.ace-dawn .ace_comment {\n font-style:italic;\ncolor:#5A525F;\n}\n\n.ace-dawn .ace_comment.ace_doc {\n \n}\n\n.ace-dawn .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-dawn .ace_variable {\n color:#234A97;\n}\n\n.ace-dawn .ace_variable.ace_language {\n \n}\n\n.ace-dawn .ace_xml_pe {\n \n}\n\n.ace-dawn .ace_meta {\n \n}\n\n.ace-dawn .ace_meta.ace_tag {\n \n}\n\n.ace-dawn .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-dawn .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-dawn .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-dawn"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-vibrant_ink', function(A) { +define("ace/theme/vibrant_ink",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-vibrant-ink .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-vibrant-ink .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-vibrant-ink .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-vibrant-ink .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-vibrant-ink .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-vibrant-ink .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-vibrant-ink .ace_scroller {\n background-color: #0F0F0F;\n}\n\n.ace-vibrant-ink .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-vibrant-ink .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-vibrant-ink .ace_marker-layer .ace_selection {\n background: #6699CC;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #99CC99;\n}\n\n.ace-vibrant-ink .ace_marker-layer .ace_active_line {\n background: #333333;\n}\n\n \n.ace-vibrant-ink .ace_invisible {\n color: #404040;\n}\n\n.ace-vibrant-ink .ace_keyword {\n color:#FF6600;\n}\n\n.ace-vibrant-ink .ace_keyword.ace_operator {\n \n}\n\n.ace-vibrant-ink .ace_constant {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_language {\n color:#339999;\n}\n\n.ace-vibrant-ink .ace_constant.ace_library {\n \n}\n\n.ace-vibrant-ink .ace_constant.ace_numeric {\n color:#99CC99;\n}\n\n.ace-vibrant-ink .ace_invalid {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_invalid.ace_illegal {\n \n}\n\n.ace-vibrant-ink .ace_invalid.ace_deprecated {\n color:#CCFF33;\n background-color:#000000;\n}\n\n.ace-vibrant-ink .ace_support {\n \n}\n\n.ace-vibrant-ink .ace_support.ace_function {\n color:#FFCC00;\n}\n\n.ace-vibrant-ink .ace_function.ace_buildin {\n \n}\n\n.ace-vibrant-ink .ace_string {\n color:#66FF00;\n}\n\n.ace-vibrant-ink .ace_string.ace_regexp {\n color:#44B4CC;\n}\n\n.ace-vibrant-ink .ace_comment {\n color:#9933CC;\n}\n\n.ace-vibrant-ink .ace_comment.ace_doc {\n \n}\n\n.ace-vibrant-ink .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_variable {\n \n}\n\n.ace-vibrant-ink .ace_variable.ace_language {\n \n}\n\n.ace-vibrant-ink .ace_xml_pe {\n \n}\n\n.ace-vibrant-ink .ace_meta {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag {\n \n}\n\n.ace-vibrant-ink .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\n font-style:italic;\ncolor:#99CC99;\n}\n\n\n.ace-vibrant-ink .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-vibrant-ink"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-java', function(A) { +define("ace/mode/java",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/java_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/java_highlight_rules").JavaHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/java_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.JavaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-svg', function(A) { +define("ace/mode/svg",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/tokenizer","ace/mode/svg_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/tokenizer").Tokenizer,h=a("ace/mode/svg_highlight_rules").SvgHighlightRules,i=a("ace/mode/behaviour/xml").XmlBehaviour,j=function(){this.highlighter=new h,this.$tokenizer=new g(this.highlighter.getRules()),this.$behaviour=new i,this.$embeds=this.highlighter.getEmbeds(),this.createModeDelegates({"js-":f})};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/svg_highlight_rules",["require","exports","module","pilot/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,f=a("ace/mode/xml_highlight_rules").XmlHighlightRules,g=function(){f.call(this),this.$rules.start.splice(3,0,{token:"text",regex:"<(?=s*script)",next:"script"}),this.$rules.script=[{token:"text",regex:">",next:"js-start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],this.embedRules(e,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}])};d.inherits(g,f),b.SvgHighlightRules=g}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(f,e),b.XmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="f.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-textile', function(A) { +define("ace/mode/textile",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/textile_highlight_rules").TextileHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){return a=="intag"?c:""},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/textile_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"keyword",regex:"h1|h2|h3|h4|h5|h6|bq|p|bc|pre",next:"blocktag"},{token:"keyword",regex:"[\\*]+|[#]+"},{token:"text",regex:".+"}],blocktag:[{token:"keyword",regex:"\\. ",next:"start"},{token:"keyword",regex:"\\(",next:"blocktagproperties"}],blocktagproperties:[{token:"keyword",regex:"\\)",next:"blocktag"},{token:"string",regex:"[a-zA-Z0-9\\-_]+"},{token:"keyword",regex:"#"}]}};d.inherits(f,e),b.TextileHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-perl', function(A) { +define("ace/mode/perl",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/perl_highlight_rules").PerlHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/perl_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),b=e.arrayToMap("ARGV|ENV|INC|SIG".split("|")),c=e.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PerlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-scad', function(A) { +define("ace/mode/scad",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scad_highlight_rules").scadHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/scad_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("module|if|else|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.scadHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-kr_theme', function(A) { +define("ace/theme/kr_theme",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-kr-theme .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-kr-theme .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-kr-theme .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-kr-theme .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-kr-theme .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-kr-theme .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-kr-theme .ace_scroller {\n background-color: #0B0A09;\n}\n\n.ace-kr-theme .ace_text-layer {\n cursor: text;\n color: #FCFFE0;\n}\n\n.ace-kr-theme .ace_cursor {\n border-left: 2px solid #FF9900;\n}\n\n.ace-kr-theme .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FF9900;\n}\n \n.ace-kr-theme .ace_marker-layer .ace_selection {\n background: rgba(170, 0, 255, 0.45);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_active_line {\n background: #38403D;\n}\n\n \n.ace-kr-theme .ace_invisible {\n color: rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_keyword {\n color:#949C8B;\n}\n\n.ace-kr-theme .ace_keyword.ace_operator {\n \n}\n\n.ace-kr-theme .ace_constant {\n color:rgba(210, 117, 24, 0.76);\n}\n\n.ace-kr-theme .ace_constant.ace_language {\n \n}\n\n.ace-kr-theme .ace_constant.ace_library {\n \n}\n\n.ace-kr-theme .ace_constant.ace_numeric {\n \n}\n\n.ace-kr-theme .ace_invalid {\n color:#F8F8F8;\nbackground-color:#A41300;\n}\n\n.ace-kr-theme .ace_invalid.ace_illegal {\n \n}\n\n.ace-kr-theme .ace_invalid.ace_deprecated {\n \n}\n\n.ace-kr-theme .ace_support {\n color:#9FC28A;\n}\n\n.ace-kr-theme .ace_support.ace_function {\n color:#85873A;\n}\n\n.ace-kr-theme .ace_function.ace_buildin {\n \n}\n\n.ace-kr-theme .ace_string {\n \n}\n\n.ace-kr-theme .ace_string.ace_regexp {\n color:rgba(125, 255, 192, 0.65);\n}\n\n.ace-kr-theme .ace_comment {\n font-style:italic;\ncolor:#706D5B;\n}\n\n.ace-kr-theme .ace_comment.ace_doc {\n \n}\n\n.ace-kr-theme .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-kr-theme .ace_variable {\n color:#D1A796;\n}\n\n.ace-kr-theme .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-kr-theme .ace_xml_pe {\n \n}\n\n.ace-kr-theme .ace_meta {\n \n}\n\n.ace-kr-theme .ace_meta.ace_tag {\n color:#BABD9C;\n}\n\n.ace-kr-theme .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-kr-theme .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-kr-theme .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-kr-theme"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-c_cpp', function(A) { +define("ace/mode/c_cpp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/c_cpp_highlight_rules").c_cppHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.c_cppHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-cockpit', function(A) { +define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c)}}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags)}function q(a){this.env=a,this.commandAssignment=new o(p,this)}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue)}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number")this.start=c,this.end=d,this.predictions=e;else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p)},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0)return d}return c.status-a.status}),b!==undefined&&a.forEach(function(a){delete a.distance},this);return a},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter)throw new Error("Can't merge Arguments from different EventEmitters");return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix)},setText:function(a){if(a==null)throw new Error("Illegal text for Argument: "+a);var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b)},toString:function(){return this.prefix+this.text+this.suffix}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f)},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0])},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a)},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a)},toString:function(){return this.arg?this.arg.toString():""}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]")},this),c.push("
                                                                          "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                          "),a.params&&a.params.length>0&&(c.push("
                                                                            "),a.params.forEach(function(a){c.push("
                                                                          • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                          • ")},this),c.push("
                                                                          "));return new l(i.VALID,c.join(""),b)}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this)},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}))},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b]},getParameterNames:function(){return Object.keys(this._assignments)},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a]},this)},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint())},this),l.sort(this._hints)},getWorstHint:function(){return this._hints[0]},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value},this);return a},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a))},this);return b},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined)},this)},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString())},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)))},this);return a.join("")}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints()},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++)b.status>a[c]&&(a[c]=b.status)},this);return a},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString()},this).join("")};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID)},this),l.sort(this._hints)},r.prototype.getHints=function(){return this._hints},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""))}else if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o))}break}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j=""}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}}h++}return k},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value)break;if(this.commandAssignment.value.exec){for(var d=0;d=a.length)break;continue}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g))}}}}(),b.CliRequisition=r}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i)},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i)}}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update())}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup")}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px"}.bind(this);this.outputHeight.addEventListener("change",b),b()}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this)}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup")}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this)},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px")},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN)d=!0;else if(b!=0||c!=0)d=h.execKeyCommand(this.env,"cli",b,c);d&&e.stopEvent(a)},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end))}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString());var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d)}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e)}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | "},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break}d!==a[c]&&(b+="")}return b},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e}}},b.CliView=n}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this))}function k(b){var d;try{d=a("text!cockpit/ui/"+b)}catch(e){}if(d)return d;var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b}return f+b}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec()},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a)},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1e3+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b)},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block"}},b.RequestView=l}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[]}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined)b={};this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return}if(a.hasAttribute("if")&&!this.processIf(a,b))return;b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a))},this),a.parentNode.removeChild(a))},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a}return a.slice(2,-1)},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments)}:d}if(!d){this.handleError("Can't find path="+a);return null}return this.property(a.slice(1),d,c)}finally{this.scope.pop()}},Templater.prototype.envEval=function(script,env,context){with(env)try{this.scope.push(context);return eval(script)}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script}finally{this.scope.pop()}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b)},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a)},exports.Templater=Templater}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                          "+d.responseText+"
                                                                          ")},d.send(null)}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e)},b.shutdown=function(a,b){d.removeCommand(e)}}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                          >
                                                                          ${request.typed}
                                                                          Hide command output Show command output Remove this command from the history
                                                                          '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA==") + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-clouds', function(A) { +define("ace/theme/clouds",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-scss', function(A) { +define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scss_highlight_rules").ScssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(i.prototype),b.Mode=i}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function i(a){var b=[],c=a.split("");for(var d=0;d|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ScssHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-worker-coffee', function(A) { +function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c hint.end) { + hint.distance = cursor - hint.end; + } + else { + hint.distance = 0; + } + }, this); + } + // Sort + hints.sort(function(hint1, hint2) { + // Compare first based on distance from cursor + if (cursor !== undefined) { + var diff = hint1.distance - hint2.distance; + if (diff != 0) { + return diff; + } + } + // otherwise go with hint severity + return hint2.status - hint1.status; + }); + // tidy-up + if (cursor !== undefined) { + hints.forEach(function(hint) { + delete hint.distance; + }, this); + } + return hints; +}; +exports.Hint = Hint; + +/** + * A Hint that arose as a result of a Conversion + */ +function ConversionHint(conversion, arg) { + this.status = conversion.status; + this.message = conversion.message; + if (arg) { + this.start = arg.start; + this.end = arg.end; + } + else { + this.start = 0; + this.end = 0; + } + this.predictions = conversion.predictions; +}; +oop.inherits(ConversionHint, Hint); + + +/** + * We record where in the input string an argument comes so we can report errors + * against those string positions. + * We publish a 'change' event when-ever the text changes + * @param emitter Arguments use something else to pass on change events. + * Currently this will be the creating Requisition. This prevents dependency + * loops and prevents us from needing to merge listener lists. + * @param text The string (trimmed) that contains the argument + * @param start The position of the text in the original input string + * @param end See start + * @param prefix Knowledge of quotation marks and whitespace used prior to the + * text in the input string allows us to re-generate the original input from + * the arguments. + * @param suffix Any quotation marks and whitespace used after the text. + * Whitespace is normally placed in the prefix to the succeeding argument, but + * can be used here when this is the last argument. + * @constructor + */ +function Argument(emitter, text, start, end, prefix, suffix) { + this.emitter = emitter; + this.setText(text); + this.start = start; + this.end = end; + this.prefix = prefix; + this.suffix = suffix; +} +Argument.prototype = { + /** + * Return the result of merging these arguments. + * TODO: What happens when we're merging arguments for the single string + * case and some of the arguments are in quotation marks? + */ + merge: function(following) { + if (following.emitter != this.emitter) { + throw new Error('Can\'t merge Arguments from different EventEmitters'); + } + return new Argument( + this.emitter, + this.text + this.suffix + following.prefix + following.text, + this.start, following.end, + this.prefix, + following.suffix); + }, + + /** + * See notes on events in Assignment. We might need to hook changes here + * into a CliRequisition so they appear of the command line. + */ + setText: function(text) { + if (text == null) { + throw new Error('Illegal text for Argument: ' + text); + } + var ev = { argument: this, oldText: this.text, text: text }; + this.text = text; + this.emitter._dispatchEvent('argumentChange', ev); + }, + + /** + * Helper when we're putting arguments back together + */ + toString: function() { + // TODO: There is a bug here - we should re-escape escaped characters + // But can we do that reliably? + return this.prefix + this.text + this.suffix; + } +}; + +/** + * Merge an array of arguments into a single argument. + * All Arguments in the array are expected to have the same emitter + */ +Argument.merge = function(argArray, start, end) { + start = (start === undefined) ? 0 : start; + end = (end === undefined) ? argArray.length : end; + + var joined; + for (var i = start; i < end; i++) { + var arg = argArray[i]; + if (!joined) { + joined = arg; + } + else { + joined = joined.merge(arg); + } + } + return joined; +}; + +/** + * We sometimes need a way to say 'this error occurs where ever the cursor is' + */ +Argument.AT_CURSOR = -1; + + +/** + * A link between a parameter and the data for that parameter. + * The data for the parameter is available as in the preferred type and as + * an Argument for the CLI. + *

                                                                          We also record validity information where applicable. + *

                                                                          For values, null and undefined have distinct definitions. null means + * that a value has been provided, undefined means that it has not. + * Thus, null is a valid default value, and common because it identifies an + * parameter that is optional. undefined means there is no value from + * the command line. + * @constructor + */ +function Assignment(param, requisition) { + this.param = param; + this.requisition = requisition; + this.setValue(param.defaultValue); +}; +Assignment.prototype = { + /** + * The parameter that we are assigning to + * @readonly + */ + param: undefined, + + /** + * Report on the status of the last parse() conversion. + * @see types.Conversion + */ + conversion: undefined, + + /** + * The current value in a type as specified by param.type + */ + value: undefined, + + /** + * The string version of the current value + */ + arg: undefined, + + /** + * The current value (i.e. not the string representation) + * Use setValue() to mutate + */ + value: undefined, + setValue: function(value) { + if (this.value === value) { + return; + } + + if (value === undefined) { + this.value = this.param.defaultValue; + this.conversion = this.param.getDefault ? + this.param.getDefault() : + this.param.type.getDefault(); + this.arg = undefined; + } else { + this.value = value; + this.conversion = undefined; + var text = (value == null) ? '' : this.param.type.stringify(value); + if (this.arg) { + this.arg.setText(text); + } + } + + this.requisition._assignmentChanged(this); + }, + + /** + * The textual representation of the current value + * Use setValue() to mutate + */ + arg: undefined, + setArgument: function(arg) { + if (this.arg === arg) { + return; + } + this.arg = arg; + this.conversion = this.param.type.parse(arg.text); + this.conversion.arg = arg; // TODO: make this automatic? + this.value = this.conversion.value; + this.requisition._assignmentChanged(this); + }, + + /** + * Create a list of the hints associated with this parameter assignment. + * Generally there will be only one hint generated because we're currently + * only displaying one hint at a time, ordering by distance from cursor + * and severity. Since distance from cursor will be the same for all hints + * from this assignment all but the most severe will ever be used. It might + * make sense with more experience to alter this to function to be getHint() + */ + getHint: function() { + // Allow the parameter to provide documentation + if (this.param.getCustomHint && this.value && this.arg) { + var hint = this.param.getCustomHint(this.value, this.arg); + if (hint) { + return hint; + } + } + + // If there is no argument, use the cursor position + var message = '' + this.param.name + ': '; + if (this.param.description) { + // TODO: This should be a short description - do we need to trim? + message += this.param.description.trim(); + + // Ensure the help text ends with '. ' + if (message.charAt(message.length - 1) !== '.') { + message += '.'; + } + if (message.charAt(message.length - 1) !== ' ') { + message += ' '; + } + } + var status = Status.VALID; + var start = this.arg ? this.arg.start : Argument.AT_CURSOR; + var end = this.arg ? this.arg.end : Argument.AT_CURSOR; + var predictions; + + // Non-valid conversions will have useful information to pass on + if (this.conversion) { + status = this.conversion.status; + if (this.conversion.message) { + message += this.conversion.message; + } + predictions = this.conversion.predictions; + } + + // Hint if the param is required, but not provided + var argProvided = this.arg && this.arg.text !== ''; + var dataProvided = this.value !== undefined || argProvided; + if (this.param.defaultValue === undefined && !dataProvided) { + status = Status.INVALID; + message += 'Required<\strong>'; + } + + return new Hint(status, message, start, end, predictions); + }, + + /** + * Basically setValue(conversion.predictions[0]) done in a safe + * way. + */ + complete: function() { + if (this.conversion && this.conversion.predictions && + this.conversion.predictions.length > 0) { + this.setValue(this.conversion.predictions[0]); + } + }, + + /** + * If the cursor is at 'position', do we have sufficient data to start + * displaying the next hint. This is both complex and important. + * For example, if the user has just typed:

                                                                            + *
                                                                          • 'set tabstop ' then they clearly want to know about the valid + * values for the tabstop setting, so the hint is based on the next + * parameter. + *
                                                                          • 'set tabstop' (without trailing space) - they will probably still + * want to know about the valid values for the tabstop setting because + * there is no confusion about the setting in question. + *
                                                                          • 'set tabsto' they've not finished typing a setting name so the hint + * should be based on the current parameter. + *
                                                                          • 'set tabstop' (when there is an additional tabstopstyle setting) we + * can't make assumptions about the setting - we're not finished. + *
                                                                          + *

                                                                          Note that the input for 2 and 4 is identical, only the configuration + * has changed, so hint display is environmental. + * + *

                                                                          This function works out if the cursor is before the end of this + * assignment (assuming that we've asked the same thing of the previous + * assignment) and then attempts to work out if we should use the hint from + * the next assignment even though technically the cursor is still inside + * this one due to the rules above. + */ + isPositionCaptured: function(position) { + if (!this.arg) { + return false; + } + + // Note we don't check if position >= this.arg.start because that's + // implied by the fact that we're asking the assignments in turn, and + // we want to avoid thing falling between the cracks, but we do need + // to check that the argument does have a position + if (this.arg.start === -1) { + return false; + } + + // We're clearly done if the position is past the end of the text + if (position > this.arg.end) { + return false; + } + + // If we're AT the end, the position is captured if either the status + // is not valid or if there are other valid options including current + if (position === this.arg.end) { + return this.conversion.status !== Status.VALID || + this.conversion.predictions.length !== 0; + } + + // Otherwise we're clearly inside + return true; + }, + + /** + * Replace the current value with the lower value if such a concept + * exists. + */ + decrement: function() { + var replacement = this.param.type.decrement(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Replace the current value with the higher value if such a concept + * exists. + */ + increment: function() { + var replacement = this.param.type.increment(this.value); + if (replacement != null) { + this.setValue(replacement); + } + }, + + /** + * Helper when we're rebuilding command lines. + */ + toString: function() { + return this.arg ? this.arg.toString() : ''; + } +}; +exports.Assignment = Assignment; + + +/** + * This is a special parameter to reflect the command itself. + */ +var commandParam = { + name: '__command', + type: 'command', + description: 'The command to execute', + + /** + * Provide some documentation for a command. + */ + getCustomHint: function(command, arg) { + var docs = []; + docs.push(' > '); + docs.push(command.name); + if (command.params && command.params.length > 0) { + command.params.forEach(function(param) { + if (param.defaultValue === undefined) { + docs.push(' [' + param.name + ']'); + } + else { + docs.push(' [' + param.name + ']'); + } + }, this); + } + docs.push('
                                                                          '); + + docs.push(command.description ? command.description : '(No description)'); + docs.push('
                                                                          '); + + if (command.params && command.params.length > 0) { + docs.push('

                                                                            '); + command.params.forEach(function(param) { + docs.push('
                                                                          • '); + docs.push('' + param.name + ': '); + docs.push(param.description ? param.description : '(No description)'); + if (param.defaultValue === undefined) { + docs.push(' [Required]'); + } + else if (param.defaultValue === null) { + docs.push(' [Optional]'); + } + else { + docs.push(' [Default: ' + param.defaultValue + ']'); + } + docs.push('
                                                                          • '); + }, this); + docs.push('
                                                                          '); + } + + return new Hint(Status.VALID, docs.join(''), arg); + } +}; + +/** + * A Requisition collects the information needed to execute a command. + * There is no point in a requisition for parameter-less commands because there + * is no information to collect. A Requisition is a collection of assignments + * of values to parameters, each handled by an instance of Assignment. + * CliRequisition adds functions for parsing input from a command line to this + * class. + *

                                                                          Events

                                                                          + * We publish the following events:
                                                                            + *
                                                                          • argumentChange: The text of some argument has changed. It is likely that + * any UI component displaying this argument will need to be updated. (Note that + * this event is actually published by the Argument itself - see the docs for + * Argument for more details) + * The event object looks like: { argument: A, oldText: B, text: B } + *
                                                                          • commandChange: The command has changed. It is likely that a UI + * structure will need updating to match the parameters of the new command. + * The event object looks like { command: A } + * @constructor + */ +function Requisition(env) { + this.env = env; + this.commandAssignment = new Assignment(commandParam, this); +} + +Requisition.prototype = { + /** + * The command that we are about to execute. + * @see setCommandConversion() + * @readonly + */ + commandAssignment: undefined, + + /** + * The count of assignments. Excludes the commandAssignment + * @readonly + */ + assignmentCount: undefined, + + /** + * The object that stores of Assignment objects that we are filling out. + * The Assignment objects are stored under their param.name for named + * lookup. Note: We make use of the property of Javascript objects that + * they are not just hashmaps, but linked-list hashmaps which iterate in + * insertion order. + * Excludes the commandAssignment. + */ + _assignments: undefined, + + /** + * The store of hints generated by the assignments. We are trying to prevent + * the UI from needing to access this in broad form, but instead use + * methods that query part of this structure. + */ + _hints: undefined, + + /** + * When the command changes, we need to keep a bunch of stuff in sync + */ + _assignmentChanged: function(assignment) { + // This is all about re-creating Assignments + if (assignment.param.name !== '__command') { + return; + } + + this._assignments = {}; + + if (assignment.value) { + assignment.value.params.forEach(function(param) { + this._assignments[param.name] = new Assignment(param, this); + }, this); + } + + this.assignmentCount = Object.keys(this._assignments).length; + this._dispatchEvent('commandChange', { command: assignment.value }); + }, + + /** + * Assignments have an order, so we need to store them in an array. + * But we also need named access ... + */ + getAssignment: function(nameOrNumber) { + var name = (typeof nameOrNumber === 'string') ? + nameOrNumber : + Object.keys(this._assignments)[nameOrNumber]; + return this._assignments[name]; + }, + + /** + * Where parameter name == assignment names - they are the same. + */ + getParameterNames: function() { + return Object.keys(this._assignments); + }, + + /** + * A *shallow* clone of the assignments. + * This is useful for systems that wish to go over all the assignments + * finding values one way or another and wish to trim an array as they go. + */ + cloneAssignments: function() { + return Object.keys(this._assignments).map(function(name) { + return this._assignments[name]; + }, this); + }, + + /** + * Collect the statuses from the Assignments. + * The hints returned are sorted by severity + */ + _updateHints: function() { + // TODO: work out when to clear this out for the plain Requisition case + // this._hints = []; + this.getAssignments(true).forEach(function(assignment) { + this._hints.push(assignment.getHint()); + }, this); + Hint.sort(this._hints); + + // We would like to put some initial help here, but for anyone but + // a complete novice a 'type help' message is very annoying, so we + // need to find a way to only display this message once, or for + // until the user click a 'close' button or similar + // TODO: Add special case for '' input + }, + + /** + * Returns the most severe status + */ + getWorstHint: function() { + return this._hints[0]; + }, + + /** + * Extract the names and values of all the assignments, and return as + * an object. + */ + getArgsObject: function() { + var args = {}; + this.getAssignments().forEach(function(assignment) { + args[assignment.param.name] = assignment.value; + }, this); + return args; + }, + + /** + * Access the arguments as an array. + * @param includeCommand By default only the parameter arguments are + * returned unless (includeCommand === true), in which case the list is + * prepended with commandAssignment.arg + */ + getAssignments: function(includeCommand) { + var args = []; + if (includeCommand === true) { + args.push(this.commandAssignment); + } + Object.keys(this._assignments).forEach(function(name) { + args.push(this.getAssignment(name)); + }, this); + return args; + }, + + /** + * Reset all the assignments to their default values + */ + setDefaultValues: function() { + this.getAssignments().forEach(function(assignment) { + assignment.setValue(undefined); + }, this); + }, + + /** + * Helper to call canon.exec + */ + exec: function() { + canon.exec(this.commandAssignment.value, + this.env, + "cli", + this.getArgsObject(), + this.toCanonicalString()); + }, + + /** + * Extract a canonical version of the input + */ + toCanonicalString: function() { + var line = []; + line.push(this.commandAssignment.value.name); + Object.keys(this._assignments).forEach(function(name) { + var assignment = this._assignments[name]; + var type = assignment.param.type; + // TODO: This will cause problems if there is a non-default value + // after a default value. Also we need to decide when to use + // named parameters in place of positional params. Both can wait. + if (assignment.value !== assignment.param.defaultValue) { + line.push(' '); + line.push(type.stringify(assignment.value)); + } + }, this); + return line.join(''); + } +}; +oop.implement(Requisition.prototype, EventEmitter); +exports.Requisition = Requisition; + + +/** + * An object used during command line parsing to hold the various intermediate + * data steps. + *

                                                                            The 'output' of the update is held in 2 objects: input.hints which is an + * array of hints to display to the user. In the future this will become a + * single value. + *

                                                                            The other output value is input.requisition which gives access to an + * args object for use in executing the final command. + * + *

                                                                            The majority of the functions in this class are called in sequence by the + * constructor. Their task is to add to hints fill out the requisition. + *

                                                                            The general sequence is:

                                                                              + *
                                                                            • _tokenize(): convert _typed into _parts + *
                                                                            • _split(): convert _parts into _command and _unparsedArgs + *
                                                                            • _assign(): convert _unparsedArgs into requisition + *
                                                                            + * + * @param typed {string} The instruction as typed by the user so far + * @param options {object} A list of optional named parameters. Can be any of: + * flags: Flags for us to check against the predicates specified with the + * commands. Defaulted to keyboard.buildFlags({ }); + * if not specified. + * @constructor + */ +function CliRequisition(env, options) { + Requisition.call(this, env); + + if (options && options.flags) { + /** + * TODO: We were using a default of keyboard.buildFlags({ }); + * This allowed us to have commands that only existed in certain contexts + * - i.e. Javascript specific commands. + */ + this.flags = options.flags; + } +} +oop.inherits(CliRequisition, Requisition); +(function() { + /** + * Called by the UI when ever the user interacts with a command line input + * @param input A structure that details the state of the input field. + * It should look something like: { typed:a, cursor: { start:b, end:c } } + * Where a is the contents of the input field, and b and c are the start + * and end of the cursor/selection respectively. + */ + CliRequisition.prototype.update = function(input) { + this.input = input; + this._hints = []; + + var args = this._tokenize(input.typed); + this._split(args); + + if (this.commandAssignment.value) { + this._assign(args); + } + + this._updateHints(); + }; + + /** + * Return an array of Status scores so we can create a marked up + * version of the command line input. + */ + CliRequisition.prototype.getInputStatusMarkup = function() { + // 'scores' is an array which tells us what chars are errors + // Initialize with everything VALID + var scores = this.toString().split('').map(function(ch) { + return Status.VALID; + }); + // For all chars in all hints, check and upgrade the score + this._hints.forEach(function(hint) { + for (var i = hint.start; i <= hint.end; i++) { + if (hint.status > scores[i]) { + scores[i] = hint.status; + } + } + }, this); + return scores; + }; + + /** + * Reconstitute the input from the args + */ + CliRequisition.prototype.toString = function() { + return this.getAssignments(true).map(function(assignment) { + return assignment.toString(); + }, this).join(''); + }; + + var superUpdateHints = CliRequisition.prototype._updateHints; + /** + * Marks up hints in a number of ways: + * - Makes INCOMPLETE hints that are not near the cursor INVALID since + * they can't be completed by typing + * - Finds the most severe hint, and annotates the array with it + * - Finds the hint to display, and also annotates the array with it + * TODO: I'm wondering if array annotation is evil and we should replace + * this with an object. Need to find out more. + */ + CliRequisition.prototype._updateHints = function() { + superUpdateHints.call(this); + + // Not knowing about cursor positioning, the requisition and assignments + // can't know this, but anything they mark as INCOMPLETE is actually + // INVALID unless the cursor is actually inside that argument. + var c = this.input.cursor; + this._hints.forEach(function(hint) { + var startInHint = c.start >= hint.start && c.start <= hint.end; + var endInHint = c.end >= hint.start && c.end <= hint.end; + var inHint = startInHint || endInHint; + if (!inHint && hint.status === Status.INCOMPLETE) { + hint.status = Status.INVALID; + } + }, this); + + Hint.sort(this._hints); + }; + + /** + * Accessor for the hints array. + * While we could just use the hints property, using getHints() is + * preferred for symmetry with Requisition where it needs a function due to + * lack of an atomic update system. + */ + CliRequisition.prototype.getHints = function() { + return this._hints; + }; + + /** + * Look through the arguments attached to our assignments for the assignment + * at the given position. + */ + CliRequisition.prototype.getAssignmentAt = function(position) { + var assignments = this.getAssignments(true); + for (var i = 0; i < assignments.length; i++) { + var assignment = assignments[i]; + if (!assignment.arg) { + // There is no argument in this assignment, we've fallen off + // the end of the obvious answers - it must be this one. + return assignment; + } + if (assignment.isPositionCaptured(position)) { + return assignment; + } + } + + return assignment; + }; + + /** + * Split up the input taking into account ' and " + */ + CliRequisition.prototype._tokenize = function(typed) { + // For blank input, place a dummy empty argument into the list + if (typed == null || typed.length === 0) { + return [ new Argument(this, '', 0, 0, '', '') ]; + } + + var OUTSIDE = 1; // The last character was whitespace + var IN_SIMPLE = 2; // The last character was part of a parameter + var IN_SINGLE_Q = 3; // We're inside a single quote: ' + var IN_DOUBLE_Q = 4; // We're inside double quotes: " + + var mode = OUTSIDE; + + // First we un-escape. This list was taken from: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Unicode + // We are generally converting to their real values except for \', \" + // and '\ ' which we are converting to unicode private characters so we + // can distinguish them from ', " and ' ', which have special meaning. + // They need swapping back post-split - see unescape2() + typed = typed + .replace(/\\\\/g, '\\') + .replace(/\\b/g, '\b') + .replace(/\\f/g, '\f') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\t/g, '\t') + .replace(/\\v/g, '\v') + .replace(/\\n/g, '\n') + .replace(/\\r/g, '\r') + .replace(/\\ /g, '\uF000') + .replace(/\\'/g, '\uF001') + .replace(/\\"/g, '\uF002'); + + function unescape2(str) { + return str + .replace(/\uF000/g, ' ') + .replace(/\uF001/g, '\'') + .replace(/\uF002/g, '"'); + } + + var i = 0; + var start = 0; // Where did this section start? + var prefix = ''; + var args = []; + + while (true) { + if (i >= typed.length) { + // There is nothing else to read - tidy up + if (mode !== OUTSIDE) { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, start, i, prefix, '')); + } + else { + if (i !== start) { + // There's a bunch of whitespace at the end of the + // command add it to the last argument's suffix, + // creating an empty argument if needed. + var extra = typed.substring(start, i); + var lastArg = args[args.length - 1]; + if (!lastArg) { + lastArg = new Argument(this, '', i, i, extra, ''); + args.push(lastArg); + } + else { + lastArg.suffix += extra; + } + } + } + break; + } + + var c = typed[i]; + switch (mode) { + case OUTSIDE: + if (c === '\'') { + prefix = typed.substring(start, i + 1); + mode = IN_SINGLE_Q; + start = i + 1; + } + else if (c === '"') { + prefix = typed.substring(start, i + 1); + mode = IN_DOUBLE_Q; + start = i + 1; + } + else if (/ /.test(c)) { + // Still whitespace, do nothing + } + else { + prefix = typed.substring(start, i); + mode = IN_SIMPLE; + start = i; + } + break; + + case IN_SIMPLE: + // There is an edge case of xx'xx which we are assuming to + // be a single parameter (and same with ") + if (c === ' ') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start, i, prefix, '')); + mode = OUTSIDE; + start = i; + prefix = ''; + } + break; + + case IN_SINGLE_Q: + if (c === '\'') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + + case IN_DOUBLE_Q: + if (c === '"') { + var str = unescape2(typed.substring(start, i)); + args.push(new Argument(this, str, + start - 1, i + 1, prefix, c)); + mode = OUTSIDE; + start = i + 1; + prefix = ''; + } + break; + } + + i++; + } + + return args; + }; + + /** + * Looks in the canon for a command extension that matches what has been + * typed at the command line. + */ + CliRequisition.prototype._split = function(args) { + var argsUsed = 1; + var arg; + + while (argsUsed <= args.length) { + var arg = Argument.merge(args, 0, argsUsed); + this.commandAssignment.setArgument(arg); + + if (!this.commandAssignment.value) { + // Not found. break with value == null + break; + } + + /* + // Previously we needed a way to hide commands depending context. + // We have not resurrected that feature yet. + if (!keyboard.flagsMatch(command.predicates, this.flags)) { + // If the predicates say 'no match' then go LA LA LA + command = null; + break; + } + */ + + if (this.commandAssignment.value.exec) { + // Valid command, break with command valid + for (var i = 0; i < argsUsed; i++) { + args.shift(); + } + break; + } + + argsUsed++; + } + }; + + /** + * Work out which arguments are applicable to which parameters. + *

                                                                            This takes #_command.params and #_unparsedArgs and creates a map of + * param names to 'assignment' objects, which have the following properties: + *

                                                                              + *
                                                                            • param - The matching parameter. + *
                                                                            • index - Zero based index into where the match came from on the input + *
                                                                            • value - The matching input + *
                                                                            + */ + CliRequisition.prototype._assign = function(args) { + if (args.length === 0) { + this.setDefaultValues(); + return; + } + + // Create an error if the command does not take parameters, but we have + // been given them ... + if (this.assignmentCount === 0) { + // TODO: previously we were doing some extra work to avoid this if + // we determined that we had args that were all whitespace, but + // probably given our tighter tokenize() this won't be an issue? + this._hints.push(new Hint(Status.INVALID, + this.commandAssignment.value.name + + ' does not take any parameters', + Argument.merge(args))); + return; + } + + // Special case: if there is only 1 parameter, and that's of type + // text we put all the params into the first param + if (this.assignmentCount === 1) { + var assignment = this.getAssignment(0); + if (assignment.param.type.name === 'text') { + assignment.setArgument(Argument.merge(args)); + return; + } + } + + var assignments = this.cloneAssignments(); + var names = this.getParameterNames(); + + // Extract all the named parameters + var used = []; + assignments.forEach(function(assignment) { + var namedArgText = '--' + assignment.name; + + var i = 0; + while (true) { + var arg = args[i]; + if (namedArgText !== arg.text) { + i++; + if (i >= args.length) { + break; + } + continue; + } + + // boolean parameters don't have values, default to false + if (assignment.param.type.name === 'boolean') { + assignment.setValue(true); + } + else { + if (i + 1 < args.length) { + // Missing value portion of this named param + this._hints.push(new Hint(Status.INCOMPLETE, + 'Missing value for: ' + namedArgText, + args[i])); + } + else { + args.splice(i + 1, 1); + assignment.setArgument(args[i + 1]); + } + } + + lang.arrayRemove(names, assignment.name); + args.splice(i, 1); + // We don't need to i++ if we splice + } + }, this); + + // What's left are positional parameters assign in order + names.forEach(function(name) { + var assignment = this.getAssignment(name); + if (args.length === 0) { + // No more values + assignment.setValue(undefined); // i.e. default + } + else { + var arg = args[0]; + args.splice(0, 1); + assignment.setArgument(arg); + } + }, this); + + if (args.length > 0) { + var remaining = Argument.merge(args); + this._hints.push(new Hint(Status.INVALID, + 'Input \'' + remaining.text + '\' makes no sense.', + remaining)); + } + }; + +})(); +exports.CliRequisition = CliRequisition; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/settings', ['require', 'exports', 'module' , 'pilot/types', 'pilot/types/basic'], function(require, exports, module) { + + +var types = require("pilot/types"); +var SelectionType = require('pilot/types/basic').SelectionType; + +var direction = new SelectionType({ + name: 'direction', + data: [ 'above', 'below' ] +}); + +var hintDirectionSetting = { + name: "hintDirection", + description: "Are hints shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputDirectionSetting = { + name: "outputDirection", + description: "Is the output window shown above or below the command line?", + type: "direction", + defaultValue: "above" +}; + +var outputHeightSetting = { + name: "outputHeight", + description: "What height should the output panel be?", + type: "number", + defaultValue: 300 +}; + +exports.startup = function(data, reason) { + types.registerType(direction); + data.env.settings.addSetting(hintDirectionSetting); + data.env.settings.addSetting(outputDirectionSetting); + data.env.settings.addSetting(outputHeightSetting); +}; + +exports.shutdown = function(data, reason) { + types.unregisterType(direction); + data.env.settings.removeSetting(hintDirectionSetting); + data.env.settings.removeSetting(outputDirectionSetting); + data.env.settings.removeSetting(outputHeightSetting); +}; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/cli_view', ['require', 'exports', 'module' , 'text!cockpit/ui/cli_view.css', 'pilot/event', 'pilot/dom', 'pilot/keys', 'pilot/canon', 'pilot/types', 'cockpit/cli', 'cockpit/ui/request_view'], function(require, exports, module) { + + +var editorCss = require("text!cockpit/ui/cli_view.css"); +var event = require("pilot/event"); +var dom = require("pilot/dom"); + +dom.importCssString(editorCss); + +var event = require("pilot/event"); +var keys = require("pilot/keys"); +var canon = require("pilot/canon"); +var Status = require('pilot/types').Status; + +var CliRequisition = require('cockpit/cli').CliRequisition; +var Hint = require('cockpit/cli').Hint; +var RequestView = require('cockpit/ui/request_view').RequestView; + +var NO_HINT = new Hint(Status.VALID, '', 0, 0); + +/** + * On startup we need to: + * 1. Add 3 sets of elements to the DOM for: + * - command line output + * - input hints + * - completion + * 2. Attach a set of events so the command line works + */ +exports.startup = function(data, reason) { + var cli = new CliRequisition(data.env); + var cliView = new CliView(cli, data.env); + data.env.cli = cli; +}; + +/** + * A class to handle the simplest UI implementation + */ +function CliView(cli, env) { + cli.cliView = this; + this.cli = cli; + this.doc = document; + this.win = dom.getParentWindow(this.doc); + this.env = env; + + // TODO: we should have a better way to specify command lines??? + this.element = this.doc.getElementById('cockpitInput'); + if (!this.element) { + // console.log('No element with an id of cockpit. Bailing on cli'); + return; + } + + this.settings = env.settings; + this.hintDirection = this.settings.getSetting('hintDirection'); + this.outputDirection = this.settings.getSetting('outputDirection'); + this.outputHeight = this.settings.getSetting('outputHeight'); + + // If the requisition tells us something has changed, we use this to know + // if we should ignore it + this.isUpdating = false; + + this.createElements(); + this.update(); +} +CliView.prototype = { + /** + * Create divs for completion, hints and output + */ + createElements: function() { + var input = this.element; + + this.element.spellcheck = false; + + this.output = this.doc.getElementById('cockpitOutput'); + this.popupOutput = (this.output == null); + if (!this.output) { + this.output = this.doc.createElement('div'); + this.output.id = 'cockpitOutput'; + this.output.className = 'cptOutput'; + input.parentNode.insertBefore(this.output, input.nextSibling); + + var setMaxOutputHeight = function() { + this.output.style.maxHeight = this.outputHeight.get() + 'px'; + }.bind(this); + this.outputHeight.addEventListener('change', setMaxOutputHeight); + setMaxOutputHeight(); + } + + this.completer = this.doc.createElement('div'); + this.completer.className = 'cptCompletion VALID'; + + this.completer.style.color = dom.computedStyle(input, "color"); + this.completer.style.fontSize = dom.computedStyle(input, "fontSize"); + this.completer.style.fontFamily = dom.computedStyle(input, "fontFamily"); + this.completer.style.fontWeight = dom.computedStyle(input, "fontWeight"); + this.completer.style.fontStyle = dom.computedStyle(input, "fontStyle"); + input.parentNode.insertBefore(this.completer, input.nextSibling); + + // Transfer background styling to the completer. + this.completer.style.backgroundColor = input.style.backgroundColor; + input.style.backgroundColor = 'transparent'; + + this.hinter = this.doc.createElement('div'); + this.hinter.className = 'cptHints'; + input.parentNode.insertBefore(this.hinter, input.nextSibling); + + var resizer = this.resizer.bind(this); + event.addListener(this.win, 'resize', resizer); + this.hintDirection.addEventListener('change', resizer); + this.outputDirection.addEventListener('change', resizer); + resizer(); + + canon.addEventListener('output', function(ev) { + new RequestView(ev.request, this); + }.bind(this)); + event.addCommandKeyListener(input, this.onCommandKey.bind(this)); + event.addListener(input, 'keyup', this.onKeyUp.bind(this)); + + // cursor position affects hint severity. TODO: shortcuts for speed + event.addListener(input, 'mouseup', function(ev) { + this.isUpdating = true; + this.update(); + this.isUpdating = false; + }.bind(this)); + + this.cli.addEventListener('argumentChange', this.onArgChange.bind(this)); + + event.addListener(input, "focus", function() { + dom.addCssClass(this.output, "cptFocusPopup"); + dom.addCssClass(this.hinter, "cptFocusPopup"); + }.bind(this)); + + function hideOutput() { + dom.removeCssClass(this.output, "cptFocusPopup"); + dom.removeCssClass(this.hinter, "cptFocusPopup"); + }; + event.addListener(input, "blur", hideOutput.bind(this)); + hideOutput.call(this); + }, + + /** + * We need to see the output of the latest command entered + */ + scrollOutputToBottom: function() { + // Certain browsers have a bug such that scrollHeight is too small + // when content does not fill the client area of the element + var scrollHeight = Math.max(this.output.scrollHeight, this.output.clientHeight); + this.output.scrollTop = scrollHeight - this.output.clientHeight; + }, + + /** + * To be called on window resize or any time we want to align the elements + * with the input box. + */ + resizer: function() { + var rect = this.element.getClientRects()[0]; + + this.completer.style.top = rect.top + 'px'; + var height = rect.bottom - rect.top; + this.completer.style.height = height + 'px'; + this.completer.style.lineHeight = height + 'px'; + this.completer.style.left = rect.left + 'px'; + var width = rect.right - rect.left; + this.completer.style.width = width + 'px'; + + if (this.hintDirection.get() === 'below') { + this.hinter.style.top = rect.bottom + 'px'; + this.hinter.style.bottom = 'auto'; + } + else { + this.hinter.style.top = 'auto'; + this.hinter.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.hinter.style.left = (rect.left + 30) + 'px'; + this.hinter.style.maxWidth = (width - 110) + 'px'; + + if (this.popupOutput) { + if (this.outputDirection.get() === 'below') { + this.output.style.top = rect.bottom + 'px'; + this.output.style.bottom = 'auto'; + } + else { + this.output.style.top = 'auto'; + this.output.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; + } + this.output.style.left = rect.left + 'px'; + this.output.style.width = (width - 80) + 'px'; + } + }, + + /** + * Ensure that TAB isn't handled by the browser + */ +onCommandKey: function(ev, hashId, keyCode) { + var stopEvent; + if (keyCode === keys.TAB || + keyCode === keys.UP || + keyCode === keys.DOWN) { + stopEvent = true; + } else if (hashId != 0 || keyCode != 0) { + stopEvent = canon.execKeyCommand(this.env, 'cli', hashId, keyCode); + } + stopEvent && event.stopEvent(ev); + }, + + /** + * The main keyboard processing loop + */ + onKeyUp: function(ev) { + var handled; + /* + var handled = keyboardManager.processKeyEvent(ev, this, { + isCommandLine: true, isKeyUp: true + }); + */ + + // RETURN does a special exec/highlight thing + if (ev.keyCode === keys.RETURN) { + var worst = this.cli.getWorstHint(); + // Deny RETURN unless the command might work + if (worst.status === Status.VALID) { + this.cli.exec(); + this.element.value = ''; + } + else { + // If we've denied RETURN because the command was not VALID, + // select the part of the command line that is causing problems + // TODO: if there are 2 errors are we picking the right one? + dom.setSelectionStart(this.element, worst.start); + dom.setSelectionEnd(this.element, worst.end); + } + } + + this.update(); + + // Special actions which delegate to the assignment + var current = this.cli.getAssignmentAt(dom.getSelectionStart(this.element)); + if (current) { + // TAB does a special complete thing + if (ev.keyCode === keys.TAB) { + current.complete(); + this.update(); + } + + // UP/DOWN look for some history + if (ev.keyCode === keys.UP) { + current.increment(); + this.update(); + } + if (ev.keyCode === keys.DOWN) { + current.decrement(); + this.update(); + } + } + + return handled; + }, + + /** + * Actually parse the input and make sure we're all up to date + */ + update: function() { + this.isUpdating = true; + var input = { + typed: this.element.value, + cursor: { + start: dom.getSelectionStart(this.element), + end: dom.getSelectionEnd(this.element.selectionEnd) + } + }; + this.cli.update(input); + + var display = this.cli.getAssignmentAt(input.cursor.start).getHint(); + + // 1. Update the completer with prompt/error marker/TAB info + dom.removeCssClass(this.completer, Status.VALID.toString()); + dom.removeCssClass(this.completer, Status.INCOMPLETE.toString()); + dom.removeCssClass(this.completer, Status.INVALID.toString()); + + var completion = '> '; + if (this.element.value.length > 0) { + var scores = this.cli.getInputStatusMarkup(); + completion += this.markupStatusScore(scores); + } + + // Display the "-> prediction" at the end of the completer + if (this.element.value.length > 0 && + display.predictions && display.predictions.length > 0) { + var tab = display.predictions[0]; + completion += '  ⇥ ' + (tab.name ? tab.name : tab); + } + this.completer.innerHTML = completion; + dom.addCssClass(this.completer, this.cli.getWorstHint().status.toString()); + + // 2. Update the hint element + var hint = ''; + if (this.element.value.length !== 0) { + hint += display.message; + if (display.predictions && display.predictions.length > 0) { + hint += ': [ '; + display.predictions.forEach(function(prediction) { + hint += (prediction.name ? prediction.name : prediction); + hint += ' | '; + }, this); + hint = hint.replace(/\| $/, ']'); + } + } + + this.hinter.innerHTML = hint; + if (hint.length === 0) { + dom.addCssClass(this.hinter, 'cptNoPopup'); + } + else { + dom.removeCssClass(this.hinter, 'cptNoPopup'); + } + + this.isUpdating = false; + }, + + /** + * Markup an array of Status values with spans + */ + markupStatusScore: function(scores) { + var completion = ''; + // Create mark-up + var i = 0; + var lastStatus = -1; + while (true) { + if (lastStatus !== scores[i]) { + completion += ''; + lastStatus = scores[i]; + } + completion += this.element.value[i]; + i++; + if (i === this.element.value.length) { + completion += ''; + break; + } + if (lastStatus !== scores[i]) { + completion += ''; + } + } + + return completion; + }, + + /** + * Update the input element to reflect the changed argument + */ + onArgChange: function(ev) { + if (this.isUpdating) { + return; + } + + var prefix = this.element.value.substring(0, ev.argument.start); + var suffix = this.element.value.substring(ev.argument.end); + var insert = typeof ev.text === 'string' ? ev.text : ev.text.name; + this.element.value = prefix + insert + suffix; + // Fix the cursor. + var insertEnd = (prefix + insert).length; + this.element.selectionStart = insertEnd; + this.element.selectionEnd = insertEnd; + } +}; +exports.CliView = CliView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/ui/request_view', ['require', 'exports', 'module' , 'pilot/dom', 'pilot/event', 'text!cockpit/ui/request_view.html', 'pilot/domtemplate', 'text!cockpit/ui/request_view.css'], function(require, exports, module) { + +var dom = require("pilot/dom"); +var event = require("pilot/event"); +var requestViewHtml = require("text!cockpit/ui/request_view.html"); +var Templater = require("pilot/domtemplate").Templater; + +var requestViewCss = require("text!cockpit/ui/request_view.css"); +dom.importCssString(requestViewCss); + +/** + * Pull the HTML into the DOM, but don't add it to the document + */ +var templates = document.createElement('div'); +templates.innerHTML = requestViewHtml; +var row = templates.querySelector('.cptRow'); + +/** + * Work out the path for images. + * TODO: This should probably live in some utility area somewhere + */ +function imageUrl(path) { + var dataUrl; + try { + dataUrl = require('text!cockpit/ui/' + path); + } catch (e) { } + if (dataUrl) { + return dataUrl; + } + + var filename = module.id.split('/').pop() + '.js'; + var imagePath; + + if (module.uri.substr(-filename.length) !== filename) { + console.error('Can\'t work out path from module.uri/module.id'); + return path; + } + + if (module.uri) { + var end = module.uri.length - filename.length - 1; + return module.uri.substr(0, end) + "/" + path; + } + + return filename + path; +} + + +/** + * Adds a row to the CLI output display + */ +function RequestView(request, cliView) { + this.request = request; + this.cliView = cliView; + this.imageUrl = imageUrl; + + // Elements attached to this by the templater. For info only + this.rowin = null; + this.rowout = null; + this.output = null; + this.hide = null; + this.show = null; + this.duration = null; + this.throb = null; + + new Templater().processNode(row.cloneNode(true), this); + + this.cliView.output.appendChild(this.rowin); + this.cliView.output.appendChild(this.rowout); + + this.request.addEventListener('output', this.onRequestChange.bind(this)); +}; + +RequestView.prototype = { + /** + * A single click on an invocation line in the console copies the command to + * the command line + */ + copyToInput: function() { + this.cliView.element.value = this.request.typed; + }, + + /** + * A double click on an invocation line in the console executes the command + */ + executeRequest: function(ev) { + this.cliView.cli.update({ + typed: this.request.typed, + cursor: { start:0, end:0 } + }); + this.cliView.cli.exec(); + }, + + hideOutput: function(ev) { + this.output.style.display = 'none'; + dom.addCssClass(this.hide, 'cmd_hidden'); + dom.removeCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + showOutput: function(ev) { + this.output.style.display = 'block'; + dom.removeCssClass(this.hide, 'cmd_hidden'); + dom.addCssClass(this.show, 'cmd_hidden'); + + event.stopPropagation(ev); + }, + + remove: function(ev) { + this.cliView.output.removeChild(this.rowin); + this.cliView.output.removeChild(this.rowout); + event.stopPropagation(ev); + }, + + onRequestChange: function(ev) { + this.duration.innerHTML = this.request.duration ? + 'completed in ' + (this.request.duration / 1000) + ' sec ' : + ''; + + this.output.innerHTML = ''; + this.request.outputs.forEach(function(output) { + var node; + if (typeof output == 'string') { + node = document.createElement('p'); + node.innerHTML = output; + } else { + node = output; + } + this.output.appendChild(node); + }, this); + this.cliView.scrollOutputToBottom(); + + dom.setCssClass(this.output, 'cmd_error', this.request.error); + + this.throb.style.display = this.request.completed ? 'none' : 'block'; + } +}; +exports.RequestView = RequestView; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is DomTemplate. + * + * The Initial Developer of the Original Code is Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Joe Walker (jwalker@mozilla.com) (original author) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('pilot/domtemplate', ['require', 'exports', 'module' ], function(require, exports, module) { + + +// WARNING: do not 'use_strict' without reading the notes in envEval; + +/** + * A templater that allows one to quickly template DOM nodes. + */ +function Templater() { + this.scope = []; +}; + +/** + * Recursive function to walk the tree processing the attributes as it goes. + * @param node the node to process. If you pass a string in instead of a DOM + * element, it is assumed to be an id for use with document.getElementById() + * @param data the data to use for node processing. + */ +Templater.prototype.processNode = function(node, data) { + if (typeof node === 'string') { + node = document.getElementById(node); + } + if (data === null || data === undefined) { + data = {}; + } + this.scope.push(node.nodeName + (node.id ? '#' + node.id : '')); + try { + // Process attributes + if (node.attributes && node.attributes.length) { + // We need to handle 'foreach' and 'if' first because they might stop + // some types of processing from happening, and foreach must come first + // because it defines new data on which 'if' might depend. + if (node.hasAttribute('foreach')) { + this.processForEach(node, data); + return; + } + if (node.hasAttribute('if')) { + if (!this.processIf(node, data)) { + return; + } + } + // Only make the node available once we know it's not going away + data.__element = node; + // It's good to clean up the attributes when we've processed them, + // but if we do it straight away, we mess up the array index + var attrs = Array.prototype.slice.call(node.attributes); + for (var i = 0; i < attrs.length; i++) { + var value = attrs[i].value; + var name = attrs[i].name; + this.scope.push(name); + try { + if (name === 'save') { + // Save attributes are a setter using the node + value = this.stripBraces(value); + this.property(value, data, node); + node.removeAttribute('save'); + } else if (name.substring(0, 2) === 'on') { + // Event registration relies on property doing a bind + value = this.stripBraces(value); + var func = this.property(value, data); + if (typeof func !== 'function') { + this.handleError('Expected ' + value + + ' to resolve to a function, but got ' + typeof func); + } + node.removeAttribute(name); + var capture = node.hasAttribute('capture' + name.substring(2)); + node.addEventListener(name.substring(2), func, capture); + if (capture) { + node.removeAttribute('capture' + name.substring(2)); + } + } else { + // Replace references in all other attributes + var self = this; + var newValue = value.replace(/\$\{[^}]*\}/g, function(path) { + return self.envEval(path.slice(2, -1), data, value); + }); + // Remove '_' prefix of attribute names so the DOM won't try + // to use them before we've processed the template + if (name.charAt(0) === '_') { + node.removeAttribute(name); + node.setAttribute(name.substring(1), newValue); + } else if (value !== newValue) { + attrs[i].value = newValue; + } + } + } finally { + this.scope.pop(); + } + } + } + + // Loop through our children calling processNode. First clone them, so the + // set of nodes that we visit will be unaffected by additions or removals. + var childNodes = Array.prototype.slice.call(node.childNodes); + for (var j = 0; j < childNodes.length; j++) { + this.processNode(childNodes[j], data); + } + + if (node.nodeType === Node.TEXT_NODE) { + this.processTextNode(node, data); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Handle + * @param node An element with an 'if' attribute + * @param data The data to use with envEval + * @returns true if processing should continue, false otherwise + */ +Templater.prototype.processIf = function(node, data) { + this.scope.push('if'); + try { + var originalValue = node.getAttribute('if'); + var value = this.stripBraces(originalValue); + var recurse = true; + try { + var reply = this.envEval(value, data, originalValue); + recurse = !!reply; + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + recurse = false; + } + if (!recurse) { + node.parentNode.removeChild(node); + } + node.removeAttribute('if'); + return recurse; + } finally { + this.scope.pop(); + } +}; + +/** + * Handle and the special case of + * + * @param node An element with a 'foreach' attribute + * @param data The data to use with envEval + */ +Templater.prototype.processForEach = function(node, data) { + this.scope.push('foreach'); + try { + var originalValue = node.getAttribute('foreach'); + var value = originalValue; + + var paramName = 'param'; + if (value.charAt(0) === '$') { + // No custom loop variable name. Use the default: 'param' + value = this.stripBraces(value); + } else { + // Extract the loop variable name from 'NAME in ${ARRAY}' + var nameArr = value.split(' in '); + paramName = nameArr[0].trim(); + value = this.stripBraces(nameArr[1].trim()); + } + node.removeAttribute('foreach'); + try { + var self = this; + // Process a single iteration of a loop + var processSingle = function(member, clone, ref) { + ref.parentNode.insertBefore(clone, ref); + data[paramName] = member; + self.processNode(clone, data); + delete data[paramName]; + }; + + // processSingle is no good for nodes where we want to work on + // the childNodes rather than the node itself + var processAll = function(scope, member) { + self.scope.push(scope); + try { + if (node.nodeName === 'LOOP') { + for (var i = 0; i < node.childNodes.length; i++) { + var clone = node.childNodes[i].cloneNode(true); + processSingle(member, clone, node); + } + } else { + var clone = node.cloneNode(true); + clone.removeAttribute('foreach'); + processSingle(member, clone, node); + } + } finally { + self.scope.pop(); + } + }; + + var reply = this.envEval(value, data, originalValue); + if (Array.isArray(reply)) { + reply.forEach(function(data, i) { + processAll('' + i, data); + }, this); + } else { + for (var param in reply) { + if (reply.hasOwnProperty(param)) { + processAll(param, param); + } + } + } + node.parentNode.removeChild(node); + } catch (ex) { + this.handleError('Error with \'' + value + '\'', ex); + } + } finally { + this.scope.pop(); + } +}; + +/** + * Take a text node and replace it with another text node with the ${...} + * sections parsed out. We replace the node by altering node.parentNode but + * we could probably use a DOM Text API to achieve the same thing. + * @param node The Text node to work on + * @param data The data to use in calls to envEval + */ +Templater.prototype.processTextNode = function(node, data) { + // Replace references in other attributes + var value = node.data; + // We can't use the string.replace() with function trick (see generic + // attribute processing in processNode()) because we need to support + // functions that return DOM nodes, so we can't have the conversion to a + // string. + // Instead we process the string as an array of parts. In order to split + // the string up, we first replace '${' with '\uF001$' and '}' with '\uF002' + // We can then split using \uF001 or \uF002 to get an array of strings + // where scripts are prefixed with $. + // \uF001 and \uF002 are just unicode chars reserved for private use. + value = value.replace(/\$\{([^}]*)\}/g, '\uF001$$$1\uF002'); + var parts = value.split(/\uF001|\uF002/); + if (parts.length > 1) { + parts.forEach(function(part) { + if (part === null || part === undefined || part === '') { + return; + } + if (part.charAt(0) === '$') { + part = this.envEval(part.slice(1), data, node.data); + } + // It looks like this was done a few lines above but see envEval + if (part === null) { + part = "null"; + } + if (part === undefined) { + part = "undefined"; + } + // if (isDOMElement(part)) { ... } + if (typeof part.cloneNode !== 'function') { + part = node.ownerDocument.createTextNode(part.toString()); + } + node.parentNode.insertBefore(part, node); + }, this); + node.parentNode.removeChild(node); + } +}; + +/** + * Warn of string does not begin '${' and end '}' + * @param str the string to check. + * @return The string stripped of ${ and }, or untouched if it does not match + */ +Templater.prototype.stripBraces = function(str) { + if (!str.match(/\$\{.*\}/g)) { + this.handleError('Expected ' + str + ' to match ${...}'); + return str; + } + return str.slice(2, -1); +}; + +/** + * Combined getter and setter that works with a path through some data set. + * For example: + *
                                                                              + *
                                                                            • property('a.b', { a: { b: 99 }}); // returns 99 + *
                                                                            • property('a', { a: { b: 99 }}); // returns { b: 99 } + *
                                                                            • property('a', { a: { b: 99 }}, 42); // returns 99 and alters the + * input data to be { a: { b: 42 }} + *
                                                                            + * @param path An array of strings indicating the path through the data, or + * a string to be cut into an array using split('.') + * @param data An object to look in for the path argument + * @param newValue (optional) If defined, this value will replace the + * original value for the data at the path specified. + * @return The value pointed to by path before any + * newValue is applied. + */ +Templater.prototype.property = function(path, data, newValue) { + this.scope.push(path); + try { + if (typeof path === 'string') { + path = path.split('.'); + } + var value = data[path[0]]; + if (path.length === 1) { + if (newValue !== undefined) { + data[path[0]] = newValue; + } + if (typeof value === 'function') { + return function() { + return value.apply(data, arguments); + }; + } + return value; + } + if (!value) { + this.handleError('Can\'t find path=' + path); + return null; + } + return this.property(path.slice(1), value, newValue); + } finally { + this.scope.pop(); + } +}; + +/** + * Like eval, but that creates a context of the variables in env in + * which the script is evaluated. + * WARNING: This script uses 'with' which is generally regarded to be evil. + * The alternative is to create a Function at runtime that takes X parameters + * according to the X keys in the env object, and then call that function using + * the values in the env object. This is likely to be slow, but workable. + * @param script The string to be evaluated. + * @param env The environment in which to eval the script. + * @param context Optional debugging string in case of failure + * @return The return value of the script, or the error message if the script + * execution failed. + */ +Templater.prototype.envEval = function(script, env, context) { + with (env) { + try { + this.scope.push(context); + return eval(script); + } catch (ex) { + this.handleError('Template error evaluating \'' + script + '\'', ex); + return script; + } finally { + this.scope.pop(); + } + } +}; + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + * @param ex optional associated exception. + */ +Templater.prototype.handleError = function(message, ex) { + this.logError(message); + this.logError('In: ' + this.scope.join(' > ')); + if (ex) { + this.logError(ex); + } +}; + + +/** + * A generic way of reporting errors, for easy overloading in different + * environments. + * @param message the error message to report. + */ +Templater.prototype.logError = function(message) { + window.console && window.console.log && console.log(message); +}; + +exports.Templater = Templater; + + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Skywriter Team (skywriter@mozilla.com) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('cockpit/commands/basic', ['require', 'exports', 'module' , 'pilot/canon'], function(require, exports, module) { + + +var canon = require('pilot/canon'); + +/** + * '!' command + */ +var bangCommandSpec = { + name: 'sh', + description: 'Execute a system command (requires server support)', + params: [ + { + name: 'command', + type: 'text', + description: 'The string to send to the os shell.' + } + ], + exec: function(env, args, request) { + var req = new XMLHttpRequest(); + req.open('GET', '/exec?args=' + args.command, true); + req.onreadystatechange = function(ev) { + if (req.readyState == 4) { + if (req.status == 200) { + request.done('
                                                                            ' + req.responseText + '
                                                                            '); + } + } + }; + req.send(null); + } +}; + +var canon = require('pilot/canon'); + +exports.startup = function(data, reason) { + canon.addCommand(bangCommandSpec); +}; + +exports.shutdown = function(data, reason) { + canon.removeCommand(bangCommandSpec); +}; + + +}); +define("text!cockpit/ui/cli_view.css", [], "" + + "#cockpitInput { padding-left: 16px; }" + + "" + + ".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }" + + "" + + ".cptCompletion { padding: 0; position: absolute; z-index: -1000; }" + + ".cptCompletion.VALID { background: #FFF; }" + + ".cptCompletion.INCOMPLETE { background: #DDD; }" + + ".cptCompletion.INVALID { background: #DDD; }" + + ".cptCompletion span { color: #FFF; }" + + ".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }" + + ".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }" + + "span.cptPrompt { color: #66F; font-weight: bold; }" + + "" + + "" + + ".cptHints {" + + " color: #000;" + + " position: absolute;" + + " border: 1px solid rgba(230, 230, 230, 0.8);" + + " background: rgba(250, 250, 250, 0.8);" + + " -moz-border-radius-topleft: 10px;" + + " -moz-border-radius-topright: 10px;" + + " border-top-left-radius: 10px; border-top-right-radius: 10px;" + + " z-index: 1000;" + + " padding: 8px;" + + " display: none;" + + "}" + + "" + + ".cptFocusPopup { display: block; }" + + ".cptFocusPopup.cptNoPopup { display: none; }" + + "" + + ".cptHints ul { margin: 0; padding: 0 15px; }" + + "" + + ".cptGt { font-weight: bold; font-size: 120%; }" + + ""); + +define("text!cockpit/ui/request_view.css", [], "" + + ".cptRowIn {" + + " display: box; display: -moz-box; display: -webkit-box;" + + " box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;" + + " box-align: center; -moz-box-align: center; -webkit-box-align: center;" + + " color: #333;" + + " background-color: #EEE;" + + " width: 100%;" + + " font-family: consolas, courier, monospace;" + + "}" + + ".cptRowIn > * { padding-left: 2px; padding-right: 2px; }" + + ".cptRowIn > img { cursor: pointer; }" + + ".cptHover { display: none; }" + + ".cptRowIn:hover > .cptHover { display: block; }" + + ".cptRowIn:hover > .cptHover.cptHidden { display: none; }" + + ".cptOutTyped {" + + " box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;" + + " font-weight: bold; color: #000; font-size: 120%;" + + "}" + + ".cptRowOutput { padding-left: 10px; line-height: 1.2em; }" + + ".cptRowOutput strong," + + ".cptRowOutput b," + + ".cptRowOutput th," + + ".cptRowOutput h1," + + ".cptRowOutput h2," + + ".cptRowOutput h3 { color: #000; }" + + ".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }" + + ".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }" + + ".cptRowOutput input[type=password]," + + ".cptRowOutput input[type=text]," + + ".cptRowOutput textarea {" + + " color: #000; font-size: 120%;" + + " background: transparent; padding: 3px;" + + " border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;" + + "}" + + ".cptRowOutput table," + + ".cptRowOutput td," + + ".cptRowOutput th { border: 0; padding: 0 2px; }" + + ".cptRowOutput .right { text-align: right; }" + + ""); + +define("text!cockpit/ui/request_view.html", [], "" + + "
                                                                            " + + " " + + "
                                                                            " + + "" + + " " + + "
                                                                            >
                                                                            " + + "
                                                                            ${request.typed}
                                                                            " + + "" + + " " + + "
                                                                            " + + " \"Hide" + + " \"Show" + + " \"Remove" + + "" + + "
                                                                            " + + "" + + " " + + "
                                                                            " + + "
                                                                            " + + " " + + "
                                                                            " + + "
                                                                            " + + ""); + +define("text!cockpit/ui/images/closer.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); + +define("text!cockpit/ui/images/dot_clear.gif", [], "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"); + +define("text!cockpit/ui/images/minus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="); + +define("text!cockpit/ui/images/pinaction.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinin.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pinout.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/pins.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/plus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="); + +define("text!cockpit/ui/images/throbber.gif", [], "data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); + + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-worker-javascript', function(A) { +function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.CSharpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-scala', function(A) { +define("ace/mode/scala",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/javascript").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/scala_highlight_rules").ScalaHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i};d.inherits(j,e),function(){this.createWorker=function(a){return null}}.call(j.prototype),b.Mode=j}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/scala_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.ScalaHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-merbivore_soft', function(A) { +define("ace/theme/merbivore_soft",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-merbivore-soft .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-merbivore-soft .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-merbivore-soft .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-merbivore-soft .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-merbivore-soft .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-merbivore-soft .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-merbivore-soft .ace_scroller {\n background-color: #1C1C1C;\n}\n\n.ace-merbivore-soft .ace_text-layer {\n cursor: text;\n color: #E6E1DC;\n}\n\n.ace-merbivore-soft .ace_cursor {\n border-left: 2px solid #FFFFFF;\n}\n\n.ace-merbivore-soft .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FFFFFF;\n}\n \n.ace-merbivore-soft .ace_marker-layer .ace_selection {\n background: #494949;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #FCE94F;\n}\n\n.ace-merbivore-soft .ace_marker-layer .ace_active_line {\n background: #333435;\n}\n\n \n.ace-merbivore-soft .ace_invisible {\n color: #404040;\n}\n\n.ace-merbivore-soft .ace_keyword {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_keyword.ace_operator {\n \n}\n\n.ace-merbivore-soft .ace_constant {\n color:#68C1D8;\n}\n\n.ace-merbivore-soft .ace_constant.ace_language {\n color:#E1C582;\n}\n\n.ace-merbivore-soft .ace_constant.ace_library {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_constant.ace_numeric {\n color:#7FC578;\n}\n\n.ace-merbivore-soft .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_invalid.ace_illegal {\n \n}\n\n.ace-merbivore-soft .ace_invalid.ace_deprecated {\n color:#FFFFFF;\n background-color:#FE3838;\n}\n\n.ace-merbivore-soft .ace_support {\n \n}\n\n.ace-merbivore-soft .ace_support.ace_function {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_function.ace_buildin {\n \n}\n\n.ace-merbivore-soft .ace_string {\n color:#8EC65F;\n}\n\n.ace-merbivore-soft .ace_string.ace_regexp {\n \n}\n\n.ace-merbivore-soft .ace_comment {\n color:#AC4BB8;\n}\n\n.ace-merbivore-soft .ace_comment.ace_doc {\n \n}\n\n.ace-merbivore-soft .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-merbivore-soft .ace_variable {\n \n}\n\n.ace-merbivore-soft .ace_variable.ace_language {\n \n}\n\n.ace-merbivore-soft .ace_xml_pe {\n \n}\n\n.ace-merbivore-soft .ace_meta {\n \n}\n\n.ace-merbivore-soft .ace_meta.ace_tag {\n color:#FC803A;\n}\n\n.ace-merbivore-soft .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\n color:#EAF1A3;\n}\n\n\n.ace-merbivore-soft .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-merbivore-soft"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-mode-clojure', function(A) { +define("ace/mode/clojure",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/clojure_highlight_rules").ClojureHighlightRules,h=a("ace/mode/matching_parens_outdent").MatchingParensOutdent,i=a("ace/range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,";")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=d,f=this.$tokenizer.getLineTokens(b,a),g=f.tokens,h=f.state;if(g.length&&g[g.length-1].type=="comment")return d;if(a=="start"){var i=b.match(/[\(\[]/);i&&(d+=" "),i=b.match(/[\)]/),i&&(d="")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/clojure_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap ".split(" ")),b=e.arrayToMap("def do fn if let loop monitor-enter monitor-exit new quote recur set! throw try var".split(" ")),c=e.arrayToMap("true false nil".split(" "));this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(d){return b.hasOwnProperty(d)?"keyword":c.hasOwnProperty(d)?"constant.language":a.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|d)+"},{token:"string.regexp",regex:'/#"(?:.|(\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ClojureHighlightRules=g}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\)/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\))/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingParensOutdent=e}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-keybinding-vim', function(A) { +define("ace/keyboard/keybinding/vim",["require","exports","module","ace/keyboard/state_handler"],function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"i",then:"insertMode"},{key:"d",then:"deleteMode"},{key:"a",exec:"gotoright",then:"insertMode"},{key:"shift-i",exec:"gotolinestart",then:"insertMode"},{key:"shift-a",exec:"gotolineend",then:"insertMode"},{key:"shift-c",exec:"removetolineend",then:"insertMode"},{key:"shift-r",exec:"overwrite",then:"replaceMode"},{regex:["([0-9]*)","(k|up)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(j|down|enter)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(l|right)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(h|left)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{key:"shift-g",exec:"gotoend"},{key:"b",exec:"gotowordleft"},{key:"e",exec:"gotowordright"},{key:"x",exec:"del"},{key:"shift-x",exec:"backspace"},{key:"shift-d",exec:"removetolineend"},{comment:"Catch some keyboard input to stop it here",match:e}],insertMode:[{key:"esc",then:"start"}],replaceMode:[{key:"esc",exec:"overwrite",then:"start"}],deleteMode:[{key:"d",exec:"removeline",then:"start"}]};b.Vim=new d(f)}),define("ace/keyboard/state_handler",["require","exports","module"],function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/groovy_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,g=a("ace/mode/text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.GroovyHighlightRules=h}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); +AUI.add('aui-ace-editor-theme-textmate', function(A) { +define("ace/theme/textmate",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}) + +}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); + + +AUI.add('aui-ace-editor', function(A){}, '@VERSION@' ,{use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}); + diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index 66c1093a7c6..57e60ecd441 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -12,7 +12,8 @@ alloy: { combine: false, modules: { - 'aui-aria': {requires:['aui-base','plugin'], skinnable:false}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, + 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, @@ -20,7 +21,7 @@ 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {skinnable:false, requires:['classnamemanager'], condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -35,7 +36,7 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -62,9 +63,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -851,4 +852,4 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index 2cb24dbd0ab..b8651111dc5 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,3 +1,4 @@ -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit-uncompressed":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; +}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                            ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index 66c1093a7c6..57e60ecd441 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -12,7 +12,8 @@ alloy: { combine: false, modules: { - 'aui-aria': {requires:['aui-base','plugin'], skinnable:false}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, + 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, @@ -20,7 +21,7 @@ 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {skinnable:false, requires:['classnamemanager'], condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -35,7 +36,7 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -62,9 +63,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -851,4 +852,4 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index ba413aa62b9..9ad2c10416f 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,6 +10,7 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ }};b.Queue=t;YUI.Env._loaderQueue=YUI.Env._loaderQueue||new t();var m="__",p=Object.prototype.hasOwnProperty,l=b.Lang.isObject;b.cached=function(x,v,w){v||(v={});return function(y){var z=arguments.length>1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit-uncompressed":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; +}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                            ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); diff --git a/build/aui/aui.js b/build/aui/aui.js index d27dce4c2f7..c96978d980f 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4726,7 +4726,8 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b alloy: { combine: false, modules: { - 'aui-aria': {requires:['aui-base','plugin'], skinnable:false}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, + 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, @@ -4734,7 +4735,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {skinnable:false, requires:['classnamemanager'], condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -4749,7 +4750,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -4776,9 +4777,9 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -5565,4 +5566,4 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); From b5e4cdcc66c3e7da3ce7f451d0146fa7cee7fb05 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Wed, 17 Aug 2011 20:03:51 -0300 Subject: [PATCH 101/132] AUI-485 Adding aui-tpl-snippets input and checkbox snippets --- .../build.aui-tpl-snippets-checkbox.properties | 10 ++++++++++ .../build.aui-tpl-snippets-checkbox.xml | 7 +++++++ src/aui-tpl-snippets/js/aui-tpl-snippets-checkbox.js | 9 +++++++++ 3 files changed, 26 insertions(+) create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.properties create mode 100644 src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.xml create mode 100644 src/aui-tpl-snippets/js/aui-tpl-snippets-checkbox.js diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.properties b/src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.properties new file mode 100644 index 00000000000..fb16d3d26d3 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.properties @@ -0,0 +1,10 @@ +# Build Properties + +srcdir=../.. +global.src.component=${srcdir}/src/aui-tpl-snippets +global.build.component=${srcdir}/build/aui-tpl-snippets + +component=aui-tpl-snippets-checkbox +component.jsfiles=aui-tpl-snippets-checkbox.js +component.requires=aui-tpl-snippets-base +component.skinnable=false \ No newline at end of file diff --git a/src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.xml b/src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.xml new file mode 100644 index 00000000000..d2d3e3fdfb5 --- /dev/null +++ b/src/aui-tpl-snippets/build.aui-tpl-snippets-checkbox.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-checkbox.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-checkbox.js new file mode 100644 index 00000000000..a6215cdb915 --- /dev/null +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-checkbox.js @@ -0,0 +1,9 @@ +A.Template.register( + 'checkbox', + [ + '', + '', + '', + '' + ] +); \ No newline at end of file From ac51d4c7c4348dfbddfec7355efbe88e68eb0767 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Wed, 17 Aug 2011 20:04:17 -0300 Subject: [PATCH 102/132] AUI-485 Improving aui-tpl-snippets --- demos/tpl-snippets/index.html | 19 ++++++++++++++++++- src/aui-tpl-snippets/build.properties | 4 ++-- .../js/aui-tpl-snippets-input.js | 4 ++-- .../js/aui-tpl-snippets-select.js | 5 ++++- .../js/aui-tpl-snippets-textarea.js | 4 ++-- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/demos/tpl-snippets/index.html b/demos/tpl-snippets/index.html index e68862c60a3..a36a05115af 100644 --- a/demos/tpl-snippets/index.html +++ b/demos/tpl-snippets/index.html @@ -17,7 +17,12 @@ .aui-label-simple-class { font-weight: bold; - display: block; + display: block; + } + + .aui-label-simple-class-checkbox { + font-weight: bold; + padding-left: 3px; } @@ -38,6 +43,9 @@

                                                                            A.Template.get('input')

                                                                            A.Template.get('textarea')


                                                                            + +

                                                                            A.Template.get('checkbox')

                                                                            +

                                                                            diff --git a/src/aui-tpl-snippets/build.properties b/src/aui-tpl-snippets/build.properties index 98e6257174a..e52689ac083 100644 --- a/src/aui-tpl-snippets/build.properties +++ b/src/aui-tpl-snippets/build.properties @@ -3,8 +3,8 @@ srcdir=../../ global.build.component=${srcdir}/build/aui-tpl-snippets -component.rollup.modules.buildfiles=build.aui-tpl-snippets-base.xml, build.aui-tpl-snippets-select.xml, build.aui-tpl-snippets-input.xml, build.aui-tpl-snippets-textarea.xml +component.rollup.modules.buildfiles=build.aui-tpl-snippets-base.xml, build.aui-tpl-snippets-select.xml, build.aui-tpl-snippets-input.xml, build.aui-tpl-snippets-textarea.xml, build.aui-tpl-snippets-checkbox.xml component.rollup=true component.skinnable=false -component.use=aui-tpl-snippets-base,aui-tpl-snippets-select,aui-tpl-snippets-input,aui-tpl-snippets-textarea +component.use=aui-tpl-snippets-base,aui-tpl-snippets-select,aui-tpl-snippets-input,aui-tpl-snippets-textarea,aui-tpl-snippets-checkbox component=aui-tpl-snippets \ No newline at end of file diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-input.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-input.js index e2958d3850c..8c6f9b9d9b6 100644 --- a/src/aui-tpl-snippets/js/aui-tpl-snippets-input.js +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-input.js @@ -2,8 +2,8 @@ A.Template.register( 'input', [ '', - '', + '', '', - '' + '' ] ); \ No newline at end of file diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-select.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-select.js index baa559083bd..9207f8c2e60 100644 --- a/src/aui-tpl-snippets/js/aui-tpl-snippets-select.js +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-select.js @@ -1,7 +1,10 @@ A.Template.register( 'select', [ - '', '', '', '', diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js index 5aa293aa448..2f8ff86f2bf 100644 --- a/src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-textarea.js @@ -2,8 +2,8 @@ A.Template.register( 'textarea', [ '', - '', + '', '', - '' + '' ] ); \ No newline at end of file From 1d651491f73e49e1b8b8afa3862f05bc07393878 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Wed, 17 Aug 2011 20:04:26 -0300 Subject: [PATCH 103/132] Build files --- build/aui-base/aui-base-debug.js | 2 +- build/aui-base/aui-base-min.js | 2 +- build/aui-base/aui-base.js | 2 +- .../aui-tpl-snippets-checkbox-debug.js | 12 +++++++++ .../aui-tpl-snippets-checkbox-min.js | 1 + .../aui-tpl-snippets-checkbox.js | 12 +++++++++ .../aui-tpl-snippets-debug.js | 27 ++++++++++++++----- .../aui-tpl-snippets-input-debug.js | 4 +-- .../aui-tpl-snippets-input-min.js | 2 +- .../aui-tpl-snippets-input.js | 4 +-- .../aui-tpl-snippets/aui-tpl-snippets-min.js | 2 +- .../aui-tpl-snippets-select-debug.js | 5 +++- .../aui-tpl-snippets-select-min.js | 2 +- .../aui-tpl-snippets-select.js | 5 +++- .../aui-tpl-snippets-textarea-debug.js | 4 +-- .../aui-tpl-snippets-textarea-min.js | 2 +- .../aui-tpl-snippets-textarea.js | 4 +-- build/aui-tpl-snippets/aui-tpl-snippets.js | 27 ++++++++++++++----- build/aui/aui-min.js | 2 +- build/aui/aui.js | 2 +- 20 files changed, 92 insertions(+), 31 deletions(-) create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js create mode 100644 build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index 66c1093a7c6..1ec3eaa7109 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -75,7 +75,7 @@ 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, - 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-checkbox': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index 2cb24dbd0ab..54a53291031 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,3 +1,3 @@ -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                            ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index 66c1093a7c6..1ec3eaa7109 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -75,7 +75,7 @@ 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, - 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-checkbox': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js new file mode 100644 index 00000000000..0f72a64379d --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js @@ -0,0 +1,12 @@ +AUI.add('aui-tpl-snippets-checkbox', function(A) { +A.Template.register( + 'checkbox', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js new file mode 100644 index 00000000000..5318b1741e6 --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js @@ -0,0 +1 @@ +AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js new file mode 100644 index 00000000000..0f72a64379d --- /dev/null +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js @@ -0,0 +1,12 @@ +AUI.add('aui-tpl-snippets-checkbox', function(A) { +A.Template.register( + 'checkbox', + [ + '', + '', + '', + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js index 38a2693205c..048d0a266df 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js @@ -19,7 +19,10 @@ AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', [ - '', '', '', '', @@ -33,9 +36,9 @@ A.Template.register( 'input', [ '', - '', + '', '', - '' + '' ] ); @@ -45,14 +48,26 @@ A.Template.register( 'textarea', [ '', - '', + '', '', - '' + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +AUI.add('aui-tpl-snippets-checkbox', function(A) { +A.Template.register( + 'checkbox', + [ + '', + '', + '', + '' ] ); }, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js index 4de1187f4a4..d607d1fd5d5 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js @@ -3,9 +3,9 @@ A.Template.register( 'input', [ '', - '', + '', '', - '' + '' ] ); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js index d27d7ded79b..1fde0a17d46 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input.js b/build/aui-tpl-snippets/aui-tpl-snippets-input.js index 4de1187f4a4..d607d1fd5d5 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input.js @@ -3,9 +3,9 @@ A.Template.register( 'input', [ '', - '', + '', '', - '' + '' ] ); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-min.js index e4853dcb575..4cd399168a9 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js index bd333cf9c5d..a3641c84d38 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js @@ -2,7 +2,10 @@ AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', [ - '', '', '', '', diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js index e6b8afaf16e..f30b769b0ea 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select.js b/build/aui-tpl-snippets/aui-tpl-snippets-select.js index bd333cf9c5d..a3641c84d38 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select.js @@ -2,7 +2,10 @@ AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', [ - '', '', '', '', diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js index 837cb9d47fe..e507f215493 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js @@ -3,9 +3,9 @@ A.Template.register( 'textarea', [ '', - '', + '', '', - '' + '' ] ); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js index e090652732f..4429d72bf1a 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js index 837cb9d47fe..e507f215493 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js @@ -3,9 +3,9 @@ A.Template.register( 'textarea', [ '', - '', + '', '', - '' + '' ] ); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets.js b/build/aui-tpl-snippets/aui-tpl-snippets.js index 38a2693205c..048d0a266df 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets.js @@ -19,7 +19,10 @@ AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', [ - '', '', '', '', @@ -33,9 +36,9 @@ A.Template.register( 'input', [ '', - '', + '', '', - '' + '' ] ); @@ -45,14 +48,26 @@ A.Template.register( 'textarea', [ '', - '', + '', '', - '' + '' + ] +); + +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +AUI.add('aui-tpl-snippets-checkbox', function(A) { +A.Template.register( + 'checkbox', + [ + '', + '', + '', + '' ] ); }, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}); diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index ba413aa62b9..35a93f0eaf4 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,6 +10,6 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ }};b.Queue=t;YUI.Env._loaderQueue=YUI.Env._loaderQueue||new t();var m="__",p=Object.prototype.hasOwnProperty,l=b.Lang.isObject;b.cached=function(x,v,w){v||(v={});return function(y){var z=arguments.length>1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-aria":{requires:["aui-base","plugin"],skinnable:false},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,requires:["classnamemanager"],condition:{trigger:"classnamemanager",test:function(){return true;}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                            ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); diff --git a/build/aui/aui.js b/build/aui/aui.js index d27dce4c2f7..e7279abae89 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4789,7 +4789,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-textboxlist': {skinnable:true, requires:['anim-node-plugin','aui-autocomplete','node-focusmanager']}, 'aui-toolbar': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','widget-parent']}, 'aui-tooltip': {skinnable:true, requires:['aui-overlay-context-panel']}, - 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea'], skinnable:false}, + 'aui-tpl-snippets': {submodules: {'aui-tpl-snippets-checkbox': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-textarea': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-input': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-select': {skinnable:false, requires:['aui-tpl-snippets-base']}, 'aui-tpl-snippets-base': {skinnable:false, requires:['aui-template']} }, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}, 'aui-tree': {submodules: {'aui-tree-view': {skinnable:true, requires:['aui-tree-node','dd-drag','dd-drop','dd-proxy']}, 'aui-tree-node': {skinnable:false, requires:['aui-tree-data','aui-io','json','querystring-stringify']}, 'aui-tree-data': {skinnable:false, requires:['aui-base']} }, use:['aui-tree-data', 'aui-tree-node', 'aui-tree-view'], skinnable:true}, 'aui-video': {skinnable:true, requires:['aui-base','querystring-stringify-simple']}, 'aui-viewport': {skinnable:false, requires:['aui-base']} From e08e536165f40b3c7285d9f69a667a59af906ce8 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Wed, 17 Aug 2011 20:13:59 -0300 Subject: [PATCH 104/132] AUI-489 Fixing submodules --- lib/ace | 1 + 1 file changed, 1 insertion(+) create mode 160000 lib/ace diff --git a/lib/ace b/lib/ace new file mode 160000 index 00000000000..9e84157aa8c --- /dev/null +++ b/lib/ace @@ -0,0 +1 @@ +Subproject commit 9e84157aa8c06e7dc0b12abca5a3323a0c0b8e3e From b6ba9894a5a814a0e3cdd7e04c1f4c08a52ad474 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Wed, 17 Aug 2011 22:00:58 -0700 Subject: [PATCH 105/132] AUI-492 - TaskManager will not initialize if clearInterval is called before any tasks are added --- build/aui-task-manager/aui-task-manager-debug.js | 4 +++- build/aui-task-manager/aui-task-manager-min.js | 2 +- build/aui-task-manager/aui-task-manager.js | 4 +++- src/aui-task-manager/js/aui-task-manager.js | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/build/aui-task-manager/aui-task-manager-debug.js b/build/aui-task-manager/aui-task-manager-debug.js index 105ec2461b9..dce66740473 100644 --- a/build/aui-task-manager/aui-task-manager-debug.js +++ b/build/aui-task-manager/aui-task-manager-debug.js @@ -82,7 +82,9 @@ var TaskManager = { var task = tasks[id]; - instance._taskLength -= 1; + if (instance._taskLength) { + instance._taskLength -= 1; + } instance._lazyDestroy(); diff --git a/build/aui-task-manager/aui-task-manager-min.js b/build/aui-task-manager/aui-task-manager-min.js index 3620240eba1..461f24724ac 100644 --- a/build/aui-task-manager/aui-task-manager-min.js +++ b/build/aui-task-manager/aui-task-manager-min.js @@ -1 +1 @@ -AUI.add("aui-task-manager",function(b){var e=b.Lang,c=e.now,d=b.Array;var a={clearInterval:function(g){var f=a;f.unregister(true,g);},clearTimeout:function(g){var f=a;f.unregister(false,g);},intervalTime:function(g){var f=this;if(arguments.length){f._INTERVAL=g;}return f._INTERVAL;},isRepeatable:function(g){var f=a;return g.repeats;},setTimeout:function(j,h,i){var f=a;var g=d(arguments,3,true);return f.register(false,j,h,i,g);},setInterval:function(j,h,i){var f=a;var g=d(arguments,3,true);return f.register(true,j,h,i,g);},register:function(g,k,i,j,h){var f=a;var l=(++b.Env._uidx);h=h||[];h.unshift(k,j);f._TASKS[l]=f._create(g,f._getNearestInterval(i),b.rbind.apply(b,h));f._taskLength+=1;f._lazyInit();return l;},run:function(g){var f=this;g.lastRunTime=c();return g.fn();},unregister:function(g,j){var f=a;var i=f._TASKS;var h=i[j];f._taskLength-=1;f._lazyDestroy();return h&&h.repeats===g&&delete i[j];},_create:function(g,h,i){var f=a;return{fn:i,lastRunTime:c(),next:h,repeats:g,timeout:h};},_decrementNextRunTime:function(g){var f=a;return g.next-=c()-g.lastRunTime;},_getNearestInterval:function(h){var f=a;var g=f._INTERVAL;var j=h%g;var i;if(j Date: Thu, 18 Aug 2011 07:17:53 -0700 Subject: [PATCH 106/132] AUI-492 - Removing length tracking, checking object size works fine --- build/aui-task-manager/aui-task-manager-debug.js | 14 ++++---------- build/aui-task-manager/aui-task-manager-min.js | 2 +- build/aui-task-manager/aui-task-manager.js | 14 ++++---------- src/aui-task-manager/js/aui-task-manager.js | 14 ++++---------- 4 files changed, 13 insertions(+), 31 deletions(-) diff --git a/build/aui-task-manager/aui-task-manager-debug.js b/build/aui-task-manager/aui-task-manager-debug.js index dce66740473..22c44978777 100644 --- a/build/aui-task-manager/aui-task-manager-debug.js +++ b/build/aui-task-manager/aui-task-manager-debug.js @@ -1,6 +1,7 @@ AUI.add('aui-task-manager', function(A) { var Lang = A.Lang, now = Lang.now, + isEmpty = A.Object.isEmpty, AArray = A.Array; @@ -60,8 +61,6 @@ var TaskManager = { instance._TASKS[id] = instance._create(repeats, instance._getNearestInterval(ms), A.rbind.apply(A, args)); - instance._taskLength += 1; - instance._lazyInit(); return id; @@ -82,10 +81,6 @@ var TaskManager = { var task = tasks[id]; - if (instance._taskLength) { - instance._taskLength -= 1; - } - instance._lazyDestroy(); return task && task.repeats === repeats && delete tasks[id]; @@ -131,7 +126,7 @@ var TaskManager = { _lazyDestroy: function() { var instance = TaskManager; - if (instance._initialized && !instance._taskLength) { + if (instance._initialized && isEmpty(instance._TASKS)) { clearTimeout(instance._globalIntervalId); instance._initialized = false; @@ -141,7 +136,7 @@ var TaskManager = { _lazyInit: function() { var instance = TaskManager; - if (!instance._initialized && instance._taskLength) { + if (!instance._initialized && !isEmpty(instance._TASKS)) { instance._lastRunTime = now(); instance._globalIntervalId = setTimeout(instance._runner, instance._INTERVAL); @@ -203,8 +198,7 @@ var TaskManager = { _lastRunTime: 0, _globalIntervalId: 0, - _initialized: false, - _taskLength: 0 + _initialized: false }; A.clearInterval = TaskManager.clearInterval; diff --git a/build/aui-task-manager/aui-task-manager-min.js b/build/aui-task-manager/aui-task-manager-min.js index 461f24724ac..672be922c1c 100644 --- a/build/aui-task-manager/aui-task-manager-min.js +++ b/build/aui-task-manager/aui-task-manager-min.js @@ -1 +1 @@ -AUI.add("aui-task-manager",function(b){var e=b.Lang,c=e.now,d=b.Array;var a={clearInterval:function(g){var f=a;f.unregister(true,g);},clearTimeout:function(g){var f=a;f.unregister(false,g);},intervalTime:function(g){var f=this;if(arguments.length){f._INTERVAL=g;}return f._INTERVAL;},isRepeatable:function(g){var f=a;return g.repeats;},setTimeout:function(j,h,i){var f=a;var g=d(arguments,3,true);return f.register(false,j,h,i,g);},setInterval:function(j,h,i){var f=a;var g=d(arguments,3,true);return f.register(true,j,h,i,g);},register:function(g,k,i,j,h){var f=a;var l=(++b.Env._uidx);h=h||[];h.unshift(k,j);f._TASKS[l]=f._create(g,f._getNearestInterval(i),b.rbind.apply(b,h));f._taskLength+=1;f._lazyInit();return l;},run:function(g){var f=this;g.lastRunTime=c();return g.fn();},unregister:function(g,j){var f=a;var i=f._TASKS;var h=i[j];if(f._taskLength){f._taskLength-=1;}f._lazyDestroy();return h&&h.repeats===g&&delete i[j];},_create:function(g,h,i){var f=a;return{fn:i,lastRunTime:c(),next:h,repeats:g,timeout:h};},_decrementNextRunTime:function(g){var f=a;return g.next-=c()-g.lastRunTime;},_getNearestInterval:function(h){var f=a;var g=f._INTERVAL;var j=h%g;var i;if(j Date: Thu, 18 Aug 2011 14:57:08 -0300 Subject: [PATCH 107/132] AUI-489 Sync with latest Ace (commit 9e84157) - Manual --- ...uild.aui-ace-editor-cockpit-uncompressed.properties | 10 ---------- .../build.aui-ace-editor-cockpit-uncompressed.xml | 7 ------- .../build.aui-ace-editor-cockpit.properties | 10 ---------- src/aui-ace-editor/build.aui-ace-editor-cockpit.xml | 7 ------- src/aui-ace-editor/build.properties | 4 ++-- 5 files changed, 2 insertions(+), 36 deletions(-) delete mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties delete mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml delete mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit.properties delete mode 100644 src/aui-ace-editor/build.aui-ace-editor-cockpit.xml diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties b/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties deleted file mode 100644 index a0cbdc4cf06..00000000000 --- a/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Build Properties - -srcdir=../.. -global.src.component=${srcdir}/src/aui-ace-editor -global.build.component=${srcdir}/build/aui-ace-editor - -component=aui-ace-editor-cockpit-uncompressed -component.jsfiles=${basedir}/../../lib/ace/build/src/cockpit-uncompressed.js -component.requires=aui-ace-editor-base -component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml b/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml deleted file mode 100644 index 8d708b40c82..00000000000 --- a/src/aui-ace-editor/build.aui-ace-editor-cockpit-uncompressed.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit.properties b/src/aui-ace-editor/build.aui-ace-editor-cockpit.properties deleted file mode 100644 index 7aa398f08bb..00000000000 --- a/src/aui-ace-editor/build.aui-ace-editor-cockpit.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Build Properties - -srcdir=../.. -global.src.component=${srcdir}/src/aui-ace-editor -global.build.component=${srcdir}/build/aui-ace-editor - -component=aui-ace-editor-cockpit -component.jsfiles=${basedir}/../../lib/ace/build/src/cockpit.js -component.requires=aui-ace-editor-base -component.skinnable=false \ No newline at end of file diff --git a/src/aui-ace-editor/build.aui-ace-editor-cockpit.xml b/src/aui-ace-editor/build.aui-ace-editor-cockpit.xml deleted file mode 100644 index 1f1ea623e20..00000000000 --- a/src/aui-ace-editor/build.aui-ace-editor-cockpit.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/aui-ace-editor/build.properties b/src/aui-ace-editor/build.properties index d4ac339ba48..b3b6bd290e4 100644 --- a/src/aui-ace-editor/build.properties +++ b/src/aui-ace-editor/build.properties @@ -1,8 +1,8 @@ #Wed Aug 17 19:33:51 BRT 2011 srcdir=../../ global.build.component=${srcdir}/build/aui-ace-editor -component.rollup.modules.buildfiles=build.aui-ace-editor-base.xml,build.aui-ace-editor-mode-xml.xml,build.aui-ace-editor-mode-php.xml,build.aui-ace-editor-theme-solarized_dark.xml,build.aui-ace-editor-mode-ocaml.xml,build.aui-ace-editor-theme-idle_fingers.xml,build.aui-ace-editor-mode-html.xml,build.aui-ace-editor-mode-coffee.xml,build.aui-ace-editor-worker-css.xml,build.aui-ace-editor-mode-ruby.xml,build.aui-ace-editor-theme-monokai.xml,build.aui-ace-editor-mode-javascript.xml,build.aui-ace-editor-keybinding-emacs.xml,build.aui-ace-editor-mode-python.xml,build.aui-ace-editor-theme-dawn.xml,build.aui-ace-editor-theme-vibrant_ink.xml,build.aui-ace-editor-mode-java.xml,build.aui-ace-editor-mode-svg.xml,build.aui-ace-editor-theme-merbivore.xml,build.aui-ace-editor-theme-mono_industrial.xml,build.aui-ace-editor-theme-solarized_light.xml,build.aui-ace-editor-mode-json.xml,build.aui-ace-editor-mode-textile.xml,build.aui-ace-editor-mode-perl.xml,build.aui-ace-editor-mode-scad.xml,build.aui-ace-editor-theme-kr_theme.xml,build.aui-ace-editor-mode-c_cpp.xml,build.aui-ace-editor-cockpit.xml,build.aui-ace-editor-theme-clouds.xml,build.aui-ace-editor-mode-scss.xml,build.aui-ace-editor-worker-coffee.xml,build.aui-ace-editor-theme-clouds_midnight.xml,build.aui-ace-editor-theme-eclipse.xml,build.aui-ace-editor-theme-cobalt.xml,build.aui-ace-editor-theme-crimson_editor.xml,build.aui-ace-editor-cockpit-uncompressed.xml,build.aui-ace-editor-worker-javascript.xml,build.aui-ace-editor-theme-pastel_on_dark.xml,build.aui-ace-editor-mode-css.xml,build.aui-ace-editor-mode-csharp.xml,build.aui-ace-editor-mode-scala.xml,build.aui-ace-editor-theme-merbivore_soft.xml,build.aui-ace-editor-mode-clojure.xml,build.aui-ace-editor-keybinding-vim.xml,build.aui-ace-editor-theme-twilight.xml,build.aui-ace-editor-mode-groovy.xml,build.aui-ace-editor-theme-textmate.xml +component.rollup.modules.buildfiles=build.aui-ace-editor-base.xml,build.aui-ace-editor-mode-xml.xml,build.aui-ace-editor-mode-php.xml,build.aui-ace-editor-theme-solarized_dark.xml,build.aui-ace-editor-mode-ocaml.xml,build.aui-ace-editor-theme-idle_fingers.xml,build.aui-ace-editor-mode-html.xml,build.aui-ace-editor-mode-coffee.xml,build.aui-ace-editor-worker-css.xml,build.aui-ace-editor-mode-ruby.xml,build.aui-ace-editor-theme-monokai.xml,build.aui-ace-editor-mode-javascript.xml,build.aui-ace-editor-keybinding-emacs.xml,build.aui-ace-editor-mode-python.xml,build.aui-ace-editor-theme-dawn.xml,build.aui-ace-editor-theme-vibrant_ink.xml,build.aui-ace-editor-mode-java.xml,build.aui-ace-editor-mode-svg.xml,build.aui-ace-editor-theme-merbivore.xml,build.aui-ace-editor-theme-mono_industrial.xml,build.aui-ace-editor-theme-solarized_light.xml,build.aui-ace-editor-mode-json.xml,build.aui-ace-editor-mode-textile.xml,build.aui-ace-editor-mode-perl.xml,build.aui-ace-editor-mode-scad.xml,build.aui-ace-editor-theme-kr_theme.xml,build.aui-ace-editor-mode-c_cpp.xml,build.aui-ace-editor-theme-clouds.xml,build.aui-ace-editor-mode-scss.xml,build.aui-ace-editor-worker-coffee.xml,build.aui-ace-editor-theme-clouds_midnight.xml,build.aui-ace-editor-theme-eclipse.xml,build.aui-ace-editor-theme-cobalt.xml,build.aui-ace-editor-theme-crimson_editor.xml,build.aui-ace-editor-worker-javascript.xml,build.aui-ace-editor-theme-pastel_on_dark.xml,build.aui-ace-editor-mode-css.xml,build.aui-ace-editor-mode-csharp.xml,build.aui-ace-editor-mode-scala.xml,build.aui-ace-editor-theme-merbivore_soft.xml,build.aui-ace-editor-mode-clojure.xml,build.aui-ace-editor-keybinding-vim.xml,build.aui-ace-editor-theme-twilight.xml,build.aui-ace-editor-mode-groovy.xml,build.aui-ace-editor-theme-textmate.xml component.rollup=true component=aui-ace-editor component.skinnable=false -component.use=aui-ace-editor-base,aui-ace-editor-mode-xml,aui-ace-editor-mode-php,aui-ace-editor-theme-solarized_dark,aui-ace-editor-mode-ocaml,aui-ace-editor-theme-idle_fingers,aui-ace-editor-mode-html,aui-ace-editor-mode-coffee,aui-ace-editor-worker-css,aui-ace-editor-mode-ruby,aui-ace-editor-theme-monokai,aui-ace-editor-mode-javascript,aui-ace-editor-keybinding-emacs,aui-ace-editor-mode-python,aui-ace-editor-theme-dawn,aui-ace-editor-theme-vibrant_ink,aui-ace-editor-mode-java,aui-ace-editor-mode-svg,aui-ace-editor-theme-merbivore,aui-ace-editor-theme-mono_industrial,aui-ace-editor-theme-solarized_light,aui-ace-editor-mode-json,aui-ace-editor-mode-textile,aui-ace-editor-mode-perl,aui-ace-editor-mode-scad,aui-ace-editor-theme-kr_theme,aui-ace-editor-mode-c_cpp,aui-ace-editor-cockpit,aui-ace-editor-theme-clouds,aui-ace-editor-mode-scss,aui-ace-editor-worker-coffee,aui-ace-editor-theme-clouds_midnight,aui-ace-editor-theme-eclipse,aui-ace-editor-theme-cobalt,aui-ace-editor-theme-crimson_editor,aui-ace-editor-cockpit-uncompressed,aui-ace-editor-worker-javascript,aui-ace-editor-theme-pastel_on_dark,aui-ace-editor-mode-css,aui-ace-editor-mode-csharp,aui-ace-editor-mode-scala,aui-ace-editor-theme-merbivore_soft,aui-ace-editor-mode-clojure,aui-ace-editor-keybinding-vim,aui-ace-editor-theme-twilight,aui-ace-editor-mode-groovy,aui-ace-editor-theme-textmate +component.use=aui-ace-editor-base,aui-ace-editor-mode-xml,aui-ace-editor-mode-php,aui-ace-editor-theme-solarized_dark,aui-ace-editor-mode-ocaml,aui-ace-editor-theme-idle_fingers,aui-ace-editor-mode-html,aui-ace-editor-mode-coffee,aui-ace-editor-worker-css,aui-ace-editor-mode-ruby,aui-ace-editor-theme-monokai,aui-ace-editor-mode-javascript,aui-ace-editor-keybinding-emacs,aui-ace-editor-mode-python,aui-ace-editor-theme-dawn,aui-ace-editor-theme-vibrant_ink,aui-ace-editor-mode-java,aui-ace-editor-mode-svg,aui-ace-editor-theme-merbivore,aui-ace-editor-theme-mono_industrial,aui-ace-editor-theme-solarized_light,aui-ace-editor-mode-json,aui-ace-editor-mode-textile,aui-ace-editor-mode-perl,aui-ace-editor-mode-scad,aui-ace-editor-theme-kr_theme,aui-ace-editor-mode-c_cpp,aui-ace-editor-theme-clouds,aui-ace-editor-mode-scss,aui-ace-editor-worker-coffee,aui-ace-editor-theme-clouds_midnight,aui-ace-editor-theme-eclipse,aui-ace-editor-theme-cobalt,aui-ace-editor-theme-crimson_editor,aui-ace-editor-worker-javascript,aui-ace-editor-theme-pastel_on_dark,aui-ace-editor-mode-css,aui-ace-editor-mode-csharp,aui-ace-editor-mode-scala,aui-ace-editor-theme-merbivore_soft,aui-ace-editor-mode-clojure,aui-ace-editor-keybinding-vim,aui-ace-editor-theme-twilight,aui-ace-editor-mode-groovy,aui-ace-editor-theme-textmate From 527b17ae3a820844f93941bf0a28b4ea4e149f3e Mon Sep 17 00:00:00 2001 From: "bruno.basto" Date: Thu, 18 Aug 2011 14:57:49 -0300 Subject: [PATCH 108/132] AUI-489 Add setMode / getMode methods to the Ace wrapper --- demos/ace-editor/index.html | 11 +++----- src/aui-ace-editor/js/aui-ace-editor-base.js | 28 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/demos/ace-editor/index.html b/demos/ace-editor/index.html index 65c5e95d56c..6bccc8e503d 100644 --- a/demos/ace-editor/index.html +++ b/demos/ace-editor/index.html @@ -40,14 +40,9 @@

                                                                            Alloy Ace Editor Wrapper

                                                                            // editor.getEditor().setTheme('ace/theme/cobalt'); - var JavaScriptMode = require("ace/mode/javascript").Mode; - editor.getSession().setMode(new JavaScriptMode()); - - // var JSONMode = require("ace/mode/json").Mode; - // editor.getSession().setMode(new JSONMode()); - - // var XMLMode = require("ace/mode/xml").Mode; - // editor.getSession().setMode(new XMLMode()); + editor.set('mode', 'javascript'); + // editor.set('mode', 'json'); + // editor.set('mode', 'xml'); // editor.set('value', 'Change the original content'); }); diff --git a/src/aui-ace-editor/js/aui-ace-editor-base.js b/src/aui-ace-editor/js/aui-ace-editor-base.js index 72ef3f92af0..335fe0b1fd4 100644 --- a/src/aui-ace-editor/js/aui-ace-editor-base.js +++ b/src/aui-ace-editor/js/aui-ace-editor-base.js @@ -27,6 +27,13 @@ var AceEditor = A.Component.create( value: true }, + mode: { + lazyAdd: false, + getter: '_getMode', + setter: '_setMode', + value: EMPTY_STR + }, + readOnly: { lazyAdd: false, getter: '_getReadOnly', @@ -121,6 +128,12 @@ var AceEditor = A.Component.create( return instance.getEditor().getHighlightActiveLine(); }, + _getMode: function() { + var instance = this; + + return instance.getSession().getMode(); + }, + _getReadOnly: function() { var instance = this; @@ -163,6 +176,21 @@ var AceEditor = A.Component.create( instance.getEditor().setHighlightActiveLine(value); }, + _setMode: function(value) { + var instance = this; + + if (value) { + var Mode = require('ace/mode/' + value).Mode; + + if (Mode !== undefined) { + instance.getSession().setMode(new Mode()); + } + else { + throw new Error('The mode \'' + value + '\' is not available.'); + } + } + }, + _setReadOnly: function(value) { var instance = this; From be94061ea2d3528b936abe6b15b278d3bb921df0 Mon Sep 17 00:00:00 2001 From: "bruno.basto" Date: Thu, 18 Aug 2011 14:58:05 -0300 Subject: [PATCH 109/132] AUI-489 Build files --- .../aui-ace-editor-base-debug.js | 30 +- .../aui-ace-editor/aui-ace-editor-base-min.js | 38 +- build/aui-ace-editor/aui-ace-editor-base.js | 30 +- build/aui-ace-editor/aui-ace-editor-debug.js | 2551 +---------------- build/aui-ace-editor/aui-ace-editor-min.js | 128 +- .../aui-ace-editor-mode-html-debug.js | 2 +- .../aui-ace-editor-mode-html-min.js | 2 +- .../aui-ace-editor-mode-html.js | 2 +- .../aui-ace-editor-worker-coffee-debug.js | 2 +- .../aui-ace-editor-worker-coffee-min.js | 20 +- .../aui-ace-editor-worker-coffee.js | 2 +- .../aui-ace-editor-worker-css-debug.js | 2 +- .../aui-ace-editor-worker-css-min.js | 12 +- .../aui-ace-editor-worker-css.js | 2 +- .../aui-ace-editor-worker-javascript-debug.js | 2 +- .../aui-ace-editor-worker-javascript-min.js | 37 +- .../aui-ace-editor-worker-javascript.js | 2 +- build/aui-ace-editor/aui-ace-editor.js | 2551 +---------------- build/aui-base/aui-base-debug.js | 16 +- build/aui-base/aui-base-min.js | 6 +- build/aui-base/aui-base.js | 16 +- build/aui/aui-min.js | 6 +- build/aui/aui.js | 16 +- 23 files changed, 277 insertions(+), 5198 deletions(-) diff --git a/build/aui-ace-editor/aui-ace-editor-base-debug.js b/build/aui-ace-editor/aui-ace-editor-base-debug.js index b5d3e3f03ab..cc72b232353 100644 --- a/build/aui-ace-editor/aui-ace-editor-base-debug.js +++ b/build/aui-ace-editor/aui-ace-editor-base-debug.js @@ -1,5 +1,5 @@ AUI.add('aui-ace-editor-base', function(A) { -(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                            "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                            Sub-Commands of "+e.name+"

                                                                            "),d.push("

                                                                            "+e.description+"

                                                                            ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                            Commands starting with '"+b.search+"':

                                                                            ")):d.push("

                                                                            Available Commands:

                                                                            ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                            '+e.name+""+e.description+"
                                                                            ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                            ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                            "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                            "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                            ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                            ¦
                                                                            ");c.push("

                                                                          "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function g(e){c(e),f||(f=!0,d()),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",g),b.removeListener(a,"losecapture",g),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}var f=!1;b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",g),b.addListener(a,"losecapture",g),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=0,e=function(a){a.wheelDelta!==undefined?(Math.abs(a.wheelDeltaY)>d&&(d=Math.abs(a.wheelDeltaY)),d>5e3?factor=400:factor=8,a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/factor,a.wheelY=-a.wheelDeltaY/factor):(a.wheelX=0,a.wheelY=-a.wheelDelta/factor)):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",e),b.addListener(a,"mousewheel",e)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function v(){return document.activeElement===c}function m(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!v())return!1}}i=!1,j=!1,c.value=g,l()}function l(){try{c.select()}catch(a){}}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data)},0)},o=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){!h||b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);(c.value.charCodeAt(0)|0)<129||(h?q():p())})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),q=h}var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q=g;if(p&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused()))this.editor.focus();else{var r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}p||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),q==g?D(f):q==i&&B(),m.$clickSelection=null,q=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(q==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){q=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){q=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}q==i?F():q==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push("
                                                                          "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/build/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/build_support/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/demo/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";\n\n@import url("booya.css") print,screen;\n@import "whatup.css" screen;\n@import "wicked.css";\n\n@namespace "http://www.w3.org/1999/xhtml";\n@namespace svg "http://www.w3.org/2000/svg";\n\nli.inline #foo {\n background: url("something.png");\n display: inline;\n padding-left: 3px;\n padding-right: 7px;\n border-right: 1px dotted #066;\n}\n\nli.last.first {\n display: inline;\n padding-left: 3px !important;\n padding-right: 3px;\n border-right: 0px;\n}\n\n@media print {\n li.inline {\n color: black;\n }\n\n\n@charset "UTF-8"; \n\n@page {\n margin: 10%;\n counter-increment: page;\n\n @top-center {\n font-family: sans-serif;\n font-weight: bold;\n font-size: 2em;\n content: counter(page);\n }\n}'),define("text/deps/requirejs/dist/ie.css",[],"\nbody .sect {\n display: none;\n}\n\n\n#content ul.index {\n list-style: none;\n}\n"),define("text/deps/requirejs/dist/main.css",[],'@font-face {\n font-family: Inconsolata;\n src: url("fonts/Inconsolata.ttf");\n}\n\n* {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-size: 12px;\n line-height: 21px;\n background-color: #fff;\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n color: #0a0a0a;\n}\n\n#wrapper {\n margin: 0;\n}\n\n#grid {\n position: fixed;\n top: 0;\n left: 0;\n width: 796px;\n background-image: url("i/grid.png");\n z-index: 100;\n}\n\npre {\n line-height: 18px;\n font-size: 13px;\n margin: 7px 0 21px;\n padding: 5px 10px;\n overflow: auto;\n background-color: #fafafa;\n border: 1px solid #e6e6e6;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n}\n\n/*\n typography stuff\n*/\n.mono {\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n.sans {\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n}\n\n.serif {\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\na {\n color: #2e87dd;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/*\n navigation\n*/\n\n#navBg {\n background-color: #f2f2f2;\n background-image: url("i/shadow.png");\n background-position: right top;\n background-repeat: repeat-y;\n width: 220px;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 0;\n}\n\n#nav {\n background-image: url("i/logo.png");\n background-repeat: no-repeat;\n background-position: center 10px;\n width: 220px;\n float: left;\n margin: 0;\n padding: 150px 20px 0;\n font-size: 13px;\n text-shadow: 1px 1px #fff;\n position: relative;\n z-index: 1;\n}\n\n#nav .homeImageLink {\n position: absolute;\n display: block;\n top: 10px;\n left: 0;\n width: 220px;\n height: 138px;\n}\n#nav ul {\n list-style-type:none;\n padding: 0;\n margin: 21px 0 0 0;\n}\n\n#nav ul li {\n width: 100%;\n}\n\n#nav ul li.version {\n text-align: center;\n color: #4d4d4d;\n}\n\n#nav h1 {\n color: #4d4d4d;\n text-align: center;\n font-size: 15px;\n font-weight: normal;\n text-transform: uppercase;\n letter-spacing: 3px;\n}\n\nspan.spacer {\n color: #2e87dd;\n margin: 0 3px 0 5px;\n background-image: url("i/dot.png");\n background-repeat: repeat-x;\n background-position: left 13px;\n}\n\n/*\n icons\n*/\n\nspan.icon {\n width: 16px;\n display: block;\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n}\n\nspan.icon.home {\n background-position: center 5px;\n}\n\nspan.icon.start {\n background-position: center -27px;\n}\n\nspan.icon.download {\n background-position: center -59px;\n}\n\nspan.icon.api {\n background-position: center -89px;\n}\n\nspan.icon.optimize {\n background-position: center -119px;\n}\n\nspan.icon.script {\n background-position: center -150px;\n}\n\nspan.icon.question {\n background-position: center -182px;\n}\n\nspan.icon.requirement {\n background-position: center -214px;\n}\n\nspan.icon.history {\n background-position: center -247px;\n}\n\nspan.icon.help {\n background-position: center -279px;\n}\n\nspan.icon.blog {\n background-position: center -311px;\n}\n\nspan.icon.twitter {\n background-position: center -343px;\n}\n\nspan.icon.git {\n background-position: center -375px;\n}\n\nspan.icon.fork {\n background-position: center -407px;\n}\n\n/*\n content\n*/\n\n#content {\n margin: 0 0 0 220px;\n padding: 0 20px;\n background-color: #fff;\n font-family: "Georgia", Times New Roman, Times, serif;\n position: relative;\n}\n\n#content p {\n padding: 7px 0;\n color: #333;\n font-size: 14px;\n}\n\n#content h1,\n#content h2,\n#content h3,\n#content h4,\n#content h5 {\n font-weight: normal;\n padding: 21px 0 7px;\n}\n\n#content h1 {\n font-size: 21px;\n}\n\n#content h2 {\n padding: 0 0 18px 0;\n margin: 0 0 7px 0;\n font-weight: normal;\n font-size: 21px;\n line-height: 24px;\n text-align: center;\n color: #222;\n background-image: url("i/arrow.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n text-transform: uppercase;\n letter-spacing: 2px;\n text-shadow: 1px 1px 0 #fff;\n}\n\n#content h2 a {\n color: #222;\n}\n\n#content h2 a:hover,\n#content h3 a:hover,\n#content h4 a:hover {\n text-decoration: none;\n}\n\nspan.sectionMark {\n display: block;\n color: #aaa;\n text-shadow: 1px 1px 0 #fff;\n font-size: 15px;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content h3 {\n font-size: 17px;\n}\n\n#content h4 {\n padding-top: 0;\n font-size: 15px;\n}\n\n#content h5 {\n font-size: 10px;\n}\n\n#content ul {\n list-style-type: disc;\n}\n\n#content ul,\n#content ol {\n /* border-left: 1px solid #333; */\n color: #333;\n font-size: 14px;\n list-style-position: outside;\n margin: 7px 0 21px 0;\n /* padding: 0 0 0 28px; */\n}\n\n#content ul {\n font-style: italic;\n}\n\n#content ol {\n border: none;\n list-style-position: inside;\n padding: 0;\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\n#content ul ul,\n#content ol ol {\n border: none;\n padding: 0;\n margin: 0 0 0 28px;\n}\n\n#content .section {\n padding: 48px 0;\n background-image: url("i/line.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n width: 576px;\n margin: 0 auto;\n}\n\n#content .section .subSection {\n padding: 0 0 0 48px;\n margin: 28px 0 0 0;\n display: block;\n border-left: 2px solid #ddd;\n}\n\n#content .section:last-child {\n background-image: none;\n}\n\n#content .note {\n color: #222;\n background-color: #ffff99;\n padding: 5px 10px;\n margin: 7px 0;\n display: inline-block;\n}\n\n/*\n page directory\n*/\n\n#content #directory.section {\n background-color: #fff;\n width: 576px;\n}\n\n#content #directory.section ul ul ul {\n margin: 0 0 0 48px;\n}\n\n#content #directory.section ul ul li {\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n background-position: left -437px;\n padding-left: 18px;\n font-style: normal;\n}\n\n#content #directory h1 {\n padding: 0 0 65px 0;\n margin: 0 0 14px 0;\n font-weight: normal;\n font-size: 21px;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n color: #222;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n\n#content ul.index {\n padding: 0;\n background-color: transparent;\n border: none;\n -moz-box-shadow: none;\n font-style: normal;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content ul.index li {\n width: 100%;\n font-size: 15px;\n color: #333;\n padding: 0 0 7px 0;\n}\n\n\n/*\n intro page specific\n*/\n\n#content #intro {\n width: 576px;\n margin: 0 auto;\n padding: 21px 0;\n}\n\n#content #intro p,\n#content #intro h1 {\n font-size: 19px;\n line-height: 28px;\n color: green;\n letter-spacing: 2px;\n padding: 0 0 28px 0;\n}\n\n#content #intro p:last-child,\n#content #intro h1:last-child {\n padding: 0;\n}\n\n#content #intro p a {\n color: green;\n text-decoration: underline;\n}\n\n/*\n download page\n*/\n\n#content h4 a.download {\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n background-color: #F2F2F2;\n background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%);\n background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2));\n background-position: 7px -58px, center center;\n background-repeat: no-repeat, no-repeat;\n border: 1px solid #CCCCCC;\n color: #333333;\n font-size: 12px;\n margin: 0 0 0 5px;\n padding: 0 10px 0 25px;\n text-shadow: 1px 1px 0 #FFFFFF;\n}\n\n/*\n footer\n*/\n#footer {\n color: #4d4d4d;\n padding: 65px 20px 20px;\n margin: 20px 0 0 220px;\n text-align: center;\n display: block;\n font-size: 13px;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center top;\n background-color: #fff;\n}\n\n#footer .line {\n display: block;\n}\n\n#footer .line a {\n color: #4d4d4d;\n text-decoration: underline;\n}\n\n/*\n Pygments manni style\n*/\n\ncode {background-color: #fafafa; color: #333;}\n\ncode .comment {color: green; font-style: italic}\ncode .comment.preproc {color: #099; font-style: normal}\ncode .comment.special {font-weight: bold}\n\ncode .keyword {color: #069; font-weight: bold}\ncode .keyword.pseudo {font-weight: normal}\ncode .keyword.type {color: #078}\n\ncode .operator {color: #555}\ncode .operator.word {color: #000; font-weight: bold}\n\ncode .name.builtin {color: #366}\ncode .name.function {color: #c0f}\ncode .name.class {color: #0a8; font-weight: bold}\ncode .name.namespace {color: #0cf; font-weight: bold}\ncode .name.exception {color: #c00; font-weight: bold}\ncode .name.variable {color: #033}\ncode .name.constant {color: #360}\ncode .name.label {color: #99f}\ncode .name.entity {color: #999; font-weight: bold}\ncode .name.attribute {color: #309}\ncode .name.tag {color: #309; font-weight: bold}\ncode .name.decorator {color: #99f}\n\ncode .string {color: #c30}\ncode .string.doc {font-style: italic}\ncode .string.interpol {color: #a00}\ncode .string.escape {color: #c30; font-weight: bold}\ncode .string.regex {color: #3aa}\ncode .string.symbol {color: #fc3}\ncode .string.other {color: #c30}\n\ncode .number {color: #f60}\n\n\n/*\n webkit scroll bars\n*/\n\npre::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\npre::-webkit-scrollbar-button:start:decrement,\npre::-webkit-scrollbar-button:end:increment {\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-button:vertical:increment,\npre::-webkit-scrollbar-button:horizontal:increment {\n background-color: transparent;\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-track-piece {\n -webkit-border-radius: 3px;\n}\n\npre::-webkit-scrollbar-thumb:vertical {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n\n}\n\npre::-webkit-scrollbar-thumb:horizontal {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n}\n\n/*\n hbox\n*/\n\n.hbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: horizontal;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: horizontal;\n\tbox-align: stretch;\n\n\twidth: 100%;\n}\n\n.hbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.vbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: vertical;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: vertical;\n\tbox-align: stretch;\n}\n\n.vbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.spacer {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.reverse {\n\t-webkit-box-direction: reverse;\n\t-moz-box-direction: reverse;\n\tbox-direction: reverse;\n}\n\n.boxFlex0 {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n}\n\n.boxFlex1, .boxFlex {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.boxFlex2 {\n\t-webkit-box-flex: 2;\n\t-moz-box-flex: 2;\n\tbox-flex: 2;\n}\n\n.boxGroup1 {\n\t-webkit-box-flex-group: 1;\n\t-moz-box-flex-group: 1;\n\tbox-flex-group: 1;\n}\n\n.boxGroup2 {\n\t-webkit-box-flex-group: 2;\n\t-moz-box-flex-group: 2;\n\tbox-flex-group: 2;\n}\n\n.start {\n\t-webkit-box-pack: start;\n\t-moz-box-pack: start;\n\tbox-pack: start;\n}\n\n.end {\n\t-webkit-box-pack: end;\n\t-moz-box-pack: end;\n\tbox-pack: end;\n}\n\n.center {\n\t-webkit-box-pack: center;\n\t-moz-box-pack: center;\n\tbox-pack: center;\n}\n\n/*\n clearfix\n*/\n\n.clearfix:after {\n\tcontent: ".";\n\tdisplay: block;\n\tclear: both;\n\tvisibility: hidden;\n\tline-height: 0;\n\theight: 0;\n}\n\nhtml[xmlns] .clearfix {\n\tdisplay: block;\n}\n\n* html .clearfix {\n\theight: 1%;\n}'),define("text/doc/site/iphone.css",[],"#wrapper {\n position:relative;\n overflow:hidden;\n}\n\n#wrapper .content .column1 {\n margin:0 16px 0 15px;\n}\n\n#header .content .signature {\n font-size:18px;\n bottom:0;\n}\n\nUL.menu-list LI {\n font-size:22px;\n}\n\nUL.menu-footer LI {\n font-size:22px;\n}\n\nPRE{\n font-size:22px;\n}\n"),define("text/doc/site/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/lib/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }\nbody { max-width: 60em; }\n.title { text-align: center; }\n.todo { color: red; }\n.done { color: green; }\n.tag { background-color:lightblue; font-weight:normal }\n.target { }\n.timestamp { color: grey }\n.timestamp-kwd { color: CadetBlue }\np.verse { margin-left: 3% }\npre {\n border: 1pt solid #AEBDCC;\n background-color: #F3F5F7;\n padding: 5pt;\n font-family: monospace;\n font-size: 90%;\n overflow:auto;\n}\npre.src {\n background-color: #eee; color: #112; border: 1px solid #000;\n}\ntable { border-collapse: collapse; }\ntd, th { vertical-align: top; }\ndt { font-weight: bold; }\ndiv.figure { padding: 0.5em; }\ndiv.figure p { text-align: center; }\n.linenr { font-size:smaller }\n.code-highlighted {background-color:#ffff00;}\n.org-info-js_info-navigation { border-style:none; }\n#org-info-js_console-label { font-size:10px; font-weight:bold;\n white-space:nowrap; }\n.org-info-js_search-highlight {background-color:#ffff00; color:#000000;\n font-weight:bold; }\n\nsup {\n vertical-align: baseline;\n position: relative;\n top: -0.5em;\n font-size: 80%;\n}\n\nsup a:link, sup a:visited {\n text-decoration: none;\n color: #c00;\n}\n\nsup a:before { content: "["; color: #999; }\nsup a:after { content: "]"; color: #999; }\n\nh1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }\n\n#postamble {\n color: #777;\n font-size: 90%;\n padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;\n margin-top: 2em;\n padding-left: 2em;\n padding-right: 2em;\n text-align: right;\n}\n\n#postamble p { margin: 0; }\n\n#footnotes { border-top: 1px solid #000; }\n\nh1 { font-size: 200% }\nh2 { font-size: 175% }\nh3 { font-size: 150% }\nh4 { font-size: 125% }\n\nh1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }\n\n@media print {\n html { font-size: 11pt; }\n}\n'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"\n#cockpitInput { padding-left: 16px; }\n\n.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }\n\n.cptCompletion { padding: 0; position: absolute; z-index: -1000; }\n.cptCompletion.VALID { background: #FFF; }\n.cptCompletion.INCOMPLETE { background: #DDD; }\n.cptCompletion.INVALID { background: #DDD; }\n.cptCompletion span { color: #FFF; }\n.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }\n.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }\nspan.cptPrompt { color: #66F; font-weight: bold; }\n\n\n.cptHints {\n color: #000;\n position: absolute;\n border: 1px solid rgba(230, 230, 230, 0.8);\n background: rgba(250, 250, 250, 0.8);\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-topright: 10px;\n border-top-left-radius: 10px; border-top-right-radius: 10px;\n z-index: 1000;\n padding: 8px;\n display: none;\n}\n\n.cptFocusPopup { display: block; }\n.cptFocusPopup.cptNoPopup { display: none; }\n\n.cptHints ul { margin: 0; padding: 0 15px; }\n\n.cptGt { font-weight: bold; font-size: 120%; }\n"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],"\n.cptRowIn {\n display: box; display: -moz-box; display: -webkit-box;\n box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;\n box-align: center; -moz-box-align: center; -webkit-box-align: center;\n color: #333;\n background-color: #EEE;\n width: 100%;\n font-family: consolas, courier, monospace;\n}\n.cptRowIn > * { padding-left: 2px; padding-right: 2px; }\n.cptRowIn > img { cursor: pointer; }\n.cptHover { display: none; }\n.cptRowIn:hover > .cptHover { display: block; }\n.cptRowIn:hover > .cptHover.cptHidden { display: none; }\n.cptOutTyped {\n box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;\n font-weight: bold; color: #000; font-size: 120%;\n}\n.cptRowOutput { padding-left: 10px; line-height: 1.2em; }\n.cptRowOutput strong,\n.cptRowOutput b,\n.cptRowOutput th,\n.cptRowOutput h1,\n.cptRowOutput h2,\n.cptRowOutput h3 { color: #000; }\n.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }\n.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }\n.cptRowOutput input[type=password],\n.cptRowOutput input[type=text],\n.cptRowOutput textarea {\n color: #000; font-size: 120%;\n background: transparent; padding: 3px;\n border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;\n}\n.cptRowOutput table,\n.cptRowOutput td,\n.cptRowOutput th { border: 0; padding: 0 2px; }\n.cptRowOutput .right { text-align: right; }\n"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.%cssClass% .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.%cssClass% .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.%cssClass% .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.%cssClass% .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.%cssClass% .ace_print_margin {\n width: 1px;\n background: %printMargin%;\n}\n\n.%cssClass% .ace_scroller {\n background-color: %background%;\n}\n\n.%cssClass% .ace_text-layer {\n cursor: text;\n color: %foreground%;\n}\n\n.%cssClass% .ace_cursor {\n border-left: 2px solid %cursor%;\n}\n\n.%cssClass% .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid %overwrite%;\n}\n \n.%cssClass% .ace_marker-layer .ace_selection {\n background: %selection%;\n}\n\n.%cssClass% .ace_marker-layer .ace_step {\n background: %step%;\n}\n\n.%cssClass% .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid %bracket%;\n}\n\n.%cssClass% .ace_marker-layer .ace_active_line {\n background: %active_line%;\n}\n\n \n.%cssClass% .ace_invisible {\n %invisible%\n}\n\n.%cssClass% .ace_keyword {\n %keyword%\n}\n\n.%cssClass% .ace_keyword.ace_operator {\n %keyword.operator%\n}\n\n.%cssClass% .ace_constant {\n %constant%\n}\n\n.%cssClass% .ace_constant.ace_language {\n %constant.language%\n}\n\n.%cssClass% .ace_constant.ace_library {\n %constant.library%\n}\n\n.%cssClass% .ace_constant.ace_numeric {\n %constant.numeric%\n}\n\n.%cssClass% .ace_invalid {\n %invalid%\n}\n\n.%cssClass% .ace_invalid.ace_illegal {\n %invalid.illegal%\n}\n\n.%cssClass% .ace_invalid.ace_deprecated {\n %invalid.deprecated%\n}\n\n.%cssClass% .ace_support {\n %support%\n}\n\n.%cssClass% .ace_support.ace_function {\n %support.function%\n}\n\n.%cssClass% .ace_function.ace_buildin {\n %function.buildin%\n}\n\n.%cssClass% .ace_string {\n %string%\n}\n\n.%cssClass% .ace_string.ace_regexp {\n %string.regexp%\n}\n\n.%cssClass% .ace_comment {\n %comment%\n}\n\n.%cssClass% .ace_comment.ace_doc {\n %comment.doc%\n}\n\n.%cssClass% .ace_comment.ace_doc.ace_tag {\n %comment.doc.tag%\n}\n\n.%cssClass% .ace_variable {\n %variable%\n}\n\n.%cssClass% .ace_variable.ace_language {\n %variable.language%\n}\n\n.%cssClass% .ace_xml_pe {\n %xml_pe%\n}\n\n.%cssClass% .ace_meta {\n %meta%\n}\n\n.%cssClass% .ace_meta.ace_tag {\n %meta.tag%\n}\n\n.%cssClass% .ace_meta.ace_tag.ace_input {\n %ace.meta.tag.input%\n}\n\n.%cssClass% .ace_entity.ace_other.ace_attribute-name {\n %entity.other.attribute-name%\n}\n\n\n.%cssClass% .ace_collab.ace_user1 {\n %collab.user1% \n}"),define("text/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),require(["ace/ace"],function(a){window.ace=a}) var Lang = A.Lang, BOUNDING_BOX = 'boundingBox', @@ -29,6 +29,13 @@ var AceEditor = A.Component.create( value: true }, + mode: { + lazyAdd: false, + getter: '_getMode', + setter: '_setMode', + value: EMPTY_STR + }, + readOnly: { lazyAdd: false, getter: '_getReadOnly', @@ -123,6 +130,12 @@ var AceEditor = A.Component.create( return instance.getEditor().getHighlightActiveLine(); }, + _getMode: function() { + var instance = this; + + return instance.getSession().getMode(); + }, + _getReadOnly: function() { var instance = this; @@ -165,6 +178,21 @@ var AceEditor = A.Component.create( instance.getEditor().setHighlightActiveLine(value); }, + _setMode: function(value) { + var instance = this; + + if (value) { + var Mode = require('ace/mode/' + value).Mode; + + if (Mode !== undefined) { + instance.getSession().setMode(new Mode()); + } + else { + throw new Error('The mode \'' + value + '\' is not available.'); + } + } + }, + _setReadOnly: function(value) { var instance = this; diff --git a/build/aui-ace-editor/aui-ace-editor-base-min.js b/build/aui-ace-editor/aui-ace-editor-base-min.js index 0a2b9ea7278..947494e5bf0 100644 --- a/build/aui-ace-editor/aui-ace-editor-base-min.js +++ b/build/aui-ace-editor/aui-ace-editor-base-min.js @@ -1,21 +1,21 @@ -AUI.add("aui-ace-editor-base",function(A){(function(){var a=function(){return this;}();if(a.require&&a.define){require.packaged=!0;}else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d);};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b); -};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize();}),b.env=l;}),k.env=l;return k;};}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c);},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c);};}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e){this.subtype=a;}else{if(typeof a!="string"){throw new Error("Can' handle array subtype");}this.subtype=d.getType(a);if(this.subtype==null){throw new Error("Unknown array subtype: "+a);}}}function l(a){if(typeof a.defer!="function"){throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function"){throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a;},h.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to text.parse()");}return new f(a);},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null;},i.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to number.parse()");}if(a.replace(/\s/g,"").length===0){return new f(null,g.INCOMPLETE,"");}var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b;},i.decrement=function(a){return a-1;},i.increment=function(a){return a+1;},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a;},j.prototype.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to parse()");}if(!this.data){throw new Error("Missing data on selection type extension.");}var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b));},this);if(c){return new f(d);}this.noMatch&&this.noMatch(); -if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e);}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e);},j.prototype.fromString=function(a){return a;},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=b.length-1;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1;}return this.fromString(b[c]);},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=0;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1;}return this.fromString(b[c]);},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a;},fromString:function(a){return a==="true"?!0:!1;}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a);},l.prototype.parse=function(a){return this.defer().parse(a);},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined;},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined;},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ");},m.prototype.parse=function(a){return this.defer().parse(a);},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m));},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m);};}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c);}var d=g[a];typeof d=="function"&&(d=new d(b));return d;}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[];}var d={VALID:{toString:function(){return"VALID";},valueOf:function(){return 0;}},INCOMPLETE:{toString:function(){return"INCOMPLETE";},valueOf:function(){return 1;}},INVALID:{toString:function(){return"INVALID";},valueOf:function(){return 2;}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);}return b;}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented");},parse:function(a){throw new Error("not implemented");},name:undefined,increment:function(a){return undefined;},decrement:function(a){return undefined;},getDefault:function(){return this.parse("");}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f)){throw new Error("Can't registerType using: "+a);}if(!a.name){throw new Error("All registered types must have a name");}g[a.name]=a;}else{if(typeof a!="function"){throw new Error("Unknown type: "+a);}if(!a.prototype.name){throw new Error("All registered types must have a name");}g[a.prototype.name]=a;}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d);});},b.deregisterType=function(a){delete g[a.name];},b.getType=function(a){if(typeof a=="string"){return h(a);}if(typeof a=="object"){if(!a.name){throw new Error("Missing 'name' member to typeSpec");}return h(a.name,a);}throw new Error("Can't extract type from "+a);};}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames();},stringify:function(a){return a.name;},fromString:function(a){return d.getCommand(a);}});b.startup=function(){f.registerType(g);},b.shutdown=function(){f.unregisterType(g);};}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1;}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done();}typeof a=="string"&&(a=q[a]);if(!a){return !1;}var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return !1;}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider())){i=F;}i(g,function(){g.getStatus()==l.VALID&&h();});return !0;}h();return !0;}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI){H.shiftObject();}b._dispatchEvent("output",{requests:H,request:this});},J.prototype.doneWithError=function(a){this.error=!0,this.done(a);},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput();},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this;},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}));},b.Request=J;}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c));};}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d;});}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n");},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[];}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n");},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS;};}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b;};}(),b.mixin=function(a,b){for(var c in b){a[c]=b[c];}},b.implement=function(a,c){b.mixin(a,c);};}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10);}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a;}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase();};}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          ";});}else{b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());}c.done(d);}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting); -d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".");}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e);},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e);};}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec){d.push(e.description?e.description:"No description for "+b.search);}else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("");}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ");}c.done(d.join(""));}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript);}catch(e){result="Error: "+e.message+"";}var msg="",type="",x;if(checks.isFunction(result)){msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";}else{if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result){result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));}items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          ";}}else{msg=result,type=typeof result;}}request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg);}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec);},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec);};}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d);},b.shutdown=function(a,b){a.env.settings.removeSetting(d);};}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED;},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e;}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this);}.bind(this));return e;},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e;}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this);}.bind(this));return e;},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f;}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this);}.bind(this));return f;},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c));}},b.PluginCatalog=function(){this.plugins={};},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)));}.bind(this));return d.group(f);},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b));}return d.group(c);}},b.catalog=new b.PluginCatalog;}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this;},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g;},Promise.prototype.isResolved=function(){return this._status==h;},Promise.prototype.isRejected=function(){return this._status==f;},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this;},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c));}catch(d){b.reject(d);}},function(a){b.reject(a);});return b;},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve");},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject");},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd(); -return this;}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value);},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20){l.shift();}return this;},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0){return(new Promise).resolve([]);}var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c);};};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f);});return b;},b.Promise=Promise,b._outstanding=k,b._recent=l;}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a);},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b);},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b);},b.addCssClass=function(a,b){a.classList.add(b);},b.removeCssClass=function(a,b){a.classList.remove(b);},b.toggleCssClass=function(a,b){return a.classList.toggle(b);}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1;},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c);},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1){break;}c.splice(d,1);}a.className=c.join(" ");},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1){break;}d=!1,c.splice(e,1);}d&&c.push(b),a.className=c.join(" ");return d;}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c);},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a;}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e);}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth;},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight;},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset;},b.getPageScrollLeft=function(){return window.pageXOffset;}):(b.getPageScrollTop=function(){return document.body.scrollTop;},b.getPageScrollLeft=function(){return document.body.scrollLeft;}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{};}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle;},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g;},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c;},b.setInnerText=function(a,b){document.body&&"textContent" in document.body?a.textContent=b:a.innerText=b;},b.getInnerText=function(a){return document.body&&"textContent" in document.body?a.textContent:a.innerText||a.textContent||"";},b.getParentWindow=function(a){return a.defaultView||a.parentWindow;},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0;}catch(c){b=0;}return b;},b.setSelectionStart=function(a,b){return a.selectionStart=b;},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0;}catch(c){b=0;}return b;},b.setSelectionEnd=function(a,b){return a.selectionEnd=b;};}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8;}c=0;}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1;}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener){return a.addEventListener(b,c,!1);}if(a.attachEvent){var d=function(){c(window.event);};c._wrapper=d,a.attachEvent("on"+b,d);}},b.removeListener=function(a,b,c){if(a.removeEventListener){return a.removeEventListener(b,c,!1);}a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c);},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return !1;},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1;},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX;},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY;},b.getButton=function(a){if(a.type=="dblclick"){return 0;}if(a.type=="contextmenu"){return 2;}return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button];},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture();}function e(a){c(a);return b.stopPropagation(a);}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture();}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation(); -}function d(a){b(a),a.stopPropagation();}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0);},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a);};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d);},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0;},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5){h=0;}h==d&&(h=0,g(a));if(e){return b.preventDefault(a);}};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k);},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode;}),d(a,"keypress",function(a){return g(c,a,f);});}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode);}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b){return g(c,a,a.keyCode);}h=null;});}};}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""));};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b);},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b);},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a);},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow());}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b}); -}},this.getSession=function(){return this.session;},this.getSelection=function(){return this.selection;},this.resize=function(){this.renderer.onResize();},this.setTheme=function(a){this.renderer.setTheme(a);},this.getTheme=function(){return this.renderer.getTheme();},this.setStyle=function(a){this.renderer.setStyle(a);},this.unsetStyle=function(a){this.renderer.unsetStyle(a);},this.setFontSize=function(a){this.container.style.fontSize=a;},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text");}},10);}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus();}),this.textInput.focus();},this.isFocused=function(){return this.textInput.isFocused();},this.blur=function(){this.textInput.blur();},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus");},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur");},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"){var d=c.end.row;}else{d=Infinity;}this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor();},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last);},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine();},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background");}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d);}else{this.$updateHighlightActiveLine();}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this);},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints());},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());},this.onChangeMode=function(){this.renderer.updateText();},this.onChangeWrapLimit=function(){this.renderer.updateFull();},this.onChangeWrapMode=function(){this.renderer.onResize(!0);},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull();},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a;},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection());}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text);}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection();}else{if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f);}}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r){j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);}b.remove(new m(p,0,p,r));}b.indentRows(d.row+1,l.row,k);}else{i&&c.autoOutdent(h,b,d.row);}}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a);}else{this.keyBinding.onTextInput(a);}},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c);},this.setOverwrite=function(a){this.session.setOverwrite(a);},this.getOverwrite=function(){return this.session.getOverwrite();},this.toggleOverwrite=function(){this.session.toggleOverwrite();},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a);},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}));},this.getSelectionStyle=function(){return this.$selectionStyle; +AUI.add("aui-ace-editor-base",function(A){(function(){var a=function(){return this;}();if(a.require&&a.define){require.packaged=!0;}else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d);};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b); +};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf){return a.indexOf(b,c);}for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--;}return b;},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return !!b;});}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize();}),b.env=l;}),k.env=l;return k;};}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c);},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c);};}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e){this.subtype=a;}else{if(typeof a!="string"){throw new Error("Can' handle array subtype");}this.subtype=d.getType(a);if(this.subtype==null){throw new Error("Unknown array subtype: "+a);}}}function l(a){if(typeof a.defer!="function"){throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function"){throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a)); +}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a;},h.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to text.parse()");}return new f(a);},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null;},i.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to number.parse()");}if(a.replace(/\s/g,"").length===0){return new f(null,g.INCOMPLETE,"");}var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b;},i.decrement=function(a){return a-1;},i.increment=function(a){return a+1;},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a;},j.prototype.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to parse()");}if(!this.data){throw new Error("Missing data on selection type extension.");}var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b));},this);if(c){return new f(d);}this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e);}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e);},j.prototype.fromString=function(a){return a;},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=b.length-1;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1;}return this.fromString(b[c]);},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=0;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1;}return this.fromString(b[c]);},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a;},fromString:function(a){return a==="true"?!0:!1;}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a);},l.prototype.parse=function(a){return this.defer().parse(a);},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined;},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined;},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ");},m.prototype.parse=function(a){return this.defer().parse(a);},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m));},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m);};}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c);}var d=g[a];typeof d=="function"&&(d=new d(b));return d;}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[];}var d={VALID:{toString:function(){return"VALID";},valueOf:function(){return 0;}},INCOMPLETE:{toString:function(){return"INCOMPLETE";},valueOf:function(){return 1;}},INVALID:{toString:function(){return"INVALID";},valueOf:function(){return 2;}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);}return b;}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented");},parse:function(a){throw new Error("not implemented");},name:undefined,increment:function(a){return undefined;},decrement:function(a){return undefined;},getDefault:function(){return this.parse("");}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f)){throw new Error("Can't registerType using: "+a);}if(!a.name){throw new Error("All registered types must have a name");}g[a.name]=a;}else{if(typeof a!="function"){throw new Error("Unknown type: "+a);}if(!a.prototype.name){throw new Error("All registered types must have a name");}g[a.prototype.name]=a;}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d);});},b.deregisterType=function(a){delete g[a.name];},b.getType=function(a){if(typeof a=="string"){return h(a);}if(typeof a=="object"){if(!a.name){throw new Error("Missing 'name' member to typeSpec");}return h(a.name,a);}throw new Error("Can't extract type from "+a);};}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames();},stringify:function(a){return a.name;},fromString:function(a){return d.getCommand(a);}});b.startup=function(){f.registerType(g);},b.shutdown=function(){f.unregisterType(g);};}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1;}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done();}typeof a=="string"&&(a=q[a]);if(!a){return !1;}var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return !1;}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider())){i=F;}i(g,function(){g.getStatus()==l.VALID&&h();});return !0;}h();return !0;}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI){H.shiftObject();}b._dispatchEvent("output",{requests:H,request:this});},J.prototype.doneWithError=function(a){this.error=!0,this.done(a);},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput();},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this;},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}));},b.Request=J;}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c));};}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d;});}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n"); +},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[];}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n");},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS;};}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b;};}(),b.mixin=function(a,b){for(var c in b){a[c]=b[c];}},b.implement=function(a,c){b.mixin(a,c);};}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10);}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a;}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase();};}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          ";});}else{b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());}c.done(d);}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".");}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e);},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e);};}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec){d.push(e.description?e.description:"No description for "+b.search);}else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("");}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ");}c.done(d.join(""));}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript);}catch(e){result="Error: "+e.message+"";}var msg="",type="",x;if(checks.isFunction(result)){msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";}else{if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result){result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));}items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          ";}}else{msg=result,type=typeof result;}}request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg);}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec);},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec);};}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d);},b.shutdown=function(a,b){a.env.settings.removeSetting(d);};}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED;},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e;}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this);}.bind(this));return e;},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e;}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this);}.bind(this));return e;},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f;}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this);}.bind(this));return f;},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c));}},b.PluginCatalog=function(){this.plugins={};},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)));}.bind(this));return d.group(f);},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b));}return d.group(c);}},b.catalog=new b.PluginCatalog;}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this;},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g;},Promise.prototype.isResolved=function(){return this._status==h; +},Promise.prototype.isRejected=function(){return this._status==f;},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this;},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c));}catch(d){b.reject(d);}},function(a){b.reject(a);});return b;},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve");},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject");},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this;}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value);},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20){l.shift();}return this;},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0){return(new Promise).resolve([]);}var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c);};};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f);});return b;},b.Promise=Promise,b._outstanding=k,b._recent=l;}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a);},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b);},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b);},b.addCssClass=function(a,b){a.classList.add(b);},b.removeCssClass=function(a,b){a.classList.remove(b);},b.toggleCssClass=function(a,b){return a.classList.toggle(b);}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1;},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c);},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1){break;}c.splice(d,1);}a.className=c.join(" ");},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1){break;}d=!1,c.splice(e,1);}d&&c.push(b),a.className=c.join(" ");return d;}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c);},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a;}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e);}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth;},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight;},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset;},b.getPageScrollLeft=function(){return window.pageXOffset;}):(b.getPageScrollTop=function(){return document.body.scrollTop;},b.getPageScrollLeft=function(){return document.body.scrollLeft;}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{};}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle;},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g;},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c;},b.setInnerText=function(a,b){document.body&&"textContent" in document.body?a.textContent=b:a.innerText=b;},b.getInnerText=function(a){return document.body&&"textContent" in document.body?a.textContent:a.innerText||a.textContent||"";},b.getParentWindow=function(a){return a.defaultView||a.parentWindow;},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0;}catch(c){b=0;}return b;},b.setSelectionStart=function(a,b){return a.selectionStart=b;},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0;}catch(c){b=0;}return b;},b.setSelectionEnd=function(a,b){return a.selectionEnd=b;};}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8;}c=0;}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1;}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener){return a.addEventListener(b,c,!1);}if(a.attachEvent){var d=function(){c(window.event);};c._wrapper=d,a.attachEvent("on"+b,d);}},b.removeListener=function(a,b,c){if(a.removeEventListener){return a.removeEventListener(b,c,!1);}a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c); +},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return !1;},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1;},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX;},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY;},b.getButton=function(a){if(a.type=="dblclick"){return 0;}if(a.type=="contextmenu"){return 2;}return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button];},document.documentElement.setCapture?b.capture=function(a,c,d){function g(e){c(e),f||(f=!0,d()),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",g),b.removeListener(a,"losecapture",g),a.releaseCapture();}function e(a){c(a);return b.stopPropagation(a);}var f=!1;b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",g),b.addListener(a,"losecapture",g),a.setCapture();}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation();}function d(a){b(a),a.stopPropagation();}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0);},b.addMouseWheelListener=function(a,c){var d=0,e=function(a){a.wheelDelta!==undefined?(Math.abs(a.wheelDeltaY)>d&&(d=Math.abs(a.wheelDeltaY)),d>5000?factor=400:factor=8,a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/factor,a.wheelY=-a.wheelDeltaY/factor):(a.wheelX=0,a.wheelY=-a.wheelDelta/factor)):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a);};b.addListener(a,"DOMMouseScroll",e),b.addListener(a,"mousewheel",e);},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0;},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5){h=0;}h==d&&(h=0,g(a));if(e){return b.preventDefault(a);}};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k);},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode;}),d(a,"keypress",function(a){return g(c,a,f);});}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode);}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b){return g(c,a,a.keyCode);}h=null;});}};}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""));};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b);},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b);},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a);},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow());}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b}); +}},this.getSession=function(){return this.session;},this.getSelection=function(){return this.selection;},this.resize=function(){this.renderer.onResize();},this.setTheme=function(a){this.renderer.setTheme(a);},this.getTheme=function(){return this.renderer.getTheme();},this.setStyle=function(a){this.renderer.setStyle(a);},this.unsetStyle=function(a){this.renderer.unsetStyle(a);},this.setFontSize=function(a){this.container.style.fontSize=a;},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text");}},10);}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus();}),this.textInput.focus();},this.isFocused=function(){return this.textInput.isFocused();},this.blur=function(){this.textInput.blur();},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus");},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur");},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"){var d=c.end.row;}else{d=Infinity;}this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor();},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last);},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine();},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background");}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d);}else{this.$updateHighlightActiveLine();}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this);},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints());},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());},this.onChangeMode=function(){this.renderer.updateText();},this.onChangeWrapLimit=function(){this.renderer.updateFull();},this.onChangeWrapMode=function(){this.renderer.onResize(!0);},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull();},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a;},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection());}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text);}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection();}else{if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f);}}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r){j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);}b.remove(new m(p,0,p,r));}b.indentRows(d.row+1,l.row,k);}else{i&&c.autoOutdent(h,b,d.row);}}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a);}else{this.keyBinding.onTextInput(a);}},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c);},this.setOverwrite=function(a){this.session.setOverwrite(a);},this.getOverwrite=function(){return this.session.getOverwrite();},this.toggleOverwrite=function(){this.session.toggleOverwrite();},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a);},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}));},this.getSelectionStyle=function(){return this.$selectionStyle; },this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine());},this.getHighlightActiveLine=function(){return this.$highlightActiveLine;},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this));},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord;},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a);},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles();},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a);},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin();},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a);},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn();},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a;},this.getReadOnly=function(){return this.$readOnly;},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a;},this.getBehavioursEnabled=function(){return this.$modeBehaviours;},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d);}this.session.remove(a),this.clearSelection();}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection();}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a);}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty()){return;}var a=this.getCursorPosition(),b=a.column;if(b==0){return;}var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow();},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1;},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow();},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a);},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2); -this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column);},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column);},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow());},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow());},this.scrollToRow=function(a){this.renderer.scrollToRow(a);},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b);},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0);},this.getCursorPosition=function(){return this.selection.getCursor();},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition());},this.getSelectionRange=function(){return this.selection.getRange();},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1;},this.clearSelection=function(){this.selection.clearSelection();},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b);},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a);},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0);},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b);},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0);},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0);},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorLeft();}}this.clearSelection();},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorRight();}}this.clearSelection();},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection();},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection();},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection();},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection();},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection();},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection();},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c));},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e){this.$tryReplace(c[e],a);}this.selection.setSelectionRange(d),this.$blockScrolling-=1;}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a;}return null;},this.getLastSearchOptions=function(){return this.$search.getOptions();},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find();},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find();},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find();},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b));},this.undo=function(){this.session.getUndoManager().undo();},this.redo=function(){this.session.getUndoManager().redo();},this.destroy=function(){this.renderer.destroy();};}).call(o.prototype),b.Editor=o;}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c;}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u()){return !1;}}}i=!1,j=!1,c.value=g,c.select();}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data);},0);},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l();},0);},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0);},p=function(){!h||b.onCompositionUpdate(c.value);},q=function(a){h=!1,b.onCompositionEnd();},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l();},0);},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l(); -},0);};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o());});}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n();}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault();}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a);}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur();}),d.addListener(c,"focus",function(){b.onFocus(),c.select();}),this.focus=function(){b.onFocus(),c.select(),c.focus();},this.blur=function(){c.blur();},this.isFocused=u,this.getElement=function(){return c;},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="");},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l();},0);};};b.TextInput=g;}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b);}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a);});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this));};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a;},this.getScrollSpeed=function(){return this.$scrollSpeed;},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e;},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2));},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h;}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return;}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return;}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a);},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g;},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return;}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return;}l.selection.setSelectionRange(a);}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f);}else{if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging");}}}p==i?F():p==h&&E();}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection){if(m.$clickSelection.contains(a.row,a.column)){l.selection.setSelectionRange(m.$clickSelection);}else{if(m.$clickSelection.compare(a.row,a.column)==-1){var b=m.$clickSelection.end;}else{var b=m.$clickSelection.start;}l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a);}}else{l.selection.selectToPosition(a);}l.renderer.scrollCursorIntoView();},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x);};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a);}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange());},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a);};}).call(l.prototype),b.MouseHandler=l; -}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1);}),e.addListener(a,"focus",function(a){b._setFocused(!0);});};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused;},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"));};}).call(g.prototype),b.BrowserFocus=g;}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null;};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a);},this.getKeyboardHandler=function(){return this.$keyboardHandler;},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command){b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};}var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i;},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c);},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0);};}).call(i.prototype),b.KeyBinding=i;}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"};}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll();}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines();}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d);}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines();}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext();}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious();}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d);}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replace(e,{needle:d});}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replaceAll(e,{needle:d});}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo();}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo();}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite();}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp();}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp();}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart();}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart();}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp();}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times);}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown();}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown();}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd();}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd();}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown();}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times);}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft();}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft();}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart();}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft(); -}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times);}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight();}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight();}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd();}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight();}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times);}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown();}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown();}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown();}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp();}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp();}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp();}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight();}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft();}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart();}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd();}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft();}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight();}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent();}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent();}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1));}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection();}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine();}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters();}});}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString();});return a;},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h);};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510;}d.implement(this,f),this.setDocument=function(a){if(this.doc){throw new Error("Document is already set");}this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this));},this.getDocument=function(){return this.doc;},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];}else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return;}}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row);},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a);},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset(); -},this.getValue=this.toString=function(){return this.doc.getValue();},this.getSelection=function(){return this.selection;},this.getState=function(a){return this.bgTokenizer.getState(a);},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b);},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[];},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager);}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t";},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a);},this.getUseSoftTabs=function(){return this.$useSoftTabs;},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"));},this.getTabSize=function(){return this.$tabSize;},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0;},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"));},this.getOverwrite=function(){return this.$overwrite;},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);},this.getBreakpoints=function(){return this.$breakpoints;},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do{f--;}while(f>=0&&c.charAt(f).match(e));f++;}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0){return{row:e,column:d};}}else{h==a&&(f+=1);}d-=1;}e-=1;if(e<0){break;}var g=this.getLine(e),d=g.length-1;}return null;},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h){break;}var g=this.getLine(e),d=0;}return null;},this.insert=function(a,b){return this.doc.insert(a,b);},this.remove=function(a){return this.doc.remove(a);},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--){delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds);},this);}this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c;}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1){return 0;}var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1;},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d;},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1));},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0){a=0,b=0;}else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b);}return{row:a,column:b};},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return !0;}return !1;},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a);},this.getWrapLimit=function(){return this.$wrapLimit;},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0){if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1;}for(l;l=h.row&&k.shiftRow(-c);}f=e;}else{var n; -if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c);}}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c);}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i;},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l){j=this.$getDisplayTokens(e.stringTrimRight(c[m]));}else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k){j.pop();}}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1;}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1;}).replace(/2/g,function(a){e-=1;}),i+=e,d.push(i),f=b;}if(a.length==0){return[];}var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k){l++;}j(l);continue;}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--){if(a[l]==g){break;}}if(l>f){j(l);continue;}l=f+b;for(l;l=g){l++;break;}}if(l>f){j(l);continue;}l=f+b,j(f+b);}return d;},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb){break;}}return[c,e];},this.getRowLength=function(a){return !this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1;},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight;},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length);},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c);},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10);},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined;},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize;},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row;},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column;},this.screenToDocumentPosition=function(a,b){if(a<0){return{row:0,column:0};}var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m){break;}h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h});}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e};},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined"){var c=this.$clipPositionToDocument(a.row,a.column);}else{c=this.$clipPositionToDocument(a,b);}a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1){return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1};}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a){break;}o=this.getNextFold(j),p=o?o.start.row:Infinity;}else{j=k+1;}f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f});}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s]){f++,s++;}q=q.substring(r[s-1]||0,q.length);}return{row:f,column:this.$getStringScreenWidth(q)[0]};},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column;},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row;},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;e=0;--e){this.$tryReplace(c[e],a);}this.selection.setSelectionRange(d),this.$blockScrolling-=1;}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a;}return null;},this.getLastSearchOptions=function(){return this.$search.getOptions();},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find();},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find();},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find();},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b));},this.undo=function(){this.session.getUndoManager().undo();},this.redo=function(){this.session.getUndoManager().redo();},this.destroy=function(){this.renderer.destroy();};}).call(o.prototype),b.Editor=o;}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function v(){return document.activeElement===c;}function m(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!v()){return !1;}}}i=!1,j=!1,c.value=g,l();}function l(){try{c.select();}catch(a){}}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data);},0);},o=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||m();},0);},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0);},q=function(){!h||b.onCompositionUpdate(c.value);},r=function(a){h=!1,b.onCompositionEnd();},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m();},0);},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m(); +},0);};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);(c.value.charCodeAt(0)|0)<129||(h?q():p());});}"onpropertychange" in c&&!("oninput" in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o();}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault();}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a);}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur();}),d.addListener(c,"focus",function(){b.onFocus(),l();}),this.focus=function(){b.onFocus(),l(),c.focus();},this.blur=function(){c.blur();},this.isFocused=v,this.getElement=function(){return c;},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="");},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m();},0);};};b.TextInput=g;}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b);}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a);});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this));};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a;},this.getScrollSpeed=function(){return this.$scrollSpeed;},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e;},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2));},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),q=h;}var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q=g;if(p&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){this.editor.focus();}else{var r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return;}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return;}p||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a);},A=function(){clearInterval(G),q==g?D(f):q==i&&B(),m.$clickSelection=null,q=g;},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return;}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return;}l.selection.setSelectionRange(a);}},C=function(){if(t!==undefined&&u!==undefined){if(q==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){q=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f);}else{if(d-w>j){q=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging");}}}q==i?F():q==h&&E();}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection){if(m.$clickSelection.contains(a.row,a.column)){l.selection.setSelectionRange(m.$clickSelection);}else{if(m.$clickSelection.compare(a.row,a.column)==-1){var b=m.$clickSelection.end;}else{var b=m.$clickSelection.start;}l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a);}}else{l.selection.selectToPosition(a);}l.renderer.scrollCursorIntoView();},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x);};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a);}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange());},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a);};}).call(l.prototype),b.MouseHandler=l;}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0; +var b=this;"onfocusin" in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0);}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement);})):(e.addListener(a,"blur",function(a){b._setFocused(!1);}),e.addListener(a,"focus",function(a){b._setFocused(!0);}));};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused;},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"));};}).call(g.prototype),b.BrowserFocus=g;}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null;};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a);},this.getKeyboardHandler=function(){return this.$keyboardHandler;},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command){b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};}var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i;},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c);},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0);};}).call(i.prototype),b.KeyBinding=i;}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"};}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll();}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines();}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d);}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines();}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext();}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious();}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d);}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replace(e,{needle:d});}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replaceAll(e,{needle:d});}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo();}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo();}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite();}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp();}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp();}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart();}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart();}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp();}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times);}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown();}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown();}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd();}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd();}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown();}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times);}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft();}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft();}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart();}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft();}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times); +}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight();}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight();}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd();}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight();}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times);}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown();}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown();}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown();}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp();}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp();}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp();}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight();}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft();}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart();}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd();}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft();}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight();}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent();}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent();}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1));}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection();}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine();}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters();}});}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString();});return a;},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h);};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510;}d.implement(this,f),this.setDocument=function(a){if(this.doc){throw new Error("Document is already set");}this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this));},this.getDocument=function(){return this.doc;},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];}else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return;}}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row);},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a);},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset();},this.getValue=this.toString=function(){return this.doc.getValue(); +},this.getSelection=function(){return this.selection;},this.getState=function(a){return this.bgTokenizer.getState(a);},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b);},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[];},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager);}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t";},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a);},this.getUseSoftTabs=function(){return this.$useSoftTabs;},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"));},this.getTabSize=function(){return this.$tabSize;},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0;},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"));},this.getOverwrite=function(){return this.$overwrite;},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);},this.getBreakpoints=function(){return this.$breakpoints;},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do{f--;}while(f>=0&&c.charAt(f).match(e));f++;}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0){return{row:e,column:d};}}else{h==a&&(f+=1);}d-=1;}e-=1;if(e<0){break;}var g=this.getLine(e),d=g.length-1;}return null;},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h){break;}var g=this.getLine(e),d=0;}return null;},this.insert=function(a,b){return this.doc.insert(a,b);},this.remove=function(a){return this.doc.remove(a);},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--){delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds);},this);}this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c;}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1){return 0;}var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1;},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d;},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1));},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0){a=0,b=0;}else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b);}return{row:a,column:b};},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return !0;}return !1;},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a);},this.getWrapLimit=function(){return this.$wrapLimit;},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0){if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1;}for(l;l=h.row&&k.shiftRow(-c);}f=e;}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c);}}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c);}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i;},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l){j=this.$getDisplayTokens(e.stringTrimRight(c[m]));}else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k){j.pop();}}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1;}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1;}).replace(/2/g,function(a){e-=1;}),i+=e,d.push(i),f=b;}if(a.length==0){return[];}var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k){l++;}j(l);continue;}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--){if(a[l]==g){break;}}if(l>f){j(l);continue;}l=f+b;for(l;l=g){l++;break;}}if(l>f){j(l);continue;}l=f+b,j(f+b);}return d;},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb){break;}}return[c,e];},this.getRowLength=function(a){return !this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1;},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight;},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length);},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c);},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10);},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined;},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize;},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row;},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column;},this.screenToDocumentPosition=function(a,b){if(a<0){return{row:0,column:0};}var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m){break;}h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h});}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e};},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined"){var c=this.$clipPositionToDocument(a.row,a.column);}else{c=this.$clipPositionToDocument(a,b);}a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1){return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1};}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a){break;}o=this.getNextFold(j),p=o?o.start.row:Infinity;}else{j=k+1;}f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f});}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s]){f++,s++;}q=q.substring(r[s-1]||0,q.length);}return{row:f,column:this.$getStringScreenWidth(q)[0]};},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column;},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row;},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column;},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b);},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"));},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0);},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn();},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column);},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this);},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b);});},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a);});},this.selectUp=function(){this.$moveSelection(this.moveCursorUp);},this.selectDown=function(){this.$moveSelection(this.moveCursorDown);},this.selectRight=function(){this.$moveSelection(this.moveCursorRight);},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft);},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart);},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd);},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd);},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart);},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight);},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft);},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b);},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0);});},this.moveCursorUp=function(){this.moveCursorBy(-1,0);},this.moveCursorDown=function(){this.moveCursorBy(1,0);},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1)){this.moveCursorTo(b.start.row,b.start.column);}else{if(a.column==0){a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);}else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1);}}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1)){this.moveCursorTo(b.end.row,b.end.column);}else{if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length){this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h)){return;}h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h)){return; }var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c);}}),a.$search.set(k);}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b);}),a.session.$selectionOccurrences=[]);},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break;}}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;nh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f){break;}var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--){c.push("
                                                                          ¦
                                                                          ");}c.push("
                                                                          "),e++;}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";};}).call(e.prototype),b.Gutter=e;}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element);};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.setMarkers=function(a){this.markers=a;},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty()){continue;}f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a);}else{f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type);}}this.element=e.setInnerHtml(this.element,b.join(""));}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight;},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                          "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "));},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background"){var i=d.width;}else{i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);}var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ");};}).call(f.prototype),b.Marker=f;}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges();};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"; },this.getLineHeight=function(){return this.$characterSize.height||1;},this.getCharacterWidth=function(){return this.$characterSize.width||1;},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}));},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges();},500);},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1000;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body){document.body.appendChild(b);}else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor")){d=d.parentNode;}d.appendChild(b);}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles){c[h]=g[h];}var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i;},this.setSession=function(a){this.session=a;},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a){return !1;}this.showInvisibles=a;return !0;},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "));}},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--){c.removeChild(c.firstChild);}}if(b.lastRow>a.lastRow){for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--){c.removeChild(c.lastChild);}}if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e);}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c){break;}var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups()){i.className="ace_line_group",d.appendChild(i);}else{var l=i.childNodes;while(l.length){d.appendChild(l[0]);}}f++;}return d;},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d){break;}this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++;}this.element=e.setInnerHtml(this.element,b.join(""));},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32){return Array(a.length+1).join(" ");}if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i];}if(a=="&"){return g.isOldGecko?"&":"&";}if(a=="<"){return"<";}if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+"";}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+"";}return" ";}b+=1;return""+a+"";},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"");}else{a.push(i);}return b+d.length;},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h){j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;}n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n));}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ");},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d);}else{this.$renderFoldLine(a,b,c,d);}},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1;}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1;}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d));}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d);},this.$useLineGroups=function(){return this.session.getUseWrapMode();},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode;};}).call(i.prototype),b.Text=i;}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1;};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId);},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer();},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible";},400);},1000);}},this.getPixelPosition=function(a){if(!this.config||!this.session){return{left:0,top:0};}var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e};},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer();},this.destroy=function(){clearInterval(this.blinkId);};}).call(e.prototype),b.Cursor=e;}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this));};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop});},this.getWidth=function(){return this.width;},this.setHeight=function(a){this.element.style.height=a+"px";},this.setInnerHeight=function(a){this.inner.style.height=a+"px";},this.setScrollTop=function(a){this.element.scrollTop=a;};}).call(h.prototype),b.ScrollBar=h;}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0;};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a);});}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback());}),this.attached=!0;}this.callback=a,window.postMessage(this.messageName,"*");}):this.setTimeoutZero=function(a){setTimeout(a,0);};}).call(e.prototype),b.RenderLoop=e;}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}"; -d.importCssString(e),b.cssClass="ace-tm";}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d};}var d=a("pilot/settings").settings;b.create=e;}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a; -});var Lang=A.Lang,BOUNDING_BOX="boundingBox",CONTENT_BOX="contentBox",EMPTY_STR="",HEIGHT="height",WIDTH="width",NAME="ace-ditor";var AceEditor=A.Component.create({NAME:NAME,EXTENDS:A.Widget,ATTRS:{height:{value:400},highlightActiveLine:{lazyAdd:false,getter:"_getHighlightActiveLine",setter:"_setHighlightActiveLine",value:true},readOnly:{lazyAdd:false,getter:"_getReadOnly",setter:"_setReadOnly",value:false},showPrintMargin:{lazyAdd:false,getter:"_getShowPrintMargin",setter:"_setShowPrintMargin",value:true},tabSize:{lazyAdd:false,getter:"_getTabSize",setter:"_setTabSize",value:4},useSoftTabs:{lazyAdd:false,getter:"_getUseSoftTabs",setter:"_setUseSoftTabs",value:true},useWrapMode:{lazyAdd:false,getter:"_getUseWrapMode",setter:"_setUseWrapMode",value:true},value:{lazyAdd:false,getter:"_getValue",setter:"_setValue",value:EMPTY_STR,},width:{value:800}},UI_ATTRS:[HEIGHT,WIDTH],prototype:{getEditor:function(){var instance=this;if(!instance.editor){var boundingBox=instance.get(BOUNDING_BOX);instance.editor=ace.edit(boundingBox.getDOM());}return instance.editor;},getSelection:function(){var instance=this;return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange());},getSession:function(){var instance=this;return instance.getEditor().getSession();},gotoLine:function(line){var instance=this;instance.getEditor().gotoLine(line);},insert:function(text){var instance=this;instance.getEditor().insert(text);},_getHighlightActiveLine:function(){var instance=this;return instance.getEditor().getHighlightActiveLine();},_getReadOnly:function(){var instance=this;return instance.getEditor().getReadOnly();},_getShowPrintMargin:function(){var instance=this;return instance.getEditor().getShowPrintMargin();},_getTabSize:function(){var instance=this;return instance.getSession().getTabSize();},_getUseSoftTabs:function(){var instance=this;return instance.getSession().getUseSoftTabs();},_getUseWrapMode:function(){var instance=this;return instance.getSession().getUseWrapMode();},_getValue:function(){var instance=this;return instance.getSession().getValue();},_setHighlightActiveLine:function(value){var instance=this;instance.getEditor().setHighlightActiveLine(value);},_setReadOnly:function(value){var instance=this;instance.getEditor().setReadOnly(value);},_setShowPrintMargin:function(value){var instance=this;instance.getEditor().setShowPrintMargin(value);},_setTabSize:function(value){var instance=this;instance.getSession().setTabSize(value);},_setUseSoftTabs:function(value){var instance=this;instance.getSession().setUseSoftTabs(value);},_setUseWrapMode:function(value){var instance=this;instance.getSession().setUseWrapMode(value);},_setValue:function(value){var instance=this;instance.getSession().setValue(value);},_uiSetHeight:function(){var instance=this;A.AceEditor.superclass._uiSetHeight.apply(instance,arguments);instance.getEditor().resize();},_uiSetWidth:function(){var instance=this;A.AceEditor.superclass._uiSetWidth.apply(instance,arguments);instance.getEditor().resize();}}});A.AceEditor=AceEditor;},"@VERSION@",{skinnable:false,requires:["aui-component","aui-node"]}); \ No newline at end of file +d.importCssString(e),b.cssClass="ace-tm";}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d};}var d=a("pilot/settings").settings;b.create=e;}),define("text/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/build/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/build_support/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/demo/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";\n\n@import url("booya.css") print,screen;\n@import "whatup.css" screen;\n@import "wicked.css";\n\n@namespace "http://www.w3.org/1999/xhtml";\n@namespace svg "http://www.w3.org/2000/svg";\n\nli.inline #foo {\n background: url("something.png");\n display: inline;\n padding-left: 3px;\n padding-right: 7px;\n border-right: 1px dotted #066;\n}\n\nli.last.first {\n display: inline;\n padding-left: 3px !important;\n padding-right: 3px;\n border-right: 0px;\n}\n\n@media print {\n li.inline {\n color: black;\n }\n\n\n@charset "UTF-8"; \n\n@page {\n margin: 10%;\n counter-increment: page;\n\n @top-center {\n font-family: sans-serif;\n font-weight: bold;\n font-size: 2em;\n content: counter(page);\n }\n}'),define("text/deps/requirejs/dist/ie.css",[],"\nbody .sect {\n display: none;\n}\n\n\n#content ul.index {\n list-style: none;\n}\n"),define("text/deps/requirejs/dist/main.css",[],'@font-face {\n font-family: Inconsolata;\n src: url("fonts/Inconsolata.ttf");\n}\n\n* {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-size: 12px;\n line-height: 21px;\n background-color: #fff;\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n color: #0a0a0a;\n}\n\n#wrapper {\n margin: 0;\n}\n\n#grid {\n position: fixed;\n top: 0;\n left: 0;\n width: 796px;\n background-image: url("i/grid.png");\n z-index: 100;\n}\n\npre {\n line-height: 18px;\n font-size: 13px;\n margin: 7px 0 21px;\n padding: 5px 10px;\n overflow: auto;\n background-color: #fafafa;\n border: 1px solid #e6e6e6;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n}\n\n/*\n typography stuff\n*/\n.mono {\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n.sans {\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n}\n\n.serif {\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\na {\n color: #2e87dd;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/*\n navigation\n*/\n\n#navBg {\n background-color: #f2f2f2;\n background-image: url("i/shadow.png");\n background-position: right top;\n background-repeat: repeat-y;\n width: 220px;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 0;\n}\n\n#nav {\n background-image: url("i/logo.png");\n background-repeat: no-repeat;\n background-position: center 10px;\n width: 220px;\n float: left;\n margin: 0;\n padding: 150px 20px 0;\n font-size: 13px;\n text-shadow: 1px 1px #fff;\n position: relative;\n z-index: 1;\n}\n\n#nav .homeImageLink {\n position: absolute;\n display: block;\n top: 10px;\n left: 0;\n width: 220px;\n height: 138px;\n}\n#nav ul {\n list-style-type:none;\n padding: 0;\n margin: 21px 0 0 0;\n}\n\n#nav ul li {\n width: 100%;\n}\n\n#nav ul li.version {\n text-align: center;\n color: #4d4d4d;\n}\n\n#nav h1 {\n color: #4d4d4d;\n text-align: center;\n font-size: 15px;\n font-weight: normal;\n text-transform: uppercase;\n letter-spacing: 3px;\n}\n\nspan.spacer {\n color: #2e87dd;\n margin: 0 3px 0 5px;\n background-image: url("i/dot.png");\n background-repeat: repeat-x;\n background-position: left 13px;\n}\n\n/*\n icons\n*/\n\nspan.icon {\n width: 16px;\n display: block;\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n}\n\nspan.icon.home {\n background-position: center 5px;\n}\n\nspan.icon.start {\n background-position: center -27px;\n}\n\nspan.icon.download {\n background-position: center -59px;\n}\n\nspan.icon.api {\n background-position: center -89px;\n}\n\nspan.icon.optimize {\n background-position: center -119px;\n}\n\nspan.icon.script {\n background-position: center -150px;\n}\n\nspan.icon.question {\n background-position: center -182px;\n}\n\nspan.icon.requirement {\n background-position: center -214px;\n}\n\nspan.icon.history {\n background-position: center -247px;\n}\n\nspan.icon.help {\n background-position: center -279px;\n}\n\nspan.icon.blog {\n background-position: center -311px;\n}\n\nspan.icon.twitter {\n background-position: center -343px;\n}\n\nspan.icon.git {\n background-position: center -375px;\n}\n\nspan.icon.fork {\n background-position: center -407px;\n}\n\n/*\n content\n*/\n\n#content {\n margin: 0 0 0 220px;\n padding: 0 20px;\n background-color: #fff;\n font-family: "Georgia", Times New Roman, Times, serif;\n position: relative;\n}\n\n#content p {\n padding: 7px 0;\n color: #333;\n font-size: 14px;\n}\n\n#content h1,\n#content h2,\n#content h3,\n#content h4,\n#content h5 {\n font-weight: normal;\n padding: 21px 0 7px;\n}\n\n#content h1 {\n font-size: 21px;\n}\n\n#content h2 {\n padding: 0 0 18px 0;\n margin: 0 0 7px 0;\n font-weight: normal;\n font-size: 21px;\n line-height: 24px;\n text-align: center;\n color: #222;\n background-image: url("i/arrow.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n text-transform: uppercase;\n letter-spacing: 2px;\n text-shadow: 1px 1px 0 #fff;\n}\n\n#content h2 a {\n color: #222;\n}\n\n#content h2 a:hover,\n#content h3 a:hover,\n#content h4 a:hover {\n text-decoration: none;\n}\n\nspan.sectionMark {\n display: block;\n color: #aaa;\n text-shadow: 1px 1px 0 #fff;\n font-size: 15px;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content h3 {\n font-size: 17px;\n}\n\n#content h4 {\n padding-top: 0;\n font-size: 15px;\n}\n\n#content h5 {\n font-size: 10px;\n}\n\n#content ul {\n list-style-type: disc;\n}\n\n#content ul,\n#content ol {\n /* border-left: 1px solid #333; */\n color: #333;\n font-size: 14px;\n list-style-position: outside;\n margin: 7px 0 21px 0;\n /* padding: 0 0 0 28px; */\n}\n\n#content ul {\n font-style: italic;\n}\n\n#content ol {\n border: none;\n list-style-position: inside;\n padding: 0;\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\n#content ul ul,\n#content ol ol {\n border: none;\n padding: 0;\n margin: 0 0 0 28px;\n}\n\n#content .section {\n padding: 48px 0;\n background-image: url("i/line.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n width: 576px;\n margin: 0 auto;\n}\n\n#content .section .subSection {\n padding: 0 0 0 48px;\n margin: 28px 0 0 0;\n display: block;\n border-left: 2px solid #ddd;\n}\n\n#content .section:last-child {\n background-image: none;\n}\n\n#content .note {\n color: #222;\n background-color: #ffff99;\n padding: 5px 10px;\n margin: 7px 0;\n display: inline-block;\n}\n\n/*\n page directory\n*/\n\n#content #directory.section {\n background-color: #fff;\n width: 576px;\n}\n\n#content #directory.section ul ul ul {\n margin: 0 0 0 48px;\n}\n\n#content #directory.section ul ul li {\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n background-position: left -437px;\n padding-left: 18px;\n font-style: normal;\n}\n\n#content #directory h1 {\n padding: 0 0 65px 0;\n margin: 0 0 14px 0;\n font-weight: normal;\n font-size: 21px;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n color: #222;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n\n#content ul.index {\n padding: 0;\n background-color: transparent;\n border: none;\n -moz-box-shadow: none;\n font-style: normal;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content ul.index li {\n width: 100%;\n font-size: 15px;\n color: #333;\n padding: 0 0 7px 0;\n}\n\n\n/*\n intro page specific\n*/\n\n#content #intro {\n width: 576px;\n margin: 0 auto;\n padding: 21px 0;\n}\n\n#content #intro p,\n#content #intro h1 {\n font-size: 19px;\n line-height: 28px;\n color: green;\n letter-spacing: 2px;\n padding: 0 0 28px 0;\n}\n\n#content #intro p:last-child,\n#content #intro h1:last-child {\n padding: 0;\n}\n\n#content #intro p a {\n color: green;\n text-decoration: underline;\n}\n\n/*\n download page\n*/\n\n#content h4 a.download {\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n background-color: #F2F2F2;\n background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%);\n background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2));\n background-position: 7px -58px, center center;\n background-repeat: no-repeat, no-repeat;\n border: 1px solid #CCCCCC;\n color: #333333;\n font-size: 12px;\n margin: 0 0 0 5px;\n padding: 0 10px 0 25px;\n text-shadow: 1px 1px 0 #FFFFFF;\n}\n\n/*\n footer\n*/\n#footer {\n color: #4d4d4d;\n padding: 65px 20px 20px;\n margin: 20px 0 0 220px;\n text-align: center;\n display: block;\n font-size: 13px;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center top;\n background-color: #fff;\n}\n\n#footer .line {\n display: block;\n}\n\n#footer .line a {\n color: #4d4d4d;\n text-decoration: underline;\n}\n\n/*\n Pygments manni style\n*/\n\ncode {background-color: #fafafa; color: #333;}\n\ncode .comment {color: green; font-style: italic}\ncode .comment.preproc {color: #099; font-style: normal}\ncode .comment.special {font-weight: bold}\n\ncode .keyword {color: #069; font-weight: bold}\ncode .keyword.pseudo {font-weight: normal}\ncode .keyword.type {color: #078}\n\ncode .operator {color: #555}\ncode .operator.word {color: #000; font-weight: bold}\n\ncode .name.builtin {color: #366}\ncode .name.function {color: #c0f}\ncode .name.class {color: #0a8; font-weight: bold}\ncode .name.namespace {color: #0cf; font-weight: bold}\ncode .name.exception {color: #c00; font-weight: bold}\ncode .name.variable {color: #033}\ncode .name.constant {color: #360}\ncode .name.label {color: #99f}\ncode .name.entity {color: #999; font-weight: bold}\ncode .name.attribute {color: #309}\ncode .name.tag {color: #309; font-weight: bold}\ncode .name.decorator {color: #99f}\n\ncode .string {color: #c30}\ncode .string.doc {font-style: italic}\ncode .string.interpol {color: #a00}\ncode .string.escape {color: #c30; font-weight: bold}\ncode .string.regex {color: #3aa}\ncode .string.symbol {color: #fc3}\ncode .string.other {color: #c30}\n\ncode .number {color: #f60}\n\n\n/*\n webkit scroll bars\n*/\n\npre::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\npre::-webkit-scrollbar-button:start:decrement,\npre::-webkit-scrollbar-button:end:increment {\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-button:vertical:increment,\npre::-webkit-scrollbar-button:horizontal:increment {\n background-color: transparent;\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-track-piece {\n -webkit-border-radius: 3px;\n}\n\npre::-webkit-scrollbar-thumb:vertical {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n\n}\n\npre::-webkit-scrollbar-thumb:horizontal {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n}\n\n/*\n hbox\n*/\n\n.hbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: horizontal;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: horizontal;\n\tbox-align: stretch;\n\n\twidth: 100%;\n}\n\n.hbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.vbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: vertical;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: vertical;\n\tbox-align: stretch;\n}\n\n.vbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.spacer {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.reverse {\n\t-webkit-box-direction: reverse;\n\t-moz-box-direction: reverse;\n\tbox-direction: reverse;\n}\n\n.boxFlex0 {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n}\n\n.boxFlex1, .boxFlex {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.boxFlex2 {\n\t-webkit-box-flex: 2;\n\t-moz-box-flex: 2;\n\tbox-flex: 2;\n}\n\n.boxGroup1 {\n\t-webkit-box-flex-group: 1;\n\t-moz-box-flex-group: 1;\n\tbox-flex-group: 1;\n}\n\n.boxGroup2 {\n\t-webkit-box-flex-group: 2;\n\t-moz-box-flex-group: 2;\n\tbox-flex-group: 2;\n}\n\n.start {\n\t-webkit-box-pack: start;\n\t-moz-box-pack: start;\n\tbox-pack: start;\n}\n\n.end {\n\t-webkit-box-pack: end;\n\t-moz-box-pack: end;\n\tbox-pack: end;\n}\n\n.center {\n\t-webkit-box-pack: center;\n\t-moz-box-pack: center;\n\tbox-pack: center;\n}\n\n/*\n clearfix\n*/\n\n.clearfix:after {\n\tcontent: ".";\n\tdisplay: block;\n\tclear: both;\n\tvisibility: hidden;\n\tline-height: 0;\n\theight: 0;\n}\n\nhtml[xmlns] .clearfix {\n\tdisplay: block;\n}\n\n* html .clearfix {\n\theight: 1%;\n}'),define("text/doc/site/iphone.css",[],"#wrapper {\n position:relative;\n overflow:hidden;\n}\n\n#wrapper .content .column1 {\n margin:0 16px 0 15px;\n}\n\n#header .content .signature {\n font-size:18px;\n bottom:0;\n}\n\nUL.menu-list LI {\n font-size:22px;\n}\n\nUL.menu-footer LI {\n font-size:22px;\n}\n\nPRE{\n font-size:22px;\n}\n"),define("text/doc/site/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/lib/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }\nbody { max-width: 60em; }\n.title { text-align: center; }\n.todo { color: red; }\n.done { color: green; }\n.tag { background-color:lightblue; font-weight:normal }\n.target { }\n.timestamp { color: grey }\n.timestamp-kwd { color: CadetBlue }\np.verse { margin-left: 3% }\npre {\n border: 1pt solid #AEBDCC;\n background-color: #F3F5F7;\n padding: 5pt;\n font-family: monospace;\n font-size: 90%;\n overflow:auto;\n}\npre.src {\n background-color: #eee; color: #112; border: 1px solid #000;\n}\ntable { border-collapse: collapse; }\ntd, th { vertical-align: top; }\ndt { font-weight: bold; }\ndiv.figure { padding: 0.5em; }\ndiv.figure p { text-align: center; }\n.linenr { font-size:smaller }\n.code-highlighted {background-color:#ffff00;}\n.org-info-js_info-navigation { border-style:none; }\n#org-info-js_console-label { font-size:10px; font-weight:bold;\n white-space:nowrap; }\n.org-info-js_search-highlight {background-color:#ffff00; color:#000000;\n font-weight:bold; }\n\nsup {\n vertical-align: baseline;\n position: relative;\n top: -0.5em;\n font-size: 80%;\n}\n\nsup a:link, sup a:visited {\n text-decoration: none;\n color: #c00;\n}\n\nsup a:before { content: "["; color: #999; }\nsup a:after { content: "]"; color: #999; }\n\nh1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }\n\n#postamble {\n color: #777;\n font-size: 90%;\n padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;\n margin-top: 2em;\n padding-left: 2em;\n padding-right: 2em;\n text-align: right;\n}\n\n#postamble p { margin: 0; }\n\n#footnotes { border-top: 1px solid #000; }\n\nh1 { font-size: 200% }\nh2 { font-size: 175% }\nh3 { font-size: 150% }\nh4 { font-size: 125% }\n\nh1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }\n\n@media print {\n html { font-size: 11pt; }\n}\n'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"\n#cockpitInput { padding-left: 16px; }\n\n.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }\n\n.cptCompletion { padding: 0; position: absolute; z-index: -1000; }\n.cptCompletion.VALID { background: #FFF; }\n.cptCompletion.INCOMPLETE { background: #DDD; }\n.cptCompletion.INVALID { background: #DDD; }\n.cptCompletion span { color: #FFF; }\n.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }\n.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }\nspan.cptPrompt { color: #66F; font-weight: bold; }\n\n\n.cptHints {\n color: #000;\n position: absolute;\n border: 1px solid rgba(230, 230, 230, 0.8);\n background: rgba(250, 250, 250, 0.8);\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-topright: 10px;\n border-top-left-radius: 10px; border-top-right-radius: 10px;\n z-index: 1000;\n padding: 8px;\n display: none;\n}\n\n.cptFocusPopup { display: block; }\n.cptFocusPopup.cptNoPopup { display: none; }\n\n.cptHints ul { margin: 0; padding: 0 15px; }\n\n.cptGt { font-weight: bold; font-size: 120%; }\n"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],"\n.cptRowIn {\n display: box; display: -moz-box; display: -webkit-box;\n box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;\n box-align: center; -moz-box-align: center; -webkit-box-align: center;\n color: #333;\n background-color: #EEE;\n width: 100%;\n font-family: consolas, courier, monospace;\n}\n.cptRowIn > * { padding-left: 2px; padding-right: 2px; }\n.cptRowIn > img { cursor: pointer; }\n.cptHover { display: none; }\n.cptRowIn:hover > .cptHover { display: block; }\n.cptRowIn:hover > .cptHover.cptHidden { display: none; }\n.cptOutTyped {\n box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;\n font-weight: bold; color: #000; font-size: 120%;\n}\n.cptRowOutput { padding-left: 10px; line-height: 1.2em; }\n.cptRowOutput strong,\n.cptRowOutput b,\n.cptRowOutput th,\n.cptRowOutput h1,\n.cptRowOutput h2,\n.cptRowOutput h3 { color: #000; }\n.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }\n.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }\n.cptRowOutput input[type=password],\n.cptRowOutput input[type=text],\n.cptRowOutput textarea {\n color: #000; font-size: 120%;\n background: transparent; padding: 3px;\n border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;\n}\n.cptRowOutput table,\n.cptRowOutput td,\n.cptRowOutput th { border: 0; padding: 0 2px; }\n.cptRowOutput .right { text-align: right; }\n"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.%cssClass% .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.%cssClass% .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.%cssClass% .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.%cssClass% .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.%cssClass% .ace_print_margin {\n width: 1px;\n background: %printMargin%;\n}\n\n.%cssClass% .ace_scroller {\n background-color: %background%;\n}\n\n.%cssClass% .ace_text-layer {\n cursor: text;\n color: %foreground%;\n}\n\n.%cssClass% .ace_cursor {\n border-left: 2px solid %cursor%;\n}\n\n.%cssClass% .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid %overwrite%;\n}\n \n.%cssClass% .ace_marker-layer .ace_selection {\n background: %selection%;\n}\n\n.%cssClass% .ace_marker-layer .ace_step {\n background: %step%;\n}\n\n.%cssClass% .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid %bracket%;\n}\n\n.%cssClass% .ace_marker-layer .ace_active_line {\n background: %active_line%;\n}\n\n \n.%cssClass% .ace_invisible {\n %invisible%\n}\n\n.%cssClass% .ace_keyword {\n %keyword%\n}\n\n.%cssClass% .ace_keyword.ace_operator {\n %keyword.operator%\n}\n\n.%cssClass% .ace_constant {\n %constant%\n}\n\n.%cssClass% .ace_constant.ace_language {\n %constant.language%\n}\n\n.%cssClass% .ace_constant.ace_library {\n %constant.library%\n}\n\n.%cssClass% .ace_constant.ace_numeric {\n %constant.numeric%\n}\n\n.%cssClass% .ace_invalid {\n %invalid%\n}\n\n.%cssClass% .ace_invalid.ace_illegal {\n %invalid.illegal%\n}\n\n.%cssClass% .ace_invalid.ace_deprecated {\n %invalid.deprecated%\n}\n\n.%cssClass% .ace_support {\n %support%\n}\n\n.%cssClass% .ace_support.ace_function {\n %support.function%\n}\n\n.%cssClass% .ace_function.ace_buildin {\n %function.buildin%\n}\n\n.%cssClass% .ace_string {\n %string%\n}\n\n.%cssClass% .ace_string.ace_regexp {\n %string.regexp%\n}\n\n.%cssClass% .ace_comment {\n %comment%\n}\n\n.%cssClass% .ace_comment.ace_doc {\n %comment.doc%\n}\n\n.%cssClass% .ace_comment.ace_doc.ace_tag {\n %comment.doc.tag%\n}\n\n.%cssClass% .ace_variable {\n %variable%\n}\n\n.%cssClass% .ace_variable.ace_language {\n %variable.language%\n}\n\n.%cssClass% .ace_xml_pe {\n %xml_pe%\n}\n\n.%cssClass% .ace_meta {\n %meta%\n}\n\n.%cssClass% .ace_meta.ace_tag {\n %meta.tag%\n}\n\n.%cssClass% .ace_meta.ace_tag.ace_input {\n %ace.meta.tag.input%\n}\n\n.%cssClass% .ace_entity.ace_other.ace_attribute-name {\n %entity.other.attribute-name%\n}\n\n\n.%cssClass% .ace_collab.ace_user1 {\n %collab.user1% \n}"),define("text/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),require(["ace/ace"],function(a){window.ace=a; +});var Lang=A.Lang,BOUNDING_BOX="boundingBox",CONTENT_BOX="contentBox",EMPTY_STR="",HEIGHT="height",WIDTH="width",NAME="ace-ditor";var AceEditor=A.Component.create({NAME:NAME,EXTENDS:A.Widget,ATTRS:{height:{value:400},highlightActiveLine:{lazyAdd:false,getter:"_getHighlightActiveLine",setter:"_setHighlightActiveLine",value:true},mode:{lazyAdd:false,getter:"_getMode",setter:"_setMode",value:EMPTY_STR},readOnly:{lazyAdd:false,getter:"_getReadOnly",setter:"_setReadOnly",value:false},showPrintMargin:{lazyAdd:false,getter:"_getShowPrintMargin",setter:"_setShowPrintMargin",value:true},tabSize:{lazyAdd:false,getter:"_getTabSize",setter:"_setTabSize",value:4},useSoftTabs:{lazyAdd:false,getter:"_getUseSoftTabs",setter:"_setUseSoftTabs",value:true},useWrapMode:{lazyAdd:false,getter:"_getUseWrapMode",setter:"_setUseWrapMode",value:true},value:{lazyAdd:false,getter:"_getValue",setter:"_setValue",value:EMPTY_STR,},width:{value:800}},UI_ATTRS:[HEIGHT,WIDTH],prototype:{getEditor:function(){var instance=this;if(!instance.editor){var boundingBox=instance.get(BOUNDING_BOX);instance.editor=ace.edit(boundingBox.getDOM());}return instance.editor;},getSelection:function(){var instance=this;return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange());},getSession:function(){var instance=this;return instance.getEditor().getSession();},gotoLine:function(line){var instance=this;instance.getEditor().gotoLine(line);},insert:function(text){var instance=this;instance.getEditor().insert(text);},_getHighlightActiveLine:function(){var instance=this;return instance.getEditor().getHighlightActiveLine();},_getMode:function(){var instance=this;return instance.getSession().getMode();},_getReadOnly:function(){var instance=this;return instance.getEditor().getReadOnly();},_getShowPrintMargin:function(){var instance=this;return instance.getEditor().getShowPrintMargin();},_getTabSize:function(){var instance=this;return instance.getSession().getTabSize();},_getUseSoftTabs:function(){var instance=this;return instance.getSession().getUseSoftTabs();},_getUseWrapMode:function(){var instance=this;return instance.getSession().getUseWrapMode();},_getValue:function(){var instance=this;return instance.getSession().getValue();},_setHighlightActiveLine:function(value){var instance=this;instance.getEditor().setHighlightActiveLine(value);},_setMode:function(value){var instance=this;if(value){var Mode=require("ace/mode/"+value).Mode;if(Mode!==undefined){instance.getSession().setMode(new Mode());}else{throw new Error("The mode '"+value+"' is not available.");}}},_setReadOnly:function(value){var instance=this;instance.getEditor().setReadOnly(value);},_setShowPrintMargin:function(value){var instance=this;instance.getEditor().setShowPrintMargin(value);},_setTabSize:function(value){var instance=this;instance.getSession().setTabSize(value);},_setUseSoftTabs:function(value){var instance=this;instance.getSession().setUseSoftTabs(value);},_setUseWrapMode:function(value){var instance=this;instance.getSession().setUseWrapMode(value);},_setValue:function(value){var instance=this;instance.getSession().setValue(value);},_uiSetHeight:function(){var instance=this;A.AceEditor.superclass._uiSetHeight.apply(instance,arguments);instance.getEditor().resize();},_uiSetWidth:function(){var instance=this;A.AceEditor.superclass._uiSetWidth.apply(instance,arguments);instance.getEditor().resize();}}});A.AceEditor=AceEditor;},"@VERSION@",{skinnable:false,requires:["aui-component","aui-node"]}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-base.js b/build/aui-ace-editor/aui-ace-editor-base.js index b5d3e3f03ab..cc72b232353 100644 --- a/build/aui-ace-editor/aui-ace-editor-base.js +++ b/build/aui-ace-editor/aui-ace-editor-base.js @@ -1,5 +1,5 @@ AUI.add('aui-ace-editor-base', function(A) { -(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push(""),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function g(e){c(e),f||(f=!0,d()),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",g),b.removeListener(a,"losecapture",g),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}var f=!1;b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",g),b.addListener(a,"losecapture",g),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=0,e=function(a){a.wheelDelta!==undefined?(Math.abs(a.wheelDeltaY)>d&&(d=Math.abs(a.wheelDeltaY)),d>5e3?factor=400:factor=8,a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/factor,a.wheelY=-a.wheelDeltaY/factor):(a.wheelX=0,a.wheelY=-a.wheelDelta/factor)):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",e),b.addListener(a,"mousewheel",e)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function v(){return document.activeElement===c}function m(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!v())return!1}}i=!1,j=!1,c.value=g,l()}function l(){try{c.select()}catch(a){}}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data)},0)},o=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){!h||b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);(c.value.charCodeAt(0)|0)<129||(h?q():p())})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),q=h}var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q=g;if(p&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused()))this.editor.focus();else{var r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}p||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),q==g?D(f):q==i&&B(),m.$clickSelection=null,q=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(q==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){q=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){q=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}q==i?F():q==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push(""),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/build/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/build_support/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/demo/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";\n\n@import url("booya.css") print,screen;\n@import "whatup.css" screen;\n@import "wicked.css";\n\n@namespace "http://www.w3.org/1999/xhtml";\n@namespace svg "http://www.w3.org/2000/svg";\n\nli.inline #foo {\n background: url("something.png");\n display: inline;\n padding-left: 3px;\n padding-right: 7px;\n border-right: 1px dotted #066;\n}\n\nli.last.first {\n display: inline;\n padding-left: 3px !important;\n padding-right: 3px;\n border-right: 0px;\n}\n\n@media print {\n li.inline {\n color: black;\n }\n\n\n@charset "UTF-8"; \n\n@page {\n margin: 10%;\n counter-increment: page;\n\n @top-center {\n font-family: sans-serif;\n font-weight: bold;\n font-size: 2em;\n content: counter(page);\n }\n}'),define("text/deps/requirejs/dist/ie.css",[],"\nbody .sect {\n display: none;\n}\n\n\n#content ul.index {\n list-style: none;\n}\n"),define("text/deps/requirejs/dist/main.css",[],'@font-face {\n font-family: Inconsolata;\n src: url("fonts/Inconsolata.ttf");\n}\n\n* {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-size: 12px;\n line-height: 21px;\n background-color: #fff;\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n color: #0a0a0a;\n}\n\n#wrapper {\n margin: 0;\n}\n\n#grid {\n position: fixed;\n top: 0;\n left: 0;\n width: 796px;\n background-image: url("i/grid.png");\n z-index: 100;\n}\n\npre {\n line-height: 18px;\n font-size: 13px;\n margin: 7px 0 21px;\n padding: 5px 10px;\n overflow: auto;\n background-color: #fafafa;\n border: 1px solid #e6e6e6;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n}\n\n/*\n typography stuff\n*/\n.mono {\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n.sans {\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n}\n\n.serif {\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\na {\n color: #2e87dd;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/*\n navigation\n*/\n\n#navBg {\n background-color: #f2f2f2;\n background-image: url("i/shadow.png");\n background-position: right top;\n background-repeat: repeat-y;\n width: 220px;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 0;\n}\n\n#nav {\n background-image: url("i/logo.png");\n background-repeat: no-repeat;\n background-position: center 10px;\n width: 220px;\n float: left;\n margin: 0;\n padding: 150px 20px 0;\n font-size: 13px;\n text-shadow: 1px 1px #fff;\n position: relative;\n z-index: 1;\n}\n\n#nav .homeImageLink {\n position: absolute;\n display: block;\n top: 10px;\n left: 0;\n width: 220px;\n height: 138px;\n}\n#nav ul {\n list-style-type:none;\n padding: 0;\n margin: 21px 0 0 0;\n}\n\n#nav ul li {\n width: 100%;\n}\n\n#nav ul li.version {\n text-align: center;\n color: #4d4d4d;\n}\n\n#nav h1 {\n color: #4d4d4d;\n text-align: center;\n font-size: 15px;\n font-weight: normal;\n text-transform: uppercase;\n letter-spacing: 3px;\n}\n\nspan.spacer {\n color: #2e87dd;\n margin: 0 3px 0 5px;\n background-image: url("i/dot.png");\n background-repeat: repeat-x;\n background-position: left 13px;\n}\n\n/*\n icons\n*/\n\nspan.icon {\n width: 16px;\n display: block;\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n}\n\nspan.icon.home {\n background-position: center 5px;\n}\n\nspan.icon.start {\n background-position: center -27px;\n}\n\nspan.icon.download {\n background-position: center -59px;\n}\n\nspan.icon.api {\n background-position: center -89px;\n}\n\nspan.icon.optimize {\n background-position: center -119px;\n}\n\nspan.icon.script {\n background-position: center -150px;\n}\n\nspan.icon.question {\n background-position: center -182px;\n}\n\nspan.icon.requirement {\n background-position: center -214px;\n}\n\nspan.icon.history {\n background-position: center -247px;\n}\n\nspan.icon.help {\n background-position: center -279px;\n}\n\nspan.icon.blog {\n background-position: center -311px;\n}\n\nspan.icon.twitter {\n background-position: center -343px;\n}\n\nspan.icon.git {\n background-position: center -375px;\n}\n\nspan.icon.fork {\n background-position: center -407px;\n}\n\n/*\n content\n*/\n\n#content {\n margin: 0 0 0 220px;\n padding: 0 20px;\n background-color: #fff;\n font-family: "Georgia", Times New Roman, Times, serif;\n position: relative;\n}\n\n#content p {\n padding: 7px 0;\n color: #333;\n font-size: 14px;\n}\n\n#content h1,\n#content h2,\n#content h3,\n#content h4,\n#content h5 {\n font-weight: normal;\n padding: 21px 0 7px;\n}\n\n#content h1 {\n font-size: 21px;\n}\n\n#content h2 {\n padding: 0 0 18px 0;\n margin: 0 0 7px 0;\n font-weight: normal;\n font-size: 21px;\n line-height: 24px;\n text-align: center;\n color: #222;\n background-image: url("i/arrow.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n text-transform: uppercase;\n letter-spacing: 2px;\n text-shadow: 1px 1px 0 #fff;\n}\n\n#content h2 a {\n color: #222;\n}\n\n#content h2 a:hover,\n#content h3 a:hover,\n#content h4 a:hover {\n text-decoration: none;\n}\n\nspan.sectionMark {\n display: block;\n color: #aaa;\n text-shadow: 1px 1px 0 #fff;\n font-size: 15px;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content h3 {\n font-size: 17px;\n}\n\n#content h4 {\n padding-top: 0;\n font-size: 15px;\n}\n\n#content h5 {\n font-size: 10px;\n}\n\n#content ul {\n list-style-type: disc;\n}\n\n#content ul,\n#content ol {\n /* border-left: 1px solid #333; */\n color: #333;\n font-size: 14px;\n list-style-position: outside;\n margin: 7px 0 21px 0;\n /* padding: 0 0 0 28px; */\n}\n\n#content ul {\n font-style: italic;\n}\n\n#content ol {\n border: none;\n list-style-position: inside;\n padding: 0;\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\n#content ul ul,\n#content ol ol {\n border: none;\n padding: 0;\n margin: 0 0 0 28px;\n}\n\n#content .section {\n padding: 48px 0;\n background-image: url("i/line.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n width: 576px;\n margin: 0 auto;\n}\n\n#content .section .subSection {\n padding: 0 0 0 48px;\n margin: 28px 0 0 0;\n display: block;\n border-left: 2px solid #ddd;\n}\n\n#content .section:last-child {\n background-image: none;\n}\n\n#content .note {\n color: #222;\n background-color: #ffff99;\n padding: 5px 10px;\n margin: 7px 0;\n display: inline-block;\n}\n\n/*\n page directory\n*/\n\n#content #directory.section {\n background-color: #fff;\n width: 576px;\n}\n\n#content #directory.section ul ul ul {\n margin: 0 0 0 48px;\n}\n\n#content #directory.section ul ul li {\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n background-position: left -437px;\n padding-left: 18px;\n font-style: normal;\n}\n\n#content #directory h1 {\n padding: 0 0 65px 0;\n margin: 0 0 14px 0;\n font-weight: normal;\n font-size: 21px;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n color: #222;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n\n#content ul.index {\n padding: 0;\n background-color: transparent;\n border: none;\n -moz-box-shadow: none;\n font-style: normal;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content ul.index li {\n width: 100%;\n font-size: 15px;\n color: #333;\n padding: 0 0 7px 0;\n}\n\n\n/*\n intro page specific\n*/\n\n#content #intro {\n width: 576px;\n margin: 0 auto;\n padding: 21px 0;\n}\n\n#content #intro p,\n#content #intro h1 {\n font-size: 19px;\n line-height: 28px;\n color: green;\n letter-spacing: 2px;\n padding: 0 0 28px 0;\n}\n\n#content #intro p:last-child,\n#content #intro h1:last-child {\n padding: 0;\n}\n\n#content #intro p a {\n color: green;\n text-decoration: underline;\n}\n\n/*\n download page\n*/\n\n#content h4 a.download {\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n background-color: #F2F2F2;\n background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%);\n background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2));\n background-position: 7px -58px, center center;\n background-repeat: no-repeat, no-repeat;\n border: 1px solid #CCCCCC;\n color: #333333;\n font-size: 12px;\n margin: 0 0 0 5px;\n padding: 0 10px 0 25px;\n text-shadow: 1px 1px 0 #FFFFFF;\n}\n\n/*\n footer\n*/\n#footer {\n color: #4d4d4d;\n padding: 65px 20px 20px;\n margin: 20px 0 0 220px;\n text-align: center;\n display: block;\n font-size: 13px;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center top;\n background-color: #fff;\n}\n\n#footer .line {\n display: block;\n}\n\n#footer .line a {\n color: #4d4d4d;\n text-decoration: underline;\n}\n\n/*\n Pygments manni style\n*/\n\ncode {background-color: #fafafa; color: #333;}\n\ncode .comment {color: green; font-style: italic}\ncode .comment.preproc {color: #099; font-style: normal}\ncode .comment.special {font-weight: bold}\n\ncode .keyword {color: #069; font-weight: bold}\ncode .keyword.pseudo {font-weight: normal}\ncode .keyword.type {color: #078}\n\ncode .operator {color: #555}\ncode .operator.word {color: #000; font-weight: bold}\n\ncode .name.builtin {color: #366}\ncode .name.function {color: #c0f}\ncode .name.class {color: #0a8; font-weight: bold}\ncode .name.namespace {color: #0cf; font-weight: bold}\ncode .name.exception {color: #c00; font-weight: bold}\ncode .name.variable {color: #033}\ncode .name.constant {color: #360}\ncode .name.label {color: #99f}\ncode .name.entity {color: #999; font-weight: bold}\ncode .name.attribute {color: #309}\ncode .name.tag {color: #309; font-weight: bold}\ncode .name.decorator {color: #99f}\n\ncode .string {color: #c30}\ncode .string.doc {font-style: italic}\ncode .string.interpol {color: #a00}\ncode .string.escape {color: #c30; font-weight: bold}\ncode .string.regex {color: #3aa}\ncode .string.symbol {color: #fc3}\ncode .string.other {color: #c30}\n\ncode .number {color: #f60}\n\n\n/*\n webkit scroll bars\n*/\n\npre::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\npre::-webkit-scrollbar-button:start:decrement,\npre::-webkit-scrollbar-button:end:increment {\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-button:vertical:increment,\npre::-webkit-scrollbar-button:horizontal:increment {\n background-color: transparent;\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-track-piece {\n -webkit-border-radius: 3px;\n}\n\npre::-webkit-scrollbar-thumb:vertical {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n\n}\n\npre::-webkit-scrollbar-thumb:horizontal {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n}\n\n/*\n hbox\n*/\n\n.hbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: horizontal;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: horizontal;\n\tbox-align: stretch;\n\n\twidth: 100%;\n}\n\n.hbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.vbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: vertical;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: vertical;\n\tbox-align: stretch;\n}\n\n.vbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.spacer {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.reverse {\n\t-webkit-box-direction: reverse;\n\t-moz-box-direction: reverse;\n\tbox-direction: reverse;\n}\n\n.boxFlex0 {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n}\n\n.boxFlex1, .boxFlex {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.boxFlex2 {\n\t-webkit-box-flex: 2;\n\t-moz-box-flex: 2;\n\tbox-flex: 2;\n}\n\n.boxGroup1 {\n\t-webkit-box-flex-group: 1;\n\t-moz-box-flex-group: 1;\n\tbox-flex-group: 1;\n}\n\n.boxGroup2 {\n\t-webkit-box-flex-group: 2;\n\t-moz-box-flex-group: 2;\n\tbox-flex-group: 2;\n}\n\n.start {\n\t-webkit-box-pack: start;\n\t-moz-box-pack: start;\n\tbox-pack: start;\n}\n\n.end {\n\t-webkit-box-pack: end;\n\t-moz-box-pack: end;\n\tbox-pack: end;\n}\n\n.center {\n\t-webkit-box-pack: center;\n\t-moz-box-pack: center;\n\tbox-pack: center;\n}\n\n/*\n clearfix\n*/\n\n.clearfix:after {\n\tcontent: ".";\n\tdisplay: block;\n\tclear: both;\n\tvisibility: hidden;\n\tline-height: 0;\n\theight: 0;\n}\n\nhtml[xmlns] .clearfix {\n\tdisplay: block;\n}\n\n* html .clearfix {\n\theight: 1%;\n}'),define("text/doc/site/iphone.css",[],"#wrapper {\n position:relative;\n overflow:hidden;\n}\n\n#wrapper .content .column1 {\n margin:0 16px 0 15px;\n}\n\n#header .content .signature {\n font-size:18px;\n bottom:0;\n}\n\nUL.menu-list LI {\n font-size:22px;\n}\n\nUL.menu-footer LI {\n font-size:22px;\n}\n\nPRE{\n font-size:22px;\n}\n"),define("text/doc/site/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/lib/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }\nbody { max-width: 60em; }\n.title { text-align: center; }\n.todo { color: red; }\n.done { color: green; }\n.tag { background-color:lightblue; font-weight:normal }\n.target { }\n.timestamp { color: grey }\n.timestamp-kwd { color: CadetBlue }\np.verse { margin-left: 3% }\npre {\n border: 1pt solid #AEBDCC;\n background-color: #F3F5F7;\n padding: 5pt;\n font-family: monospace;\n font-size: 90%;\n overflow:auto;\n}\npre.src {\n background-color: #eee; color: #112; border: 1px solid #000;\n}\ntable { border-collapse: collapse; }\ntd, th { vertical-align: top; }\ndt { font-weight: bold; }\ndiv.figure { padding: 0.5em; }\ndiv.figure p { text-align: center; }\n.linenr { font-size:smaller }\n.code-highlighted {background-color:#ffff00;}\n.org-info-js_info-navigation { border-style:none; }\n#org-info-js_console-label { font-size:10px; font-weight:bold;\n white-space:nowrap; }\n.org-info-js_search-highlight {background-color:#ffff00; color:#000000;\n font-weight:bold; }\n\nsup {\n vertical-align: baseline;\n position: relative;\n top: -0.5em;\n font-size: 80%;\n}\n\nsup a:link, sup a:visited {\n text-decoration: none;\n color: #c00;\n}\n\nsup a:before { content: "["; color: #999; }\nsup a:after { content: "]"; color: #999; }\n\nh1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }\n\n#postamble {\n color: #777;\n font-size: 90%;\n padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;\n margin-top: 2em;\n padding-left: 2em;\n padding-right: 2em;\n text-align: right;\n}\n\n#postamble p { margin: 0; }\n\n#footnotes { border-top: 1px solid #000; }\n\nh1 { font-size: 200% }\nh2 { font-size: 175% }\nh3 { font-size: 150% }\nh4 { font-size: 125% }\n\nh1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }\n\n@media print {\n html { font-size: 11pt; }\n}\n'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"\n#cockpitInput { padding-left: 16px; }\n\n.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }\n\n.cptCompletion { padding: 0; position: absolute; z-index: -1000; }\n.cptCompletion.VALID { background: #FFF; }\n.cptCompletion.INCOMPLETE { background: #DDD; }\n.cptCompletion.INVALID { background: #DDD; }\n.cptCompletion span { color: #FFF; }\n.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }\n.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }\nspan.cptPrompt { color: #66F; font-weight: bold; }\n\n\n.cptHints {\n color: #000;\n position: absolute;\n border: 1px solid rgba(230, 230, 230, 0.8);\n background: rgba(250, 250, 250, 0.8);\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-topright: 10px;\n border-top-left-radius: 10px; border-top-right-radius: 10px;\n z-index: 1000;\n padding: 8px;\n display: none;\n}\n\n.cptFocusPopup { display: block; }\n.cptFocusPopup.cptNoPopup { display: none; }\n\n.cptHints ul { margin: 0; padding: 0 15px; }\n\n.cptGt { font-weight: bold; font-size: 120%; }\n"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],"\n.cptRowIn {\n display: box; display: -moz-box; display: -webkit-box;\n box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;\n box-align: center; -moz-box-align: center; -webkit-box-align: center;\n color: #333;\n background-color: #EEE;\n width: 100%;\n font-family: consolas, courier, monospace;\n}\n.cptRowIn > * { padding-left: 2px; padding-right: 2px; }\n.cptRowIn > img { cursor: pointer; }\n.cptHover { display: none; }\n.cptRowIn:hover > .cptHover { display: block; }\n.cptRowIn:hover > .cptHover.cptHidden { display: none; }\n.cptOutTyped {\n box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;\n font-weight: bold; color: #000; font-size: 120%;\n}\n.cptRowOutput { padding-left: 10px; line-height: 1.2em; }\n.cptRowOutput strong,\n.cptRowOutput b,\n.cptRowOutput th,\n.cptRowOutput h1,\n.cptRowOutput h2,\n.cptRowOutput h3 { color: #000; }\n.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }\n.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }\n.cptRowOutput input[type=password],\n.cptRowOutput input[type=text],\n.cptRowOutput textarea {\n color: #000; font-size: 120%;\n background: transparent; padding: 3px;\n border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;\n}\n.cptRowOutput table,\n.cptRowOutput td,\n.cptRowOutput th { border: 0; padding: 0 2px; }\n.cptRowOutput .right { text-align: right; }\n"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.%cssClass% .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.%cssClass% .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.%cssClass% .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.%cssClass% .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.%cssClass% .ace_print_margin {\n width: 1px;\n background: %printMargin%;\n}\n\n.%cssClass% .ace_scroller {\n background-color: %background%;\n}\n\n.%cssClass% .ace_text-layer {\n cursor: text;\n color: %foreground%;\n}\n\n.%cssClass% .ace_cursor {\n border-left: 2px solid %cursor%;\n}\n\n.%cssClass% .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid %overwrite%;\n}\n \n.%cssClass% .ace_marker-layer .ace_selection {\n background: %selection%;\n}\n\n.%cssClass% .ace_marker-layer .ace_step {\n background: %step%;\n}\n\n.%cssClass% .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid %bracket%;\n}\n\n.%cssClass% .ace_marker-layer .ace_active_line {\n background: %active_line%;\n}\n\n \n.%cssClass% .ace_invisible {\n %invisible%\n}\n\n.%cssClass% .ace_keyword {\n %keyword%\n}\n\n.%cssClass% .ace_keyword.ace_operator {\n %keyword.operator%\n}\n\n.%cssClass% .ace_constant {\n %constant%\n}\n\n.%cssClass% .ace_constant.ace_language {\n %constant.language%\n}\n\n.%cssClass% .ace_constant.ace_library {\n %constant.library%\n}\n\n.%cssClass% .ace_constant.ace_numeric {\n %constant.numeric%\n}\n\n.%cssClass% .ace_invalid {\n %invalid%\n}\n\n.%cssClass% .ace_invalid.ace_illegal {\n %invalid.illegal%\n}\n\n.%cssClass% .ace_invalid.ace_deprecated {\n %invalid.deprecated%\n}\n\n.%cssClass% .ace_support {\n %support%\n}\n\n.%cssClass% .ace_support.ace_function {\n %support.function%\n}\n\n.%cssClass% .ace_function.ace_buildin {\n %function.buildin%\n}\n\n.%cssClass% .ace_string {\n %string%\n}\n\n.%cssClass% .ace_string.ace_regexp {\n %string.regexp%\n}\n\n.%cssClass% .ace_comment {\n %comment%\n}\n\n.%cssClass% .ace_comment.ace_doc {\n %comment.doc%\n}\n\n.%cssClass% .ace_comment.ace_doc.ace_tag {\n %comment.doc.tag%\n}\n\n.%cssClass% .ace_variable {\n %variable%\n}\n\n.%cssClass% .ace_variable.ace_language {\n %variable.language%\n}\n\n.%cssClass% .ace_xml_pe {\n %xml_pe%\n}\n\n.%cssClass% .ace_meta {\n %meta%\n}\n\n.%cssClass% .ace_meta.ace_tag {\n %meta.tag%\n}\n\n.%cssClass% .ace_meta.ace_tag.ace_input {\n %ace.meta.tag.input%\n}\n\n.%cssClass% .ace_entity.ace_other.ace_attribute-name {\n %entity.other.attribute-name%\n}\n\n\n.%cssClass% .ace_collab.ace_user1 {\n %collab.user1% \n}"),define("text/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),require(["ace/ace"],function(a){window.ace=a}) var Lang = A.Lang, BOUNDING_BOX = 'boundingBox', @@ -29,6 +29,13 @@ var AceEditor = A.Component.create( value: true }, + mode: { + lazyAdd: false, + getter: '_getMode', + setter: '_setMode', + value: EMPTY_STR + }, + readOnly: { lazyAdd: false, getter: '_getReadOnly', @@ -123,6 +130,12 @@ var AceEditor = A.Component.create( return instance.getEditor().getHighlightActiveLine(); }, + _getMode: function() { + var instance = this; + + return instance.getSession().getMode(); + }, + _getReadOnly: function() { var instance = this; @@ -165,6 +178,21 @@ var AceEditor = A.Component.create( instance.getEditor().setHighlightActiveLine(value); }, + _setMode: function(value) { + var instance = this; + + if (value) { + var Mode = require('ace/mode/' + value).Mode; + + if (Mode !== undefined) { + instance.getSession().setMode(new Mode()); + } + else { + throw new Error('The mode \'' + value + '\' is not available.'); + } + } + }, + _setReadOnly: function(value) { var instance = this; diff --git a/build/aui-ace-editor/aui-ace-editor-debug.js b/build/aui-ace-editor/aui-ace-editor-debug.js index 11b1bf9c16f..a1ee1fc8c06 100644 --- a/build/aui-ace-editor/aui-ace-editor-debug.js +++ b/build/aui-ace-editor/aui-ace-editor-debug.js @@ -1,5 +1,5 @@ AUI.add('aui-ace-editor-base', function(A) { -(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push(""),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                          "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                          Sub-Commands of "+e.name+"

                                                                          "),d.push("

                                                                          "+e.description+"

                                                                          ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                          Commands starting with '"+b.search+"':

                                                                          ")):d.push("

                                                                          Available Commands:

                                                                          ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                          '+e.name+""+e.description+"
                                                                          ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                          ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                          "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                          "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function g(e){c(e),f||(f=!0,d()),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",g),b.removeListener(a,"losecapture",g),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}var f=!1;b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",g),b.addListener(a,"losecapture",g),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=0,e=function(a){a.wheelDelta!==undefined?(Math.abs(a.wheelDeltaY)>d&&(d=Math.abs(a.wheelDeltaY)),d>5e3?factor=400:factor=8,a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/factor,a.wheelY=-a.wheelDeltaY/factor):(a.wheelX=0,a.wheelY=-a.wheelDelta/factor)):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",e),b.addListener(a,"mousewheel",e)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function v(){return document.activeElement===c}function m(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!v())return!1}}i=!1,j=!1,c.value=g,l()}function l(){try{c.select()}catch(a){}}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data)},0)},o=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){!h||b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);(c.value.charCodeAt(0)|0)<129||(h?q():p())})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),q=h}var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q=g;if(p&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused()))this.editor.focus();else{var r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}p||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),q==g?D(f):q==i&&B(),m.$clickSelection=null,q=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(q==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){q=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){q=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}q==i?F():q==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                          ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                          ¦
                                                                          ");c.push(""),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                          "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                          "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                          ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                          ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                          "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                          ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                          ","
                                                                          "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                          ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/build/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/build_support/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/demo/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";\n\n@import url("booya.css") print,screen;\n@import "whatup.css" screen;\n@import "wicked.css";\n\n@namespace "http://www.w3.org/1999/xhtml";\n@namespace svg "http://www.w3.org/2000/svg";\n\nli.inline #foo {\n background: url("something.png");\n display: inline;\n padding-left: 3px;\n padding-right: 7px;\n border-right: 1px dotted #066;\n}\n\nli.last.first {\n display: inline;\n padding-left: 3px !important;\n padding-right: 3px;\n border-right: 0px;\n}\n\n@media print {\n li.inline {\n color: black;\n }\n\n\n@charset "UTF-8"; \n\n@page {\n margin: 10%;\n counter-increment: page;\n\n @top-center {\n font-family: sans-serif;\n font-weight: bold;\n font-size: 2em;\n content: counter(page);\n }\n}'),define("text/deps/requirejs/dist/ie.css",[],"\nbody .sect {\n display: none;\n}\n\n\n#content ul.index {\n list-style: none;\n}\n"),define("text/deps/requirejs/dist/main.css",[],'@font-face {\n font-family: Inconsolata;\n src: url("fonts/Inconsolata.ttf");\n}\n\n* {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-size: 12px;\n line-height: 21px;\n background-color: #fff;\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n color: #0a0a0a;\n}\n\n#wrapper {\n margin: 0;\n}\n\n#grid {\n position: fixed;\n top: 0;\n left: 0;\n width: 796px;\n background-image: url("i/grid.png");\n z-index: 100;\n}\n\npre {\n line-height: 18px;\n font-size: 13px;\n margin: 7px 0 21px;\n padding: 5px 10px;\n overflow: auto;\n background-color: #fafafa;\n border: 1px solid #e6e6e6;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n}\n\n/*\n typography stuff\n*/\n.mono {\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n.sans {\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n}\n\n.serif {\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\na {\n color: #2e87dd;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/*\n navigation\n*/\n\n#navBg {\n background-color: #f2f2f2;\n background-image: url("i/shadow.png");\n background-position: right top;\n background-repeat: repeat-y;\n width: 220px;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 0;\n}\n\n#nav {\n background-image: url("i/logo.png");\n background-repeat: no-repeat;\n background-position: center 10px;\n width: 220px;\n float: left;\n margin: 0;\n padding: 150px 20px 0;\n font-size: 13px;\n text-shadow: 1px 1px #fff;\n position: relative;\n z-index: 1;\n}\n\n#nav .homeImageLink {\n position: absolute;\n display: block;\n top: 10px;\n left: 0;\n width: 220px;\n height: 138px;\n}\n#nav ul {\n list-style-type:none;\n padding: 0;\n margin: 21px 0 0 0;\n}\n\n#nav ul li {\n width: 100%;\n}\n\n#nav ul li.version {\n text-align: center;\n color: #4d4d4d;\n}\n\n#nav h1 {\n color: #4d4d4d;\n text-align: center;\n font-size: 15px;\n font-weight: normal;\n text-transform: uppercase;\n letter-spacing: 3px;\n}\n\nspan.spacer {\n color: #2e87dd;\n margin: 0 3px 0 5px;\n background-image: url("i/dot.png");\n background-repeat: repeat-x;\n background-position: left 13px;\n}\n\n/*\n icons\n*/\n\nspan.icon {\n width: 16px;\n display: block;\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n}\n\nspan.icon.home {\n background-position: center 5px;\n}\n\nspan.icon.start {\n background-position: center -27px;\n}\n\nspan.icon.download {\n background-position: center -59px;\n}\n\nspan.icon.api {\n background-position: center -89px;\n}\n\nspan.icon.optimize {\n background-position: center -119px;\n}\n\nspan.icon.script {\n background-position: center -150px;\n}\n\nspan.icon.question {\n background-position: center -182px;\n}\n\nspan.icon.requirement {\n background-position: center -214px;\n}\n\nspan.icon.history {\n background-position: center -247px;\n}\n\nspan.icon.help {\n background-position: center -279px;\n}\n\nspan.icon.blog {\n background-position: center -311px;\n}\n\nspan.icon.twitter {\n background-position: center -343px;\n}\n\nspan.icon.git {\n background-position: center -375px;\n}\n\nspan.icon.fork {\n background-position: center -407px;\n}\n\n/*\n content\n*/\n\n#content {\n margin: 0 0 0 220px;\n padding: 0 20px;\n background-color: #fff;\n font-family: "Georgia", Times New Roman, Times, serif;\n position: relative;\n}\n\n#content p {\n padding: 7px 0;\n color: #333;\n font-size: 14px;\n}\n\n#content h1,\n#content h2,\n#content h3,\n#content h4,\n#content h5 {\n font-weight: normal;\n padding: 21px 0 7px;\n}\n\n#content h1 {\n font-size: 21px;\n}\n\n#content h2 {\n padding: 0 0 18px 0;\n margin: 0 0 7px 0;\n font-weight: normal;\n font-size: 21px;\n line-height: 24px;\n text-align: center;\n color: #222;\n background-image: url("i/arrow.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n text-transform: uppercase;\n letter-spacing: 2px;\n text-shadow: 1px 1px 0 #fff;\n}\n\n#content h2 a {\n color: #222;\n}\n\n#content h2 a:hover,\n#content h3 a:hover,\n#content h4 a:hover {\n text-decoration: none;\n}\n\nspan.sectionMark {\n display: block;\n color: #aaa;\n text-shadow: 1px 1px 0 #fff;\n font-size: 15px;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content h3 {\n font-size: 17px;\n}\n\n#content h4 {\n padding-top: 0;\n font-size: 15px;\n}\n\n#content h5 {\n font-size: 10px;\n}\n\n#content ul {\n list-style-type: disc;\n}\n\n#content ul,\n#content ol {\n /* border-left: 1px solid #333; */\n color: #333;\n font-size: 14px;\n list-style-position: outside;\n margin: 7px 0 21px 0;\n /* padding: 0 0 0 28px; */\n}\n\n#content ul {\n font-style: italic;\n}\n\n#content ol {\n border: none;\n list-style-position: inside;\n padding: 0;\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\n#content ul ul,\n#content ol ol {\n border: none;\n padding: 0;\n margin: 0 0 0 28px;\n}\n\n#content .section {\n padding: 48px 0;\n background-image: url("i/line.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n width: 576px;\n margin: 0 auto;\n}\n\n#content .section .subSection {\n padding: 0 0 0 48px;\n margin: 28px 0 0 0;\n display: block;\n border-left: 2px solid #ddd;\n}\n\n#content .section:last-child {\n background-image: none;\n}\n\n#content .note {\n color: #222;\n background-color: #ffff99;\n padding: 5px 10px;\n margin: 7px 0;\n display: inline-block;\n}\n\n/*\n page directory\n*/\n\n#content #directory.section {\n background-color: #fff;\n width: 576px;\n}\n\n#content #directory.section ul ul ul {\n margin: 0 0 0 48px;\n}\n\n#content #directory.section ul ul li {\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n background-position: left -437px;\n padding-left: 18px;\n font-style: normal;\n}\n\n#content #directory h1 {\n padding: 0 0 65px 0;\n margin: 0 0 14px 0;\n font-weight: normal;\n font-size: 21px;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n color: #222;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n\n#content ul.index {\n padding: 0;\n background-color: transparent;\n border: none;\n -moz-box-shadow: none;\n font-style: normal;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content ul.index li {\n width: 100%;\n font-size: 15px;\n color: #333;\n padding: 0 0 7px 0;\n}\n\n\n/*\n intro page specific\n*/\n\n#content #intro {\n width: 576px;\n margin: 0 auto;\n padding: 21px 0;\n}\n\n#content #intro p,\n#content #intro h1 {\n font-size: 19px;\n line-height: 28px;\n color: green;\n letter-spacing: 2px;\n padding: 0 0 28px 0;\n}\n\n#content #intro p:last-child,\n#content #intro h1:last-child {\n padding: 0;\n}\n\n#content #intro p a {\n color: green;\n text-decoration: underline;\n}\n\n/*\n download page\n*/\n\n#content h4 a.download {\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n background-color: #F2F2F2;\n background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%);\n background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2));\n background-position: 7px -58px, center center;\n background-repeat: no-repeat, no-repeat;\n border: 1px solid #CCCCCC;\n color: #333333;\n font-size: 12px;\n margin: 0 0 0 5px;\n padding: 0 10px 0 25px;\n text-shadow: 1px 1px 0 #FFFFFF;\n}\n\n/*\n footer\n*/\n#footer {\n color: #4d4d4d;\n padding: 65px 20px 20px;\n margin: 20px 0 0 220px;\n text-align: center;\n display: block;\n font-size: 13px;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center top;\n background-color: #fff;\n}\n\n#footer .line {\n display: block;\n}\n\n#footer .line a {\n color: #4d4d4d;\n text-decoration: underline;\n}\n\n/*\n Pygments manni style\n*/\n\ncode {background-color: #fafafa; color: #333;}\n\ncode .comment {color: green; font-style: italic}\ncode .comment.preproc {color: #099; font-style: normal}\ncode .comment.special {font-weight: bold}\n\ncode .keyword {color: #069; font-weight: bold}\ncode .keyword.pseudo {font-weight: normal}\ncode .keyword.type {color: #078}\n\ncode .operator {color: #555}\ncode .operator.word {color: #000; font-weight: bold}\n\ncode .name.builtin {color: #366}\ncode .name.function {color: #c0f}\ncode .name.class {color: #0a8; font-weight: bold}\ncode .name.namespace {color: #0cf; font-weight: bold}\ncode .name.exception {color: #c00; font-weight: bold}\ncode .name.variable {color: #033}\ncode .name.constant {color: #360}\ncode .name.label {color: #99f}\ncode .name.entity {color: #999; font-weight: bold}\ncode .name.attribute {color: #309}\ncode .name.tag {color: #309; font-weight: bold}\ncode .name.decorator {color: #99f}\n\ncode .string {color: #c30}\ncode .string.doc {font-style: italic}\ncode .string.interpol {color: #a00}\ncode .string.escape {color: #c30; font-weight: bold}\ncode .string.regex {color: #3aa}\ncode .string.symbol {color: #fc3}\ncode .string.other {color: #c30}\n\ncode .number {color: #f60}\n\n\n/*\n webkit scroll bars\n*/\n\npre::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\npre::-webkit-scrollbar-button:start:decrement,\npre::-webkit-scrollbar-button:end:increment {\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-button:vertical:increment,\npre::-webkit-scrollbar-button:horizontal:increment {\n background-color: transparent;\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-track-piece {\n -webkit-border-radius: 3px;\n}\n\npre::-webkit-scrollbar-thumb:vertical {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n\n}\n\npre::-webkit-scrollbar-thumb:horizontal {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n}\n\n/*\n hbox\n*/\n\n.hbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: horizontal;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: horizontal;\n\tbox-align: stretch;\n\n\twidth: 100%;\n}\n\n.hbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.vbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: vertical;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: vertical;\n\tbox-align: stretch;\n}\n\n.vbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.spacer {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.reverse {\n\t-webkit-box-direction: reverse;\n\t-moz-box-direction: reverse;\n\tbox-direction: reverse;\n}\n\n.boxFlex0 {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n}\n\n.boxFlex1, .boxFlex {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.boxFlex2 {\n\t-webkit-box-flex: 2;\n\t-moz-box-flex: 2;\n\tbox-flex: 2;\n}\n\n.boxGroup1 {\n\t-webkit-box-flex-group: 1;\n\t-moz-box-flex-group: 1;\n\tbox-flex-group: 1;\n}\n\n.boxGroup2 {\n\t-webkit-box-flex-group: 2;\n\t-moz-box-flex-group: 2;\n\tbox-flex-group: 2;\n}\n\n.start {\n\t-webkit-box-pack: start;\n\t-moz-box-pack: start;\n\tbox-pack: start;\n}\n\n.end {\n\t-webkit-box-pack: end;\n\t-moz-box-pack: end;\n\tbox-pack: end;\n}\n\n.center {\n\t-webkit-box-pack: center;\n\t-moz-box-pack: center;\n\tbox-pack: center;\n}\n\n/*\n clearfix\n*/\n\n.clearfix:after {\n\tcontent: ".";\n\tdisplay: block;\n\tclear: both;\n\tvisibility: hidden;\n\tline-height: 0;\n\theight: 0;\n}\n\nhtml[xmlns] .clearfix {\n\tdisplay: block;\n}\n\n* html .clearfix {\n\theight: 1%;\n}'),define("text/doc/site/iphone.css",[],"#wrapper {\n position:relative;\n overflow:hidden;\n}\n\n#wrapper .content .column1 {\n margin:0 16px 0 15px;\n}\n\n#header .content .signature {\n font-size:18px;\n bottom:0;\n}\n\nUL.menu-list LI {\n font-size:22px;\n}\n\nUL.menu-footer LI {\n font-size:22px;\n}\n\nPRE{\n font-size:22px;\n}\n"),define("text/doc/site/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/lib/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }\nbody { max-width: 60em; }\n.title { text-align: center; }\n.todo { color: red; }\n.done { color: green; }\n.tag { background-color:lightblue; font-weight:normal }\n.target { }\n.timestamp { color: grey }\n.timestamp-kwd { color: CadetBlue }\np.verse { margin-left: 3% }\npre {\n border: 1pt solid #AEBDCC;\n background-color: #F3F5F7;\n padding: 5pt;\n font-family: monospace;\n font-size: 90%;\n overflow:auto;\n}\npre.src {\n background-color: #eee; color: #112; border: 1px solid #000;\n}\ntable { border-collapse: collapse; }\ntd, th { vertical-align: top; }\ndt { font-weight: bold; }\ndiv.figure { padding: 0.5em; }\ndiv.figure p { text-align: center; }\n.linenr { font-size:smaller }\n.code-highlighted {background-color:#ffff00;}\n.org-info-js_info-navigation { border-style:none; }\n#org-info-js_console-label { font-size:10px; font-weight:bold;\n white-space:nowrap; }\n.org-info-js_search-highlight {background-color:#ffff00; color:#000000;\n font-weight:bold; }\n\nsup {\n vertical-align: baseline;\n position: relative;\n top: -0.5em;\n font-size: 80%;\n}\n\nsup a:link, sup a:visited {\n text-decoration: none;\n color: #c00;\n}\n\nsup a:before { content: "["; color: #999; }\nsup a:after { content: "]"; color: #999; }\n\nh1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }\n\n#postamble {\n color: #777;\n font-size: 90%;\n padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;\n margin-top: 2em;\n padding-left: 2em;\n padding-right: 2em;\n text-align: right;\n}\n\n#postamble p { margin: 0; }\n\n#footnotes { border-top: 1px solid #000; }\n\nh1 { font-size: 200% }\nh2 { font-size: 175% }\nh3 { font-size: 150% }\nh4 { font-size: 125% }\n\nh1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }\n\n@media print {\n html { font-size: 11pt; }\n}\n'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"\n#cockpitInput { padding-left: 16px; }\n\n.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }\n\n.cptCompletion { padding: 0; position: absolute; z-index: -1000; }\n.cptCompletion.VALID { background: #FFF; }\n.cptCompletion.INCOMPLETE { background: #DDD; }\n.cptCompletion.INVALID { background: #DDD; }\n.cptCompletion span { color: #FFF; }\n.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }\n.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }\nspan.cptPrompt { color: #66F; font-weight: bold; }\n\n\n.cptHints {\n color: #000;\n position: absolute;\n border: 1px solid rgba(230, 230, 230, 0.8);\n background: rgba(250, 250, 250, 0.8);\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-topright: 10px;\n border-top-left-radius: 10px; border-top-right-radius: 10px;\n z-index: 1000;\n padding: 8px;\n display: none;\n}\n\n.cptFocusPopup { display: block; }\n.cptFocusPopup.cptNoPopup { display: none; }\n\n.cptHints ul { margin: 0; padding: 0 15px; }\n\n.cptGt { font-weight: bold; font-size: 120%; }\n"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],"\n.cptRowIn {\n display: box; display: -moz-box; display: -webkit-box;\n box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;\n box-align: center; -moz-box-align: center; -webkit-box-align: center;\n color: #333;\n background-color: #EEE;\n width: 100%;\n font-family: consolas, courier, monospace;\n}\n.cptRowIn > * { padding-left: 2px; padding-right: 2px; }\n.cptRowIn > img { cursor: pointer; }\n.cptHover { display: none; }\n.cptRowIn:hover > .cptHover { display: block; }\n.cptRowIn:hover > .cptHover.cptHidden { display: none; }\n.cptOutTyped {\n box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;\n font-weight: bold; color: #000; font-size: 120%;\n}\n.cptRowOutput { padding-left: 10px; line-height: 1.2em; }\n.cptRowOutput strong,\n.cptRowOutput b,\n.cptRowOutput th,\n.cptRowOutput h1,\n.cptRowOutput h2,\n.cptRowOutput h3 { color: #000; }\n.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }\n.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }\n.cptRowOutput input[type=password],\n.cptRowOutput input[type=text],\n.cptRowOutput textarea {\n color: #000; font-size: 120%;\n background: transparent; padding: 3px;\n border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;\n}\n.cptRowOutput table,\n.cptRowOutput td,\n.cptRowOutput th { border: 0; padding: 0 2px; }\n.cptRowOutput .right { text-align: right; }\n"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.%cssClass% .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.%cssClass% .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.%cssClass% .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.%cssClass% .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.%cssClass% .ace_print_margin {\n width: 1px;\n background: %printMargin%;\n}\n\n.%cssClass% .ace_scroller {\n background-color: %background%;\n}\n\n.%cssClass% .ace_text-layer {\n cursor: text;\n color: %foreground%;\n}\n\n.%cssClass% .ace_cursor {\n border-left: 2px solid %cursor%;\n}\n\n.%cssClass% .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid %overwrite%;\n}\n \n.%cssClass% .ace_marker-layer .ace_selection {\n background: %selection%;\n}\n\n.%cssClass% .ace_marker-layer .ace_step {\n background: %step%;\n}\n\n.%cssClass% .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid %bracket%;\n}\n\n.%cssClass% .ace_marker-layer .ace_active_line {\n background: %active_line%;\n}\n\n \n.%cssClass% .ace_invisible {\n %invisible%\n}\n\n.%cssClass% .ace_keyword {\n %keyword%\n}\n\n.%cssClass% .ace_keyword.ace_operator {\n %keyword.operator%\n}\n\n.%cssClass% .ace_constant {\n %constant%\n}\n\n.%cssClass% .ace_constant.ace_language {\n %constant.language%\n}\n\n.%cssClass% .ace_constant.ace_library {\n %constant.library%\n}\n\n.%cssClass% .ace_constant.ace_numeric {\n %constant.numeric%\n}\n\n.%cssClass% .ace_invalid {\n %invalid%\n}\n\n.%cssClass% .ace_invalid.ace_illegal {\n %invalid.illegal%\n}\n\n.%cssClass% .ace_invalid.ace_deprecated {\n %invalid.deprecated%\n}\n\n.%cssClass% .ace_support {\n %support%\n}\n\n.%cssClass% .ace_support.ace_function {\n %support.function%\n}\n\n.%cssClass% .ace_function.ace_buildin {\n %function.buildin%\n}\n\n.%cssClass% .ace_string {\n %string%\n}\n\n.%cssClass% .ace_string.ace_regexp {\n %string.regexp%\n}\n\n.%cssClass% .ace_comment {\n %comment%\n}\n\n.%cssClass% .ace_comment.ace_doc {\n %comment.doc%\n}\n\n.%cssClass% .ace_comment.ace_doc.ace_tag {\n %comment.doc.tag%\n}\n\n.%cssClass% .ace_variable {\n %variable%\n}\n\n.%cssClass% .ace_variable.ace_language {\n %variable.language%\n}\n\n.%cssClass% .ace_xml_pe {\n %xml_pe%\n}\n\n.%cssClass% .ace_meta {\n %meta%\n}\n\n.%cssClass% .ace_meta.ace_tag {\n %meta.tag%\n}\n\n.%cssClass% .ace_meta.ace_tag.ace_input {\n %ace.meta.tag.input%\n}\n\n.%cssClass% .ace_entity.ace_other.ace_attribute-name {\n %entity.other.attribute-name%\n}\n\n\n.%cssClass% .ace_collab.ace_user1 {\n %collab.user1% \n}"),define("text/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),require(["ace/ace"],function(a){window.ace=a}) var Lang = A.Lang, BOUNDING_BOX = 'boundingBox', @@ -29,6 +29,13 @@ var AceEditor = A.Component.create( value: true }, + mode: { + lazyAdd: false, + getter: '_getMode', + setter: '_setMode', + value: EMPTY_STR + }, + readOnly: { lazyAdd: false, getter: '_getReadOnly', @@ -123,6 +130,12 @@ var AceEditor = A.Component.create( return instance.getEditor().getHighlightActiveLine(); }, + _getMode: function() { + var instance = this; + + return instance.getSession().getMode(); + }, + _getReadOnly: function() { var instance = this; @@ -165,6 +178,21 @@ var AceEditor = A.Component.create( instance.getEditor().setHighlightActiveLine(value); }, + _setMode: function(value) { + var instance = this; + + if (value) { + var Mode = require('ace/mode/' + value).Mode; + + if (Mode !== undefined) { + instance.getSession().setMode(new Mode()); + } + else { + throw new Error('The mode \'' + value + '\' is not available.'); + } + } + }, + _setReadOnly: function(value) { var instance = this; @@ -244,7 +272,7 @@ define("ace/theme/idle_fingers",["require","exports","module"],function(a,b,c){v }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-mode-html', function(A) { -define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/mode/css").Mode,h=a("ace/tokenizer").Tokenizer,i=a("ace/mode/html_highlight_rules").HtmlHighlightRules,j=a("ace/mode/behaviour/xml").XmlBehaviour,k=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g})};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(k.prototype),b.Mode=k}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:e},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a(d))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.c_cppHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) -}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); -AUI.add('aui-ace-editor-cockpit', function(A) { -define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c)}}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags)}function q(a){this.env=a,this.commandAssignment=new o(p,this)}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue)}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number")this.start=c,this.end=d,this.predictions=e;else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p)},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0)return d}return c.status-a.status}),b!==undefined&&a.forEach(function(a){delete a.distance},this);return a},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter)throw new Error("Can't merge Arguments from different EventEmitters");return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix)},setText:function(a){if(a==null)throw new Error("Illegal text for Argument: "+a);var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b)},toString:function(){return this.prefix+this.text+this.suffix}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f)},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0])},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a)},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a)},toString:function(){return this.arg?this.arg.toString():""}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]")},this),c.push("
                                                                          "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                          "),a.params&&a.params.length>0&&(c.push("
                                                                            "),a.params.forEach(function(a){c.push("
                                                                          • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                          • ")},this),c.push("
                                                                          "));return new l(i.VALID,c.join(""),b)}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this)},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}))},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b]},getParameterNames:function(){return Object.keys(this._assignments)},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a]},this)},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint())},this),l.sort(this._hints)},getWorstHint:function(){return this._hints[0]},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value},this);return a},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a))},this);return b},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined)},this)},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString())},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)))},this);return a.join("")}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints()},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++)b.status>a[c]&&(a[c]=b.status)},this);return a},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString()},this).join("")};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID)},this),l.sort(this._hints)},r.prototype.getHints=function(){return this._hints},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""))}else if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o))}break}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j=""}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}}h++}return k},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value)break;if(this.commandAssignment.value.exec){for(var d=0;d=a.length)break;continue}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g))}}}}(),b.CliRequisition=r}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i)},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i)}}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update())}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup")}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px"}.bind(this);this.outputHeight.addEventListener("change",b),b()}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this)}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup")}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this)},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px")},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN)d=!0;else if(b!=0||c!=0)d=h.execKeyCommand(this.env,"cli",b,c);d&&e.stopEvent(a)},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end))}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString());var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d)}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e)}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | "},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break}d!==a[c]&&(b+="")}return b},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e}}},b.CliView=n}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this))}function k(b){var d;try{d=a("text!cockpit/ui/"+b)}catch(e){}if(d)return d;var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b}return f+b}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec()},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a)},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1e3+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b)},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block"}},b.RequestView=l}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[]}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined)b={};this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return}if(a.hasAttribute("if")&&!this.processIf(a,b))return;b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a))},this),a.parentNode.removeChild(a))},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a}return a.slice(2,-1)},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments)}:d}if(!d){this.handleError("Can't find path="+a);return null}return this.property(a.slice(1),d,c)}finally{this.scope.pop()}},Templater.prototype.envEval=function(script,env,context){with(env)try{this.scope.push(context);return eval(script)}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script}finally{this.scope.pop()}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b)},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a)},exports.Templater=Templater}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                          "+d.responseText+"
                                                                          ")},d.send(null)}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e)},b.shutdown=function(a,b){d.removeCommand(e)}}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                          >
                                                                          ${request.typed}
                                                                          Hide command output Show command output Remove this command from the history
                                                                          '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA==") - }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-theme-clouds', function(A) { define("ace/theme/clouds",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds"}) @@ -340,7 +364,7 @@ define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text" }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-worker-coffee', function(A) { -function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c hint.end) { - hint.distance = cursor - hint.end; - } - else { - hint.distance = 0; - } - }, this); - } - // Sort - hints.sort(function(hint1, hint2) { - // Compare first based on distance from cursor - if (cursor !== undefined) { - var diff = hint1.distance - hint2.distance; - if (diff != 0) { - return diff; - } - } - // otherwise go with hint severity - return hint2.status - hint1.status; - }); - // tidy-up - if (cursor !== undefined) { - hints.forEach(function(hint) { - delete hint.distance; - }, this); - } - return hints; -}; -exports.Hint = Hint; - -/** - * A Hint that arose as a result of a Conversion - */ -function ConversionHint(conversion, arg) { - this.status = conversion.status; - this.message = conversion.message; - if (arg) { - this.start = arg.start; - this.end = arg.end; - } - else { - this.start = 0; - this.end = 0; - } - this.predictions = conversion.predictions; -}; -oop.inherits(ConversionHint, Hint); - - -/** - * We record where in the input string an argument comes so we can report errors - * against those string positions. - * We publish a 'change' event when-ever the text changes - * @param emitter Arguments use something else to pass on change events. - * Currently this will be the creating Requisition. This prevents dependency - * loops and prevents us from needing to merge listener lists. - * @param text The string (trimmed) that contains the argument - * @param start The position of the text in the original input string - * @param end See start - * @param prefix Knowledge of quotation marks and whitespace used prior to the - * text in the input string allows us to re-generate the original input from - * the arguments. - * @param suffix Any quotation marks and whitespace used after the text. - * Whitespace is normally placed in the prefix to the succeeding argument, but - * can be used here when this is the last argument. - * @constructor - */ -function Argument(emitter, text, start, end, prefix, suffix) { - this.emitter = emitter; - this.setText(text); - this.start = start; - this.end = end; - this.prefix = prefix; - this.suffix = suffix; -} -Argument.prototype = { - /** - * Return the result of merging these arguments. - * TODO: What happens when we're merging arguments for the single string - * case and some of the arguments are in quotation marks? - */ - merge: function(following) { - if (following.emitter != this.emitter) { - throw new Error('Can\'t merge Arguments from different EventEmitters'); - } - return new Argument( - this.emitter, - this.text + this.suffix + following.prefix + following.text, - this.start, following.end, - this.prefix, - following.suffix); - }, - - /** - * See notes on events in Assignment. We might need to hook changes here - * into a CliRequisition so they appear of the command line. - */ - setText: function(text) { - if (text == null) { - throw new Error('Illegal text for Argument: ' + text); - } - var ev = { argument: this, oldText: this.text, text: text }; - this.text = text; - this.emitter._dispatchEvent('argumentChange', ev); - }, - - /** - * Helper when we're putting arguments back together - */ - toString: function() { - // TODO: There is a bug here - we should re-escape escaped characters - // But can we do that reliably? - return this.prefix + this.text + this.suffix; - } -}; - -/** - * Merge an array of arguments into a single argument. - * All Arguments in the array are expected to have the same emitter - */ -Argument.merge = function(argArray, start, end) { - start = (start === undefined) ? 0 : start; - end = (end === undefined) ? argArray.length : end; - - var joined; - for (var i = start; i < end; i++) { - var arg = argArray[i]; - if (!joined) { - joined = arg; - } - else { - joined = joined.merge(arg); - } - } - return joined; -}; - -/** - * We sometimes need a way to say 'this error occurs where ever the cursor is' - */ -Argument.AT_CURSOR = -1; - - -/** - * A link between a parameter and the data for that parameter. - * The data for the parameter is available as in the preferred type and as - * an Argument for the CLI. - *

                                                                          We also record validity information where applicable. - *

                                                                          For values, null and undefined have distinct definitions. null means - * that a value has been provided, undefined means that it has not. - * Thus, null is a valid default value, and common because it identifies an - * parameter that is optional. undefined means there is no value from - * the command line. - * @constructor - */ -function Assignment(param, requisition) { - this.param = param; - this.requisition = requisition; - this.setValue(param.defaultValue); -}; -Assignment.prototype = { - /** - * The parameter that we are assigning to - * @readonly - */ - param: undefined, - - /** - * Report on the status of the last parse() conversion. - * @see types.Conversion - */ - conversion: undefined, - - /** - * The current value in a type as specified by param.type - */ - value: undefined, - - /** - * The string version of the current value - */ - arg: undefined, - - /** - * The current value (i.e. not the string representation) - * Use setValue() to mutate - */ - value: undefined, - setValue: function(value) { - if (this.value === value) { - return; - } - - if (value === undefined) { - this.value = this.param.defaultValue; - this.conversion = this.param.getDefault ? - this.param.getDefault() : - this.param.type.getDefault(); - this.arg = undefined; - } else { - this.value = value; - this.conversion = undefined; - var text = (value == null) ? '' : this.param.type.stringify(value); - if (this.arg) { - this.arg.setText(text); - } - } - - this.requisition._assignmentChanged(this); - }, - - /** - * The textual representation of the current value - * Use setValue() to mutate - */ - arg: undefined, - setArgument: function(arg) { - if (this.arg === arg) { - return; - } - this.arg = arg; - this.conversion = this.param.type.parse(arg.text); - this.conversion.arg = arg; // TODO: make this automatic? - this.value = this.conversion.value; - this.requisition._assignmentChanged(this); - }, - - /** - * Create a list of the hints associated with this parameter assignment. - * Generally there will be only one hint generated because we're currently - * only displaying one hint at a time, ordering by distance from cursor - * and severity. Since distance from cursor will be the same for all hints - * from this assignment all but the most severe will ever be used. It might - * make sense with more experience to alter this to function to be getHint() - */ - getHint: function() { - // Allow the parameter to provide documentation - if (this.param.getCustomHint && this.value && this.arg) { - var hint = this.param.getCustomHint(this.value, this.arg); - if (hint) { - return hint; - } - } - - // If there is no argument, use the cursor position - var message = '' + this.param.name + ': '; - if (this.param.description) { - // TODO: This should be a short description - do we need to trim? - message += this.param.description.trim(); - - // Ensure the help text ends with '. ' - if (message.charAt(message.length - 1) !== '.') { - message += '.'; - } - if (message.charAt(message.length - 1) !== ' ') { - message += ' '; - } - } - var status = Status.VALID; - var start = this.arg ? this.arg.start : Argument.AT_CURSOR; - var end = this.arg ? this.arg.end : Argument.AT_CURSOR; - var predictions; - - // Non-valid conversions will have useful information to pass on - if (this.conversion) { - status = this.conversion.status; - if (this.conversion.message) { - message += this.conversion.message; - } - predictions = this.conversion.predictions; - } - - // Hint if the param is required, but not provided - var argProvided = this.arg && this.arg.text !== ''; - var dataProvided = this.value !== undefined || argProvided; - if (this.param.defaultValue === undefined && !dataProvided) { - status = Status.INVALID; - message += 'Required<\strong>'; - } - - return new Hint(status, message, start, end, predictions); - }, - - /** - * Basically setValue(conversion.predictions[0]) done in a safe - * way. - */ - complete: function() { - if (this.conversion && this.conversion.predictions && - this.conversion.predictions.length > 0) { - this.setValue(this.conversion.predictions[0]); - } - }, - - /** - * If the cursor is at 'position', do we have sufficient data to start - * displaying the next hint. This is both complex and important. - * For example, if the user has just typed:

                                                                            - *
                                                                          • 'set tabstop ' then they clearly want to know about the valid - * values for the tabstop setting, so the hint is based on the next - * parameter. - *
                                                                          • 'set tabstop' (without trailing space) - they will probably still - * want to know about the valid values for the tabstop setting because - * there is no confusion about the setting in question. - *
                                                                          • 'set tabsto' they've not finished typing a setting name so the hint - * should be based on the current parameter. - *
                                                                          • 'set tabstop' (when there is an additional tabstopstyle setting) we - * can't make assumptions about the setting - we're not finished. - *
                                                                          - *

                                                                          Note that the input for 2 and 4 is identical, only the configuration - * has changed, so hint display is environmental. - * - *

                                                                          This function works out if the cursor is before the end of this - * assignment (assuming that we've asked the same thing of the previous - * assignment) and then attempts to work out if we should use the hint from - * the next assignment even though technically the cursor is still inside - * this one due to the rules above. - */ - isPositionCaptured: function(position) { - if (!this.arg) { - return false; - } - - // Note we don't check if position >= this.arg.start because that's - // implied by the fact that we're asking the assignments in turn, and - // we want to avoid thing falling between the cracks, but we do need - // to check that the argument does have a position - if (this.arg.start === -1) { - return false; - } - - // We're clearly done if the position is past the end of the text - if (position > this.arg.end) { - return false; - } - - // If we're AT the end, the position is captured if either the status - // is not valid or if there are other valid options including current - if (position === this.arg.end) { - return this.conversion.status !== Status.VALID || - this.conversion.predictions.length !== 0; - } - - // Otherwise we're clearly inside - return true; - }, - - /** - * Replace the current value with the lower value if such a concept - * exists. - */ - decrement: function() { - var replacement = this.param.type.decrement(this.value); - if (replacement != null) { - this.setValue(replacement); - } - }, - - /** - * Replace the current value with the higher value if such a concept - * exists. - */ - increment: function() { - var replacement = this.param.type.increment(this.value); - if (replacement != null) { - this.setValue(replacement); - } - }, - - /** - * Helper when we're rebuilding command lines. - */ - toString: function() { - return this.arg ? this.arg.toString() : ''; - } -}; -exports.Assignment = Assignment; - - -/** - * This is a special parameter to reflect the command itself. - */ -var commandParam = { - name: '__command', - type: 'command', - description: 'The command to execute', - - /** - * Provide some documentation for a command. - */ - getCustomHint: function(command, arg) { - var docs = []; - docs.push(' > '); - docs.push(command.name); - if (command.params && command.params.length > 0) { - command.params.forEach(function(param) { - if (param.defaultValue === undefined) { - docs.push(' [' + param.name + ']'); - } - else { - docs.push(' [' + param.name + ']'); - } - }, this); - } - docs.push('
                                                                          '); - - docs.push(command.description ? command.description : '(No description)'); - docs.push('
                                                                          '); - - if (command.params && command.params.length > 0) { - docs.push('

                                                                            '); - command.params.forEach(function(param) { - docs.push('
                                                                          • '); - docs.push('' + param.name + ': '); - docs.push(param.description ? param.description : '(No description)'); - if (param.defaultValue === undefined) { - docs.push(' [Required]'); - } - else if (param.defaultValue === null) { - docs.push(' [Optional]'); - } - else { - docs.push(' [Default: ' + param.defaultValue + ']'); - } - docs.push('
                                                                          • '); - }, this); - docs.push('
                                                                          '); - } - - return new Hint(Status.VALID, docs.join(''), arg); - } -}; - -/** - * A Requisition collects the information needed to execute a command. - * There is no point in a requisition for parameter-less commands because there - * is no information to collect. A Requisition is a collection of assignments - * of values to parameters, each handled by an instance of Assignment. - * CliRequisition adds functions for parsing input from a command line to this - * class. - *

                                                                          Events

                                                                          - * We publish the following events:
                                                                            - *
                                                                          • argumentChange: The text of some argument has changed. It is likely that - * any UI component displaying this argument will need to be updated. (Note that - * this event is actually published by the Argument itself - see the docs for - * Argument for more details) - * The event object looks like: { argument: A, oldText: B, text: B } - *
                                                                          • commandChange: The command has changed. It is likely that a UI - * structure will need updating to match the parameters of the new command. - * The event object looks like { command: A } - * @constructor - */ -function Requisition(env) { - this.env = env; - this.commandAssignment = new Assignment(commandParam, this); -} - -Requisition.prototype = { - /** - * The command that we are about to execute. - * @see setCommandConversion() - * @readonly - */ - commandAssignment: undefined, - - /** - * The count of assignments. Excludes the commandAssignment - * @readonly - */ - assignmentCount: undefined, - - /** - * The object that stores of Assignment objects that we are filling out. - * The Assignment objects are stored under their param.name for named - * lookup. Note: We make use of the property of Javascript objects that - * they are not just hashmaps, but linked-list hashmaps which iterate in - * insertion order. - * Excludes the commandAssignment. - */ - _assignments: undefined, - - /** - * The store of hints generated by the assignments. We are trying to prevent - * the UI from needing to access this in broad form, but instead use - * methods that query part of this structure. - */ - _hints: undefined, - - /** - * When the command changes, we need to keep a bunch of stuff in sync - */ - _assignmentChanged: function(assignment) { - // This is all about re-creating Assignments - if (assignment.param.name !== '__command') { - return; - } - - this._assignments = {}; - - if (assignment.value) { - assignment.value.params.forEach(function(param) { - this._assignments[param.name] = new Assignment(param, this); - }, this); - } - - this.assignmentCount = Object.keys(this._assignments).length; - this._dispatchEvent('commandChange', { command: assignment.value }); - }, - - /** - * Assignments have an order, so we need to store them in an array. - * But we also need named access ... - */ - getAssignment: function(nameOrNumber) { - var name = (typeof nameOrNumber === 'string') ? - nameOrNumber : - Object.keys(this._assignments)[nameOrNumber]; - return this._assignments[name]; - }, - - /** - * Where parameter name == assignment names - they are the same. - */ - getParameterNames: function() { - return Object.keys(this._assignments); - }, - - /** - * A *shallow* clone of the assignments. - * This is useful for systems that wish to go over all the assignments - * finding values one way or another and wish to trim an array as they go. - */ - cloneAssignments: function() { - return Object.keys(this._assignments).map(function(name) { - return this._assignments[name]; - }, this); - }, - - /** - * Collect the statuses from the Assignments. - * The hints returned are sorted by severity - */ - _updateHints: function() { - // TODO: work out when to clear this out for the plain Requisition case - // this._hints = []; - this.getAssignments(true).forEach(function(assignment) { - this._hints.push(assignment.getHint()); - }, this); - Hint.sort(this._hints); - - // We would like to put some initial help here, but for anyone but - // a complete novice a 'type help' message is very annoying, so we - // need to find a way to only display this message once, or for - // until the user click a 'close' button or similar - // TODO: Add special case for '' input - }, - - /** - * Returns the most severe status - */ - getWorstHint: function() { - return this._hints[0]; - }, - - /** - * Extract the names and values of all the assignments, and return as - * an object. - */ - getArgsObject: function() { - var args = {}; - this.getAssignments().forEach(function(assignment) { - args[assignment.param.name] = assignment.value; - }, this); - return args; - }, - - /** - * Access the arguments as an array. - * @param includeCommand By default only the parameter arguments are - * returned unless (includeCommand === true), in which case the list is - * prepended with commandAssignment.arg - */ - getAssignments: function(includeCommand) { - var args = []; - if (includeCommand === true) { - args.push(this.commandAssignment); - } - Object.keys(this._assignments).forEach(function(name) { - args.push(this.getAssignment(name)); - }, this); - return args; - }, - - /** - * Reset all the assignments to their default values - */ - setDefaultValues: function() { - this.getAssignments().forEach(function(assignment) { - assignment.setValue(undefined); - }, this); - }, - - /** - * Helper to call canon.exec - */ - exec: function() { - canon.exec(this.commandAssignment.value, - this.env, - "cli", - this.getArgsObject(), - this.toCanonicalString()); - }, - - /** - * Extract a canonical version of the input - */ - toCanonicalString: function() { - var line = []; - line.push(this.commandAssignment.value.name); - Object.keys(this._assignments).forEach(function(name) { - var assignment = this._assignments[name]; - var type = assignment.param.type; - // TODO: This will cause problems if there is a non-default value - // after a default value. Also we need to decide when to use - // named parameters in place of positional params. Both can wait. - if (assignment.value !== assignment.param.defaultValue) { - line.push(' '); - line.push(type.stringify(assignment.value)); - } - }, this); - return line.join(''); - } -}; -oop.implement(Requisition.prototype, EventEmitter); -exports.Requisition = Requisition; - - -/** - * An object used during command line parsing to hold the various intermediate - * data steps. - *

                                                                            The 'output' of the update is held in 2 objects: input.hints which is an - * array of hints to display to the user. In the future this will become a - * single value. - *

                                                                            The other output value is input.requisition which gives access to an - * args object for use in executing the final command. - * - *

                                                                            The majority of the functions in this class are called in sequence by the - * constructor. Their task is to add to hints fill out the requisition. - *

                                                                            The general sequence is:

                                                                              - *
                                                                            • _tokenize(): convert _typed into _parts - *
                                                                            • _split(): convert _parts into _command and _unparsedArgs - *
                                                                            • _assign(): convert _unparsedArgs into requisition - *
                                                                            - * - * @param typed {string} The instruction as typed by the user so far - * @param options {object} A list of optional named parameters. Can be any of: - * flags: Flags for us to check against the predicates specified with the - * commands. Defaulted to keyboard.buildFlags({ }); - * if not specified. - * @constructor - */ -function CliRequisition(env, options) { - Requisition.call(this, env); - - if (options && options.flags) { - /** - * TODO: We were using a default of keyboard.buildFlags({ }); - * This allowed us to have commands that only existed in certain contexts - * - i.e. Javascript specific commands. - */ - this.flags = options.flags; - } -} -oop.inherits(CliRequisition, Requisition); -(function() { - /** - * Called by the UI when ever the user interacts with a command line input - * @param input A structure that details the state of the input field. - * It should look something like: { typed:a, cursor: { start:b, end:c } } - * Where a is the contents of the input field, and b and c are the start - * and end of the cursor/selection respectively. - */ - CliRequisition.prototype.update = function(input) { - this.input = input; - this._hints = []; - - var args = this._tokenize(input.typed); - this._split(args); - - if (this.commandAssignment.value) { - this._assign(args); - } - - this._updateHints(); - }; - - /** - * Return an array of Status scores so we can create a marked up - * version of the command line input. - */ - CliRequisition.prototype.getInputStatusMarkup = function() { - // 'scores' is an array which tells us what chars are errors - // Initialize with everything VALID - var scores = this.toString().split('').map(function(ch) { - return Status.VALID; - }); - // For all chars in all hints, check and upgrade the score - this._hints.forEach(function(hint) { - for (var i = hint.start; i <= hint.end; i++) { - if (hint.status > scores[i]) { - scores[i] = hint.status; - } - } - }, this); - return scores; - }; - - /** - * Reconstitute the input from the args - */ - CliRequisition.prototype.toString = function() { - return this.getAssignments(true).map(function(assignment) { - return assignment.toString(); - }, this).join(''); - }; - - var superUpdateHints = CliRequisition.prototype._updateHints; - /** - * Marks up hints in a number of ways: - * - Makes INCOMPLETE hints that are not near the cursor INVALID since - * they can't be completed by typing - * - Finds the most severe hint, and annotates the array with it - * - Finds the hint to display, and also annotates the array with it - * TODO: I'm wondering if array annotation is evil and we should replace - * this with an object. Need to find out more. - */ - CliRequisition.prototype._updateHints = function() { - superUpdateHints.call(this); - - // Not knowing about cursor positioning, the requisition and assignments - // can't know this, but anything they mark as INCOMPLETE is actually - // INVALID unless the cursor is actually inside that argument. - var c = this.input.cursor; - this._hints.forEach(function(hint) { - var startInHint = c.start >= hint.start && c.start <= hint.end; - var endInHint = c.end >= hint.start && c.end <= hint.end; - var inHint = startInHint || endInHint; - if (!inHint && hint.status === Status.INCOMPLETE) { - hint.status = Status.INVALID; - } - }, this); - - Hint.sort(this._hints); - }; - - /** - * Accessor for the hints array. - * While we could just use the hints property, using getHints() is - * preferred for symmetry with Requisition where it needs a function due to - * lack of an atomic update system. - */ - CliRequisition.prototype.getHints = function() { - return this._hints; - }; - - /** - * Look through the arguments attached to our assignments for the assignment - * at the given position. - */ - CliRequisition.prototype.getAssignmentAt = function(position) { - var assignments = this.getAssignments(true); - for (var i = 0; i < assignments.length; i++) { - var assignment = assignments[i]; - if (!assignment.arg) { - // There is no argument in this assignment, we've fallen off - // the end of the obvious answers - it must be this one. - return assignment; - } - if (assignment.isPositionCaptured(position)) { - return assignment; - } - } - - return assignment; - }; - - /** - * Split up the input taking into account ' and " - */ - CliRequisition.prototype._tokenize = function(typed) { - // For blank input, place a dummy empty argument into the list - if (typed == null || typed.length === 0) { - return [ new Argument(this, '', 0, 0, '', '') ]; - } - - var OUTSIDE = 1; // The last character was whitespace - var IN_SIMPLE = 2; // The last character was part of a parameter - var IN_SINGLE_Q = 3; // We're inside a single quote: ' - var IN_DOUBLE_Q = 4; // We're inside double quotes: " - - var mode = OUTSIDE; - - // First we un-escape. This list was taken from: - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Unicode - // We are generally converting to their real values except for \', \" - // and '\ ' which we are converting to unicode private characters so we - // can distinguish them from ', " and ' ', which have special meaning. - // They need swapping back post-split - see unescape2() - typed = typed - .replace(/\\\\/g, '\\') - .replace(/\\b/g, '\b') - .replace(/\\f/g, '\f') - .replace(/\\n/g, '\n') - .replace(/\\r/g, '\r') - .replace(/\\t/g, '\t') - .replace(/\\v/g, '\v') - .replace(/\\n/g, '\n') - .replace(/\\r/g, '\r') - .replace(/\\ /g, '\uF000') - .replace(/\\'/g, '\uF001') - .replace(/\\"/g, '\uF002'); - - function unescape2(str) { - return str - .replace(/\uF000/g, ' ') - .replace(/\uF001/g, '\'') - .replace(/\uF002/g, '"'); - } - - var i = 0; - var start = 0; // Where did this section start? - var prefix = ''; - var args = []; - - while (true) { - if (i >= typed.length) { - // There is nothing else to read - tidy up - if (mode !== OUTSIDE) { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, start, i, prefix, '')); - } - else { - if (i !== start) { - // There's a bunch of whitespace at the end of the - // command add it to the last argument's suffix, - // creating an empty argument if needed. - var extra = typed.substring(start, i); - var lastArg = args[args.length - 1]; - if (!lastArg) { - lastArg = new Argument(this, '', i, i, extra, ''); - args.push(lastArg); - } - else { - lastArg.suffix += extra; - } - } - } - break; - } - - var c = typed[i]; - switch (mode) { - case OUTSIDE: - if (c === '\'') { - prefix = typed.substring(start, i + 1); - mode = IN_SINGLE_Q; - start = i + 1; - } - else if (c === '"') { - prefix = typed.substring(start, i + 1); - mode = IN_DOUBLE_Q; - start = i + 1; - } - else if (/ /.test(c)) { - // Still whitespace, do nothing - } - else { - prefix = typed.substring(start, i); - mode = IN_SIMPLE; - start = i; - } - break; - - case IN_SIMPLE: - // There is an edge case of xx'xx which we are assuming to - // be a single parameter (and same with ") - if (c === ' ') { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, - start, i, prefix, '')); - mode = OUTSIDE; - start = i; - prefix = ''; - } - break; - - case IN_SINGLE_Q: - if (c === '\'') { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, - start - 1, i + 1, prefix, c)); - mode = OUTSIDE; - start = i + 1; - prefix = ''; - } - break; - - case IN_DOUBLE_Q: - if (c === '"') { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, - start - 1, i + 1, prefix, c)); - mode = OUTSIDE; - start = i + 1; - prefix = ''; - } - break; - } - - i++; - } - - return args; - }; - - /** - * Looks in the canon for a command extension that matches what has been - * typed at the command line. - */ - CliRequisition.prototype._split = function(args) { - var argsUsed = 1; - var arg; - - while (argsUsed <= args.length) { - var arg = Argument.merge(args, 0, argsUsed); - this.commandAssignment.setArgument(arg); - - if (!this.commandAssignment.value) { - // Not found. break with value == null - break; - } - - /* - // Previously we needed a way to hide commands depending context. - // We have not resurrected that feature yet. - if (!keyboard.flagsMatch(command.predicates, this.flags)) { - // If the predicates say 'no match' then go LA LA LA - command = null; - break; - } - */ - - if (this.commandAssignment.value.exec) { - // Valid command, break with command valid - for (var i = 0; i < argsUsed; i++) { - args.shift(); - } - break; - } - - argsUsed++; - } - }; - - /** - * Work out which arguments are applicable to which parameters. - *

                                                                            This takes #_command.params and #_unparsedArgs and creates a map of - * param names to 'assignment' objects, which have the following properties: - *

                                                                              - *
                                                                            • param - The matching parameter. - *
                                                                            • index - Zero based index into where the match came from on the input - *
                                                                            • value - The matching input - *
                                                                            - */ - CliRequisition.prototype._assign = function(args) { - if (args.length === 0) { - this.setDefaultValues(); - return; - } - - // Create an error if the command does not take parameters, but we have - // been given them ... - if (this.assignmentCount === 0) { - // TODO: previously we were doing some extra work to avoid this if - // we determined that we had args that were all whitespace, but - // probably given our tighter tokenize() this won't be an issue? - this._hints.push(new Hint(Status.INVALID, - this.commandAssignment.value.name + - ' does not take any parameters', - Argument.merge(args))); - return; - } - - // Special case: if there is only 1 parameter, and that's of type - // text we put all the params into the first param - if (this.assignmentCount === 1) { - var assignment = this.getAssignment(0); - if (assignment.param.type.name === 'text') { - assignment.setArgument(Argument.merge(args)); - return; - } - } - - var assignments = this.cloneAssignments(); - var names = this.getParameterNames(); - - // Extract all the named parameters - var used = []; - assignments.forEach(function(assignment) { - var namedArgText = '--' + assignment.name; - - var i = 0; - while (true) { - var arg = args[i]; - if (namedArgText !== arg.text) { - i++; - if (i >= args.length) { - break; - } - continue; - } - - // boolean parameters don't have values, default to false - if (assignment.param.type.name === 'boolean') { - assignment.setValue(true); - } - else { - if (i + 1 < args.length) { - // Missing value portion of this named param - this._hints.push(new Hint(Status.INCOMPLETE, - 'Missing value for: ' + namedArgText, - args[i])); - } - else { - args.splice(i + 1, 1); - assignment.setArgument(args[i + 1]); - } - } - - lang.arrayRemove(names, assignment.name); - args.splice(i, 1); - // We don't need to i++ if we splice - } - }, this); - - // What's left are positional parameters assign in order - names.forEach(function(name) { - var assignment = this.getAssignment(name); - if (args.length === 0) { - // No more values - assignment.setValue(undefined); // i.e. default - } - else { - var arg = args[0]; - args.splice(0, 1); - assignment.setArgument(arg); - } - }, this); - - if (args.length > 0) { - var remaining = Argument.merge(args); - this._hints.push(new Hint(Status.INVALID, - 'Input \'' + remaining.text + '\' makes no sense.', - remaining)); - } - }; - -})(); -exports.CliRequisition = CliRequisition; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/ui/settings', ['require', 'exports', 'module' , 'pilot/types', 'pilot/types/basic'], function(require, exports, module) { - - -var types = require("pilot/types"); -var SelectionType = require('pilot/types/basic').SelectionType; - -var direction = new SelectionType({ - name: 'direction', - data: [ 'above', 'below' ] -}); - -var hintDirectionSetting = { - name: "hintDirection", - description: "Are hints shown above or below the command line?", - type: "direction", - defaultValue: "above" -}; - -var outputDirectionSetting = { - name: "outputDirection", - description: "Is the output window shown above or below the command line?", - type: "direction", - defaultValue: "above" -}; - -var outputHeightSetting = { - name: "outputHeight", - description: "What height should the output panel be?", - type: "number", - defaultValue: 300 -}; - -exports.startup = function(data, reason) { - types.registerType(direction); - data.env.settings.addSetting(hintDirectionSetting); - data.env.settings.addSetting(outputDirectionSetting); - data.env.settings.addSetting(outputHeightSetting); -}; - -exports.shutdown = function(data, reason) { - types.unregisterType(direction); - data.env.settings.removeSetting(hintDirectionSetting); - data.env.settings.removeSetting(outputDirectionSetting); - data.env.settings.removeSetting(outputHeightSetting); -}; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/ui/cli_view', ['require', 'exports', 'module' , 'text!cockpit/ui/cli_view.css', 'pilot/event', 'pilot/dom', 'pilot/keys', 'pilot/canon', 'pilot/types', 'cockpit/cli', 'cockpit/ui/request_view'], function(require, exports, module) { - - -var editorCss = require("text!cockpit/ui/cli_view.css"); -var event = require("pilot/event"); -var dom = require("pilot/dom"); - -dom.importCssString(editorCss); - -var event = require("pilot/event"); -var keys = require("pilot/keys"); -var canon = require("pilot/canon"); -var Status = require('pilot/types').Status; - -var CliRequisition = require('cockpit/cli').CliRequisition; -var Hint = require('cockpit/cli').Hint; -var RequestView = require('cockpit/ui/request_view').RequestView; - -var NO_HINT = new Hint(Status.VALID, '', 0, 0); - -/** - * On startup we need to: - * 1. Add 3 sets of elements to the DOM for: - * - command line output - * - input hints - * - completion - * 2. Attach a set of events so the command line works - */ -exports.startup = function(data, reason) { - var cli = new CliRequisition(data.env); - var cliView = new CliView(cli, data.env); - data.env.cli = cli; -}; - -/** - * A class to handle the simplest UI implementation - */ -function CliView(cli, env) { - cli.cliView = this; - this.cli = cli; - this.doc = document; - this.win = dom.getParentWindow(this.doc); - this.env = env; - - // TODO: we should have a better way to specify command lines??? - this.element = this.doc.getElementById('cockpitInput'); - if (!this.element) { - // console.log('No element with an id of cockpit. Bailing on cli'); - return; - } - - this.settings = env.settings; - this.hintDirection = this.settings.getSetting('hintDirection'); - this.outputDirection = this.settings.getSetting('outputDirection'); - this.outputHeight = this.settings.getSetting('outputHeight'); - - // If the requisition tells us something has changed, we use this to know - // if we should ignore it - this.isUpdating = false; - - this.createElements(); - this.update(); -} -CliView.prototype = { - /** - * Create divs for completion, hints and output - */ - createElements: function() { - var input = this.element; - - this.element.spellcheck = false; - - this.output = this.doc.getElementById('cockpitOutput'); - this.popupOutput = (this.output == null); - if (!this.output) { - this.output = this.doc.createElement('div'); - this.output.id = 'cockpitOutput'; - this.output.className = 'cptOutput'; - input.parentNode.insertBefore(this.output, input.nextSibling); - - var setMaxOutputHeight = function() { - this.output.style.maxHeight = this.outputHeight.get() + 'px'; - }.bind(this); - this.outputHeight.addEventListener('change', setMaxOutputHeight); - setMaxOutputHeight(); - } - - this.completer = this.doc.createElement('div'); - this.completer.className = 'cptCompletion VALID'; - - this.completer.style.color = dom.computedStyle(input, "color"); - this.completer.style.fontSize = dom.computedStyle(input, "fontSize"); - this.completer.style.fontFamily = dom.computedStyle(input, "fontFamily"); - this.completer.style.fontWeight = dom.computedStyle(input, "fontWeight"); - this.completer.style.fontStyle = dom.computedStyle(input, "fontStyle"); - input.parentNode.insertBefore(this.completer, input.nextSibling); - - // Transfer background styling to the completer. - this.completer.style.backgroundColor = input.style.backgroundColor; - input.style.backgroundColor = 'transparent'; - - this.hinter = this.doc.createElement('div'); - this.hinter.className = 'cptHints'; - input.parentNode.insertBefore(this.hinter, input.nextSibling); - - var resizer = this.resizer.bind(this); - event.addListener(this.win, 'resize', resizer); - this.hintDirection.addEventListener('change', resizer); - this.outputDirection.addEventListener('change', resizer); - resizer(); - - canon.addEventListener('output', function(ev) { - new RequestView(ev.request, this); - }.bind(this)); - event.addCommandKeyListener(input, this.onCommandKey.bind(this)); - event.addListener(input, 'keyup', this.onKeyUp.bind(this)); - - // cursor position affects hint severity. TODO: shortcuts for speed - event.addListener(input, 'mouseup', function(ev) { - this.isUpdating = true; - this.update(); - this.isUpdating = false; - }.bind(this)); - - this.cli.addEventListener('argumentChange', this.onArgChange.bind(this)); - - event.addListener(input, "focus", function() { - dom.addCssClass(this.output, "cptFocusPopup"); - dom.addCssClass(this.hinter, "cptFocusPopup"); - }.bind(this)); - - function hideOutput() { - dom.removeCssClass(this.output, "cptFocusPopup"); - dom.removeCssClass(this.hinter, "cptFocusPopup"); - }; - event.addListener(input, "blur", hideOutput.bind(this)); - hideOutput.call(this); - }, - - /** - * We need to see the output of the latest command entered - */ - scrollOutputToBottom: function() { - // Certain browsers have a bug such that scrollHeight is too small - // when content does not fill the client area of the element - var scrollHeight = Math.max(this.output.scrollHeight, this.output.clientHeight); - this.output.scrollTop = scrollHeight - this.output.clientHeight; - }, - - /** - * To be called on window resize or any time we want to align the elements - * with the input box. - */ - resizer: function() { - var rect = this.element.getClientRects()[0]; - - this.completer.style.top = rect.top + 'px'; - var height = rect.bottom - rect.top; - this.completer.style.height = height + 'px'; - this.completer.style.lineHeight = height + 'px'; - this.completer.style.left = rect.left + 'px'; - var width = rect.right - rect.left; - this.completer.style.width = width + 'px'; - - if (this.hintDirection.get() === 'below') { - this.hinter.style.top = rect.bottom + 'px'; - this.hinter.style.bottom = 'auto'; - } - else { - this.hinter.style.top = 'auto'; - this.hinter.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; - } - this.hinter.style.left = (rect.left + 30) + 'px'; - this.hinter.style.maxWidth = (width - 110) + 'px'; - - if (this.popupOutput) { - if (this.outputDirection.get() === 'below') { - this.output.style.top = rect.bottom + 'px'; - this.output.style.bottom = 'auto'; - } - else { - this.output.style.top = 'auto'; - this.output.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; - } - this.output.style.left = rect.left + 'px'; - this.output.style.width = (width - 80) + 'px'; - } - }, - - /** - * Ensure that TAB isn't handled by the browser - */ -onCommandKey: function(ev, hashId, keyCode) { - var stopEvent; - if (keyCode === keys.TAB || - keyCode === keys.UP || - keyCode === keys.DOWN) { - stopEvent = true; - } else if (hashId != 0 || keyCode != 0) { - stopEvent = canon.execKeyCommand(this.env, 'cli', hashId, keyCode); - } - stopEvent && event.stopEvent(ev); - }, - - /** - * The main keyboard processing loop - */ - onKeyUp: function(ev) { - var handled; - /* - var handled = keyboardManager.processKeyEvent(ev, this, { - isCommandLine: true, isKeyUp: true - }); - */ - - // RETURN does a special exec/highlight thing - if (ev.keyCode === keys.RETURN) { - var worst = this.cli.getWorstHint(); - // Deny RETURN unless the command might work - if (worst.status === Status.VALID) { - this.cli.exec(); - this.element.value = ''; - } - else { - // If we've denied RETURN because the command was not VALID, - // select the part of the command line that is causing problems - // TODO: if there are 2 errors are we picking the right one? - dom.setSelectionStart(this.element, worst.start); - dom.setSelectionEnd(this.element, worst.end); - } - } - - this.update(); - - // Special actions which delegate to the assignment - var current = this.cli.getAssignmentAt(dom.getSelectionStart(this.element)); - if (current) { - // TAB does a special complete thing - if (ev.keyCode === keys.TAB) { - current.complete(); - this.update(); - } - - // UP/DOWN look for some history - if (ev.keyCode === keys.UP) { - current.increment(); - this.update(); - } - if (ev.keyCode === keys.DOWN) { - current.decrement(); - this.update(); - } - } - - return handled; - }, - - /** - * Actually parse the input and make sure we're all up to date - */ - update: function() { - this.isUpdating = true; - var input = { - typed: this.element.value, - cursor: { - start: dom.getSelectionStart(this.element), - end: dom.getSelectionEnd(this.element.selectionEnd) - } - }; - this.cli.update(input); - - var display = this.cli.getAssignmentAt(input.cursor.start).getHint(); - - // 1. Update the completer with prompt/error marker/TAB info - dom.removeCssClass(this.completer, Status.VALID.toString()); - dom.removeCssClass(this.completer, Status.INCOMPLETE.toString()); - dom.removeCssClass(this.completer, Status.INVALID.toString()); - - var completion = '> '; - if (this.element.value.length > 0) { - var scores = this.cli.getInputStatusMarkup(); - completion += this.markupStatusScore(scores); - } - - // Display the "-> prediction" at the end of the completer - if (this.element.value.length > 0 && - display.predictions && display.predictions.length > 0) { - var tab = display.predictions[0]; - completion += '  ⇥ ' + (tab.name ? tab.name : tab); - } - this.completer.innerHTML = completion; - dom.addCssClass(this.completer, this.cli.getWorstHint().status.toString()); - - // 2. Update the hint element - var hint = ''; - if (this.element.value.length !== 0) { - hint += display.message; - if (display.predictions && display.predictions.length > 0) { - hint += ': [ '; - display.predictions.forEach(function(prediction) { - hint += (prediction.name ? prediction.name : prediction); - hint += ' | '; - }, this); - hint = hint.replace(/\| $/, ']'); - } - } - - this.hinter.innerHTML = hint; - if (hint.length === 0) { - dom.addCssClass(this.hinter, 'cptNoPopup'); - } - else { - dom.removeCssClass(this.hinter, 'cptNoPopup'); - } - - this.isUpdating = false; - }, - - /** - * Markup an array of Status values with spans - */ - markupStatusScore: function(scores) { - var completion = ''; - // Create mark-up - var i = 0; - var lastStatus = -1; - while (true) { - if (lastStatus !== scores[i]) { - completion += ''; - lastStatus = scores[i]; - } - completion += this.element.value[i]; - i++; - if (i === this.element.value.length) { - completion += ''; - break; - } - if (lastStatus !== scores[i]) { - completion += ''; - } - } - - return completion; - }, - - /** - * Update the input element to reflect the changed argument - */ - onArgChange: function(ev) { - if (this.isUpdating) { - return; - } - - var prefix = this.element.value.substring(0, ev.argument.start); - var suffix = this.element.value.substring(ev.argument.end); - var insert = typeof ev.text === 'string' ? ev.text : ev.text.name; - this.element.value = prefix + insert + suffix; - // Fix the cursor. - var insertEnd = (prefix + insert).length; - this.element.selectionStart = insertEnd; - this.element.selectionEnd = insertEnd; - } -}; -exports.CliView = CliView; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/ui/request_view', ['require', 'exports', 'module' , 'pilot/dom', 'pilot/event', 'text!cockpit/ui/request_view.html', 'pilot/domtemplate', 'text!cockpit/ui/request_view.css'], function(require, exports, module) { - -var dom = require("pilot/dom"); -var event = require("pilot/event"); -var requestViewHtml = require("text!cockpit/ui/request_view.html"); -var Templater = require("pilot/domtemplate").Templater; - -var requestViewCss = require("text!cockpit/ui/request_view.css"); -dom.importCssString(requestViewCss); - -/** - * Pull the HTML into the DOM, but don't add it to the document - */ -var templates = document.createElement('div'); -templates.innerHTML = requestViewHtml; -var row = templates.querySelector('.cptRow'); - -/** - * Work out the path for images. - * TODO: This should probably live in some utility area somewhere - */ -function imageUrl(path) { - var dataUrl; - try { - dataUrl = require('text!cockpit/ui/' + path); - } catch (e) { } - if (dataUrl) { - return dataUrl; - } - - var filename = module.id.split('/').pop() + '.js'; - var imagePath; - - if (module.uri.substr(-filename.length) !== filename) { - console.error('Can\'t work out path from module.uri/module.id'); - return path; - } - - if (module.uri) { - var end = module.uri.length - filename.length - 1; - return module.uri.substr(0, end) + "/" + path; - } - - return filename + path; -} - - -/** - * Adds a row to the CLI output display - */ -function RequestView(request, cliView) { - this.request = request; - this.cliView = cliView; - this.imageUrl = imageUrl; - - // Elements attached to this by the templater. For info only - this.rowin = null; - this.rowout = null; - this.output = null; - this.hide = null; - this.show = null; - this.duration = null; - this.throb = null; - - new Templater().processNode(row.cloneNode(true), this); - - this.cliView.output.appendChild(this.rowin); - this.cliView.output.appendChild(this.rowout); - - this.request.addEventListener('output', this.onRequestChange.bind(this)); -}; - -RequestView.prototype = { - /** - * A single click on an invocation line in the console copies the command to - * the command line - */ - copyToInput: function() { - this.cliView.element.value = this.request.typed; - }, - - /** - * A double click on an invocation line in the console executes the command - */ - executeRequest: function(ev) { - this.cliView.cli.update({ - typed: this.request.typed, - cursor: { start:0, end:0 } - }); - this.cliView.cli.exec(); - }, - - hideOutput: function(ev) { - this.output.style.display = 'none'; - dom.addCssClass(this.hide, 'cmd_hidden'); - dom.removeCssClass(this.show, 'cmd_hidden'); - - event.stopPropagation(ev); - }, - - showOutput: function(ev) { - this.output.style.display = 'block'; - dom.removeCssClass(this.hide, 'cmd_hidden'); - dom.addCssClass(this.show, 'cmd_hidden'); - - event.stopPropagation(ev); - }, - - remove: function(ev) { - this.cliView.output.removeChild(this.rowin); - this.cliView.output.removeChild(this.rowout); - event.stopPropagation(ev); - }, - - onRequestChange: function(ev) { - this.duration.innerHTML = this.request.duration ? - 'completed in ' + (this.request.duration / 1000) + ' sec ' : - ''; - - this.output.innerHTML = ''; - this.request.outputs.forEach(function(output) { - var node; - if (typeof output == 'string') { - node = document.createElement('p'); - node.innerHTML = output; - } else { - node = output; - } - this.output.appendChild(node); - }, this); - this.cliView.scrollOutputToBottom(); - - dom.setCssClass(this.output, 'cmd_error', this.request.error); - - this.throb.style.display = this.request.completed ? 'none' : 'block'; - } -}; -exports.RequestView = RequestView; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is DomTemplate. - * - * The Initial Developer of the Original Code is Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('pilot/domtemplate', ['require', 'exports', 'module' ], function(require, exports, module) { - - -// WARNING: do not 'use_strict' without reading the notes in envEval; - -/** - * A templater that allows one to quickly template DOM nodes. - */ -function Templater() { - this.scope = []; -}; - -/** - * Recursive function to walk the tree processing the attributes as it goes. - * @param node the node to process. If you pass a string in instead of a DOM - * element, it is assumed to be an id for use with document.getElementById() - * @param data the data to use for node processing. - */ -Templater.prototype.processNode = function(node, data) { - if (typeof node === 'string') { - node = document.getElementById(node); - } - if (data === null || data === undefined) { - data = {}; - } - this.scope.push(node.nodeName + (node.id ? '#' + node.id : '')); - try { - // Process attributes - if (node.attributes && node.attributes.length) { - // We need to handle 'foreach' and 'if' first because they might stop - // some types of processing from happening, and foreach must come first - // because it defines new data on which 'if' might depend. - if (node.hasAttribute('foreach')) { - this.processForEach(node, data); - return; - } - if (node.hasAttribute('if')) { - if (!this.processIf(node, data)) { - return; - } - } - // Only make the node available once we know it's not going away - data.__element = node; - // It's good to clean up the attributes when we've processed them, - // but if we do it straight away, we mess up the array index - var attrs = Array.prototype.slice.call(node.attributes); - for (var i = 0; i < attrs.length; i++) { - var value = attrs[i].value; - var name = attrs[i].name; - this.scope.push(name); - try { - if (name === 'save') { - // Save attributes are a setter using the node - value = this.stripBraces(value); - this.property(value, data, node); - node.removeAttribute('save'); - } else if (name.substring(0, 2) === 'on') { - // Event registration relies on property doing a bind - value = this.stripBraces(value); - var func = this.property(value, data); - if (typeof func !== 'function') { - this.handleError('Expected ' + value + - ' to resolve to a function, but got ' + typeof func); - } - node.removeAttribute(name); - var capture = node.hasAttribute('capture' + name.substring(2)); - node.addEventListener(name.substring(2), func, capture); - if (capture) { - node.removeAttribute('capture' + name.substring(2)); - } - } else { - // Replace references in all other attributes - var self = this; - var newValue = value.replace(/\$\{[^}]*\}/g, function(path) { - return self.envEval(path.slice(2, -1), data, value); - }); - // Remove '_' prefix of attribute names so the DOM won't try - // to use them before we've processed the template - if (name.charAt(0) === '_') { - node.removeAttribute(name); - node.setAttribute(name.substring(1), newValue); - } else if (value !== newValue) { - attrs[i].value = newValue; - } - } - } finally { - this.scope.pop(); - } - } - } - - // Loop through our children calling processNode. First clone them, so the - // set of nodes that we visit will be unaffected by additions or removals. - var childNodes = Array.prototype.slice.call(node.childNodes); - for (var j = 0; j < childNodes.length; j++) { - this.processNode(childNodes[j], data); - } - - if (node.nodeType === Node.TEXT_NODE) { - this.processTextNode(node, data); - } - } finally { - this.scope.pop(); - } -}; - -/** - * Handle - * @param node An element with an 'if' attribute - * @param data The data to use with envEval - * @returns true if processing should continue, false otherwise - */ -Templater.prototype.processIf = function(node, data) { - this.scope.push('if'); - try { - var originalValue = node.getAttribute('if'); - var value = this.stripBraces(originalValue); - var recurse = true; - try { - var reply = this.envEval(value, data, originalValue); - recurse = !!reply; - } catch (ex) { - this.handleError('Error with \'' + value + '\'', ex); - recurse = false; - } - if (!recurse) { - node.parentNode.removeChild(node); - } - node.removeAttribute('if'); - return recurse; - } finally { - this.scope.pop(); - } -}; - -/** - * Handle and the special case of - * - * @param node An element with a 'foreach' attribute - * @param data The data to use with envEval - */ -Templater.prototype.processForEach = function(node, data) { - this.scope.push('foreach'); - try { - var originalValue = node.getAttribute('foreach'); - var value = originalValue; - - var paramName = 'param'; - if (value.charAt(0) === '$') { - // No custom loop variable name. Use the default: 'param' - value = this.stripBraces(value); - } else { - // Extract the loop variable name from 'NAME in ${ARRAY}' - var nameArr = value.split(' in '); - paramName = nameArr[0].trim(); - value = this.stripBraces(nameArr[1].trim()); - } - node.removeAttribute('foreach'); - try { - var self = this; - // Process a single iteration of a loop - var processSingle = function(member, clone, ref) { - ref.parentNode.insertBefore(clone, ref); - data[paramName] = member; - self.processNode(clone, data); - delete data[paramName]; - }; - - // processSingle is no good for nodes where we want to work on - // the childNodes rather than the node itself - var processAll = function(scope, member) { - self.scope.push(scope); - try { - if (node.nodeName === 'LOOP') { - for (var i = 0; i < node.childNodes.length; i++) { - var clone = node.childNodes[i].cloneNode(true); - processSingle(member, clone, node); - } - } else { - var clone = node.cloneNode(true); - clone.removeAttribute('foreach'); - processSingle(member, clone, node); - } - } finally { - self.scope.pop(); - } - }; - - var reply = this.envEval(value, data, originalValue); - if (Array.isArray(reply)) { - reply.forEach(function(data, i) { - processAll('' + i, data); - }, this); - } else { - for (var param in reply) { - if (reply.hasOwnProperty(param)) { - processAll(param, param); - } - } - } - node.parentNode.removeChild(node); - } catch (ex) { - this.handleError('Error with \'' + value + '\'', ex); - } - } finally { - this.scope.pop(); - } -}; - -/** - * Take a text node and replace it with another text node with the ${...} - * sections parsed out. We replace the node by altering node.parentNode but - * we could probably use a DOM Text API to achieve the same thing. - * @param node The Text node to work on - * @param data The data to use in calls to envEval - */ -Templater.prototype.processTextNode = function(node, data) { - // Replace references in other attributes - var value = node.data; - // We can't use the string.replace() with function trick (see generic - // attribute processing in processNode()) because we need to support - // functions that return DOM nodes, so we can't have the conversion to a - // string. - // Instead we process the string as an array of parts. In order to split - // the string up, we first replace '${' with '\uF001$' and '}' with '\uF002' - // We can then split using \uF001 or \uF002 to get an array of strings - // where scripts are prefixed with $. - // \uF001 and \uF002 are just unicode chars reserved for private use. - value = value.replace(/\$\{([^}]*)\}/g, '\uF001$$$1\uF002'); - var parts = value.split(/\uF001|\uF002/); - if (parts.length > 1) { - parts.forEach(function(part) { - if (part === null || part === undefined || part === '') { - return; - } - if (part.charAt(0) === '$') { - part = this.envEval(part.slice(1), data, node.data); - } - // It looks like this was done a few lines above but see envEval - if (part === null) { - part = "null"; - } - if (part === undefined) { - part = "undefined"; - } - // if (isDOMElement(part)) { ... } - if (typeof part.cloneNode !== 'function') { - part = node.ownerDocument.createTextNode(part.toString()); - } - node.parentNode.insertBefore(part, node); - }, this); - node.parentNode.removeChild(node); - } -}; - -/** - * Warn of string does not begin '${' and end '}' - * @param str the string to check. - * @return The string stripped of ${ and }, or untouched if it does not match - */ -Templater.prototype.stripBraces = function(str) { - if (!str.match(/\$\{.*\}/g)) { - this.handleError('Expected ' + str + ' to match ${...}'); - return str; - } - return str.slice(2, -1); -}; - -/** - * Combined getter and setter that works with a path through some data set. - * For example: - *
                                                                              - *
                                                                            • property('a.b', { a: { b: 99 }}); // returns 99 - *
                                                                            • property('a', { a: { b: 99 }}); // returns { b: 99 } - *
                                                                            • property('a', { a: { b: 99 }}, 42); // returns 99 and alters the - * input data to be { a: { b: 42 }} - *
                                                                            - * @param path An array of strings indicating the path through the data, or - * a string to be cut into an array using split('.') - * @param data An object to look in for the path argument - * @param newValue (optional) If defined, this value will replace the - * original value for the data at the path specified. - * @return The value pointed to by path before any - * newValue is applied. - */ -Templater.prototype.property = function(path, data, newValue) { - this.scope.push(path); - try { - if (typeof path === 'string') { - path = path.split('.'); - } - var value = data[path[0]]; - if (path.length === 1) { - if (newValue !== undefined) { - data[path[0]] = newValue; - } - if (typeof value === 'function') { - return function() { - return value.apply(data, arguments); - }; - } - return value; - } - if (!value) { - this.handleError('Can\'t find path=' + path); - return null; - } - return this.property(path.slice(1), value, newValue); - } finally { - this.scope.pop(); - } -}; - -/** - * Like eval, but that creates a context of the variables in env in - * which the script is evaluated. - * WARNING: This script uses 'with' which is generally regarded to be evil. - * The alternative is to create a Function at runtime that takes X parameters - * according to the X keys in the env object, and then call that function using - * the values in the env object. This is likely to be slow, but workable. - * @param script The string to be evaluated. - * @param env The environment in which to eval the script. - * @param context Optional debugging string in case of failure - * @return The return value of the script, or the error message if the script - * execution failed. - */ -Templater.prototype.envEval = function(script, env, context) { - with (env) { - try { - this.scope.push(context); - return eval(script); - } catch (ex) { - this.handleError('Template error evaluating \'' + script + '\'', ex); - return script; - } finally { - this.scope.pop(); - } - } -}; - -/** - * A generic way of reporting errors, for easy overloading in different - * environments. - * @param message the error message to report. - * @param ex optional associated exception. - */ -Templater.prototype.handleError = function(message, ex) { - this.logError(message); - this.logError('In: ' + this.scope.join(' > ')); - if (ex) { - this.logError(ex); - } -}; - - -/** - * A generic way of reporting errors, for easy overloading in different - * environments. - * @param message the error message to report. - */ -Templater.prototype.logError = function(message) { - window.console && window.console.log && console.log(message); -}; - -exports.Templater = Templater; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Skywriter Team (skywriter@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/commands/basic', ['require', 'exports', 'module' , 'pilot/canon'], function(require, exports, module) { - - -var canon = require('pilot/canon'); - -/** - * '!' command - */ -var bangCommandSpec = { - name: 'sh', - description: 'Execute a system command (requires server support)', - params: [ - { - name: 'command', - type: 'text', - description: 'The string to send to the os shell.' - } - ], - exec: function(env, args, request) { - var req = new XMLHttpRequest(); - req.open('GET', '/exec?args=' + args.command, true); - req.onreadystatechange = function(ev) { - if (req.readyState == 4) { - if (req.status == 200) { - request.done('
                                                                            ' + req.responseText + '
                                                                            '); - } - } - }; - req.send(null); - } -}; - -var canon = require('pilot/canon'); - -exports.startup = function(data, reason) { - canon.addCommand(bangCommandSpec); -}; - -exports.shutdown = function(data, reason) { - canon.removeCommand(bangCommandSpec); -}; - - -}); -define("text!cockpit/ui/cli_view.css", [], "" + - "#cockpitInput { padding-left: 16px; }" + - "" + - ".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }" + - "" + - ".cptCompletion { padding: 0; position: absolute; z-index: -1000; }" + - ".cptCompletion.VALID { background: #FFF; }" + - ".cptCompletion.INCOMPLETE { background: #DDD; }" + - ".cptCompletion.INVALID { background: #DDD; }" + - ".cptCompletion span { color: #FFF; }" + - ".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }" + - ".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }" + - "span.cptPrompt { color: #66F; font-weight: bold; }" + - "" + - "" + - ".cptHints {" + - " color: #000;" + - " position: absolute;" + - " border: 1px solid rgba(230, 230, 230, 0.8);" + - " background: rgba(250, 250, 250, 0.8);" + - " -moz-border-radius-topleft: 10px;" + - " -moz-border-radius-topright: 10px;" + - " border-top-left-radius: 10px; border-top-right-radius: 10px;" + - " z-index: 1000;" + - " padding: 8px;" + - " display: none;" + - "}" + - "" + - ".cptFocusPopup { display: block; }" + - ".cptFocusPopup.cptNoPopup { display: none; }" + - "" + - ".cptHints ul { margin: 0; padding: 0 15px; }" + - "" + - ".cptGt { font-weight: bold; font-size: 120%; }" + - ""); - -define("text!cockpit/ui/request_view.css", [], "" + - ".cptRowIn {" + - " display: box; display: -moz-box; display: -webkit-box;" + - " box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;" + - " box-align: center; -moz-box-align: center; -webkit-box-align: center;" + - " color: #333;" + - " background-color: #EEE;" + - " width: 100%;" + - " font-family: consolas, courier, monospace;" + - "}" + - ".cptRowIn > * { padding-left: 2px; padding-right: 2px; }" + - ".cptRowIn > img { cursor: pointer; }" + - ".cptHover { display: none; }" + - ".cptRowIn:hover > .cptHover { display: block; }" + - ".cptRowIn:hover > .cptHover.cptHidden { display: none; }" + - ".cptOutTyped {" + - " box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;" + - " font-weight: bold; color: #000; font-size: 120%;" + - "}" + - ".cptRowOutput { padding-left: 10px; line-height: 1.2em; }" + - ".cptRowOutput strong," + - ".cptRowOutput b," + - ".cptRowOutput th," + - ".cptRowOutput h1," + - ".cptRowOutput h2," + - ".cptRowOutput h3 { color: #000; }" + - ".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }" + - ".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }" + - ".cptRowOutput input[type=password]," + - ".cptRowOutput input[type=text]," + - ".cptRowOutput textarea {" + - " color: #000; font-size: 120%;" + - " background: transparent; padding: 3px;" + - " border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;" + - "}" + - ".cptRowOutput table," + - ".cptRowOutput td," + - ".cptRowOutput th { border: 0; padding: 0 2px; }" + - ".cptRowOutput .right { text-align: right; }" + - ""); - -define("text!cockpit/ui/request_view.html", [], "" + - "
                                                                            " + - " " + - "
                                                                            " + - "" + - " " + - "
                                                                            >
                                                                            " + - "
                                                                            ${request.typed}
                                                                            " + - "" + - " " + - "
                                                                            " + - " \"Hide" + - " \"Show" + - " \"Remove" + - "" + - "
                                                                            " + - "" + - " " + - "
                                                                            " + - "
                                                                            " + - " " + - "
                                                                            " + - "
                                                                            " + - ""); - -define("text!cockpit/ui/images/closer.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); - -define("text!cockpit/ui/images/dot_clear.gif", [], "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"); - -define("text!cockpit/ui/images/minus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="); - -define("text!cockpit/ui/images/pinaction.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/pinin.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/pinout.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/pins.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/plus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/throbber.gif", [], "data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); - - }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-worker-javascript', function(A) { -function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b); -};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize();}),b.env=l;}),k.env=l;return k;};}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c);},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c);};}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e){this.subtype=a;}else{if(typeof a!="string"){throw new Error("Can' handle array subtype");}this.subtype=d.getType(a);if(this.subtype==null){throw new Error("Unknown array subtype: "+a);}}}function l(a){if(typeof a.defer!="function"){throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function"){throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a;},h.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to text.parse()");}return new f(a);},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null;},i.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to number.parse()");}if(a.replace(/\s/g,"").length===0){return new f(null,g.INCOMPLETE,"");}var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b;},i.decrement=function(a){return a-1;},i.increment=function(a){return a+1;},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a;},j.prototype.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to parse()");}if(!this.data){throw new Error("Missing data on selection type extension.");}var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b));},this);if(c){return new f(d);}this.noMatch&&this.noMatch(); -if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e);}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e);},j.prototype.fromString=function(a){return a;},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=b.length-1;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1;}return this.fromString(b[c]);},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=0;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1;}return this.fromString(b[c]);},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a;},fromString:function(a){return a==="true"?!0:!1;}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a);},l.prototype.parse=function(a){return this.defer().parse(a);},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined;},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined;},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ");},m.prototype.parse=function(a){return this.defer().parse(a);},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m));},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m);};}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c);}var d=g[a];typeof d=="function"&&(d=new d(b));return d;}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[];}var d={VALID:{toString:function(){return"VALID";},valueOf:function(){return 0;}},INCOMPLETE:{toString:function(){return"INCOMPLETE";},valueOf:function(){return 1;}},INVALID:{toString:function(){return"INVALID";},valueOf:function(){return 2;}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);}return b;}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented");},parse:function(a){throw new Error("not implemented");},name:undefined,increment:function(a){return undefined;},decrement:function(a){return undefined;},getDefault:function(){return this.parse("");}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f)){throw new Error("Can't registerType using: "+a);}if(!a.name){throw new Error("All registered types must have a name");}g[a.name]=a;}else{if(typeof a!="function"){throw new Error("Unknown type: "+a);}if(!a.prototype.name){throw new Error("All registered types must have a name");}g[a.prototype.name]=a;}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d);});},b.deregisterType=function(a){delete g[a.name];},b.getType=function(a){if(typeof a=="string"){return h(a);}if(typeof a=="object"){if(!a.name){throw new Error("Missing 'name' member to typeSpec");}return h(a.name,a);}throw new Error("Can't extract type from "+a);};}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames();},stringify:function(a){return a.name;},fromString:function(a){return d.getCommand(a);}});b.startup=function(){f.registerType(g);},b.shutdown=function(){f.unregisterType(g);};}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1;}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done();}typeof a=="string"&&(a=q[a]);if(!a){return !1;}var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return !1;}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider())){i=F;}i(g,function(){g.getStatus()==l.VALID&&h();});return !0;}h();return !0;}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI){H.shiftObject();}b._dispatchEvent("output",{requests:H,request:this});},J.prototype.doneWithError=function(a){this.error=!0,this.done(a);},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput();},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this;},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}));},b.Request=J;}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c));};}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d;});}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n");},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[];}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n");},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS;};}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b;};}(),b.mixin=function(a,b){for(var c in b){a[c]=b[c];}},b.implement=function(a,c){b.mixin(a,c);};}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10);}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a;}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase();};}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                            ";});}else{b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());}c.done(d);}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting); -d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".");}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e);},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e);};}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec){d.push(e.description?e.description:"No description for "+b.search);}else{var f=!1;e?(d.push("

                                                                            Sub-Commands of "+e.name+"

                                                                            "),d.push("

                                                                            "+e.description+"

                                                                            ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                            Commands starting with '"+b.search+"':

                                                                            ")):d.push("

                                                                            Available Commands:

                                                                            ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("");}d.push("
                                                                            '+e.name+""+e.description+"
                                                                            ");}c.done(d.join(""));}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript);}catch(e){result="Error: "+e.message+"";}var msg="",type="",x;if(checks.isFunction(result)){msg=(result+"").replace(/\n/g,"
                                                                            ").replace(/ /g," "),type="function";}else{if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result){result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));}items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                            ";}}else{msg=result,type=typeof result;}}request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                            "+msg);}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec);},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec);};}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d);},b.shutdown=function(a,b){a.env.settings.removeSetting(d);};}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED;},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e;}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this);}.bind(this));return e;},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e;}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this);}.bind(this));return e;},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f;}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this);}.bind(this));return f;},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c));}},b.PluginCatalog=function(){this.plugins={};},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)));}.bind(this));return d.group(f);},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b));}return d.group(c);}},b.catalog=new b.PluginCatalog;}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this;},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g;},Promise.prototype.isResolved=function(){return this._status==h;},Promise.prototype.isRejected=function(){return this._status==f;},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this;},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c));}catch(d){b.reject(d);}},function(a){b.reject(a);});return b;},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve");},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject");},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd(); -return this;}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value);},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20){l.shift();}return this;},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0){return(new Promise).resolve([]);}var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c);};};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f);});return b;},b.Promise=Promise,b._outstanding=k,b._recent=l;}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a);},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b);},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b);},b.addCssClass=function(a,b){a.classList.add(b);},b.removeCssClass=function(a,b){a.classList.remove(b);},b.toggleCssClass=function(a,b){return a.classList.toggle(b);}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1;},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c);},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1){break;}c.splice(d,1);}a.className=c.join(" ");},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1){break;}d=!1,c.splice(e,1);}d&&c.push(b),a.className=c.join(" ");return d;}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c);},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a;}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e);}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth;},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight;},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset;},b.getPageScrollLeft=function(){return window.pageXOffset;}):(b.getPageScrollTop=function(){return document.body.scrollTop;},b.getPageScrollLeft=function(){return document.body.scrollLeft;}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{};}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle;},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g;},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c;},b.setInnerText=function(a,b){document.body&&"textContent" in document.body?a.textContent=b:a.innerText=b;},b.getInnerText=function(a){return document.body&&"textContent" in document.body?a.textContent:a.innerText||a.textContent||"";},b.getParentWindow=function(a){return a.defaultView||a.parentWindow;},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0;}catch(c){b=0;}return b;},b.setSelectionStart=function(a,b){return a.selectionStart=b;},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0;}catch(c){b=0;}return b;},b.setSelectionEnd=function(a,b){return a.selectionEnd=b;};}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8;}c=0;}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1;}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener){return a.addEventListener(b,c,!1);}if(a.attachEvent){var d=function(){c(window.event);};c._wrapper=d,a.attachEvent("on"+b,d);}},b.removeListener=function(a,b,c){if(a.removeEventListener){return a.removeEventListener(b,c,!1);}a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c);},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return !1;},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1;},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX;},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY;},b.getButton=function(a){if(a.type=="dblclick"){return 0;}if(a.type=="contextmenu"){return 2;}return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button];},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture();}function e(a){c(a);return b.stopPropagation(a);}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture();}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation(); -}function d(a){b(a),a.stopPropagation();}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0);},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a);};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d);},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0;},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5){h=0;}h==d&&(h=0,g(a));if(e){return b.preventDefault(a);}};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k);},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode;}),d(a,"keypress",function(a){return g(c,a,f);});}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode);}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b){return g(c,a,a.keyCode);}h=null;});}};}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""));};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b);},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b);},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a);},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow());}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b}); -}},this.getSession=function(){return this.session;},this.getSelection=function(){return this.selection;},this.resize=function(){this.renderer.onResize();},this.setTheme=function(a){this.renderer.setTheme(a);},this.getTheme=function(){return this.renderer.getTheme();},this.setStyle=function(a){this.renderer.setStyle(a);},this.unsetStyle=function(a){this.renderer.unsetStyle(a);},this.setFontSize=function(a){this.container.style.fontSize=a;},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text");}},10);}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus();}),this.textInput.focus();},this.isFocused=function(){return this.textInput.isFocused();},this.blur=function(){this.textInput.blur();},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus");},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur");},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"){var d=c.end.row;}else{d=Infinity;}this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor();},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last);},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine();},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background");}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d);}else{this.$updateHighlightActiveLine();}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this);},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints());},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());},this.onChangeMode=function(){this.renderer.updateText();},this.onChangeWrapLimit=function(){this.renderer.updateFull();},this.onChangeWrapMode=function(){this.renderer.onResize(!0);},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull();},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a;},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection());}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text);}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection();}else{if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f);}}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r){j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);}b.remove(new m(p,0,p,r));}b.indentRows(d.row+1,l.row,k);}else{i&&c.autoOutdent(h,b,d.row);}}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a);}else{this.keyBinding.onTextInput(a);}},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c);},this.setOverwrite=function(a){this.session.setOverwrite(a);},this.getOverwrite=function(){return this.session.getOverwrite();},this.toggleOverwrite=function(){this.session.toggleOverwrite();},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a);},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}));},this.getSelectionStyle=function(){return this.$selectionStyle; +AUI.add("aui-ace-editor-base",function(A){(function(){var a=function(){return this;}();if(a.require&&a.define){require.packaged=!0;}else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d);};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b); +};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf){return a.indexOf(b,c);}for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--;}return b;},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return !!b;});}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize();}),b.env=l;}),k.env=l;return k;};}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c);},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c);};}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e){this.subtype=a;}else{if(typeof a!="string"){throw new Error("Can' handle array subtype");}this.subtype=d.getType(a);if(this.subtype==null){throw new Error("Unknown array subtype: "+a);}}}function l(a){if(typeof a.defer!="function"){throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function"){throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a)); +}Object.keys(a).forEach(function(b){this[b]=a[b];},this);}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a;},h.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to text.parse()");}return new f(a);},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null;},i.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to number.parse()");}if(a.replace(/\s/g,"").length===0){return new f(null,g.INCOMPLETE,"");}var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b;},i.decrement=function(a){return a-1;},i.increment=function(a){return a+1;},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a;},j.prototype.parse=function(a){if(typeof a!="string"){throw new Error("non-string passed to parse()");}if(!this.data){throw new Error("Missing data on selection type extension.");}var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b));},this);if(c){return new f(d);}this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e);}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e);},j.prototype.fromString=function(a){return a;},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=b.length-1;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1;}return this.fromString(b[c]);},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null){c=0;}else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1;}return this.fromString(b[c]);},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a;},fromString:function(a){return a==="true"?!0:!1;}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a);},l.prototype.parse=function(a){return this.defer().parse(a);},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined;},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined;},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ");},m.prototype.parse=function(a){return this.defer().parse(a);},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m));},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m);};}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c);}var d=g[a];typeof d=="function"&&(d=new d(b));return d;}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[];}var d={VALID:{toString:function(){return"VALID";},valueOf:function(){return 0;}},INCOMPLETE:{toString:function(){return"INCOMPLETE";},valueOf:function(){return 1;}},INVALID:{toString:function(){return"INVALID";},valueOf:function(){return 2;}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);}return b;}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented");},parse:function(a){throw new Error("not implemented");},name:undefined,increment:function(a){return undefined;},decrement:function(a){return undefined;},getDefault:function(){return this.parse("");}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f)){throw new Error("Can't registerType using: "+a);}if(!a.name){throw new Error("All registered types must have a name");}g[a.name]=a;}else{if(typeof a!="function"){throw new Error("Unknown type: "+a);}if(!a.prototype.name){throw new Error("All registered types must have a name");}g[a.prototype.name]=a;}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d);});},b.deregisterType=function(a){delete g[a.name];},b.getType=function(a){if(typeof a=="string"){return h(a);}if(typeof a=="object"){if(!a.name){throw new Error("Missing 'name' member to typeSpec");}return h(a.name,a);}throw new Error("Can't extract type from "+a);};}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames();},stringify:function(a){return a.name;},fromString:function(a){return d.getCommand(a);}});b.startup=function(){f.registerType(g);},b.shutdown=function(){f.unregisterType(g);};}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1;}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done();}typeof a=="string"&&(a=q[a]);if(!a){return !1;}var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return !1;}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider())){i=F;}i(g,function(){g.getStatus()==l.VALID&&h();});return !0;}h();return !0;}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI){H.shiftObject();}b._dispatchEvent("output",{requests:H,request:this});},J.prototype.doneWithError=function(a){this.error=!0,this.done(a);},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput();},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this;},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}));},b.Request=J;}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c));};}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d;});}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n"); +},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[];}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n");},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS;};}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b;};}(),b.mixin=function(a,b){for(var c in b){a[c]=b[c];}},b.implement=function(a,c){b.mixin(a,c);};}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10);}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a;}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase();};}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                            ";});}else{b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());}c.done(d);}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".");}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e);},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e);};}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec){d.push(e.description?e.description:"No description for "+b.search);}else{var f=!1;e?(d.push("

                                                                            Sub-Commands of "+e.name+"

                                                                            "),d.push("

                                                                            "+e.description+"

                                                                            ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                            Commands starting with '"+b.search+"':

                                                                            ")):d.push("

                                                                            Available Commands:

                                                                            ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("");}d.push("
                                                                            '+e.name+""+e.description+"
                                                                            ");}c.done(d.join(""));}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript);}catch(e){result="Error: "+e.message+"";}var msg="",type="",x;if(checks.isFunction(result)){msg=(result+"").replace(/\n/g,"
                                                                            ").replace(/ /g," "),type="function";}else{if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result){result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));}items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                            ";}}else{msg=result,type=typeof result;}}request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                            "+msg);}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec);},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec);};}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d);},b.shutdown=function(a,b){a.env.settings.removeSetting(d);};}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED;},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e;}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this);}.bind(this));return e;},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e;}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this);}.bind(this));return e;},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f;}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this);}.bind(this));return f;},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c));}},b.PluginCatalog=function(){this.plugins={};},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)));}.bind(this));return d.group(f);},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b));}return d.group(c);}},b.catalog=new b.PluginCatalog;}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this;},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g;},Promise.prototype.isResolved=function(){return this._status==h; +},Promise.prototype.isRejected=function(){return this._status==f;},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this;},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c));}catch(d){b.reject(d);}},function(a){b.reject(a);});return b;},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve");},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject");},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this;}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value);},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20){l.shift();}return this;},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0){return(new Promise).resolve([]);}var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c);};};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f);});return b;},b.Promise=Promise,b._outstanding=k,b._recent=l;}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a);},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b);},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b);},b.addCssClass=function(a,b){a.classList.add(b);},b.removeCssClass=function(a,b){a.classList.remove(b);},b.toggleCssClass=function(a,b){return a.classList.toggle(b);}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1;},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c);},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1){break;}c.splice(d,1);}a.className=c.join(" ");},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1){break;}d=!1,c.splice(e,1);}d&&c.push(b),a.className=c.join(" ");return d;}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c);},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a;}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e);}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth;},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight;},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset;},b.getPageScrollLeft=function(){return window.pageXOffset;}):(b.getPageScrollTop=function(){return document.body.scrollTop;},b.getPageScrollLeft=function(){return document.body.scrollLeft;}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{};}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle;},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g;},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c;},b.setInnerText=function(a,b){document.body&&"textContent" in document.body?a.textContent=b:a.innerText=b;},b.getInnerText=function(a){return document.body&&"textContent" in document.body?a.textContent:a.innerText||a.textContent||"";},b.getParentWindow=function(a){return a.defaultView||a.parentWindow;},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0;}catch(c){b=0;}return b;},b.setSelectionStart=function(a,b){return a.selectionStart=b;},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0;}catch(c){b=0;}return b;},b.setSelectionEnd=function(a,b){return a.selectionEnd=b;};}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8;}c=0;}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1;}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener){return a.addEventListener(b,c,!1);}if(a.attachEvent){var d=function(){c(window.event);};c._wrapper=d,a.attachEvent("on"+b,d);}},b.removeListener=function(a,b,c){if(a.removeEventListener){return a.removeEventListener(b,c,!1);}a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c); +},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return !1;},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1;},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX;},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY;},b.getButton=function(a){if(a.type=="dblclick"){return 0;}if(a.type=="contextmenu"){return 2;}return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button];},document.documentElement.setCapture?b.capture=function(a,c,d){function g(e){c(e),f||(f=!0,d()),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",g),b.removeListener(a,"losecapture",g),a.releaseCapture();}function e(a){c(a);return b.stopPropagation(a);}var f=!1;b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",g),b.addListener(a,"losecapture",g),a.setCapture();}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation();}function d(a){b(a),a.stopPropagation();}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0);},b.addMouseWheelListener=function(a,c){var d=0,e=function(a){a.wheelDelta!==undefined?(Math.abs(a.wheelDeltaY)>d&&(d=Math.abs(a.wheelDeltaY)),d>5000?factor=400:factor=8,a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/factor,a.wheelY=-a.wheelDeltaY/factor):(a.wheelX=0,a.wheelY=-a.wheelDelta/factor)):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a);};b.addListener(a,"DOMMouseScroll",e),b.addListener(a,"mousewheel",e);},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0;},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5){h=0;}h==d&&(h=0,g(a));if(e){return b.preventDefault(a);}};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k);},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode;}),d(a,"keypress",function(a){return g(c,a,f);});}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode);}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b){return g(c,a,a.keyCode);}h=null;});}};}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""));};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b);},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b);},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a);},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow());}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b}); +}},this.getSession=function(){return this.session;},this.getSelection=function(){return this.selection;},this.resize=function(){this.renderer.onResize();},this.setTheme=function(a){this.renderer.setTheme(a);},this.getTheme=function(){return this.renderer.getTheme();},this.setStyle=function(a){this.renderer.setStyle(a);},this.unsetStyle=function(a){this.renderer.unsetStyle(a);},this.setFontSize=function(a){this.container.style.fontSize=a;},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text");}},10);}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus();}),this.textInput.focus();},this.isFocused=function(){return this.textInput.isFocused();},this.blur=function(){this.textInput.blur();},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus");},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur");},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"){var d=c.end.row;}else{d=Infinity;}this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor();},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last);},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine();},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background");}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d);}else{this.$updateHighlightActiveLine();}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this);},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints());},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());},this.onChangeMode=function(){this.renderer.updateText();},this.onChangeWrapLimit=function(){this.renderer.updateFull();},this.onChangeWrapMode=function(){this.renderer.onResize(!0);},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull();},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a;},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection());}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text);}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection();}else{if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f);}}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r){j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);}b.remove(new m(p,0,p,r));}b.indentRows(d.row+1,l.row,k);}else{i&&c.autoOutdent(h,b,d.row);}}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a);}else{this.keyBinding.onTextInput(a);}},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c);},this.setOverwrite=function(a){this.session.setOverwrite(a);},this.getOverwrite=function(){return this.session.getOverwrite();},this.toggleOverwrite=function(){this.session.toggleOverwrite();},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a);},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}));},this.getSelectionStyle=function(){return this.$selectionStyle; },this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine());},this.getHighlightActiveLine=function(){return this.$highlightActiveLine;},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this));},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord;},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a);},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles();},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a);},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin();},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a);},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn();},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a;},this.getReadOnly=function(){return this.$readOnly;},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a;},this.getBehavioursEnabled=function(){return this.$modeBehaviours;},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d);}this.session.remove(a),this.clearSelection();}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection());},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection();}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a);}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty()){return;}var a=this.getCursorPosition(),b=a.column;if(b==0){return;}var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow();},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1;},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow();},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a);},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2); -this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column);},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column);},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b);},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow());},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow());},this.scrollToRow=function(a){this.renderer.scrollToRow(a);},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b);},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0);},this.getCursorPosition=function(){return this.selection.getCursor();},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition());},this.getSelectionRange=function(){return this.selection.getRange();},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1;},this.clearSelection=function(){this.selection.clearSelection();},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b);},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a);},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0);},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b);},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0);},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0);},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorLeft();}}this.clearSelection();},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b);}else{a=a||1;while(a--){this.selection.moveCursorRight();}}this.clearSelection();},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection();},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection();},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection();},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection();},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection();},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection();},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c));},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e){this.$tryReplace(c[e],a);}this.selection.setSelectionRange(d),this.$blockScrolling-=1;}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a;}return null;},this.getLastSearchOptions=function(){return this.$search.getOptions();},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find();},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find();},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find();},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b));},this.undo=function(){this.session.getUndoManager().undo();},this.redo=function(){this.session.getUndoManager().redo();},this.destroy=function(){this.renderer.destroy();};}).call(o.prototype),b.Editor=o;}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c;}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u()){return !1;}}}i=!1,j=!1,c.value=g,c.select();}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data);},0);},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l();},0);},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0);},p=function(){!h||b.onCompositionUpdate(c.value);},q=function(a){h=!1,b.onCompositionEnd();},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l();},0);},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l(); -},0);};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o());});}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n();}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault();}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a);}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur();}),d.addListener(c,"focus",function(){b.onFocus(),c.select();}),this.focus=function(){b.onFocus(),c.select(),c.focus();},this.blur=function(){c.blur();},this.isFocused=u,this.getElement=function(){return c;},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="");},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l();},0);};};b.TextInput=g;}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b);}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a);});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this));};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a;},this.getScrollSpeed=function(){return this.$scrollSpeed;},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e;},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2));},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h;}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return;}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return;}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a);},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g;},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return;}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return;}l.selection.setSelectionRange(a);}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f);}else{if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging");}}}p==i?F():p==h&&E();}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection){if(m.$clickSelection.contains(a.row,a.column)){l.selection.setSelectionRange(m.$clickSelection);}else{if(m.$clickSelection.compare(a.row,a.column)==-1){var b=m.$clickSelection.end;}else{var b=m.$clickSelection.start;}l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a);}}else{l.selection.selectToPosition(a);}l.renderer.scrollCursorIntoView();},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x);};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a);}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange());},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a);};}).call(l.prototype),b.MouseHandler=l; -}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1);}),e.addListener(a,"focus",function(a){b._setFocused(!0);});};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused;},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"));};}).call(g.prototype),b.BrowserFocus=g;}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null;};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a);},this.getKeyboardHandler=function(){return this.$keyboardHandler;},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command){b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};}var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i;},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c);},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0);};}).call(i.prototype),b.KeyBinding=i;}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"};}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll();}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines();}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d);}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines();}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext();}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious();}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d);}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replace(e,{needle:d});}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replaceAll(e,{needle:d});}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo();}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo();}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite();}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp();}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp();}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart();}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart();}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp();}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times);}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown();}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown();}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd();}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd();}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown();}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times);}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft();}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft();}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart();}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft(); -}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times);}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight();}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight();}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd();}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight();}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times);}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown();}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown();}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown();}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp();}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp();}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp();}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight();}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft();}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart();}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd();}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft();}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight();}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent();}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent();}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1));}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection();}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine();}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters();}});}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString();});return a;},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h);};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510;}d.implement(this,f),this.setDocument=function(a){if(this.doc){throw new Error("Document is already set");}this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this));},this.getDocument=function(){return this.doc;},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];}else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return;}}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row);},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a);},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset(); -},this.getValue=this.toString=function(){return this.doc.getValue();},this.getSelection=function(){return this.selection;},this.getState=function(a){return this.bgTokenizer.getState(a);},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b);},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[];},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager);}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t";},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a);},this.getUseSoftTabs=function(){return this.$useSoftTabs;},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"));},this.getTabSize=function(){return this.$tabSize;},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0;},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"));},this.getOverwrite=function(){return this.$overwrite;},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);},this.getBreakpoints=function(){return this.$breakpoints;},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do{f--;}while(f>=0&&c.charAt(f).match(e));f++;}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0){return{row:e,column:d};}}else{h==a&&(f+=1);}d-=1;}e-=1;if(e<0){break;}var g=this.getLine(e),d=g.length-1;}return null;},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h){break;}var g=this.getLine(e),d=0;}return null;},this.insert=function(a,b){return this.doc.insert(a,b);},this.remove=function(a){return this.doc.remove(a);},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--){delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds);},this);}this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c;}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1){return 0;}var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1;},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d;},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1));},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0){a=0,b=0;}else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b);}return{row:a,column:b};},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return !0;}return !1;},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a);},this.getWrapLimit=function(){return this.$wrapLimit;},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0){if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1;}for(l;l=h.row&&k.shiftRow(-c);}f=e;}else{var n; -if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c);}}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c);}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i;},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l){j=this.$getDisplayTokens(e.stringTrimRight(c[m]));}else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k){j.pop();}}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1;}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1;}).replace(/2/g,function(a){e-=1;}),i+=e,d.push(i),f=b;}if(a.length==0){return[];}var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k){l++;}j(l);continue;}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--){if(a[l]==g){break;}}if(l>f){j(l);continue;}l=f+b;for(l;l=g){l++;break;}}if(l>f){j(l);continue;}l=f+b,j(f+b);}return d;},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb){break;}}return[c,e];},this.getRowLength=function(a){return !this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1;},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight;},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length);},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c);},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10);},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined;},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize;},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row;},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column;},this.screenToDocumentPosition=function(a,b){if(a<0){return{row:0,column:0};}var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m){break;}h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h});}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e};},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined"){var c=this.$clipPositionToDocument(a.row,a.column);}else{c=this.$clipPositionToDocument(a,b);}a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1){return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1};}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a){break;}o=this.getNextFold(j),p=o?o.start.row:Infinity;}else{j=k+1;}f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f});}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s]){f++,s++;}q=q.substring(r[s-1]||0,q.length);}return{row:f,column:this.$getStringScreenWidth(q)[0]};},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column;},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row;},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;e=0;--e){this.$tryReplace(c[e],a);}this.selection.setSelectionRange(d),this.$blockScrolling-=1;}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a;}return null;},this.getLastSearchOptions=function(){return this.$search.getOptions();},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find();},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find();},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find();},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b));},this.undo=function(){this.session.getUndoManager().undo();},this.redo=function(){this.session.getUndoManager().redo();},this.destroy=function(){this.renderer.destroy();};}).call(o.prototype),b.Editor=o;}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function v(){return document.activeElement===c;}function m(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!v()){return !1;}}}i=!1,j=!1,c.value=g,l();}function l(){try{c.select();}catch(a){}}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data);},0);},o=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||m();},0);},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0);},q=function(){!h||b.onCompositionUpdate(c.value);},r=function(a){h=!1,b.onCompositionEnd();},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m();},0);},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m(); +},0);};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);(c.value.charCodeAt(0)|0)<129||(h?q():p());});}"onpropertychange" in c&&!("oninput" in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o();}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault();}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a);}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur();}),d.addListener(c,"focus",function(){b.onFocus(),l();}),this.focus=function(){b.onFocus(),l(),c.focus();},this.blur=function(){c.blur();},this.isFocused=v,this.getElement=function(){return c;},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="");},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m();},0);};};b.TextInput=g;}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b);}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a);});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this));};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a;},this.getScrollSpeed=function(){return this.$scrollSpeed;},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e;},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2));},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),q=h;}var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q=g;if(p&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){this.editor.focus();}else{var r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return;}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return;}p||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a);},A=function(){clearInterval(G),q==g?D(f):q==i&&B(),m.$clickSelection=null,q=g;},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return;}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return;}l.selection.setSelectionRange(a);}},C=function(){if(t!==undefined&&u!==undefined){if(q==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){q=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f);}else{if(d-w>j){q=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging");}}}q==i?F():q==h&&E();}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection){if(m.$clickSelection.contains(a.row,a.column)){l.selection.setSelectionRange(m.$clickSelection);}else{if(m.$clickSelection.compare(a.row,a.column)==-1){var b=m.$clickSelection.end;}else{var b=m.$clickSelection.start;}l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a);}}else{l.selection.selectToPosition(a);}l.renderer.scrollCursorIntoView();},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x);};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a);}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange());},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange();},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a);};}).call(l.prototype),b.MouseHandler=l;}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0; +var b=this;"onfocusin" in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0);}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement);})):(e.addListener(a,"blur",function(a){b._setFocused(!1);}),e.addListener(a,"focus",function(a){b._setFocused(!0);}));};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused;},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"));};}).call(g.prototype),b.BrowserFocus=g;}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null;};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a);},this.getKeyboardHandler=function(){return this.$keyboardHandler;},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command){b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};}var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i;},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c);},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0);};}).call(i.prototype),b.KeyBinding=i;}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"};}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll();}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines();}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d);}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines();}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext();}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious();}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d);}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replace(e,{needle:d});}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e){return;}a.editor.replaceAll(e,{needle:d});}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo();}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo();}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite();}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp();}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp();}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart();}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart();}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp();}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times);}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown();}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown();}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd();}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd();}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown();}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times);}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft();}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft();}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart();}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft();}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times); +}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight();}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight();}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd();}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight();}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times);}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown();}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown();}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown();}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp();}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp();}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp();}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart();}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd();}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight();}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft();}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart();}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd();}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft();}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight();}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent();}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent();}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1));}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection();}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine();}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters();}});}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString();});return a;},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h);};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510;}d.implement(this,f),this.setDocument=function(a){if(this.doc){throw new Error("Document is already set");}this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this));},this.getDocument=function(){return this.doc;},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];}else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return;}}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row);},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a);},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset();},this.getValue=this.toString=function(){return this.doc.getValue(); +},this.getSelection=function(){return this.selection;},this.getState=function(a){return this.bgTokenizer.getState(a);},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b);},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[];},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager);}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t";},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a);},this.getUseSoftTabs=function(){return this.$useSoftTabs;},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"));},this.getTabSize=function(){return this.$tabSize;},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0;},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"));},this.getOverwrite=function(){return this.$overwrite;},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);},this.getBreakpoints=function(){return this.$breakpoints;},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do{f--;}while(f>=0&&c.charAt(f).match(e));f++;}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0){return{row:e,column:d};}}else{h==a&&(f+=1);}d-=1;}e-=1;if(e<0){break;}var g=this.getLine(e),d=g.length-1;}return null;},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h){break;}var g=this.getLine(e),d=0;}return null;},this.insert=function(a,b){return this.doc.insert(a,b);},this.remove=function(a){return this.doc.remove(a);},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--){delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds);},this);}this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c;}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1){return 0;}var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1;},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d;},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1));},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0){a=0,b=0;}else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b);}return{row:a,column:b};},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return !0;}return !1;},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a);},this.getWrapLimit=function(){return this.$wrapLimit;},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0){if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1;}for(l;l=h.row&&k.shiftRow(-c);}f=e;}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c);}}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c);}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i;},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l){j=this.$getDisplayTokens(e.stringTrimRight(c[m]));}else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k){j.pop();}}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1;}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1;}).replace(/2/g,function(a){e-=1;}),i+=e,d.push(i),f=b;}if(a.length==0){return[];}var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k){l++;}j(l);continue;}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--){if(a[l]==g){break;}}if(l>f){j(l);continue;}l=f+b;for(l;l=g){l++;break;}}if(l>f){j(l);continue;}l=f+b,j(f+b);}return d;},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb){break;}}return[c,e];},this.getRowLength=function(a){return !this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1;},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight;},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length);},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c);},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10);},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined;},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize;},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row;},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column;},this.screenToDocumentPosition=function(a,b){if(a<0){return{row:0,column:0};}var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m){break;}h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h});}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e};},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined"){var c=this.$clipPositionToDocument(a.row,a.column);}else{c=this.$clipPositionToDocument(a,b);}a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1){return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1};}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a){break;}o=this.getNextFold(j),p=o?o.start.row:Infinity;}else{j=k+1;}f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f});}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s]){f++,s++;}q=q.substring(r[s-1]||0,q.length);}return{row:f,column:this.$getStringScreenWidth(q)[0]};},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column;},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row;},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column;},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b);},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"));},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0);},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn();},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column);},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this);},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b);});},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a);});},this.selectUp=function(){this.$moveSelection(this.moveCursorUp);},this.selectDown=function(){this.$moveSelection(this.moveCursorDown);},this.selectRight=function(){this.$moveSelection(this.moveCursorRight);},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft);},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart);},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd);},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd);},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart);},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight);},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft);},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b);},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0);});},this.moveCursorUp=function(){this.moveCursorBy(-1,0);},this.moveCursorDown=function(){this.moveCursorBy(1,0);},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1)){this.moveCursorTo(b.start.row,b.start.column);}else{if(a.column==0){a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);}else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1);}}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1)){this.moveCursorTo(b.end.row,b.end.column);}else{if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length){this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h)){return;}h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h)){return; }var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c);}}),a.$search.set(k);}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b);}),a.session.$selectionOccurrences=[]);},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break;}}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;nh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f){break;}var i=this.$annotations[e]||b;c.push("
                                                                            ",e+1);var j=this.session.getRowLength(e)-1;while(j--){c.push("
                                                                            ¦
                                                                            ");}c.push("
                                                                            "),e++;}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";};}).call(e.prototype),b.Gutter=e;}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element);};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.setMarkers=function(a){this.markers=a;},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty()){continue;}f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a);}else{f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type);}}this.element=e.setInnerHtml(this.element,b.join(""));}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight;},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                            "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                            "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                            "));},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background"){var i=d.width;}else{i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);}var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                            ");};}).call(f.prototype),b.Marker=f;}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges();};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"; },this.getLineHeight=function(){return this.$characterSize.height||1;},this.getCharacterWidth=function(){return this.$characterSize.width||1;},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}));},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges();},500);},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1000;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body){document.body.appendChild(b);}else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor")){d=d.parentNode;}d.appendChild(b);}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles){c[h]=g[h];}var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i;},this.setSession=function(a){this.session=a;},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a){return !1;}this.showInvisibles=a;return !0;},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "));}},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--){c.removeChild(c.firstChild);}}if(b.lastRow>a.lastRow){for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--){c.removeChild(c.lastChild);}}if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e);}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c){break;}var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups()){i.className="ace_line_group",d.appendChild(i);}else{var l=i.childNodes;while(l.length){d.appendChild(l[0]);}}f++;}return d;},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d){break;}this.$useLineGroups()&&b.push("
                                                                            ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                            "),f++;}this.element=e.setInnerHtml(this.element,b.join(""));},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32){return Array(a.length+1).join(" ");}if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i];}if(a=="&"){return g.isOldGecko?"&":"&";}if(a=="<"){return"<";}if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+"";}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+"";}return" ";}b+=1;return""+a+"";},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"");}else{a.push(i);}return b+d.length;},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                            ");for(var l=0;l=h){j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                            ","
                                                                            "),g++,j=0,h=d[g]||Number.MAX_VALUE;}n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n));}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                            ");},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d);}else{this.$renderFoldLine(a,b,c,d);}},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1;}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1;}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d));}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d);},this.$useLineGroups=function(){return this.session.getUseWrapMode();},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode;};}).call(i.prototype),b.Text=i;}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1;};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a;},this.setSession=function(a){this.session=a;},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId);},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer();},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible";},400);},1000);}},this.getPixelPosition=function(a){if(!this.config||!this.session){return{left:0,top:0};}var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e};},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer();},this.destroy=function(){clearInterval(this.blinkId);};}).call(e.prototype),b.Cursor=e;}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this));};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop});},this.getWidth=function(){return this.width;},this.setHeight=function(a){this.element.style.height=a+"px";},this.setInnerHeight=function(a){this.inner.style.height=a+"px";},this.setScrollTop=function(a){this.element.scrollTop=a;};}).call(h.prototype),b.ScrollBar=h;}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0;};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a);});}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback());}),this.attached=!0;}this.callback=a,window.postMessage(this.messageName,"*");}):this.setTimeoutZero=function(a){setTimeout(a,0);};}).call(e.prototype),b.RenderLoop=e;}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}"; -d.importCssString(e),b.cssClass="ace-tm";}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d};}var d=a("pilot/settings").settings;b.create=e;}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a; -});var Lang=A.Lang,BOUNDING_BOX="boundingBox",CONTENT_BOX="contentBox",EMPTY_STR="",HEIGHT="height",WIDTH="width",NAME="ace-ditor";var AceEditor=A.Component.create({NAME:NAME,EXTENDS:A.Widget,ATTRS:{height:{value:400},highlightActiveLine:{lazyAdd:false,getter:"_getHighlightActiveLine",setter:"_setHighlightActiveLine",value:true},readOnly:{lazyAdd:false,getter:"_getReadOnly",setter:"_setReadOnly",value:false},showPrintMargin:{lazyAdd:false,getter:"_getShowPrintMargin",setter:"_setShowPrintMargin",value:true},tabSize:{lazyAdd:false,getter:"_getTabSize",setter:"_setTabSize",value:4},useSoftTabs:{lazyAdd:false,getter:"_getUseSoftTabs",setter:"_setUseSoftTabs",value:true},useWrapMode:{lazyAdd:false,getter:"_getUseWrapMode",setter:"_setUseWrapMode",value:true},value:{lazyAdd:false,getter:"_getValue",setter:"_setValue",value:EMPTY_STR,},width:{value:800}},UI_ATTRS:[HEIGHT,WIDTH],prototype:{getEditor:function(){var instance=this;if(!instance.editor){var boundingBox=instance.get(BOUNDING_BOX);instance.editor=ace.edit(boundingBox.getDOM());}return instance.editor;},getSelection:function(){var instance=this;return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange());},getSession:function(){var instance=this;return instance.getEditor().getSession();},gotoLine:function(line){var instance=this;instance.getEditor().gotoLine(line);},insert:function(text){var instance=this;instance.getEditor().insert(text);},_getHighlightActiveLine:function(){var instance=this;return instance.getEditor().getHighlightActiveLine();},_getReadOnly:function(){var instance=this;return instance.getEditor().getReadOnly();},_getShowPrintMargin:function(){var instance=this;return instance.getEditor().getShowPrintMargin();},_getTabSize:function(){var instance=this;return instance.getSession().getTabSize();},_getUseSoftTabs:function(){var instance=this;return instance.getSession().getUseSoftTabs();},_getUseWrapMode:function(){var instance=this;return instance.getSession().getUseWrapMode();},_getValue:function(){var instance=this;return instance.getSession().getValue();},_setHighlightActiveLine:function(value){var instance=this;instance.getEditor().setHighlightActiveLine(value);},_setReadOnly:function(value){var instance=this;instance.getEditor().setReadOnly(value);},_setShowPrintMargin:function(value){var instance=this;instance.getEditor().setShowPrintMargin(value);},_setTabSize:function(value){var instance=this;instance.getSession().setTabSize(value);},_setUseSoftTabs:function(value){var instance=this;instance.getSession().setUseSoftTabs(value);},_setUseWrapMode:function(value){var instance=this;instance.getSession().setUseWrapMode(value);},_setValue:function(value){var instance=this;instance.getSession().setValue(value);},_uiSetHeight:function(){var instance=this;A.AceEditor.superclass._uiSetHeight.apply(instance,arguments);instance.getEditor().resize();},_uiSetWidth:function(){var instance=this;A.AceEditor.superclass._uiSetWidth.apply(instance,arguments);instance.getEditor().resize();}}});A.AceEditor=AceEditor;},"@VERSION@",{skinnable:false,requires:["aui-component","aui-node"]});AUI.add("aui-ace-editor-mode-xml",function(a){define("ace/mode/xml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml"],function(s,r,q){var p=s("pilot/oop"),o=s("ace/mode/text").Mode,n=s("ace/tokenizer").Tokenizer,m=s("ace/mode/xml_highlight_rules").XmlHighlightRules,k=s("ace/mode/behaviour/xml").XmlBehaviour,j=function(){this.$tokenizer=new n((new m).getRules()),this.$behaviour=new k;};p.inherits(j,o),function(){this.getNextLineIndent=function(e,d,f){return this.$getIndent(d);};}.call(j.prototype),r.Mode=j;}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};m.inherits(j,k),g.XmlHighlightRules=j;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/behaviour").Behaviour,m=j("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.inherit(m,["string_dquotes"]),this.add("brackets","insertion",function(C,B,A,z,y){if(y=="<"){var x=A.getSelectionRange(),w=z.doc.getTextRange(x);return w!==""?!1:{text:"<>",selection:[1,1]};}if(y==">"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),t=u.substring(v.column,v.column+1);if(t==">"){return{text:"",selection:[1,1]};}}else{if(y=="\n"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),s=u.substring(v.column,v.column+2);if(s=="A.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-php",function(a){define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/php_highlight_rules").PhpHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=w("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p,this.$behaviour=new n;};t.inherits(m,s),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)#/;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new o(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),x=y.match(B);z.start.row=A,z.end.row=A,z.end.column=x[0].length,G.replace(z,x[1]);}}else{G.indentRows(F,E,"#");}},this.getNextLineIndent=function(k,j,C){var B=this.$getIndent(j),A=this.$tokenizer.getLineTokens(j,k),z=A.tokens,y=A.state;if(z.length&&z[z.length-1].type=="comment"){return B;}if(k=="start"){var x=j.match(/^.*[\{\(\[\:]\s*$/);x&&(B+=C);}return B;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(m.prototype),v.Mode=m;}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),e=p.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),x=p.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),w=p.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),v=p.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),u=p.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),t=p.arrayToMap("cfunction|old_function".split("|")),s=p.arrayToMap([]); +d.importCssString(e),b.cssClass="ace-tm";}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d};}var d=a("pilot/settings").settings;b.create=e;}),define("text/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/build/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/build_support/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/demo/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";\n\n@import url("booya.css") print,screen;\n@import "whatup.css" screen;\n@import "wicked.css";\n\n@namespace "http://www.w3.org/1999/xhtml";\n@namespace svg "http://www.w3.org/2000/svg";\n\nli.inline #foo {\n background: url("something.png");\n display: inline;\n padding-left: 3px;\n padding-right: 7px;\n border-right: 1px dotted #066;\n}\n\nli.last.first {\n display: inline;\n padding-left: 3px !important;\n padding-right: 3px;\n border-right: 0px;\n}\n\n@media print {\n li.inline {\n color: black;\n }\n\n\n@charset "UTF-8"; \n\n@page {\n margin: 10%;\n counter-increment: page;\n\n @top-center {\n font-family: sans-serif;\n font-weight: bold;\n font-size: 2em;\n content: counter(page);\n }\n}'),define("text/deps/requirejs/dist/ie.css",[],"\nbody .sect {\n display: none;\n}\n\n\n#content ul.index {\n list-style: none;\n}\n"),define("text/deps/requirejs/dist/main.css",[],'@font-face {\n font-family: Inconsolata;\n src: url("fonts/Inconsolata.ttf");\n}\n\n* {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-size: 12px;\n line-height: 21px;\n background-color: #fff;\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n color: #0a0a0a;\n}\n\n#wrapper {\n margin: 0;\n}\n\n#grid {\n position: fixed;\n top: 0;\n left: 0;\n width: 796px;\n background-image: url("i/grid.png");\n z-index: 100;\n}\n\npre {\n line-height: 18px;\n font-size: 13px;\n margin: 7px 0 21px;\n padding: 5px 10px;\n overflow: auto;\n background-color: #fafafa;\n border: 1px solid #e6e6e6;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n}\n\n/*\n typography stuff\n*/\n.mono {\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n.sans {\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n}\n\n.serif {\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\na {\n color: #2e87dd;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/*\n navigation\n*/\n\n#navBg {\n background-color: #f2f2f2;\n background-image: url("i/shadow.png");\n background-position: right top;\n background-repeat: repeat-y;\n width: 220px;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 0;\n}\n\n#nav {\n background-image: url("i/logo.png");\n background-repeat: no-repeat;\n background-position: center 10px;\n width: 220px;\n float: left;\n margin: 0;\n padding: 150px 20px 0;\n font-size: 13px;\n text-shadow: 1px 1px #fff;\n position: relative;\n z-index: 1;\n}\n\n#nav .homeImageLink {\n position: absolute;\n display: block;\n top: 10px;\n left: 0;\n width: 220px;\n height: 138px;\n}\n#nav ul {\n list-style-type:none;\n padding: 0;\n margin: 21px 0 0 0;\n}\n\n#nav ul li {\n width: 100%;\n}\n\n#nav ul li.version {\n text-align: center;\n color: #4d4d4d;\n}\n\n#nav h1 {\n color: #4d4d4d;\n text-align: center;\n font-size: 15px;\n font-weight: normal;\n text-transform: uppercase;\n letter-spacing: 3px;\n}\n\nspan.spacer {\n color: #2e87dd;\n margin: 0 3px 0 5px;\n background-image: url("i/dot.png");\n background-repeat: repeat-x;\n background-position: left 13px;\n}\n\n/*\n icons\n*/\n\nspan.icon {\n width: 16px;\n display: block;\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n}\n\nspan.icon.home {\n background-position: center 5px;\n}\n\nspan.icon.start {\n background-position: center -27px;\n}\n\nspan.icon.download {\n background-position: center -59px;\n}\n\nspan.icon.api {\n background-position: center -89px;\n}\n\nspan.icon.optimize {\n background-position: center -119px;\n}\n\nspan.icon.script {\n background-position: center -150px;\n}\n\nspan.icon.question {\n background-position: center -182px;\n}\n\nspan.icon.requirement {\n background-position: center -214px;\n}\n\nspan.icon.history {\n background-position: center -247px;\n}\n\nspan.icon.help {\n background-position: center -279px;\n}\n\nspan.icon.blog {\n background-position: center -311px;\n}\n\nspan.icon.twitter {\n background-position: center -343px;\n}\n\nspan.icon.git {\n background-position: center -375px;\n}\n\nspan.icon.fork {\n background-position: center -407px;\n}\n\n/*\n content\n*/\n\n#content {\n margin: 0 0 0 220px;\n padding: 0 20px;\n background-color: #fff;\n font-family: "Georgia", Times New Roman, Times, serif;\n position: relative;\n}\n\n#content p {\n padding: 7px 0;\n color: #333;\n font-size: 14px;\n}\n\n#content h1,\n#content h2,\n#content h3,\n#content h4,\n#content h5 {\n font-weight: normal;\n padding: 21px 0 7px;\n}\n\n#content h1 {\n font-size: 21px;\n}\n\n#content h2 {\n padding: 0 0 18px 0;\n margin: 0 0 7px 0;\n font-weight: normal;\n font-size: 21px;\n line-height: 24px;\n text-align: center;\n color: #222;\n background-image: url("i/arrow.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n text-transform: uppercase;\n letter-spacing: 2px;\n text-shadow: 1px 1px 0 #fff;\n}\n\n#content h2 a {\n color: #222;\n}\n\n#content h2 a:hover,\n#content h3 a:hover,\n#content h4 a:hover {\n text-decoration: none;\n}\n\nspan.sectionMark {\n display: block;\n color: #aaa;\n text-shadow: 1px 1px 0 #fff;\n font-size: 15px;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content h3 {\n font-size: 17px;\n}\n\n#content h4 {\n padding-top: 0;\n font-size: 15px;\n}\n\n#content h5 {\n font-size: 10px;\n}\n\n#content ul {\n list-style-type: disc;\n}\n\n#content ul,\n#content ol {\n /* border-left: 1px solid #333; */\n color: #333;\n font-size: 14px;\n list-style-position: outside;\n margin: 7px 0 21px 0;\n /* padding: 0 0 0 28px; */\n}\n\n#content ul {\n font-style: italic;\n}\n\n#content ol {\n border: none;\n list-style-position: inside;\n padding: 0;\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\n#content ul ul,\n#content ol ol {\n border: none;\n padding: 0;\n margin: 0 0 0 28px;\n}\n\n#content .section {\n padding: 48px 0;\n background-image: url("i/line.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n width: 576px;\n margin: 0 auto;\n}\n\n#content .section .subSection {\n padding: 0 0 0 48px;\n margin: 28px 0 0 0;\n display: block;\n border-left: 2px solid #ddd;\n}\n\n#content .section:last-child {\n background-image: none;\n}\n\n#content .note {\n color: #222;\n background-color: #ffff99;\n padding: 5px 10px;\n margin: 7px 0;\n display: inline-block;\n}\n\n/*\n page directory\n*/\n\n#content #directory.section {\n background-color: #fff;\n width: 576px;\n}\n\n#content #directory.section ul ul ul {\n margin: 0 0 0 48px;\n}\n\n#content #directory.section ul ul li {\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n background-position: left -437px;\n padding-left: 18px;\n font-style: normal;\n}\n\n#content #directory h1 {\n padding: 0 0 65px 0;\n margin: 0 0 14px 0;\n font-weight: normal;\n font-size: 21px;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n color: #222;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n\n#content ul.index {\n padding: 0;\n background-color: transparent;\n border: none;\n -moz-box-shadow: none;\n font-style: normal;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content ul.index li {\n width: 100%;\n font-size: 15px;\n color: #333;\n padding: 0 0 7px 0;\n}\n\n\n/*\n intro page specific\n*/\n\n#content #intro {\n width: 576px;\n margin: 0 auto;\n padding: 21px 0;\n}\n\n#content #intro p,\n#content #intro h1 {\n font-size: 19px;\n line-height: 28px;\n color: green;\n letter-spacing: 2px;\n padding: 0 0 28px 0;\n}\n\n#content #intro p:last-child,\n#content #intro h1:last-child {\n padding: 0;\n}\n\n#content #intro p a {\n color: green;\n text-decoration: underline;\n}\n\n/*\n download page\n*/\n\n#content h4 a.download {\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n background-color: #F2F2F2;\n background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%);\n background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2));\n background-position: 7px -58px, center center;\n background-repeat: no-repeat, no-repeat;\n border: 1px solid #CCCCCC;\n color: #333333;\n font-size: 12px;\n margin: 0 0 0 5px;\n padding: 0 10px 0 25px;\n text-shadow: 1px 1px 0 #FFFFFF;\n}\n\n/*\n footer\n*/\n#footer {\n color: #4d4d4d;\n padding: 65px 20px 20px;\n margin: 20px 0 0 220px;\n text-align: center;\n display: block;\n font-size: 13px;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center top;\n background-color: #fff;\n}\n\n#footer .line {\n display: block;\n}\n\n#footer .line a {\n color: #4d4d4d;\n text-decoration: underline;\n}\n\n/*\n Pygments manni style\n*/\n\ncode {background-color: #fafafa; color: #333;}\n\ncode .comment {color: green; font-style: italic}\ncode .comment.preproc {color: #099; font-style: normal}\ncode .comment.special {font-weight: bold}\n\ncode .keyword {color: #069; font-weight: bold}\ncode .keyword.pseudo {font-weight: normal}\ncode .keyword.type {color: #078}\n\ncode .operator {color: #555}\ncode .operator.word {color: #000; font-weight: bold}\n\ncode .name.builtin {color: #366}\ncode .name.function {color: #c0f}\ncode .name.class {color: #0a8; font-weight: bold}\ncode .name.namespace {color: #0cf; font-weight: bold}\ncode .name.exception {color: #c00; font-weight: bold}\ncode .name.variable {color: #033}\ncode .name.constant {color: #360}\ncode .name.label {color: #99f}\ncode .name.entity {color: #999; font-weight: bold}\ncode .name.attribute {color: #309}\ncode .name.tag {color: #309; font-weight: bold}\ncode .name.decorator {color: #99f}\n\ncode .string {color: #c30}\ncode .string.doc {font-style: italic}\ncode .string.interpol {color: #a00}\ncode .string.escape {color: #c30; font-weight: bold}\ncode .string.regex {color: #3aa}\ncode .string.symbol {color: #fc3}\ncode .string.other {color: #c30}\n\ncode .number {color: #f60}\n\n\n/*\n webkit scroll bars\n*/\n\npre::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\npre::-webkit-scrollbar-button:start:decrement,\npre::-webkit-scrollbar-button:end:increment {\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-button:vertical:increment,\npre::-webkit-scrollbar-button:horizontal:increment {\n background-color: transparent;\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-track-piece {\n -webkit-border-radius: 3px;\n}\n\npre::-webkit-scrollbar-thumb:vertical {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n\n}\n\npre::-webkit-scrollbar-thumb:horizontal {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n}\n\n/*\n hbox\n*/\n\n.hbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: horizontal;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: horizontal;\n\tbox-align: stretch;\n\n\twidth: 100%;\n}\n\n.hbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.vbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: vertical;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: vertical;\n\tbox-align: stretch;\n}\n\n.vbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.spacer {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.reverse {\n\t-webkit-box-direction: reverse;\n\t-moz-box-direction: reverse;\n\tbox-direction: reverse;\n}\n\n.boxFlex0 {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n}\n\n.boxFlex1, .boxFlex {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.boxFlex2 {\n\t-webkit-box-flex: 2;\n\t-moz-box-flex: 2;\n\tbox-flex: 2;\n}\n\n.boxGroup1 {\n\t-webkit-box-flex-group: 1;\n\t-moz-box-flex-group: 1;\n\tbox-flex-group: 1;\n}\n\n.boxGroup2 {\n\t-webkit-box-flex-group: 2;\n\t-moz-box-flex-group: 2;\n\tbox-flex-group: 2;\n}\n\n.start {\n\t-webkit-box-pack: start;\n\t-moz-box-pack: start;\n\tbox-pack: start;\n}\n\n.end {\n\t-webkit-box-pack: end;\n\t-moz-box-pack: end;\n\tbox-pack: end;\n}\n\n.center {\n\t-webkit-box-pack: center;\n\t-moz-box-pack: center;\n\tbox-pack: center;\n}\n\n/*\n clearfix\n*/\n\n.clearfix:after {\n\tcontent: ".";\n\tdisplay: block;\n\tclear: both;\n\tvisibility: hidden;\n\tline-height: 0;\n\theight: 0;\n}\n\nhtml[xmlns] .clearfix {\n\tdisplay: block;\n}\n\n* html .clearfix {\n\theight: 1%;\n}'),define("text/doc/site/iphone.css",[],"#wrapper {\n position:relative;\n overflow:hidden;\n}\n\n#wrapper .content .column1 {\n margin:0 16px 0 15px;\n}\n\n#header .content .signature {\n font-size:18px;\n bottom:0;\n}\n\nUL.menu-list LI {\n font-size:22px;\n}\n\nUL.menu-footer LI {\n font-size:22px;\n}\n\nPRE{\n font-size:22px;\n}\n"),define("text/doc/site/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/lib/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }\nbody { max-width: 60em; }\n.title { text-align: center; }\n.todo { color: red; }\n.done { color: green; }\n.tag { background-color:lightblue; font-weight:normal }\n.target { }\n.timestamp { color: grey }\n.timestamp-kwd { color: CadetBlue }\np.verse { margin-left: 3% }\npre {\n border: 1pt solid #AEBDCC;\n background-color: #F3F5F7;\n padding: 5pt;\n font-family: monospace;\n font-size: 90%;\n overflow:auto;\n}\npre.src {\n background-color: #eee; color: #112; border: 1px solid #000;\n}\ntable { border-collapse: collapse; }\ntd, th { vertical-align: top; }\ndt { font-weight: bold; }\ndiv.figure { padding: 0.5em; }\ndiv.figure p { text-align: center; }\n.linenr { font-size:smaller }\n.code-highlighted {background-color:#ffff00;}\n.org-info-js_info-navigation { border-style:none; }\n#org-info-js_console-label { font-size:10px; font-weight:bold;\n white-space:nowrap; }\n.org-info-js_search-highlight {background-color:#ffff00; color:#000000;\n font-weight:bold; }\n\nsup {\n vertical-align: baseline;\n position: relative;\n top: -0.5em;\n font-size: 80%;\n}\n\nsup a:link, sup a:visited {\n text-decoration: none;\n color: #c00;\n}\n\nsup a:before { content: "["; color: #999; }\nsup a:after { content: "]"; color: #999; }\n\nh1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }\n\n#postamble {\n color: #777;\n font-size: 90%;\n padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;\n margin-top: 2em;\n padding-left: 2em;\n padding-right: 2em;\n text-align: right;\n}\n\n#postamble p { margin: 0; }\n\n#footnotes { border-top: 1px solid #000; }\n\nh1 { font-size: 200% }\nh2 { font-size: 175% }\nh3 { font-size: 150% }\nh4 { font-size: 125% }\n\nh1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }\n\n@media print {\n html { font-size: 11pt; }\n}\n'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"\n#cockpitInput { padding-left: 16px; }\n\n.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }\n\n.cptCompletion { padding: 0; position: absolute; z-index: -1000; }\n.cptCompletion.VALID { background: #FFF; }\n.cptCompletion.INCOMPLETE { background: #DDD; }\n.cptCompletion.INVALID { background: #DDD; }\n.cptCompletion span { color: #FFF; }\n.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }\n.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }\nspan.cptPrompt { color: #66F; font-weight: bold; }\n\n\n.cptHints {\n color: #000;\n position: absolute;\n border: 1px solid rgba(230, 230, 230, 0.8);\n background: rgba(250, 250, 250, 0.8);\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-topright: 10px;\n border-top-left-radius: 10px; border-top-right-radius: 10px;\n z-index: 1000;\n padding: 8px;\n display: none;\n}\n\n.cptFocusPopup { display: block; }\n.cptFocusPopup.cptNoPopup { display: none; }\n\n.cptHints ul { margin: 0; padding: 0 15px; }\n\n.cptGt { font-weight: bold; font-size: 120%; }\n"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],"\n.cptRowIn {\n display: box; display: -moz-box; display: -webkit-box;\n box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;\n box-align: center; -moz-box-align: center; -webkit-box-align: center;\n color: #333;\n background-color: #EEE;\n width: 100%;\n font-family: consolas, courier, monospace;\n}\n.cptRowIn > * { padding-left: 2px; padding-right: 2px; }\n.cptRowIn > img { cursor: pointer; }\n.cptHover { display: none; }\n.cptRowIn:hover > .cptHover { display: block; }\n.cptRowIn:hover > .cptHover.cptHidden { display: none; }\n.cptOutTyped {\n box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;\n font-weight: bold; color: #000; font-size: 120%;\n}\n.cptRowOutput { padding-left: 10px; line-height: 1.2em; }\n.cptRowOutput strong,\n.cptRowOutput b,\n.cptRowOutput th,\n.cptRowOutput h1,\n.cptRowOutput h2,\n.cptRowOutput h3 { color: #000; }\n.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }\n.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }\n.cptRowOutput input[type=password],\n.cptRowOutput input[type=text],\n.cptRowOutput textarea {\n color: #000; font-size: 120%;\n background: transparent; padding: 3px;\n border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;\n}\n.cptRowOutput table,\n.cptRowOutput td,\n.cptRowOutput th { border: 0; padding: 0 2px; }\n.cptRowOutput .right { text-align: right; }\n"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.%cssClass% .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.%cssClass% .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.%cssClass% .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.%cssClass% .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.%cssClass% .ace_print_margin {\n width: 1px;\n background: %printMargin%;\n}\n\n.%cssClass% .ace_scroller {\n background-color: %background%;\n}\n\n.%cssClass% .ace_text-layer {\n cursor: text;\n color: %foreground%;\n}\n\n.%cssClass% .ace_cursor {\n border-left: 2px solid %cursor%;\n}\n\n.%cssClass% .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid %overwrite%;\n}\n \n.%cssClass% .ace_marker-layer .ace_selection {\n background: %selection%;\n}\n\n.%cssClass% .ace_marker-layer .ace_step {\n background: %step%;\n}\n\n.%cssClass% .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid %bracket%;\n}\n\n.%cssClass% .ace_marker-layer .ace_active_line {\n background: %active_line%;\n}\n\n \n.%cssClass% .ace_invisible {\n %invisible%\n}\n\n.%cssClass% .ace_keyword {\n %keyword%\n}\n\n.%cssClass% .ace_keyword.ace_operator {\n %keyword.operator%\n}\n\n.%cssClass% .ace_constant {\n %constant%\n}\n\n.%cssClass% .ace_constant.ace_language {\n %constant.language%\n}\n\n.%cssClass% .ace_constant.ace_library {\n %constant.library%\n}\n\n.%cssClass% .ace_constant.ace_numeric {\n %constant.numeric%\n}\n\n.%cssClass% .ace_invalid {\n %invalid%\n}\n\n.%cssClass% .ace_invalid.ace_illegal {\n %invalid.illegal%\n}\n\n.%cssClass% .ace_invalid.ace_deprecated {\n %invalid.deprecated%\n}\n\n.%cssClass% .ace_support {\n %support%\n}\n\n.%cssClass% .ace_support.ace_function {\n %support.function%\n}\n\n.%cssClass% .ace_function.ace_buildin {\n %function.buildin%\n}\n\n.%cssClass% .ace_string {\n %string%\n}\n\n.%cssClass% .ace_string.ace_regexp {\n %string.regexp%\n}\n\n.%cssClass% .ace_comment {\n %comment%\n}\n\n.%cssClass% .ace_comment.ace_doc {\n %comment.doc%\n}\n\n.%cssClass% .ace_comment.ace_doc.ace_tag {\n %comment.doc.tag%\n}\n\n.%cssClass% .ace_variable {\n %variable%\n}\n\n.%cssClass% .ace_variable.ace_language {\n %variable.language%\n}\n\n.%cssClass% .ace_xml_pe {\n %xml_pe%\n}\n\n.%cssClass% .ace_meta {\n %meta%\n}\n\n.%cssClass% .ace_meta.ace_tag {\n %meta.tag%\n}\n\n.%cssClass% .ace_meta.ace_tag.ace_input {\n %ace.meta.tag.input%\n}\n\n.%cssClass% .ace_entity.ace_other.ace_attribute-name {\n %entity.other.attribute-name%\n}\n\n\n.%cssClass% .ace_collab.ace_user1 {\n %collab.user1% \n}"),define("text/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),require(["ace/ace"],function(a){window.ace=a; +});var Lang=A.Lang,BOUNDING_BOX="boundingBox",CONTENT_BOX="contentBox",EMPTY_STR="",HEIGHT="height",WIDTH="width",NAME="ace-ditor";var AceEditor=A.Component.create({NAME:NAME,EXTENDS:A.Widget,ATTRS:{height:{value:400},highlightActiveLine:{lazyAdd:false,getter:"_getHighlightActiveLine",setter:"_setHighlightActiveLine",value:true},mode:{lazyAdd:false,getter:"_getMode",setter:"_setMode",value:EMPTY_STR},readOnly:{lazyAdd:false,getter:"_getReadOnly",setter:"_setReadOnly",value:false},showPrintMargin:{lazyAdd:false,getter:"_getShowPrintMargin",setter:"_setShowPrintMargin",value:true},tabSize:{lazyAdd:false,getter:"_getTabSize",setter:"_setTabSize",value:4},useSoftTabs:{lazyAdd:false,getter:"_getUseSoftTabs",setter:"_setUseSoftTabs",value:true},useWrapMode:{lazyAdd:false,getter:"_getUseWrapMode",setter:"_setUseWrapMode",value:true},value:{lazyAdd:false,getter:"_getValue",setter:"_setValue",value:EMPTY_STR,},width:{value:800}},UI_ATTRS:[HEIGHT,WIDTH],prototype:{getEditor:function(){var instance=this;if(!instance.editor){var boundingBox=instance.get(BOUNDING_BOX);instance.editor=ace.edit(boundingBox.getDOM());}return instance.editor;},getSelection:function(){var instance=this;return instance.getSession().doc.getTextRange(instance.getEditor().getSelectionRange());},getSession:function(){var instance=this;return instance.getEditor().getSession();},gotoLine:function(line){var instance=this;instance.getEditor().gotoLine(line);},insert:function(text){var instance=this;instance.getEditor().insert(text);},_getHighlightActiveLine:function(){var instance=this;return instance.getEditor().getHighlightActiveLine();},_getMode:function(){var instance=this;return instance.getSession().getMode();},_getReadOnly:function(){var instance=this;return instance.getEditor().getReadOnly();},_getShowPrintMargin:function(){var instance=this;return instance.getEditor().getShowPrintMargin();},_getTabSize:function(){var instance=this;return instance.getSession().getTabSize();},_getUseSoftTabs:function(){var instance=this;return instance.getSession().getUseSoftTabs();},_getUseWrapMode:function(){var instance=this;return instance.getSession().getUseWrapMode();},_getValue:function(){var instance=this;return instance.getSession().getValue();},_setHighlightActiveLine:function(value){var instance=this;instance.getEditor().setHighlightActiveLine(value);},_setMode:function(value){var instance=this;if(value){var Mode=require("ace/mode/"+value).Mode;if(Mode!==undefined){instance.getSession().setMode(new Mode());}else{throw new Error("The mode '"+value+"' is not available.");}}},_setReadOnly:function(value){var instance=this;instance.getEditor().setReadOnly(value);},_setShowPrintMargin:function(value){var instance=this;instance.getEditor().setShowPrintMargin(value);},_setTabSize:function(value){var instance=this;instance.getSession().setTabSize(value);},_setUseSoftTabs:function(value){var instance=this;instance.getSession().setUseSoftTabs(value);},_setUseWrapMode:function(value){var instance=this;instance.getSession().setUseWrapMode(value);},_setValue:function(value){var instance=this;instance.getSession().setValue(value);},_uiSetHeight:function(){var instance=this;A.AceEditor.superclass._uiSetHeight.apply(instance,arguments);instance.getEditor().resize();},_uiSetWidth:function(){var instance=this;A.AceEditor.superclass._uiSetWidth.apply(instance,arguments);instance.getEditor().resize();}}});A.AceEditor=AceEditor;},"@VERSION@",{skinnable:false,requires:["aui-component","aui-node"]});AUI.add("aui-ace-editor-mode-xml",function(a){define("ace/mode/xml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml"],function(s,r,q){var p=s("pilot/oop"),o=s("ace/mode/text").Mode,n=s("ace/tokenizer").Tokenizer,m=s("ace/mode/xml_highlight_rules").XmlHighlightRules,k=s("ace/mode/behaviour/xml").XmlBehaviour,j=function(){this.$tokenizer=new n((new m).getRules()),this.$behaviour=new k;};p.inherits(j,o),function(){this.getNextLineIndent=function(e,d,f){return this.$getIndent(d);};}.call(j.prototype),r.Mode=j;}),define("ace/mode/xml_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],tag:[{token:"text",regex:">",next:"start"},{token:"keyword",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:"qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:"qstring"}],qstring:[{token:"string",regex:".*'",next:"tag"},{token:"string",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'.*"',next:"tag"},{token:"string",merge:!0,regex:".+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};m.inherits(j,k),g.XmlHighlightRules=j;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/behaviour").Behaviour,m=j("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.inherit(m,["string_dquotes"]),this.add("brackets","insertion",function(C,B,A,z,y){if(y=="<"){var x=A.getSelectionRange(),w=z.doc.getTextRange(x);return w!==""?!1:{text:"<>",selection:[1,1]};}if(y==">"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),t=u.substring(v.column,v.column+1);if(t==">"){return{text:"",selection:[1,1]};}}else{if(y=="\n"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),s=u.substring(v.column,v.column+2); +if(s=="A.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-php",function(a){define("ace/mode/php",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/php_highlight_rules").PhpHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=w("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p,this.$behaviour=new n;};t.inherits(m,s),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)#/;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new o(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),x=y.match(B);z.start.row=A,z.end.row=A,z.end.column=x[0].length,G.replace(z,x[1]);}}else{G.indentRows(F,E,"#");}},this.getNextLineIndent=function(k,j,C){var B=this.$getIndent(j),A=this.$tokenizer.getLineTokens(j,k),z=A.tokens,y=A.state;if(z.length&&z[z.length-1].type=="comment"){return B;}if(k=="start"){var x=j.match(/^.*[\{\(\[\:]\s*$/);x&&(B+=C);}return B;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(m.prototype),v.Mode=m;}),define("ace/mode/php_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),e=p.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),x=p.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),w=p.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),v=p.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),u=p.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),t=p.arrayToMap("cfunction|old_function".split("|")),s=p.arrayToMap([]); this.$rules={start:[{token:"support",regex:"<\\?(?:php|\\=)"},{token:"support",regex:"\\?>"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(b){if(t.hasOwnProperty(b)){return"invalid.deprecated";}if(e.hasOwnProperty(b)){return"keyword";}if(x.hasOwnProperty(b)){return"keyword";}if(w.hasOwnProperty(b)){return"constant.language";}if(v.hasOwnProperty(b)){return"variable.language";}if(s.hasOwnProperty(b)){return"invalid.illegal";}if(u.hasOwnProperty(b)){return"invalid.deprecated";}if(f.hasOwnProperty(b)){return"support.function";}if(b.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|self|parent)$/)){return"variable";}return"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.PhpHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row}); if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t);return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-solarized_dark",function(a){define("ace/theme/solarized_dark",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-solarized-dark .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-solarized-dark .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-solarized-dark .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-solarized-dark .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-solarized-dark .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-solarized-dark .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-solarized-dark .ace_scroller {\n background-color: #002B36;\n}\n\n.ace-solarized-dark .ace_text-layer {\n cursor: text;\n color: #93A1A1;\n}\n\n.ace-solarized-dark .ace_cursor {\n border-left: 2px solid #D30102;\n}\n\n.ace-solarized-dark .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #D30102;\n}\n \n.ace-solarized-dark .ace_marker-layer .ace_selection {\n background: #073642;\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_marker-layer .ace_active_line {\n background: #073642;\n}\n\n \n.ace-solarized-dark .ace_invisible {\n color: rgba(147, 161, 161, 0.50);\n}\n\n.ace-solarized-dark .ace_keyword {\n color:#859900;\n}\n\n.ace-solarized-dark .ace_keyword.ace_operator {\n \n}\n\n.ace-solarized-dark .ace_constant {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_language {\n color:#B58900;\n}\n\n.ace-solarized-dark .ace_constant.ace_library {\n \n}\n\n.ace-solarized-dark .ace_constant.ace_numeric {\n color:#D33682;\n}\n\n.ace-solarized-dark .ace_invalid {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_illegal {\n \n}\n\n.ace-solarized-dark .ace_invalid.ace_deprecated {\n \n}\n\n.ace-solarized-dark .ace_support {\n \n}\n\n.ace-solarized-dark .ace_support.ace_function {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_function.ace_buildin {\n \n}\n\n.ace-solarized-dark .ace_string {\n color:#2AA198;\n}\n\n.ace-solarized-dark .ace_string.ace_regexp {\n color:#D30102;\n}\n\n.ace-solarized-dark .ace_comment {\n font-style:italic;\ncolor:#657B83;\n}\n\n.ace-solarized-dark .ace_comment.ace_doc {\n \n}\n\n.ace-solarized-dark .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_variable {\n \n}\n\n.ace-solarized-dark .ace_variable.ace_language {\n color:#268BD2;\n}\n\n.ace-solarized-dark .ace_xml_pe {\n \n}\n\n.ace-solarized-dark .ace_meta {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag {\n \n}\n\n.ace-solarized-dark .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\n color:#93A1A1;\n}\n\n\n.ace-solarized-dark .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-solarized-dark";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-ocaml",function(a){define("ace/mode/ocaml",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/ocaml_highlight_rules").OcamlHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p; };t.inherits(n,s);var m=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(E,D,C,B){var A,z,y=!0,x=/^\s*\(\*(.*)\*\)/;for(A=C;A<=B;A++){if(!x.test(D.getLine(A))){y=!1;break;}}var k=new o(0,0,0,0);for(A=C;A<=B;A++){z=D.getLine(A),k.start.row=A,k.end.row=A,k.end.column=z.length,D.replace(k,y?z.match(x)[1]:"(*"+z+"*)");}},this.getNextLineIndent=function(g,f,k){var j=this.$getIndent(f),h=this.$tokenizer.getLineTokens(f,g).tokens;(!h.length||h[h.length-1].type!=="comment")&&g==="start"&&m.test(f)&&(j+=k);return j;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}).call(n.prototype),v.Mode=n;}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){var C=n.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),B=n.arrayToMap("true|false".split("|")),A=n.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),z="(?:(?:[1-9]\\d*)|(?:0))",y="(?:0[oO]?[0-7]+)",x="(?:0[xX][\\dA-Fa-f]+)",w="(?:0[bB][01]+)",v="(?:"+z+"|"+y+"|"+x+"|"+w+")",u="(?:[eE][+-]?\\d+)",t="(?:\\.\\d+)",s="(?:\\d+)",r="(?:(?:"+s+"?"+t+")|(?:"+s+"\\.))",q="(?:(?:"+r+"|"+s+")"+u+")",e="(?:"+q+"|"+r+")"; this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+e+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:e},{token:"constant.numeric",regex:v+"\\b"},{token:function(b){return C.hasOwnProperty(b)?"keyword":B.hasOwnProperty(b)?"constant.language":A.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]};};o.inherits(k,m),h.OcamlHighlightRules=k;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-idle_fingers",function(a){define("ace/theme/idle_fingers",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-idle-fingers .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-idle-fingers .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-idle-fingers .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-idle-fingers .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-idle-fingers .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-idle-fingers .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-idle-fingers .ace_scroller {\n background-color: #323232;\n}\n\n.ace-idle-fingers .ace_text-layer {\n cursor: text;\n color: #FFFFFF;\n}\n\n.ace-idle-fingers .ace_cursor {\n border-left: 2px solid #91FF00;\n}\n\n.ace-idle-fingers .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #91FF00;\n}\n \n.ace-idle-fingers .ace_marker-layer .ace_selection {\n background: rgba(90, 100, 126, 0.88);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #404040;\n}\n\n.ace-idle-fingers .ace_marker-layer .ace_active_line {\n background: #353637;\n}\n\n \n.ace-idle-fingers .ace_invisible {\n color: #404040;\n}\n\n.ace-idle-fingers .ace_keyword {\n color:#CC7833;\n}\n\n.ace-idle-fingers .ace_keyword.ace_operator {\n \n}\n\n.ace-idle-fingers .ace_constant {\n color:#6C99BB;\n}\n\n.ace-idle-fingers .ace_constant.ace_language {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_library {\n \n}\n\n.ace-idle-fingers .ace_constant.ace_numeric {\n \n}\n\n.ace-idle-fingers .ace_invalid {\n color:#FFFFFF;\nbackground-color:#FF0000;\n}\n\n.ace-idle-fingers .ace_invalid.ace_illegal {\n \n}\n\n.ace-idle-fingers .ace_invalid.ace_deprecated {\n \n}\n\n.ace-idle-fingers .ace_support {\n \n}\n\n.ace-idle-fingers .ace_support.ace_function {\n color:#B83426;\n}\n\n.ace-idle-fingers .ace_function.ace_buildin {\n \n}\n\n.ace-idle-fingers .ace_string {\n color:#A5C261;\n}\n\n.ace-idle-fingers .ace_string.ace_regexp {\n color:#CCCC33;\n}\n\n.ace-idle-fingers .ace_comment {\n font-style:italic;\ncolor:#BC9458;\n}\n\n.ace-idle-fingers .ace_comment.ace_doc {\n \n}\n\n.ace-idle-fingers .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-idle-fingers .ace_variable {\n \n}\n\n.ace-idle-fingers .ace_variable.ace_language {\n \n}\n\n.ace-idle-fingers .ace_xml_pe {\n \n}\n\n.ace-idle-fingers .ace_meta {\n \n}\n\n.ace-idle-fingers .ace_meta.ace_tag {\n color:#FFE5BB;\n}\n\n.ace-idle-fingers .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-idle-fingers .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-idle-fingers .ace_collab.ace_user1 {\n color:#323232;\nbackground-color:#FFF980; \n}";j.importCssString(h),f.cssClass="ace-idle-fingers";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-html",function(a){define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/mode/javascript").Mode,q=w("ace/mode/css").Mode,p=w("ace/tokenizer").Tokenizer,o=w("ace/mode/html_highlight_rules").HtmlHighlightRules,n=w("ace/mode/behaviour/xml").XmlBehaviour,m=function(){var b=new o;this.$tokenizer=new p(b.getRules()),this.$behaviour=new n,this.$embeds=b.getEmbeds(),this.createModeDelegates({"js-":r,"css-":q});};t.inherits(m,s),function(){this.toggleCommentLines=function(f,e,h,g){return 0;},this.getNextLineIndent=function(e,d,f){return this.$getIndent(d);},this.checkOutdent=function(e,d,f){return !1;};}.call(m.prototype),v.Mode=m;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n; };u.inherits(m,t),function(){this.toggleCommentLines=function(I,H,G,F){var E=!0,D=[],C=/^(\s*)\/\//;for(var B=G;B<=F;B++){if(!C.test(H.getLine(B))){E=!1;break;}}if(E){var A=new p(0,0,0,0);for(var B=G;B<=F;B++){var z=H.getLine(B),y=z.match(C);A.start.row=B,A.end.row=B,A.end.column=y[0].length,H.replace(A,y[1]);}}else{H.indentRows(G,F,"//");}},this.getNextLineIndent=function(k,j,D){var C=this.$getIndent(j),B=this.$tokenizer.getLineTokens(j,k),A=B.tokens,z=B.state;if(A.length&&A[A.length-1].type=="comment"){return C;}if(k=="start"){var y=j.match(/^.*[\{\(\[\:]\s*$/);y&&(C+=D);}else{if(k=="doc-start"){if(z=="start"){return"";}var y=j.match(/^\s*(\/?)\*/);y&&(y[1]&&(C+=" "),C+="* ");}}return C;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var k=[];for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/text").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/css_highlight_rules").CssHighlightRules,n=u("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=u("ace/worker/worker_client").WorkerClient,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n;};r.inherits(k,q),function(){this.getNextLineIndent=function(h,g,x){var w=this.$getIndent(g),v=this.$tokenizer.getLineTokens(g,h).tokens;if(v.length&&v[v.length-1].type=="comment"){return w;}var j=g.match(/^.*\{\s*$/);j&&(w+=x);return w;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new m(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("csslint",function(g){var h=[];g.data.forEach(function(b){h.push({row:b.line-1,column:b.col-1,text:b.message,type:b.type,lint:b});}),e.setAnnotations(h);});};}.call(k.prototype),t.Mode=k;}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){function w(g){var f=[],D=g.split(""); -for(var C=0;C",next:h},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(e("attribute-list")); -}function d(g,c){return[{token:"string",merge:!0,regex:".*"+g,next:c},{token:"string",merge:!0,regex:".+"}];}function e(b){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:b+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:b+"-qstring"}];}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":d("'","style"),"style-qqstring":d('"',"style"),"script-qstring":d("'","script"),"script-qqstring":d('"',"script"),"tag-qstring":d("'","tag"),"tag-qqstring":d('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},f(this.$rules,"tag","start"),f(this.$rules,"css","css-start"),f(this.$rules,"script","js-start"),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(p,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}]);};q.inherits(m,n),j.HtmlHighlightRules=m;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/behaviour").Behaviour,m=j("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.inherit(m,["string_dquotes"]),this.add("brackets","insertion",function(C,B,A,z,y){if(y=="<"){var x=A.getSelectionRange(),w=z.doc.getTextRange(x);return w!==""?!1:{text:"<>",selection:[1,1]};}if(y==">"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),t=u.substring(v.column,v.column+1);if(t==">"){return{text:"",selection:[1,1]};}}else{if(y=="\n"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),s=u.substring(v.column,v.column+2);if(s=="|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,e=/^(\s*)#/,h=/^\s*###(?!#)/,g=/^\s*/;this.getNextLineIndent=function(j,z,y){var x=this.$getIndent(z),k=this.$tokenizer.getLineTokens(z,j).tokens;(!k.length||k[k.length-1].type!=="comment")&&j==="start"&&f.test(z)&&(x+=y);return x;},this.toggleCommentLines=function(b,A,z,y){console.log("toggle");var x=new q(0,0,0,0);for(var d=z;d<=y;++d){var c=A.getLine(d);if(h.test(c)){continue;}e.test(c)?c=c.replace(e,"$1"):c=c.replace(g,"$&#"),x.end.row=x.start.row=d,x.end.column=c.length+1,A.replace(x,c);}},this.checkOutdent=function(j,d,k){return this.$outdent.checkOutdent(d,k);},this.autoOutdent=function(j,d,k){this.$outdent.autoOutdent(d,k);},this.createWorker=function(j){var d=j.getDocument(),k=new o(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");k.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},k.emit("change",b);}),k.on("error",function(c){j.setAnnotations([c.data]);}),k.on("ok",function(c){j.clearAnnotations();});};}.call(m.prototype),v.Mode=m;}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(f,e,h){function g(){var j="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",d="(?![$\\w]|\\s*:)",k={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+j},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+d},{token:"constant.language",regex:"(?:true|false|null|undefined)"+d},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+d},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+d},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+d},{token:"identifier",regex:j},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},k],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},k],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},k],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},k],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},k],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}; -}f("pilot/oop").inherits(g,f("ace/mode/text_highlight_rules").TextHighlightRules),e.CoffeeHighlightRules=g;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;r=2){var d=arguments[1];}else{do{if(c in this){d=this[c++]; -break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b); -}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join(""); -},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type;},LA:function(a){var b=a,c;if(a>0){if(a>5){throw new Error("Too much lookahead.");}while(b){c=this.get(),b--;}while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name; -},tokenType:function(a){return this._tokenData[a]||-1;},unget:function(){if(this._ltIndexCache.length){this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];}else{throw new Error("Too much lookahead.");}}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e};})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens);}function mix(a,b){for(var c in b){b.hasOwnProperty(c)&&(a[c]=b[c]);}return a;}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a));}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a));}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a);}function isNewLine(a){return a!=null&&nl.test(a);}function isWhitespace(a){return a!=null&&/\s/.test(a);}function isDigit(a){return a!=null&&/\d/.test(a);}function isHexDigit(a){return a!=null&&h.test(a);}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[];}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b;}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution";}}else{/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text);}}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b;}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null;}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c;}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b;}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling");}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}; +for(var C=0;C",next:b},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(e(g)); +}function d(g,c){return[{token:"string",merge:!0,regex:".*"+g,next:c},{token:"string",merge:!0,regex:".+"}];}function e(b){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:b+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:b+"-qstring"}];}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},f(this.$rules,"tag","start"),f(this.$rules,"css","css-start"),f(this.$rules,"script","js-start"),this.embedRules(o,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(p,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}]);};q.inherits(m,n),j.HtmlHighlightRules=m;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(j,h,p){var o=j("pilot/oop"),n=j("ace/mode/behaviour").Behaviour,m=j("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.inherit(m,["string_dquotes"]),this.add("brackets","insertion",function(C,B,A,z,y){if(y=="<"){var x=A.getSelectionRange(),w=z.doc.getTextRange(x);return w!==""?!1:{text:"<>",selection:[1,1]};}if(y==">"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),t=u.substring(v.column,v.column+1);if(t==">"){return{text:"",selection:[1,1]};}}else{if(y=="\n"){var v=A.getCursorPosition(),u=z.doc.getLine(v.row),s=u.substring(v.column,v.column+2);if(s=="|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,e=/^(\s*)#/,h=/^\s*###(?!#)/,g=/^\s*/;this.getNextLineIndent=function(j,z,y){var x=this.$getIndent(z),k=this.$tokenizer.getLineTokens(z,j).tokens;(!k.length||k[k.length-1].type!=="comment")&&j==="start"&&f.test(z)&&(x+=y);return x;},this.toggleCommentLines=function(b,A,z,y){console.log("toggle");var x=new q(0,0,0,0);for(var d=z;d<=y;++d){var c=A.getLine(d);if(h.test(c)){continue;}e.test(c)?c=c.replace(e,"$1"):c=c.replace(g,"$&#"),x.end.row=x.start.row=d,x.end.column=c.length+1,A.replace(x,c);}},this.checkOutdent=function(j,d,k){return this.$outdent.checkOutdent(d,k);},this.autoOutdent=function(j,d,k){this.$outdent.autoOutdent(d,k);},this.createWorker=function(j){var d=j.getDocument(),k=new o(["ace","pilot"],"worker-coffee.js","ace/mode/coffee_worker","Worker");k.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},k.emit("change",b);}),k.on("error",function(c){j.setAnnotations([c.data]);}),k.on("ok",function(c){j.clearAnnotations();});};}.call(m.prototype),v.Mode=m;}),define("ace/mode/coffee_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(f,e,h){function g(){var j="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",d="(?![$\\w]|\\s*:)",k={token:"string",merge:!0,regex:".+"};this.$rules={start:[{token:"identifier",regex:"(?:@|(?:\\.|::)\\s*)"+j},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof)|s(?:uper|witch)|return|b(?:reak|y)|c(?:ontinue|atch|lass)|i(?:n(?:stanceof)?|s(?:nt)?|f)|e(?:lse|xtends)|f(?:or (?:own)?|inally|unction)|wh(?:ile|en)|n(?:ew|ot?)|d(?:e(?:lete|bugger)|o)|loop|o(?:ff?|[rn])|un(?:less|til)|and|yes)"+d},{token:"constant.language",regex:"(?:true|false|null|undefined)"+d},{token:"invalid.illegal",regex:"(?:c(?:ase|onst)|default|function|v(?:ar|oid)|with|e(?:num|xport)|i(?:mplements|nterface)|let|p(?:ackage|r(?:ivate|otected)|ublic)|static|yield|__(?:hasProp|extends|slice|bind|indexOf))"+d},{token:"language.support.class",regex:"(?:Array|Boolean|Date|Function|Number|Object|R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|TypeError|URIError)"+d},{token:"language.support.function",regex:"(?:Math|JSON|is(?:NaN|Finite)|parse(?:Int|Float)|encodeURI(?:Component)?|decodeURI(?:Component)?)"+d},{token:"identifier",regex:j},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[\\]})]"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},k],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},k],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"start"},k],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"start"},k],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},k],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}; +}f("pilot/oop").inherits(g,f("ace/mode/text_highlight_rules").TextHighlightRules),e.CoffeeHighlightRules=g;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;r=2){var d=arguments[1]; +}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf){return a.indexOf(b,c);}for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1; +ab.index&&this.lastIndex--;}return b;},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return !!b;});}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end); +if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type]; +return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type;},LA:function(a){var b=a,c;if(a>0){if(a>5){throw new Error("Too much lookahead.");}while(b){c=this.get(),b--;}while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name;},tokenType:function(a){return this._tokenData[a]||-1;},unget:function(){if(this._ltIndexCache.length){this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];}else{throw new Error("Too much lookahead.");}}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e};})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens);}function mix(a,b){for(var c in b){b.hasOwnProperty(c)&&(a[c]=b[c]);}return a;}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a));}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a));}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a);}function isNewLine(a){return a!=null&&nl.test(a);}function isWhitespace(a){return a!=null&&/\s/.test(a);}function isDigit(a){return a!=null&&/\d/.test(a);}function isHexDigit(a){return a!=null&&h.test(a);}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[];}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b;}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution";}}else{/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text);}}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b;}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null;}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c;}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b;}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling");}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}; Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM){this._import(),this._skipCruft();}while(a.peek()==Tokens.NAMESPACE_SYM){this._namespace(),this._skipCruft();}d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset()){switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token());}}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});}else{throw e;}}d=a.peek();}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet");},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}));},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol});},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d});},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;){if(a.peek()==Tokens.PAGE_SYM){this._page();}else{if(!this._ruleset()){break;}}}a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c});},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA)){this._readWhitespace(),b.push(this._media_query());}return b;},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression())); if(b===null&&e.length===0){return null;}this._readWhitespace();while(a.match(Tokens.IDENT)){a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());}return new MediaQuery(c,b,e,d.startLine,d.startCol);},_media_type:function(){return this._media_feature();},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null);},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token());},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c});},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return !0;}return !1;},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null;},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value;},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c});},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null;},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b;},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null;},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b;},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group();}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict)){throw d;}this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE){throw d;}return !0;}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c;},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA)){this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1));}}return b.length?b:null;},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null){return null;}b.push(c);do{d=this._combinator();if(d!==null){b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);}else{if(this._readWhitespace()){e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));}else{break;}}}while(!0);return new Selector(b,b[0].line,b[0].col);},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S){break;}while(f1&&a.unget());return null;}b&&(c.text=b+c.text,c.col-=b.length);return c;},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1);}return null;},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol);}return null;},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE){a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";}return b.length?b:null; },_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null;},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol);}return null;},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b;},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b;},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION])){b+=a.token().value,b+=this._readWhitespace();}return b.length?b:null;},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f;},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null;},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null;},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b;},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN){a.get(),b+=a.token().value,d=a.peek();}}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace();}return b;},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c)){throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);}this._readWhitespace();}return c;},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE){this._keyframe_rule(),this._readWhitespace(),c=a.peek();}this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE);},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token());},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col});},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace(); @@ -68,20 +68,15 @@ j.importCssString(h),f.cssClass="ace-solarized-light";});},"@VERSION@",{skinnabl };o.inherits(k,m),h.PerlHighlightRules=k;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-scad",function(a){define("ace/mode/scad",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/scad_highlight_rules").scadHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=w("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p,this.$behaviour=new n;};t.inherits(m,s),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new o(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),x=y.match(B);z.start.row=A,z.end.row=A,z.end.column=x[0].length,G.replace(z,x[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(k,j,C){var B=this.$getIndent(j),A=this.$tokenizer.getLineTokens(j,k),z=A.tokens,y=A.state;if(z.length&&z[z.length-1].type=="comment"){return B;}if(k=="start"){var x=j.match(/^.*[\{\(\[]\s*$/);x&&(B+=C);}else{if(k=="doc-start"){if(y=="start"){return"";}var x=j.match(/^\s*(\/?)\*/);x&&(x[1]&&(B+=" "),B+="* ");}}return B;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(m.prototype),v.Mode=m;}),define("ace/mode/scad_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var d=p.arrayToMap("module|if|else|for".split("|")),c=p.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(b){return b=="this"?"variable.language":d.hasOwnProperty(b)?"keyword":c.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.scadHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row}); if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t);return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-kr_theme",function(a){define("ace/theme/kr_theme",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-kr-theme .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-kr-theme .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-kr-theme .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-kr-theme .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-kr-theme .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-kr-theme .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-kr-theme .ace_scroller {\n background-color: #0B0A09;\n}\n\n.ace-kr-theme .ace_text-layer {\n cursor: text;\n color: #FCFFE0;\n}\n\n.ace-kr-theme .ace_cursor {\n border-left: 2px solid #FF9900;\n}\n\n.ace-kr-theme .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #FF9900;\n}\n \n.ace-kr-theme .ace_marker-layer .ace_selection {\n background: rgba(170, 0, 255, 0.45);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_marker-layer .ace_active_line {\n background: #38403D;\n}\n\n \n.ace-kr-theme .ace_invisible {\n color: rgba(255, 177, 111, 0.32);\n}\n\n.ace-kr-theme .ace_keyword {\n color:#949C8B;\n}\n\n.ace-kr-theme .ace_keyword.ace_operator {\n \n}\n\n.ace-kr-theme .ace_constant {\n color:rgba(210, 117, 24, 0.76);\n}\n\n.ace-kr-theme .ace_constant.ace_language {\n \n}\n\n.ace-kr-theme .ace_constant.ace_library {\n \n}\n\n.ace-kr-theme .ace_constant.ace_numeric {\n \n}\n\n.ace-kr-theme .ace_invalid {\n color:#F8F8F8;\nbackground-color:#A41300;\n}\n\n.ace-kr-theme .ace_invalid.ace_illegal {\n \n}\n\n.ace-kr-theme .ace_invalid.ace_deprecated {\n \n}\n\n.ace-kr-theme .ace_support {\n color:#9FC28A;\n}\n\n.ace-kr-theme .ace_support.ace_function {\n color:#85873A;\n}\n\n.ace-kr-theme .ace_function.ace_buildin {\n \n}\n\n.ace-kr-theme .ace_string {\n \n}\n\n.ace-kr-theme .ace_string.ace_regexp {\n color:rgba(125, 255, 192, 0.65);\n}\n\n.ace-kr-theme .ace_comment {\n font-style:italic;\ncolor:#706D5B;\n}\n\n.ace-kr-theme .ace_comment.ace_doc {\n \n}\n\n.ace-kr-theme .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-kr-theme .ace_variable {\n color:#D1A796;\n}\n\n.ace-kr-theme .ace_variable.ace_language {\n color:#FF80E1;\n}\n\n.ace-kr-theme .ace_xml_pe {\n \n}\n\n.ace-kr-theme .ace_meta {\n \n}\n\n.ace-kr-theme .ace_meta.ace_tag {\n color:#BABD9C;\n}\n\n.ace-kr-theme .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-kr-theme .ace_entity.ace_other.ace_attribute-name {\n \n}\n\n\n.ace-kr-theme .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-kr-theme";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-c_cpp",function(a){define("ace/mode/c_cpp",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle"],function(w,v,u){var t=w("pilot/oop"),s=w("ace/mode/text").Mode,r=w("ace/tokenizer").Tokenizer,q=w("ace/mode/c_cpp_highlight_rules").c_cppHighlightRules,p=w("ace/mode/matching_brace_outdent").MatchingBraceOutdent,o=w("ace/range").Range,n=w("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new r((new q).getRules()),this.$outdent=new p,this.$behaviour=new n; };t.inherits(m,s),function(){this.toggleCommentLines=function(H,G,F,E){var D=!0,C=[],B=/^(\s*)\/\//;for(var A=F;A<=E;A++){if(!B.test(G.getLine(A))){D=!1;break;}}if(D){var z=new o(0,0,0,0);for(var A=F;A<=E;A++){var y=G.getLine(A),x=y.match(B);z.start.row=A,z.end.row=A,z.end.column=x[0].length,G.replace(z,x[1]);}}else{G.indentRows(F,E,"//");}},this.getNextLineIndent=function(k,j,C){var B=this.$getIndent(j),A=this.$tokenizer.getLineTokens(j,k),z=A.tokens,y=A.state;if(z.length&&z[z.length-1].type=="comment"){return B;}if(k=="start"){var x=j.match(/^.*[\{\(\[]\s*$/);x&&(B+=C);}else{if(k=="doc-start"){if(y=="start"){return"";}var x=j.match(/^\s*(\/?)\*/);x&&(x[1]&&(B+=" "),B+="* ");}}return B;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(m.prototype),v.Mode=m;}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var d=p.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),c=p.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(b){return b=="this"?"variable.language":d.hasOwnProperty(b)?"keyword":c.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.c_cppHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t); -return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-cockpit",function(A){define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c);};}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags);}function q(a){this.env=a,this.commandAssignment=new o(p,this);}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue);}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f;}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions;}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number"){this.start=c,this.end=d,this.predictions=e;}else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions;}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p);},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0;},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0){return d;}}return c.status-a.status;}),b!==undefined&&a.forEach(function(a){delete a.distance;},this);return a;},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter){throw new Error("Can't merge Arguments from different EventEmitters");}return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix);},setText:function(a){if(a==null){throw new Error("Illegal text for Argument: "+a);}var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b);},toString:function(){return this.prefix+this.text+this.suffix;}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f);},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0]);},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1;},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a); -},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a);},toString:function(){return this.arg?this.arg.toString():"";}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]");},this),c.push("
                                                                            "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                            "),a.params&&a.params.length>0&&(c.push("
                                                                              "),a.params.forEach(function(a){c.push("
                                                                            • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                            • ");},this),c.push("
                                                                            "));return new l(i.VALID,c.join(""),b);}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this);},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}));},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b];},getParameterNames:function(){return Object.keys(this._assignments);},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a];},this);},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint());},this),l.sort(this._hints);},getWorstHint:function(){return this._hints[0];},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value;},this);return a;},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a));},this);return b;},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined);},this);},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString());},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)));},this);return a.join("");}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints();},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID;});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++){b.status>a[c]&&(a[c]=b.status);}},this);return a;},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString();},this).join("");};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID);},this),l.sort(this._hints);},r.prototype.getHints=function(){return this._hints;},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""));}else{if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o));}}break;}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j="";}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j="";}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j="";}}h++;}return k;},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value){break;}if(this.commandAssignment.value.exec){for(var d=0;d=a.length){break;}continue;}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g));}}};}(),b.CliRequisition=r;}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i);},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i);};}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update());}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c;},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup");}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px";}.bind(this);this.outputHeight.addEventListener("change",b),b();}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this);}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1;}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup");}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this);},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight;},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px");},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN){d=!0;}else{if(b!=0||c!=0){d=h.execKeyCommand(this.env,"cli",b,c);}}d&&e.stopEvent(a);},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end));}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b;},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString()); -var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d);}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e);}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | ";},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1;},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break;}d!==a[c]&&(b+="");}return b;},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e;}}},b.CliView=n;}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this));}function k(b){var d;try{d=a("text!cockpit/ui/"+b);}catch(e){}if(d){return d;}var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b;}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b;}return f+b;}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed;},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec();},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a);},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a);},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a);},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1000+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b);},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block";}},b.RequestView=l;}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[];}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined){b={};}this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return;}if(a.hasAttribute("if")&&!this.processIf(a,b)){return;}b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a));},this),a.parentNode.removeChild(a));},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a;}return a.slice(2,-1);},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments);}:d;}if(!d){this.handleError("Can't find path="+a);return null;}return this.property(a.slice(1),d,c);}finally{this.scope.pop();}},Templater.prototype.envEval=function(script,env,context){with(env){try{this.scope.push(context);return eval(script);}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script;}finally{this.scope.pop();}}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b);},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a);},exports.Templater=Templater;}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                            "+d.responseText+"
                                                                            ");},d.send(null);}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e);},b.shutdown=function(a,b){d.removeCommand(e);};}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                            >
                                                                            ${request.typed}
                                                                            Hide command output Show command output Remove this command from the history
                                                                            '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); -},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-clouds",function(a){define("ace/theme/clouds",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-clouds";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-scss",function(a){define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(s,r,q){var p=s("pilot/oop"),o=s("ace/mode/text").Mode,n=s("ace/tokenizer").Tokenizer,m=s("ace/mode/scss_highlight_rules").ScssHighlightRules,k=s("ace/mode/matching_brace_outdent").MatchingBraceOutdent,j=function(){this.$tokenizer=new n((new m).getRules()),this.$outdent=new k;};p.inherits(j,o),function(){this.getNextLineIndent=function(h,g,w){var v=this.$getIndent(g),u=this.$tokenizer.getLineTokens(g,h).tokens;if(u.length&&u[u.length-1].type=="comment"){return v;}var t=g.match(/^.*\{\s*$/);t&&(v+=w);return v;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(j.prototype),r.Mode=j;}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){function r(g){var f=[],y=g.split("");for(var x=0;xA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-clouds",function(a){define("ace/theme/clouds",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";j.importCssString(h),f.cssClass="ace-clouds";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-scss",function(a){define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent"],function(s,r,q){var p=s("pilot/oop"),o=s("ace/mode/text").Mode,n=s("ace/tokenizer").Tokenizer,m=s("ace/mode/scss_highlight_rules").ScssHighlightRules,k=s("ace/mode/matching_brace_outdent").MatchingBraceOutdent,j=function(){this.$tokenizer=new n((new m).getRules()),this.$outdent=new k;};p.inherits(j,o),function(){this.getNextLineIndent=function(h,g,w){var v=this.$getIndent(g),u=this.$tokenizer.getLineTokens(g,h).tokens;if(u.length&&u[u.length-1].type=="comment"){return v;}var t=g.match(/^.*\{\s*$/);t&&(v+=w);return v;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);};}.call(j.prototype),r.Mode=j;}),define("ace/mode/scss_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(j,h,p){var o=j("pilot/oop"),n=j("pilot/lang"),m=j("ace/mode/text_highlight_rules").TextHighlightRules,k=function(){function r(g){var f=[],y=g.split("");for(var x=0;x|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]};};o.inherits(k,m),h.ScssHighlightRules=k;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-worker-coffee",function(a){function g(){var m=b("pilot/event_emitter").EventEmitter,k=b("pilot/oop"),n=function(){}; -(function(){k.implement(this,m),this.callback=function(p,o){postMessage({type:"call",id:o,data:p});},this.emit=function(p,o){postMessage({type:"event",name:p,data:o});};}).call(n.prototype);return new n;}function j(k){b.tlns=k;}var d={log:function(k){postMessage({type:"log",data:k});}},h={console:d},b=function(m){var k=b.modules[m];if(k){k.initialized||(k.exports=k.factory().exports,k.initialized=!0);return k.exports;}var n=m.split("/");n[0]=b.tlns[n[0]]||n[0],path=n.join("/")+".js",b.id=m,importScripts(path);return b(m);};b.modules={},b.tlns={};var f=function(m,k,n){arguments.length==2?n=k:arguments.length==1&&(n=m,m=b.id);m.indexOf("text/")!==0&&(b.modules[m]={factory:function(){var p={exports:{}},o=n(b,p.exports,p);o&&(p.exports=o);return p;}});},c,e;onmessage=function(m){var k=m.data;if(k.command){c[k.command].apply(c,k.args);}else{if(k.init){j(k.tlns),b("pilot/fixoldbrowsers"),e=g();var n=b(k.module)[k.classname];c=new n(e);}else{k.event&&e&&e._dispatchEvent(k.event,k.data);}}},f("pilot/fixoldbrowsers",["require","exports","module"],function(X,V,U){if(!Function.prototype.bind){var T=Array.prototype.slice;Function.prototype.bind=function(m){var k=this;if(typeof k.apply!="function"||typeof k.call!="function"){return new TypeError;}var p=T.call(arguments),o=function n(){if(this instanceof n){var q=Object.create(k.prototype);k.apply(q,p.concat(T.call(arguments)));return q;}return k.call.apply(k,p.concat(T.call(arguments)));};o.length=typeof k=="function"?Math.max(k.length-p.length,0):0;return o;};}var S=Function.prototype.call,R=Array.prototype,Q=Object.prototype,P=S.bind(Q.hasOwnProperty),O,N,M,L,K;if(K=P(Q,"__defineGetter__")){O=S.bind(Q.__defineGetter__),N=S.bind(Q.__defineSetter__),M=S.bind(Q.__lookupGetter__),L=S.bind(Q.__lookupSetter__);}Array.isArray||(Array.isArray=function(k){return Object.prototype.toString.call(k)==="[object Array]";}),Array.prototype.forEach||(Array.prototype.forEach=function(m,k){var o=+this.length;for(var n=0;n=2){var n=arguments[1];}else{do{if(o in this){n=this[o++];break;}if(++o>=k){throw new TypeError;}}while(!0);}for(;o=2){var n=arguments[1];}else{do{if(o in this){n=this[o--];break;}if(--o<0){throw new TypeError;}}while(!0);}for(;o>=0;o--){o in this&&(n=m.call(null,n,this[o],o,this));}return n;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(m){var k=this.length;if(!k){return -1;}var n=arguments[1]||0;if(n>=k){return -1;}n<0&&(n+=k);for(;n=0;n--){if(!P(this,n)){continue;}if(m===this[n]){return n;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||k.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var J="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(m,k){if(typeof m!="object"&&typeof m!="function"||m===null){throw new TypeError(J+m);}if(!P(m,k)){return undefined;}var q,p,o;q={enumerable:!0,configurable:!0};if(K){var n=m.__proto__;m.__proto__=Q;var p=M(m,k),o=L(m,k);m.__proto__=n;if(p||o){p&&(descriptor.get=p),o&&(descriptor.set=o);return descriptor;}}descriptor.value=m[k];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k);}),Object.create||(Object.create=function(m,k){var o;if(m===null){o={"__proto__":null};}else{if(typeof m!="object"){throw new TypeError("typeof prototype["+typeof m+"] != 'object'");}var n=function(){};n.prototype=m,o=new n,o.__proto__=m;}typeof k!="undefined"&&Object.defineProperties(o,k);return o;});if(!Object.defineProperty){var I="Property description must be an object: ",H="Object.defineProperty called on non-object: ",G="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(m,k,o){if(typeof m!="object"&&typeof m!="function"){throw new TypeError(H+m);}if(typeof m!="object"||m===null){throw new TypeError(I+o);}if(P(o,"value")){if(K&&(M(m,k)||L(m,k))){var n=m.__proto__;m.__proto__=Q,delete m[k],m[k]=o.value,m.prototype;}else{m[k]=o.value;}}else{if(!K){throw new TypeError(G);}P(o,"get")&&O(m,k,o.get),P(o,"set")&&N(m,k,o.set);}return m;};}Object.defineProperties||(Object.defineProperties=function(m,k){for(var n in k){P(k,n)&&Object.defineProperty(m,n,k[n]);}return m;}),Object.seal||(Object.seal=function(k){return k;}),Object.freeze||(Object.freeze=function(k){return k;});try{Object.freeze(function(){});}catch(F){Object.freeze=function(m){return function k(n){return typeof n=="function"?n:m(n);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(k){return k; -}),Object.isSealed||(Object.isSealed=function(k){return !1;}),Object.isFrozen||(Object.isFrozen=function(k){return !1;}),Object.isExtensible||(Object.isExtensible=function(k){return !0;});if(!Object.keys){var E=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=D.length;for(var B in {toString:null}){E=!1;}Object.keys=function y(n){if(typeof n!="object"&&typeof n!="function"||n===null){throw new TypeError("Object.keys called on a non-object");}var m=[];for(var k in n){P(n,k)&&m.push(k);}if(E){for(var q=0,p=C;q=7?new m(W,x,w,v,u,t,s):r>=6?new m(W,x,w,v,u,t):r>=5?new m(W,x,w,v,u):r>=4?new m(W,x,w,v):r>=3?new m(W,x,w):r>=2?new m(W,x):r>=1?new m(W):new m;q.constructor=k;return q;}return m.apply(this,arguments);},p=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var o in m){k[o]=m[o];}k.now=m.now,k.UTC=m.UTC,k.prototype=m.prototype,k.prototype.constructor=k,k.parse=function n(q){var u=p.exec(q);if(u){u.shift();var t=u[0]===undefined;for(var s=0;s<10;s++){if(s===7){continue;}u[s]=+(u[s]||(s<3?1:0)),s===1&&u[s]--;}if(t){return((u[3]*60+u[4])*60+u[5])*1000+u[6];}var r=(u[8]*60+u[9])*60*1000;u[6]==="-"&&(r=-r);return m.UTC.apply(this,u.slice(0,7))+r;}return m.parse.apply(this,arguments);};return k;}(Date));if(!String.prototype.trim){var A=/^\s\s*/,z=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(A,"").replace(z,"");};}}),f("pilot/event_emitter",["require","exports","module"],function(m,k,o){var n={};n._emit=n._dispatchEvent=function(q,p){this._eventRegistry=this._eventRegistry||{};var s=this._eventRegistry[q];if(!!s&&!!s.length){var p=p||{};p.type=q;for(var r=0;r=t&&(u.row=Math.max(0,t-1),u.column=this.getLine(t-1).length);return u;},this.insert=function(u,t){if(t.length==0){return u;}u=this.$clipPosition(u),this.getLength()<=1&&this.$detectNewLine(t);var x=this.$split(t),w=x.splice(0,1)[0],v=x.length==0?null:x.splice(x.length-1,1)[0];u=this.insertInLine(u,w),v!==null&&(u=this.insertNewLine(u),u=this.insertLines(u.row,x),u=this.insertInLine(u,v||""));return u;},this.insertLines=function(u,t){if(t.length==0){return{row:u,column:0};}var x=[u,0];x.push.apply(x,t),this.$lines.splice.apply(this.$lines,x);var w=new p(u,0,u+t.length,0),v={action:"insertLines",range:w,lines:t};this._dispatchEvent("change",{data:v});return w.end;},this.insertNewLine=function(u){u=this.$clipPosition(u);var t=this.$lines[u.row]||"";this.$lines[u.row]=t.substring(0,u.column),this.$lines.splice(u.row+1,0,t.substring(u.column,t.length));var w={row:u.row+1,column:0},v={action:"insertText",range:p.fromPoints(u,w),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});return w;},this.insertInLine=function(u,t){if(t.length==0){return u;}var x=this.$lines[u.row]||"";this.$lines[u.row]=x.substring(0,u.column)+t+x.substring(u.column);var w={row:u.row,column:u.column+t.length},v={action:"insertText",range:p.fromPoints(u,w),text:t};this._dispatchEvent("change",{data:v});return w;},this.remove=function(u){u.start=this.$clipPosition(u.start),u.end=this.$clipPosition(u.end);if(u.isEmpty()){return u.start;}var t=u.start.row,x=u.end.row;if(u.isMultiLine()){var w=u.start.column==0?t:t+1,v=x-1;u.end.column>0&&this.removeInLine(x,0,u.end.column),v>=w&&this.removeLines(w,v),w!=t&&(this.removeInLine(t,u.start.column,this.getLine(t).length),this.removeNewLine(u.start.row));}else{this.removeInLine(t,u.start.column,u.end.column);}return u.start;},this.removeInLine=function(u,t,A){if(t!=A){var z=new p(u,t,u,A),y=this.getLine(u),x=y.substring(t,A),w=y.substring(0,t)+y.substring(A,y.length);this.$lines.splice(u,1,w);var v={action:"removeText",range:z,text:x};this._dispatchEvent("change",{data:v});return z.start;}},this.removeLines=function(u,t){var x=new p(u,0,t+1,0),w=this.$lines.splice(u,t-u+1),v={action:"removeLines",range:x,nl:this.getNewLineCharacter(),lines:w};this._dispatchEvent("change",{data:v});return w;},this.removeNewLine=function(u){var t=this.getLine(u),y=this.getLine(u+1),x=new p(u,t.length,u+1,0),w=t+y;this.$lines.splice(u,2,w);var v={action:"removeText",range:x,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});},this.replace=function(u,t){if(t.length==0&&u.isEmpty()){return u.start;}if(t==this.getTextRange(u)){return u.end;}this.remove(u);if(t){var v=this.insert(u.start,t);}else{v=u.start;}return v;},this.applyDeltas=function(u){for(var t=0;t=0;t--){var w=u[t],v=p.fromPoints(w.range.start,w.range.end);w.action=="insertLines"?this.removeLines(v.start.row,v.end.row-1):w.action=="insertText"?this.remove(v):w.action=="removeLines"?this.insertLines(v.start.row,w.lines):w.action=="removeText"&&this.insert(v.start,w.text);}};}).call(n.prototype),k.Document=n;}),f("ace/range",["require","exports","module"],function(m,k,o){var n=function(q,p,s,r){this.start={row:q,column:p},this.end={row:s,column:r};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(q,p){return this.compare(q,p)==0;},this.compareRange=function(q){var p,s=q.end,r=q.start;p=this.compare(s.row,s.column);if(p==1){p=this.compare(r.row,r.column);return p==1?2:p==0?1:0;}if(p==-1){return -2;}p=this.compare(r.row,r.column);return p==-1?-1:p==1?42:0;},this.containsRange=function(q){var p=this.compareRange(q);return p==-1||p==0||p==1;},this.isEnd=function(q,p){return this.end.row==q&&this.end.column==p;},this.isStart=function(q,p){return this.start.row==q&&this.start.column==p;},this.setStart=function(q,p){typeof q=="object"?(this.start.column=q.column,this.start.row=q.row):(this.start.row=q,this.start.column=p);},this.setEnd=function(q,p){typeof q=="object"?(this.end.column=q.column,this.end.row=q.row):(this.end.row=q,this.end.column=p);},this.inside=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)||this.isStart(q,p)?!1:!0;}return !1;},this.insideStart=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)?!1:!0;}return !1;},this.insideEnd=function(q,p){if(this.compare(q,p)==0){return this.isStart(q,p)?!1:!0;}return !1;},this.compare=function(q,p){if(!this.isMultiLine()&&q===this.start.row){return pthis.end.column?1:0;}return qthis.end.row?1:this.start.row===q?p>=this.start.column?0:-1:this.end.row===q?p<=this.end.column?0:1:0;},this.compareStart=function(q,p){return this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.compareEnd=function(q,p){return this.end.row==q&&this.end.column==p?1:this.compare(q,p);},this.compareInside=function(q,p){return this.end.row==q&&this.end.column==p?1:this.start.row==q&&this.start.column==p?-1:this.compare(q,p); -},this.clipRows=function(q,p){if(this.end.row>p){var s={row:p+1,column:0};}if(this.start.row>p){var r={row:p+1,column:0};}if(this.start.rowthis.row){return;}if(v.start.row==this.row&&v.start.column>this.column){return;}var u=this.row,t=this.column;r.action==="insertText"?v.start.row===u&&v.start.column<=t?v.start.row===v.end.row?t+=v.end.column-v.start.column:(t-=v.start.column,u+=v.end.row-v.start.row):v.start.row!==v.end.row&&v.start.row=t?t=v.start.column:t=Math.max(0,t-(v.end.column-v.start.column)):v.start.row!==v.end.row&&v.start.row=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):s<0?(t.row=0,t.column=0):(t.row=s,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,r))),r<0&&(t.column=0);return t;};}).call(n.prototype);}),f("pilot/lang",["require","exports","module"],function(m,k,p){k.stringReverse=function(q){return q.split("").reverse().join("");},k.stringRepeat=function(r,q){return Array(q+1).join(r);};var o=/^\s\s*/,n=/\s\s*$/;k.stringTrimLeft=function(q){return q.replace(o,"");},k.stringTrimRight=function(q){return q.replace(n,"");},k.copyObject=function(r){var q={};for(var s in r){q[s]=r[s];}return q;},k.copyArray=function(r){var q=[];for(i=0,l=r.length;i=0||!t&&Z.call(aP,s)>=0){o=s.toUpperCase(),o==="WHEN"&&(m=this.tag(),Z.call(aB,m)>=0)?o="LEADING_WHEN":o==="FOR"?this.seenFor=!0:o==="UNLESS"?o="IF":Z.call(ah,o)>=0?o="UNARY":Z.call(an,o)>=0&&(o!=="INSTANCEOF"&&this.seenFor?(o="FOR"+o,this.seenFor=!1):(o="RELATION",this.value()==="!"&&(this.tokens.pop(),s="!"+s)));}Z.call(aD,s)>=0&&(t?(o="IDENTIFIER",s=new String(s),s.reserved=!0):Z.call(am,s)>=0&&this.identifierError(s)),t||(Z.call(aR,s)>=0&&(s=aQ[s]),o=function(){switch(s){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return o;}}()),this.token(o,s),u&&this.token(":",":");return r.length;},k.prototype.numberToken=function(){var n,m;if(!(n=aq.exec(this.chunk))){return 0;}m=n[0],this.token("NUMBER",m);return m.length;},k.prototype.stringToken=function(){var n,m;switch(this.chunk.charAt(0)){case"'":if(!(n=aj.exec(this.chunk))){return 0;}this.token("STRING",(m=n[0]).replace(aw,"\\\n"));break;case'"':if(!(m=this.balancedString(this.chunk,'"'))){return 0;}0=0)){return 0;}if(!(n=ao.exec(this.chunk))){return 0;}p=n[0],this.token("REGEX",p==="//"?"/(?:)/":p);return p.length;},k.prototype.heregexToken=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;y=B[0],A=B[1],z=B[2];if(0>A.indexOf("#{")){x=A.replace(aH,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(x||"(?:)")+"/"+z);return y.length;}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),v=[],r=this.interpolateString(A,{regex:!0});for(t=0,s=r.length;tthis.indent){if(q){this.indebt=o-this.indent,this.suppressNewlines();return m.length;}n=o-this.indent+this.outdebt,this.token("INDENT",n),this.indents.push(n),this.outdebt=this.indebt=0;}else{this.indebt=0,this.outdentToken(this.indent-o,q);}this.indent=o;return m.length;},k.prototype.outdentToken=function(n,m,q){var p,o;while(n>0){o=this.indents.length-1,this.indents[o]===void 0?n=0:this.indents[o]===this.outdebt?(n-=this.outdebt,this.outdebt=0):this.indents[o]=0)&&this.assignmentError();if((q=m[1])==="||"||q==="&&"){m[0]="COMPOUND_ASSIGN",m[1]+="=";return s.length;}}if(s===";"){t="TERMINATOR";}else{if(Z.call(ax,s)>=0){t="MATH";}else{if(Z.call(aN,s)>=0){t="COMPARE";}else{if(Z.call(aM,s)>=0){t="COMPOUND_ASSIGN";}else{if(Z.call(ah,s)>=0){t="UNARY";}else{if(Z.call(ak,s)>=0){t="SHIFT";}else{if(Z.call(az,s)>=0||s==="?"&&(m!=null?m.spaced:void 0)){t="LOGIC";}else{if(m&&!m.spaced){if(s==="("&&(p=m[0],Z.call(aT,p)>=0)){m[0]==="?"&&(m[0]="FUNC_EXIST"),t="CALL_START";}else{if(s==="["&&(o=m[0],Z.call(aF,o)>=0)){t="INDEX_START";switch(m[0]){case"?":m[0]="INDEX_SOAK";break;case"::":m[0]="INDEX_PROTO";}}}}}}}}}}}this.token(t,s);return s.length;},k.prototype.sanitizeHeredoc=function(n,m){var s,r,q,p,o;q=m.indent,r=m.herecomment;if(r){if(aK.test(n)){throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1)); -}if(n.indexOf("\n")<=0){return n;}}else{while(p=aJ.exec(n)){s=p[1];if(q===null||0<(o=s.length)&&oo;1<=o?s++:s--){switch(r=n.charAt(s)){case"\\":s++;continue;case m:p.pop();if(!p.length){return n.slice(0,s+1);}m=p[p.length-1];continue;}m!=="}"||r!=='"'&&r!=="'"?m==="}"&&r==="{"?p.push(m="}"):m==='"'&&q==="#"&&r==="{"&&p.push(m="}"):p.push(m=r),q=r;}throw new Error("missing "+p.pop()+", starting on line "+(this.line+1));},k.prototype.interpolateString=function(M,L){var K,J,I,H,G,F,E,D,C,B,A,z,y,x,w,v,u;L==null&&(L={}),J=L.heredoc,B=L.regex,z=[],C=0,I=-1;while(E=M.charAt(I+=1)){if(E==="\\"){I+=1;continue;}if(E!=="#"||M.charAt(I+1)!=="{"||!(K=this.balancedString(M.slice(I+1),"}"))){continue;}C1&&(D.unshift(["(","("]),D.push([")",")"])),z.push(["TOKENS",D]);}}I+=K.length,C=I+1;}I>C&&C1)&&this.token("(","(");for(I=0,x=z.length;I|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,ag=/^[^\n\S]+/,aO=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,aS=/^[-=]>/,av=/^(?:\n[^\n\S]*)+/,aj=/^'[^\\']*(?:\\.[^\\']*)*'/,aE=/^`[^\\`]*(?:\\.[^\\`]*)*`/,ao=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,aI=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,aH=/\s+(?:#.*)?/g,aw=/\n/g,aJ=/\n+([^\n\S]*)/g,aK=/\*\//,aV=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,aA=/^\s*(?:,|\??\.(?![.\d])|::)/,ai=/\s+$/,ar=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,aM=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],ah=["!","~","NEW","TYPEOF","DELETE","DO"],az=["&&","||","&","|","^"],ak=["<<",">>",">>>"],aN=["==","!=","<",">","<=",">="],ax=["*","/","%"],an=["IN","OF","INSTANCEOF"],aU=["TRUE","FALSE","NULL","UNDEFINED"],au=["NUMBER","REGEX","BOOL","++","--","]"],at=au.concat(")","}","THIS","IDENTIFIER","STRING"),aT=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],aF=aT.concat("NUMBER","BOOL"),aB=["INDENT","OUTDENT","TERMINATOR"];}),f("ace/mode/coffee/rewriter",["require","exports","module"],function(T,S,R){var Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,z,y=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k=0){s+=1;}else{if(o=r[0],y.call(O,o)>=0){s-=1;}}n+=1;}return n-1;},k.prototype.removeLeadingNewlines=function(){var n,m,p,o;o=this.tokens; -for(n=0,p=o.length;n=0)){p.splice(m,1);return 0;}return 1;});},k.prototype.closeOpenCalls=function(){var n,m;m=function(p,o){var q;return(q=p[0])===")"||q==="CALL_END"||p[0]==="OUTDENT"&&this.tag(o-1)===")";},n=function(p,o){return this.tokens[p[0]==="OUTDENT"?o-1:o][0]="CALL_END";};return this.scanTokens(function(p,o){p[0]==="CALL_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.closeOpenIndexes=function(){var n,m;m=function(p,o){var q;return(q=p[0])==="]"||q==="INDEX_END";},n=function(p,o){return p[0]="INDEX_END";};return this.scanTokens(function(p,o){p[0]==="INDEX_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.addImplicitBraces=function(){var n,m,q,p,o;q=[],p=null,o=0,m=function(s,r){var V,U,w,v,u,t;u=this.tokens.slice(r+1,r+3+1||9000000000),V=u[0],v=u[1],w=u[2];if("HERECOMMENT"===(V!=null?V[0]:void 0)){return !1;}U=s[0];return(U==="TERMINATOR"||U==="OUTDENT")&&(v!=null?v[0]:void 0)!==":"&&((V!=null?V[0]:void 0)!=="@"||(w!=null?w[0]:void 0)!==":")||U===","&&V&&(t=V[0])!=="IDENTIFIER"&&t!=="NUMBER"&&t!=="STRING"&&t!=="@"&&t!=="TERMINATOR"&&t!=="OUTDENT";},n=function(s,r){var t;t=["}","}",s[2]],t.generated=!0;return this.tokens.splice(r,0,t);};return this.scanTokens(function(X,W,V){var U,w,v,u,t,s,r;if(s=v=X[0],y.call(N,s)>=0){q.push([v==="INDENT"&&this.tag(W-1)==="{"?"{":v,W]);return 1;}if(y.call(O,v)>=0){p=q.pop();return 1;}if(v!==":"||(U=this.tag(W-2))!==":"&&((r=q[q.length-1])!=null?r[0]:void 0)==="{"){return 1;}q.push(["{"]),w=U==="@"?W-2:W-1;while(this.tag(w-2)==="HERECOMMENT"){w-=2;}t=new String("{"),t.generated=!0,u=["{",t,X[2]],u.generated=!0,V.splice(w,0,u),this.detectEnd(W+2,m,n);return 2;});},k.prototype.addImplicitParentheses=function(){var n,m;m=!1,n=function(p,o){var q;q=p[0]==="OUTDENT"?o+1:o;return this.tokens.splice(q,0,["CALL_END",")",p[2]]);};return this.scanTokens(function(ab,aa,Z){var Y,X,W,V,U,w,v,ae,ad,ac;v=ab[0];if(v==="CLASS"||v==="IF"){m=!0;}ae=Z.slice(aa-1,aa+1+1||9000000000),V=ae[0],X=ae[1],W=ae[2],Y=!m&&v==="INDENT"&&W&&W.generated&&W[0]==="{"&&V&&(ad=V[0],y.call(J,ad)>=0),w=!1,U=!1,y.call(G,v)>=0&&(m=!1),V&&!V.spaced&&v==="?"&&(ab.call=!0);if(ab.fromThen){return 1;}if(!(Y||(V!=null?V.spaced:void 0)&&(V.call||(ac=V[0],y.call(J,ac)>=0))&&(y.call(L,v)>=0||!ab.spaced&&!ab.newLine&&y.call(I,v)>=0))){return 1;}Z.splice(aa,0,["CALL_START","(",ab[2]]),this.detectEnd(aa+1,function(p,o){var r,q;v=p[0];if(!w&&p.fromThen){return !0;}if(v==="IF"||v==="ELSE"||v==="CATCH"||v==="->"||v==="=>"){w=!0;}if(v==="IF"||v==="ELSE"||v==="SWITCH"||v==="TRY"){U=!0;}return v!=="."&&v!=="?."&&v!=="::"||this.tag(o-1)!=="OUTDENT"?!p.generated&&this.tag(o-1)!==","&&(y.call(K,v)>=0||v==="INDENT"&&!U)&&(v!=="INDENT"||this.tag(o-2)!=="CLASS"&&(q=this.tag(o-1),y.call(M,q)<0)&&(!(r=this.tokens[o+1])||!r.generated||r[0]!=="{")):!0;},n),V[0]==="?"&&(V[0]="FUNC_EXIST");return 2;});},k.prototype.addImplicitIndentation=function(){return this.scanTokens(function(w,v,u){var t,s,r,q,p,o,n,m;o=w[0];if(o==="TERMINATOR"&&this.tag(v+1)==="THEN"){u.splice(v,1);return 0;}if(o==="ELSE"&&this.tag(v-1)!=="OUTDENT"){u.splice.apply(u,[v,0].concat(x.call(this.indentation(w))));return 2;}if(o!=="CATCH"||(n=this.tag(v+2))!=="OUTDENT"&&n!=="TERMINATOR"&&n!=="FINALLY"){if(y.call(E,o)>=0&&this.tag(v+1)!=="INDENT"&&(o!=="ELSE"||this.tag(v+1)!=="IF")){p=o,m=this.indentation(w),r=m[0],q=m[1],p==="THEN"&&(r.fromThen=!0),r.generated=q.generated=!0,u.splice(v+1,0,r),s=function(V,U){var W;return V[1]!==";"&&(W=V[0],y.call(F,W)>=0)&&(V[0]!=="ELSE"||p==="IF"||p==="THEN");},t=function(V,U){return this.tokens.splice(this.tag(U-1)===","?U-1:U,0,q);},this.detectEnd(v+2,s,t),o==="THEN"&&u.splice(v,1);return 1;}return 1;}u.splice.apply(u,[v+2,0].concat(x.call(this.indentation(w))));return 4;});},k.prototype.tagPostfixConditionals=function(){var m;m=function(o,n){var p;return(p=o[0])==="TERMINATOR"||p==="INDENT";};return this.scanTokens(function(n,p){var o;if(n[0]!=="IF"){return 1;}o=n,this.detectEnd(p+1,m,function(r,q){if(r[0]!=="INDENT"){return o[0]="POST_"+o[0];}});return 1;});},k.prototype.ensureBalance=function(Y){var X,W,V,U,w,v,u,t,s,r,q,p,o;V={},w={},p=this.tokens;for(t=0,r=p.length;t0){throw Error("unclosed "+U+" on line "+(w[U]+1));}}return this;},k.prototype.rewriteClosingParens=function(){var n,m,o;o=[],n={};for(m in H){n[m]=0;}return this.scanTokens(function(V,U,w){var v,u,t,s,r,q,p;if(p=r=V[0],y.call(N,p)>=0){o.push(V);return 1;}if(y.call(O,r)<0){return 1;}if(n[v=H[r]]>0){n[v]-=1,w.splice(U,1);return 0;}u=o.pop(),t=u[0],s=H[t];if(r===s){return 1;}n[t]+=1,q=[s,t==="INDENT"?u[1]:s],this.tag(U+2)===t?(w.splice(U+3,0,q),o.push(u)):w.splice(U,0,q);return 1;});},k.prototype.indentation=function(m){return[["INDENT",2,m[2]],["OUTDENT",2,m[2]]];},k.prototype.tag=function(n){var m;return(m=this.tokens[n])!=null?m[0]:void 0;};return k;}(),Q=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],H={},N=[],O=[];for(B=0,A=Q.length;B","=>","[","(","{","--","++"],I=["+","-"],M=["->","=>","{","[",","],K=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],E=["ELSE","->","=>","TRY","FINALLY","THEN"],F=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],G=["TERMINATOR","INDENT","OUTDENT"]; +(function(){k.implement(this,m),this.callback=function(p,o){postMessage({type:"call",id:o,data:p});},this.emit=function(p,o){postMessage({type:"event",name:p,data:o});};}).call(n.prototype);return new n;}function j(k){b.tlns=k;}var d={log:function(k){postMessage({type:"log",data:k});}},h={console:d},b=function(m){var k=b.modules[m];if(k){k.initialized||(k.exports=k.factory().exports,k.initialized=!0);return k.exports;}var n=m.split("/");n[0]=b.tlns[n[0]]||n[0],path=n.join("/")+".js",b.id=m,importScripts(path);return b(m);};b.modules={},b.tlns={};var f=function(m,k,n){arguments.length==2?n=k:arguments.length==1&&(n=m,m=b.id);m.indexOf("text/")!==0&&(b.modules[m]={factory:function(){var p={exports:{}},o=n(b,p.exports,p);o&&(p.exports=o);return p;}});},c,e;onmessage=function(m){var k=m.data;if(k.command){c[k.command].apply(c,k.args);}else{if(k.init){j(k.tlns),b("pilot/fixoldbrowsers"),e=g();var n=b(k.module)[k.classname];c=new n(e);}else{k.event&&e&&e._dispatchEvent(k.event,k.data);}}},f("pilot/fixoldbrowsers",["require","exports","module","pilot/regexp"],function(X,V,U){X("pilot/regexp");if(!Function.prototype.bind){var T=Array.prototype.slice;Function.prototype.bind=function(m){var k=this;if(typeof k.apply!="function"||typeof k.call!="function"){return new TypeError;}var p=T.call(arguments),o=function n(){if(this instanceof n){var q=Object.create(k.prototype);k.apply(q,p.concat(T.call(arguments)));return q;}return k.call.apply(k,p.concat(T.call(arguments)));};o.length=typeof k=="function"?Math.max(k.length-p.length,0):0;return o;};}var S=Function.prototype.call,R=Array.prototype,Q=Object.prototype,P=S.bind(Q.hasOwnProperty),O,N,M,L,K;if(K=P(Q,"__defineGetter__")){O=S.bind(Q.__defineGetter__),N=S.bind(Q.__defineSetter__),M=S.bind(Q.__lookupGetter__),L=S.bind(Q.__lookupSetter__);}Array.isArray||(Array.isArray=function(k){return Object.prototype.toString.call(k)==="[object Array]";}),Array.prototype.forEach||(Array.prototype.forEach=function(m,k){var o=+this.length;for(var n=0;n=2){var n=arguments[1];}else{do{if(o in this){n=this[o++];break;}if(++o>=k){throw new TypeError;}}while(!0);}for(;o=2){var n=arguments[1];}else{do{if(o in this){n=this[o--];break;}if(--o<0){throw new TypeError;}}while(!0);}for(;o>=0;o--){o in this&&(n=m.call(null,n,this[o],o,this));}return n;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(m){var k=this.length;if(!k){return -1;}var n=arguments[1]||0;if(n>=k){return -1;}n<0&&(n+=k);for(;n=0;n--){if(!P(this,n)){continue;}if(m===this[n]){return n;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||k.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var J="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(m,k){if(typeof m!="object"&&typeof m!="function"||m===null){throw new TypeError(J+m);}if(!P(m,k)){return undefined;}var q,p,o;q={enumerable:!0,configurable:!0};if(K){var n=m.__proto__;m.__proto__=Q;var p=M(m,k),o=L(m,k);m.__proto__=n;if(p||o){p&&(descriptor.get=p),o&&(descriptor.set=o);return descriptor;}}descriptor.value=m[k];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k);}),Object.create||(Object.create=function(m,k){var o;if(m===null){o={"__proto__":null};}else{if(typeof m!="object"){throw new TypeError("typeof prototype["+typeof m+"] != 'object'");}var n=function(){};n.prototype=m,o=new n,o.__proto__=m;}typeof k!="undefined"&&Object.defineProperties(o,k);return o;});if(!Object.defineProperty){var I="Property description must be an object: ",H="Object.defineProperty called on non-object: ",G="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(m,k,o){if(typeof m!="object"&&typeof m!="function"){throw new TypeError(H+m);}if(typeof m!="object"||m===null){throw new TypeError(I+o);}if(P(o,"value")){if(K&&(M(m,k)||L(m,k))){var n=m.__proto__;m.__proto__=Q,delete m[k],m[k]=o.value,m.prototype;}else{m[k]=o.value;}}else{if(!K){throw new TypeError(G);}P(o,"get")&&O(m,k,o.get),P(o,"set")&&N(m,k,o.set);}return m;};}Object.defineProperties||(Object.defineProperties=function(m,k){for(var n in k){P(k,n)&&Object.defineProperty(m,n,k[n]);}return m;}),Object.seal||(Object.seal=function(k){return k;}),Object.freeze||(Object.freeze=function(k){return k;});try{Object.freeze(function(){});}catch(F){Object.freeze=function(m){return function k(n){return typeof n=="function"?n:m(n);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(k){return k; +}),Object.isSealed||(Object.isSealed=function(k){return !1;}),Object.isFrozen||(Object.isFrozen=function(k){return !1;}),Object.isExtensible||(Object.isExtensible=function(k){return !0;});if(!Object.keys){var E=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=D.length;for(var B in {toString:null}){E=!1;}Object.keys=function y(n){if(typeof n!="object"&&typeof n!="function"||n===null){throw new TypeError("Object.keys called on a non-object");}var m=[];for(var k in n){P(n,k)&&m.push(k);}if(E){for(var q=0,p=C;q=7?new m(W,x,w,v,u,t,s):r>=6?new m(W,x,w,v,u,t):r>=5?new m(W,x,w,v,u):r>=4?new m(W,x,w,v):r>=3?new m(W,x,w):r>=2?new m(W,x):r>=1?new m(W):new m;q.constructor=k;return q;}return m.apply(this,arguments);},p=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var o in m){k[o]=m[o];}k.now=m.now,k.UTC=m.UTC,k.prototype=m.prototype,k.prototype.constructor=k,k.parse=function n(q){var u=p.exec(q);if(u){u.shift();var t=u[0]===undefined;for(var s=0;s<10;s++){if(s===7){continue;}u[s]=+(u[s]||(s<3?1:0)),s===1&&u[s]--;}if(t){return((u[3]*60+u[4])*60+u[5])*1000+u[6];}var r=(u[8]*60+u[9])*60*1000;u[6]==="-"&&(r=-r);return m.UTC.apply(this,u.slice(0,7))+r;}return m.parse.apply(this,arguments);};return k;}(Date));if(!String.prototype.trim){var A=/^\s\s*/,z=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(A,"").replace(z,"");};}}),f("pilot/regexp",["require","exports","module"],function(m,k,s){function n(u,t,w){if(Array.prototype.indexOf){return u.indexOf(t,w);}for(var v=w||0;v1&&n(t,"")>-1&&(w=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(u.slice(t.index),w,function(){for(var y=1;yt.index&&this.lastIndex--;}return t;},p||(RegExp.prototype.test=function(u){var t=r.exec.call(this,u);t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--;return !!t;});}),f("pilot/event_emitter",["require","exports","module"],function(m,k,o){var n={};n._emit=n._dispatchEvent=function(q,p){this._eventRegistry=this._eventRegistry||{};var s=this._eventRegistry[q];if(!!s&&!!s.length){var p=p||{};p.type=q;for(var r=0;r=t&&(u.row=Math.max(0,t-1),u.column=this.getLine(t-1).length);return u;},this.insert=function(u,t){if(t.length==0){return u;}u=this.$clipPosition(u),this.getLength()<=1&&this.$detectNewLine(t);var x=this.$split(t),w=x.splice(0,1)[0],v=x.length==0?null:x.splice(x.length-1,1)[0];u=this.insertInLine(u,w),v!==null&&(u=this.insertNewLine(u),u=this.insertLines(u.row,x),u=this.insertInLine(u,v||""));return u;},this.insertLines=function(u,t){if(t.length==0){return{row:u,column:0};}var x=[u,0];x.push.apply(x,t),this.$lines.splice.apply(this.$lines,x);var w=new p(u,0,u+t.length,0),v={action:"insertLines",range:w,lines:t};this._dispatchEvent("change",{data:v});return w.end;},this.insertNewLine=function(u){u=this.$clipPosition(u);var t=this.$lines[u.row]||"";this.$lines[u.row]=t.substring(0,u.column),this.$lines.splice(u.row+1,0,t.substring(u.column,t.length));var w={row:u.row+1,column:0},v={action:"insertText",range:p.fromPoints(u,w),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});return w;},this.insertInLine=function(u,t){if(t.length==0){return u;}var x=this.$lines[u.row]||"";this.$lines[u.row]=x.substring(0,u.column)+t+x.substring(u.column);var w={row:u.row,column:u.column+t.length},v={action:"insertText",range:p.fromPoints(u,w),text:t};this._dispatchEvent("change",{data:v});return w;},this.remove=function(u){u.start=this.$clipPosition(u.start),u.end=this.$clipPosition(u.end);if(u.isEmpty()){return u.start;}var t=u.start.row,x=u.end.row;if(u.isMultiLine()){var w=u.start.column==0?t:t+1,v=x-1;u.end.column>0&&this.removeInLine(x,0,u.end.column),v>=w&&this.removeLines(w,v),w!=t&&(this.removeInLine(t,u.start.column,this.getLine(t).length),this.removeNewLine(u.start.row));}else{this.removeInLine(t,u.start.column,u.end.column);}return u.start;},this.removeInLine=function(u,t,A){if(t!=A){var z=new p(u,t,u,A),y=this.getLine(u),x=y.substring(t,A),w=y.substring(0,t)+y.substring(A,y.length);this.$lines.splice(u,1,w);var v={action:"removeText",range:z,text:x};this._dispatchEvent("change",{data:v});return z.start;}},this.removeLines=function(u,t){var x=new p(u,0,t+1,0),w=this.$lines.splice(u,t-u+1),v={action:"removeLines",range:x,nl:this.getNewLineCharacter(),lines:w};this._dispatchEvent("change",{data:v});return w;},this.removeNewLine=function(u){var t=this.getLine(u),y=this.getLine(u+1),x=new p(u,t.length,u+1,0),w=t+y;this.$lines.splice(u,2,w);var v={action:"removeText",range:x,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});},this.replace=function(u,t){if(t.length==0&&u.isEmpty()){return u.start;}if(t==this.getTextRange(u)){return u.end;}this.remove(u);if(t){var v=this.insert(u.start,t);}else{v=u.start;}return v;},this.applyDeltas=function(u){for(var t=0;t=0;t--){var w=u[t],v=p.fromPoints(w.range.start,w.range.end);w.action=="insertLines"?this.removeLines(v.start.row,v.end.row-1):w.action=="insertText"?this.remove(v):w.action=="removeLines"?this.insertLines(v.start.row,w.lines):w.action=="removeText"&&this.insert(v.start,w.text);}};}).call(n.prototype),k.Document=n;}),f("ace/range",["require","exports","module"],function(m,k,o){var n=function(q,p,s,r){this.start={row:q,column:p},this.end={row:s,column:r};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(q,p){return this.compare(q,p)==0;},this.compareRange=function(q){var p,s=q.end,r=q.start;p=this.compare(s.row,s.column);if(p==1){p=this.compare(r.row,r.column);return p==1?2:p==0?1:0;}if(p==-1){return -2;}p=this.compare(r.row,r.column);return p==-1?-1:p==1?42:0;},this.containsRange=function(q){var p=this.compareRange(q);return p==-1||p==0||p==1;},this.isEnd=function(q,p){return this.end.row==q&&this.end.column==p;},this.isStart=function(q,p){return this.start.row==q&&this.start.column==p;},this.setStart=function(q,p){typeof q=="object"?(this.start.column=q.column,this.start.row=q.row):(this.start.row=q,this.start.column=p);},this.setEnd=function(q,p){typeof q=="object"?(this.end.column=q.column,this.end.row=q.row):(this.end.row=q,this.end.column=p); +},this.inside=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)||this.isStart(q,p)?!1:!0;}return !1;},this.insideStart=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)?!1:!0;}return !1;},this.insideEnd=function(q,p){if(this.compare(q,p)==0){return this.isStart(q,p)?!1:!0;}return !1;},this.compare=function(q,p){if(!this.isMultiLine()&&q===this.start.row){return pthis.end.column?1:0;}return qthis.end.row?1:this.start.row===q?p>=this.start.column?0:-1:this.end.row===q?p<=this.end.column?0:1:0;},this.compareStart=function(q,p){return this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.compareEnd=function(q,p){return this.end.row==q&&this.end.column==p?1:this.compare(q,p);},this.compareInside=function(q,p){return this.end.row==q&&this.end.column==p?1:this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.clipRows=function(q,p){if(this.end.row>p){var s={row:p+1,column:0};}if(this.start.row>p){var r={row:p+1,column:0};}if(this.start.rowthis.row){return;}if(v.start.row==this.row&&v.start.column>this.column){return;}var u=this.row,t=this.column;r.action==="insertText"?v.start.row===u&&v.start.column<=t?v.start.row===v.end.row?t+=v.end.column-v.start.column:(t-=v.start.column,u+=v.end.row-v.start.row):v.start.row!==v.end.row&&v.start.row=t?t=v.start.column:t=Math.max(0,t-(v.end.column-v.start.column)):v.start.row!==v.end.row&&v.start.row=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):s<0?(t.row=0,t.column=0):(t.row=s,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,r))),r<0&&(t.column=0);return t;};}).call(n.prototype);}),f("pilot/lang",["require","exports","module"],function(m,k,p){k.stringReverse=function(q){return q.split("").reverse().join("");},k.stringRepeat=function(r,q){return Array(q+1).join(r);};var o=/^\s\s*/,n=/\s\s*$/;k.stringTrimLeft=function(q){return q.replace(o,"");},k.stringTrimRight=function(q){return q.replace(n,"");},k.copyObject=function(r){var q={};for(var s in r){q[s]=r[s];}return q;},k.copyArray=function(r){var q=[];for(i=0,l=r.length;i=0||!t&&Z.call(aP,s)>=0){o=s.toUpperCase(),o==="WHEN"&&(m=this.tag(),Z.call(aB,m)>=0)?o="LEADING_WHEN":o==="FOR"?this.seenFor=!0:o==="UNLESS"?o="IF":Z.call(ah,o)>=0?o="UNARY":Z.call(an,o)>=0&&(o!=="INSTANCEOF"&&this.seenFor?(o="FOR"+o,this.seenFor=!1):(o="RELATION",this.value()==="!"&&(this.tokens.pop(),s="!"+s)));}Z.call(aD,s)>=0&&(t?(o="IDENTIFIER",s=new String(s),s.reserved=!0):Z.call(am,s)>=0&&this.identifierError(s)),t||(Z.call(aR,s)>=0&&(s=aQ[s]),o=function(){switch(s){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return o;}}()),this.token(o,s),u&&this.token(":",":");return r.length;},k.prototype.numberToken=function(){var n,m;if(!(n=aq.exec(this.chunk))){return 0;}m=n[0],this.token("NUMBER",m);return m.length;},k.prototype.stringToken=function(){var n,m;switch(this.chunk.charAt(0)){case"'":if(!(n=aj.exec(this.chunk))){return 0;}this.token("STRING",(m=n[0]).replace(aw,"\\\n"));break;case'"':if(!(m=this.balancedString(this.chunk,'"'))){return 0;}0=0)){return 0;}if(!(n=ao.exec(this.chunk))){return 0;}p=n[0],this.token("REGEX",p==="//"?"/(?:)/":p);return p.length;},k.prototype.heregexToken=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;y=B[0],A=B[1],z=B[2];if(0>A.indexOf("#{")){x=A.replace(aH,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(x||"(?:)")+"/"+z);return y.length;}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),v=[],r=this.interpolateString(A,{regex:!0});for(t=0,s=r.length;tthis.indent){if(q){this.indebt=o-this.indent,this.suppressNewlines();return m.length;}n=o-this.indent+this.outdebt,this.token("INDENT",n),this.indents.push(n),this.outdebt=this.indebt=0;}else{this.indebt=0,this.outdentToken(this.indent-o,q);}this.indent=o;return m.length;},k.prototype.outdentToken=function(n,m,q){var p,o;while(n>0){o=this.indents.length-1,this.indents[o]===void 0?n=0:this.indents[o]===this.outdebt?(n-=this.outdebt,this.outdebt=0):this.indents[o]=0)&&this.assignmentError();if((q=m[1])==="||"||q==="&&"){m[0]="COMPOUND_ASSIGN",m[1]+="=";return s.length;}}if(s===";"){t="TERMINATOR";}else{if(Z.call(ax,s)>=0){t="MATH"; +}else{if(Z.call(aN,s)>=0){t="COMPARE";}else{if(Z.call(aM,s)>=0){t="COMPOUND_ASSIGN";}else{if(Z.call(ah,s)>=0){t="UNARY";}else{if(Z.call(ak,s)>=0){t="SHIFT";}else{if(Z.call(az,s)>=0||s==="?"&&(m!=null?m.spaced:void 0)){t="LOGIC";}else{if(m&&!m.spaced){if(s==="("&&(p=m[0],Z.call(aT,p)>=0)){m[0]==="?"&&(m[0]="FUNC_EXIST"),t="CALL_START";}else{if(s==="["&&(o=m[0],Z.call(aF,o)>=0)){t="INDEX_START";switch(m[0]){case"?":m[0]="INDEX_SOAK";break;case"::":m[0]="INDEX_PROTO";}}}}}}}}}}}this.token(t,s);return s.length;},k.prototype.sanitizeHeredoc=function(n,m){var s,r,q,p,o;q=m.indent,r=m.herecomment;if(r){if(aK.test(n)){throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));}if(n.indexOf("\n")<=0){return n;}}else{while(p=aJ.exec(n)){s=p[1];if(q===null||0<(o=s.length)&&oo;1<=o?s++:s--){switch(r=n.charAt(s)){case"\\":s++;continue;case m:p.pop();if(!p.length){return n.slice(0,s+1);}m=p[p.length-1];continue;}m!=="}"||r!=='"'&&r!=="'"?m==="}"&&r==="{"?p.push(m="}"):m==='"'&&q==="#"&&r==="{"&&p.push(m="}"):p.push(m=r),q=r;}throw new Error("missing "+p.pop()+", starting on line "+(this.line+1));},k.prototype.interpolateString=function(M,L){var K,J,I,H,G,F,E,D,C,B,A,z,y,x,w,v,u;L==null&&(L={}),J=L.heredoc,B=L.regex,z=[],C=0,I=-1;while(E=M.charAt(I+=1)){if(E==="\\"){I+=1;continue;}if(E!=="#"||M.charAt(I+1)!=="{"||!(K=this.balancedString(M.slice(I+1),"}"))){continue;}C1&&(D.unshift(["(","("]),D.push([")",")"])),z.push(["TOKENS",D]);}}I+=K.length,C=I+1;}I>C&&C1)&&this.token("(","(");for(I=0,x=z.length;I|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,ag=/^[^\n\S]+/,aO=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,aS=/^[-=]>/,av=/^(?:\n[^\n\S]*)+/,aj=/^'[^\\']*(?:\\.[^\\']*)*'/,aE=/^`[^\\`]*(?:\\.[^\\`]*)*`/,ao=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,aI=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,aH=/\s+(?:#.*)?/g,aw=/\n/g,aJ=/\n+([^\n\S]*)/g,aK=/\*\//,aV=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,aA=/^\s*(?:,|\??\.(?![.\d])|::)/,ai=/\s+$/,ar=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,aM=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],ah=["!","~","NEW","TYPEOF","DELETE","DO"],az=["&&","||","&","|","^"],ak=["<<",">>",">>>"],aN=["==","!=","<",">","<=",">="],ax=["*","/","%"],an=["IN","OF","INSTANCEOF"],aU=["TRUE","FALSE","NULL","UNDEFINED"],au=["NUMBER","REGEX","BOOL","++","--","]"],at=au.concat(")","}","THIS","IDENTIFIER","STRING"),aT=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],aF=aT.concat("NUMBER","BOOL"),aB=["INDENT","OUTDENT","TERMINATOR"];}),f("ace/mode/coffee/rewriter",["require","exports","module"],function(T,S,R){var Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,z,y=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k=0){s+=1;}else{if(o=r[0],y.call(O,o)>=0){s-=1;}}n+=1;}return n-1;},k.prototype.removeLeadingNewlines=function(){var n,m,p,o;o=this.tokens;for(n=0,p=o.length;n=0)){p.splice(m,1);return 0;}return 1;});},k.prototype.closeOpenCalls=function(){var n,m;m=function(p,o){var q;return(q=p[0])===")"||q==="CALL_END"||p[0]==="OUTDENT"&&this.tag(o-1)===")";},n=function(p,o){return this.tokens[p[0]==="OUTDENT"?o-1:o][0]="CALL_END";};return this.scanTokens(function(p,o){p[0]==="CALL_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.closeOpenIndexes=function(){var n,m;m=function(p,o){var q;return(q=p[0])==="]"||q==="INDEX_END";},n=function(p,o){return p[0]="INDEX_END";};return this.scanTokens(function(p,o){p[0]==="INDEX_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.addImplicitBraces=function(){var n,m,q,p,o;q=[],p=null,o=0,m=function(s,r){var V,U,w,v,u,t;u=this.tokens.slice(r+1,r+3+1||9000000000),V=u[0],v=u[1],w=u[2];if("HERECOMMENT"===(V!=null?V[0]:void 0)){return !1;}U=s[0];return(U==="TERMINATOR"||U==="OUTDENT")&&(v!=null?v[0]:void 0)!==":"&&((V!=null?V[0]:void 0)!=="@"||(w!=null?w[0]:void 0)!==":")||U===","&&V&&(t=V[0])!=="IDENTIFIER"&&t!=="NUMBER"&&t!=="STRING"&&t!=="@"&&t!=="TERMINATOR"&&t!=="OUTDENT";},n=function(s,r){var t;t=["}","}",s[2]],t.generated=!0;return this.tokens.splice(r,0,t);};return this.scanTokens(function(X,W,V){var U,w,v,u,t,s,r;if(s=v=X[0],y.call(N,s)>=0){q.push([v==="INDENT"&&this.tag(W-1)==="{"?"{":v,W]);return 1;}if(y.call(O,v)>=0){p=q.pop();return 1;}if(v!==":"||(U=this.tag(W-2))!==":"&&((r=q[q.length-1])!=null?r[0]:void 0)==="{"){return 1;}q.push(["{"]),w=U==="@"?W-2:W-1;while(this.tag(w-2)==="HERECOMMENT"){w-=2;}t=new String("{"),t.generated=!0,u=["{",t,X[2]],u.generated=!0,V.splice(w,0,u),this.detectEnd(W+2,m,n);return 2;});},k.prototype.addImplicitParentheses=function(){var n,m;m=!1,n=function(p,o){var q;q=p[0]==="OUTDENT"?o+1:o;return this.tokens.splice(q,0,["CALL_END",")",p[2]]);};return this.scanTokens(function(ab,aa,Z){var Y,X,W,V,U,w,v,ae,ad,ac;v=ab[0];if(v==="CLASS"||v==="IF"){m=!0;}ae=Z.slice(aa-1,aa+1+1||9000000000),V=ae[0],X=ae[1],W=ae[2],Y=!m&&v==="INDENT"&&W&&W.generated&&W[0]==="{"&&V&&(ad=V[0],y.call(J,ad)>=0),w=!1,U=!1,y.call(G,v)>=0&&(m=!1),V&&!V.spaced&&v==="?"&&(ab.call=!0);if(ab.fromThen){return 1;}if(!(Y||(V!=null?V.spaced:void 0)&&(V.call||(ac=V[0],y.call(J,ac)>=0))&&(y.call(L,v)>=0||!ab.spaced&&!ab.newLine&&y.call(I,v)>=0))){return 1;}Z.splice(aa,0,["CALL_START","(",ab[2]]),this.detectEnd(aa+1,function(p,o){var r,q;v=p[0];if(!w&&p.fromThen){return !0;}if(v==="IF"||v==="ELSE"||v==="CATCH"||v==="->"||v==="=>"){w=!0;}if(v==="IF"||v==="ELSE"||v==="SWITCH"||v==="TRY"){U=!0;}return v!=="."&&v!=="?."&&v!=="::"||this.tag(o-1)!=="OUTDENT"?!p.generated&&this.tag(o-1)!==","&&(y.call(K,v)>=0||v==="INDENT"&&!U)&&(v!=="INDENT"||this.tag(o-2)!=="CLASS"&&(q=this.tag(o-1),y.call(M,q)<0)&&(!(r=this.tokens[o+1])||!r.generated||r[0]!=="{")):!0;},n),V[0]==="?"&&(V[0]="FUNC_EXIST");return 2;});},k.prototype.addImplicitIndentation=function(){return this.scanTokens(function(w,v,u){var t,s,r,q,p,o,n,m;o=w[0];if(o==="TERMINATOR"&&this.tag(v+1)==="THEN"){u.splice(v,1);return 0;}if(o==="ELSE"&&this.tag(v-1)!=="OUTDENT"){u.splice.apply(u,[v,0].concat(x.call(this.indentation(w))));return 2;}if(o!=="CATCH"||(n=this.tag(v+2))!=="OUTDENT"&&n!=="TERMINATOR"&&n!=="FINALLY"){if(y.call(E,o)>=0&&this.tag(v+1)!=="INDENT"&&(o!=="ELSE"||this.tag(v+1)!=="IF")){p=o,m=this.indentation(w),r=m[0],q=m[1],p==="THEN"&&(r.fromThen=!0),r.generated=q.generated=!0,u.splice(v+1,0,r),s=function(V,U){var W;return V[1]!==";"&&(W=V[0],y.call(F,W)>=0)&&(V[0]!=="ELSE"||p==="IF"||p==="THEN");},t=function(V,U){return this.tokens.splice(this.tag(U-1)===","?U-1:U,0,q);},this.detectEnd(v+2,s,t),o==="THEN"&&u.splice(v,1);return 1;}return 1;}u.splice.apply(u,[v+2,0].concat(x.call(this.indentation(w))));return 4;});},k.prototype.tagPostfixConditionals=function(){var m;m=function(o,n){var p;return(p=o[0])==="TERMINATOR"||p==="INDENT";};return this.scanTokens(function(n,p){var o;if(n[0]!=="IF"){return 1;}o=n,this.detectEnd(p+1,m,function(r,q){if(r[0]!=="INDENT"){return o[0]="POST_"+o[0];}});return 1;});},k.prototype.ensureBalance=function(Y){var X,W,V,U,w,v,u,t,s,r,q,p,o;V={},w={},p=this.tokens;for(t=0,r=p.length;t0){throw Error("unclosed "+U+" on line "+(w[U]+1));}}return this;},k.prototype.rewriteClosingParens=function(){var n,m,o;o=[],n={};for(m in H){n[m]=0;}return this.scanTokens(function(V,U,w){var v,u,t,s,r,q,p;if(p=r=V[0],y.call(N,p)>=0){o.push(V);return 1;}if(y.call(O,r)<0){return 1;}if(n[v=H[r]]>0){n[v]-=1,w.splice(U,1);return 0;}u=o.pop(),t=u[0],s=H[t];if(r===s){return 1;}n[t]+=1,q=[s,t==="INDENT"?u[1]:s],this.tag(U+2)===t?(w.splice(U+3,0,q),o.push(u)):w.splice(U,0,q);return 1;});},k.prototype.indentation=function(m){return[["INDENT",2,m[2]],["OUTDENT",2,m[2]]];},k.prototype.tag=function(n){var m;return(m=this.tokens[n])!=null?m[0]:void 0;};return k;}(),Q=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],H={},N=[],O=[];for(B=0,A=Q.length;B","=>","[","(","{","--","++"],I=["+","-"],M=["->","=>","{","[",","],K=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],E=["ELSE","->","=>","TRY","FINALLY","THEN"],F=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],G=["TERMINATOR","INDENT","OUTDENT"]; }),f("ace/mode/coffee/helpers",["require","exports","module"],function(m,k,p){var o,n;k.starts=function(r,q,s){return q===r.substr(s,q.length);},k.ends=function(r,q,t){var s;s=q.length;return q===r.substr(r.length-s-(t||0),s);},k.compact=function(r){var q,u,t,s;s=[];for(u=0,t=r.length;u":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function o(s,r,y,x,w,v,u){var t=v.length-1;switch(w){case 1:return this.$=new x.Block;case 2:return this.$=v[t];case 3:return this.$=v[t-1];case 4:this.$=x.Block.wrap([v[t]]);break;case 5:this.$=v[t-2].push(v[t]);break;case 6:this.$=v[t-1];break;case 7:this.$=v[t];break;case 8:this.$=v[t];break;case 9:this.$=v[t];break;case 10:this.$=v[t];break;case 11:this.$=v[t];break;case 12:this.$=new x.Literal(v[t]);break;case 13:this.$=v[t];break;case 14:this.$=v[t];break;case 15:this.$=v[t];break;case 16:this.$=v[t];break;case 17:this.$=v[t];break;case 18:this.$=v[t];break;case 19:this.$=v[t];break;case 20:this.$=v[t];break;case 21:this.$=v[t];break;case 22:this.$=v[t];break;case 23:this.$=v[t];break;case 24:this.$=new x.Block;break;case 25:this.$=v[t-1];break;case 26:this.$=new x.Literal(v[t]);break;case 27:this.$=new x.Literal(v[t]);break;case 28:this.$=new x.Literal(v[t]);break;case 29:this.$=v[t];break;case 30:this.$=new x.Literal(v[t]);break;case 31:this.$=new x.Literal(v[t]);break;case 32:this.$=function(){var z;z=new x.Literal(v[t]),v[t]==="undefined"&&(z.isUndefined=!0);return z;}();break;case 33:this.$=new x.Assign(v[t-2],v[t]);break;case 34:this.$=new x.Assign(v[t-4],v[t-1]);break;case 35:this.$=new x.Value(v[t]);break;case 36:this.$=new x.Assign(new x.Value(v[t-2]),v[t],"object");break;case 37:this.$=new x.Assign(new x.Value(v[t-4]),v[t-1],"object");break;case 38:this.$=v[t];break;case 39:this.$=v[t];break; case 40:this.$=v[t];break;case 41:this.$=v[t];break;case 42:this.$=new x.Return(v[t]);break;case 43:this.$=new x.Return;break;case 44:this.$=new x.Comment(v[t]);break;case 45:this.$=new x.Code(v[t-3],v[t],v[t-1]);break;case 46:this.$=new x.Code([],v[t],v[t-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=v[t];break;case 50:this.$=v[t];break;case 51:this.$=[];break;case 52:this.$=[v[t]];break;case 53:this.$=v[t-2].concat(v[t]);break;case 54:this.$=new x.Param(v[t]);break;case 55:this.$=new x.Param(v[t-1],null,!0);break;case 56:this.$=new x.Param(v[t-2],v[t]);break;case 57:this.$=v[t];break;case 58:this.$=v[t];break;case 59:this.$=v[t];break;case 60:this.$=v[t];break;case 61:this.$=new x.Splat(v[t-1]);break;case 62:this.$=new x.Value(v[t]);break;case 63:this.$=v[t-1].push(v[t]);break;case 64:this.$=new x.Value(v[t-1],[v[t]]);break;case 65:this.$=v[t];break;case 66:this.$=v[t];break;case 67:this.$=new x.Value(v[t]);break;case 68:this.$=new x.Value(v[t]);break;case 69:this.$=v[t];break;case 70:this.$=new x.Value(v[t]);break;case 71:this.$=new x.Value(v[t]);break;case 72:this.$=new x.Value(v[t]);break;case 73:this.$=v[t];break;case 74:this.$=new x.Access(v[t]);break;case 75:this.$=new x.Access(v[t],"soak");break;case 76:this.$=new x.Access(v[t],"proto");break;case 77:this.$=new x.Access(new x.Literal("prototype"));break;case 78:this.$=v[t];break;case 79:this.$=v[t-1];break;case 80:this.$=x.extend(v[t],{soak:!0});break;case 81:this.$=x.extend(v[t],{proto:!0});break;case 82:this.$=new x.Index(v[t]);break;case 83:this.$=new x.Slice(v[t]);break;case 84:this.$=new x.Obj(v[t-2],v[t-3].generated);break;case 85:this.$=[];break;case 86:this.$=[v[t]];break;case 87:this.$=v[t-2].concat(v[t]);break;case 88:this.$=v[t-3].concat(v[t]);break;case 89:this.$=v[t-5].concat(v[t-2]);break;case 90:this.$=new x.Class;break;case 91:this.$=new x.Class(null,null,v[t]);break;case 92:this.$=new x.Class(null,v[t]);break;case 93:this.$=new x.Class(null,v[t-1],v[t]);break;case 94:this.$=new x.Class(v[t]);break;case 95:this.$=new x.Class(v[t-1],null,v[t]);break;case 96:this.$=new x.Class(v[t-2],v[t]);break;case 97:this.$=new x.Class(v[t-3],v[t-1],v[t]);break;case 98:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 99:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 100:this.$=new x.Call("super",[new x.Splat(new x.Literal("arguments"))]);break;case 101:this.$=new x.Call("super",v[t]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=v[t-2];break;case 106:this.$=new x.Value(new x.Literal("this"));break;case 107:this.$=new x.Value(new x.Literal("this"));break;case 108:this.$=new x.Value(new x.Literal("this"),[new x.Access(v[t])],"this");break;case 109:this.$=new x.Arr([]);break;case 110:this.$=new x.Arr(v[t-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new x.Range(v[t-3],v[t-1],v[t-2]);break;case 114:this.$=new x.Range(v[t-2],v[t],v[t-1]);break;case 115:this.$=new x.Range(v[t-1],null,v[t]);break;case 116:this.$=new x.Range(null,v[t],v[t-1]);break;case 117:this.$=[v[t]];break;case 118:this.$=v[t-2].concat(v[t]);break;case 119:this.$=v[t-3].concat(v[t]);break;case 120:this.$=v[t-2];break;case 121:this.$=v[t-5].concat(v[t-2]);break;case 122:this.$=v[t];break;case 123:this.$=v[t];break;case 124:this.$=v[t];break;case 125:this.$=[].concat(v[t-2],v[t]);break;case 126:this.$=new x.Try(v[t]);break;case 127:this.$=new x.Try(v[t-1],v[t][0],v[t][1]);break;case 128:this.$=new x.Try(v[t-2],null,null,v[t]);break;case 129:this.$=new x.Try(v[t-3],v[t-2][0],v[t-2][1],v[t]);break;case 130:this.$=[v[t-1],v[t]];break;case 131:this.$=new x.Throw(v[t]);break;case 132:this.$=new x.Parens(v[t-1]);break;case 133:this.$=new x.Parens(v[t-2]);break;case 134:this.$=new x.While(v[t]);break;case 135:this.$=new x.While(v[t-2],{guard:v[t]});break;case 136:this.$=new x.While(v[t],{invert:!0});break;case 137:this.$=new x.While(v[t-2],{invert:!0,guard:v[t]});break;case 138:this.$=v[t-1].addBody(v[t]);break;case 139:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 140:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 141:this.$=v[t];break;case 142:this.$=(new x.While(new x.Literal("true"))).addBody(v[t]);break;case 143:this.$=(new x.While(new x.Literal("true"))).addBody(x.Block.wrap([v[t]]));break;case 144:this.$=new x.For(v[t-1],v[t]);break;case 145:this.$=new x.For(v[t-1],v[t]);break;case 146:this.$=new x.For(v[t],v[t-1]);break;case 147:this.$={source:new x.Value(v[t])};break;case 148:this.$=function(){v[t].own=v[t-1].own,v[t].name=v[t-1][0],v[t].index=v[t-1][1];return v[t];}();break;case 149:this.$=v[t];break;case 150:this.$=function(){v[t].own=!0;return v[t];}();break;case 151:this.$=v[t];break;case 152:this.$=new x.Value(v[t]);break;case 153:this.$=new x.Value(v[t]);break;case 154:this.$=[v[t]];break;case 155:this.$=[v[t-2],v[t]];break;case 156:this.$={source:v[t]};break;case 157:this.$={source:v[t],object:!0};break;case 158:this.$={source:v[t-2],guard:v[t]};break;case 159:this.$={source:v[t-2],guard:v[t],object:!0};break;case 160:this.$={source:v[t-2],step:v[t]};break;case 161:this.$={source:v[t-4],guard:v[t-2],step:v[t]};break;case 162:this.$={source:v[t-4],step:v[t-2],guard:v[t]};break;case 163:this.$=new x.Switch(v[t-3],v[t-1]);break;case 164:this.$=new x.Switch(v[t-5],v[t-3],v[t-1]);break;case 165:this.$=new x.Switch(null,v[t-1]);break;case 166:this.$=new x.Switch(null,v[t-3],v[t-1]);break;case 167:this.$=v[t];break;case 168:this.$=v[t-1].concat(v[t]);break;case 169:this.$=[[v[t-1],v[t]]];break;case 170:this.$=[[v[t-2],v[t-1]]];break;case 171:this.$=new x.If(v[t-1],v[t],{type:v[t-2]});break;case 172:this.$=v[t-4].addElse(new x.If(v[t-1],v[t],{type:v[t-2]}));break;case 173:this.$=v[t];break;case 174:this.$=v[t-2].addElse(v[t]);break;case 175:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 176:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 177:this.$=new x.Op(v[t-1],v[t]); break;case 178:this.$=new x.Op("-",v[t]);break;case 179:this.$=new x.Op("+",v[t]);break;case 180:this.$=new x.Op("--",v[t]);break;case 181:this.$=new x.Op("++",v[t]);break;case 182:this.$=new x.Op("--",v[t-1],null,!0);break;case 183:this.$=new x.Op("++",v[t-1],null,!0);break;case 184:this.$=new x.Existence(v[t-1]);break;case 185:this.$=new x.Op("+",v[t-2],v[t]);break;case 186:this.$=new x.Op("-",v[t-2],v[t]);break;case 187:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 188:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 189:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 190:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 191:this.$=function(){return v[t-1].charAt(0)==="!"?(new x.Op(v[t-1].slice(1),v[t-2],v[t])).invert():new x.Op(v[t-1],v[t-2],v[t]);}();break;case 192:this.$=new x.Assign(v[t-2],v[t],v[t-1]);break;case 193:this.$=new x.Assign(v[t-4],v[t-1],v[t-3]);break;case 194:this.$=new x.Extends(v[t-2],v[t]);}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(s,r){throw new Error(s); @@ -94,34 +89,27 @@ if(this.context==="object"){return""+q+": "+p;}p=q+(" "+(this.context||"=")+" ") }(),bn.Parens=ar=function(){function k(m){this.body=m;}aV(k,a0),k.prototype.children=["body"],k.prototype.unwrap=function(){return this.body;},k.prototype.isComplex=function(){return this.body.isComplex();},k.prototype.makeReturn=function(){return this.body.makeReturn();},k.prototype.compileNode=function(n){var m,p,o;o=this.body.unwrap();if(o instanceof ad&&o.isAtomic()){o.front=this.front;return o.compile(n);}p=o.compile(n,aC),m=n.level=aF?"("+p+")":p;},k.prototype.unfoldSoak=function(){return this.soak&&this;};return k;}(),aq={wrap:function(m,k){return k.isEmpty()||bo(k.expressions).jumps()?k:k.push(new aW(new ad(new az(m),[new a6(new az("push"))]),[k.pop()]));}},aS={wrap:function(n,m,t){var s,r,q,p,o;if(n.jumps()){return n;}q=new aQ([],aY.wrap([n])),s=[];if((p=n.contains(this.literalArgs))||n.contains(this.literalThis)){o=new az(p?"apply":"call"),s=[new az("this")],p&&s.push(new az("arguments")),q=new ad(q,[new a6(o)]);}q.noReturn=t,r=new aW(q,s);return m?aY.wrap([r]):r;},literalArgs:function(k){return k instanceof az&&k.value==="arguments"&&!k.asKey;},literalThis:function(k){return k instanceof az&&k.value==="this"&&!k.asKey||k instanceof aQ&&k.bound;}},a3=function(m,k,o){var n;if(!!(n=k[o].unfoldSoak(m))){k[o]=n.body,n.body=new ad(k);return n;}},ae={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},aA=1,aC=2,aE=3,aF=4,aD=5,aG=6,ai=" ",aL=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,an=/^[+-]?\d+$/,ay=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,aK=/^['"]/,a1=function(m){var k;k="__"+m,am.root.assign(k,ae[m]);return k;},a7=function(m,k){return m.replace(/\n/g,"$&"+k);};}),f("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(m,k,r){var q,p,o,n;n=m("ace/mode/coffee/helpers"),p=n.extend,o=n.last,k.Scope=q=function(){function s(t,v,u){this.parent=t,this.expressions=v,this.method=u,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(s.root=this);}s.root=null,s.prototype.add=function(u,t,w){var v;return this.shared&&!w?this.parent.add(u,t,w):typeof(v=this.positions[u])=="number"?this.variables[v].type=t:this.positions[u]=this.variables.push({name:u,type:t})-1;},s.prototype.find=function(u,t){if(this.check(u,t)){return !0;}this.add(u,"var");return !1;},s.prototype.parameter=function(t){if(!this.shared||!this.parent.check(t,!0)){return this.add(t,"param");}},s.prototype.check=function(u,t){var w,v;w=!!this.type(u);return w||t?w:(v=this.parent)!=null?!!v.check(u):!!void 0;},s.prototype.temporary=function(u,t){return u.length>1?"_"+u+(t>1?t:""):"_"+(t+parseInt(u,36)).toString(36).replace(/\d/g,"a");},s.prototype.type=function(u){var t,x,w,v;v=this.variables;for(x=0,w=v.length;xhint.end){hint.distance=cursor-hint.end;}else{hint.distance=0;}}}},this);}hints.sort(function(hint1,hint2){if(cursor!==undefined){var diff=hint1.distance-hint2.distance;if(diff!=0){return diff;}}return hint2.status-hint1.status;});if(cursor!==undefined){hints.forEach(function(hint){delete hint.distance;},this);}return hints;};exports.Hint=Hint;function ConversionHint(conversion,arg){this.status=conversion.status;this.message=conversion.message;if(arg){this.start=arg.start;this.end=arg.end;}else{this.start=0;this.end=0;}this.predictions=conversion.predictions;}oop.inherits(ConversionHint,Hint);function Argument(emitter,text,start,end,prefix,suffix){this.emitter=emitter;this.setText(text);this.start=start;this.end=end;this.prefix=prefix;this.suffix=suffix;}Argument.prototype={merge:function(following){if(following.emitter!=this.emitter){throw new Error("Can't merge Arguments from different EventEmitters");}return new Argument(this.emitter,this.text+this.suffix+following.prefix+following.text,this.start,following.end,this.prefix,following.suffix);},setText:function(text){if(text==null){throw new Error("Illegal text for Argument: "+text);}var ev={argument:this,oldText:this.text,text:text};this.text=text;this.emitter._dispatchEvent("argumentChange",ev);},toString:function(){return this.prefix+this.text+this.suffix;}};Argument.merge=function(argArray,start,end){start=(start===undefined)?0:start;end=(end===undefined)?argArray.length:end;var joined;for(var i=start;i: ";if(this.param.description){message+=this.param.description.trim();if(message.charAt(message.length-1)!=="."){message+=".";}if(message.charAt(message.length-1)!==" "){message+=" ";}}var status=Status.VALID;var start=this.arg?this.arg.start:Argument.AT_CURSOR;var end=this.arg?this.arg.end:Argument.AT_CURSOR;var predictions;if(this.conversion){status=this.conversion.status;if(this.conversion.message){message+=this.conversion.message;}predictions=this.conversion.predictions;}var argProvided=this.arg&&this.arg.text!=="";var dataProvided=this.value!==undefined||argProvided;if(this.param.defaultValue===undefined&&!dataProvided){status=Status.INVALID;message+="Required";}return new Hint(status,message,start,end,predictions);},complete:function(){if(this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0){this.setValue(this.conversion.predictions[0]);}},isPositionCaptured:function(position){if(!this.arg){return false;}if(this.arg.start===-1){return false;}if(position>this.arg.end){return false;}if(position===this.arg.end){return this.conversion.status!==Status.VALID||this.conversion.predictions.length!==0;}return true;},decrement:function(){var replacement=this.param.type.decrement(this.value);if(replacement!=null){this.setValue(replacement);}},increment:function(){var replacement=this.param.type.increment(this.value);if(replacement!=null){this.setValue(replacement);}},toString:function(){return this.arg?this.arg.toString():"";}};exports.Assignment=Assignment;var commandParam={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(command,arg){var docs=[]; -docs.push(" > ");docs.push(command.name);if(command.params&&command.params.length>0){command.params.forEach(function(param){if(param.defaultValue===undefined){docs.push(" ["+param.name+"]");}else{docs.push(" ["+param.name+"]");}},this);}docs.push("
                                                                            ");docs.push(command.description?command.description:"(No description)");docs.push("
                                                                            ");if(command.params&&command.params.length>0){docs.push("
                                                                              ");command.params.forEach(function(param){docs.push("
                                                                            • ");docs.push(""+param.name+": ");docs.push(param.description?param.description:"(No description)");if(param.defaultValue===undefined){docs.push(" [Required]");}else{if(param.defaultValue===null){docs.push(" [Optional]");}else{docs.push(" [Default: "+param.defaultValue+"]");}}docs.push("
                                                                            • ");},this);docs.push("
                                                                            ");}return new Hint(Status.VALID,docs.join(""),arg);}};function Requisition(env){this.env=env;this.commandAssignment=new Assignment(commandParam,this);}Requisition.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(assignment){if(assignment.param.name!=="__command"){return;}this._assignments={};if(assignment.value){assignment.value.params.forEach(function(param){this._assignments[param.name]=new Assignment(param,this);},this);}this.assignmentCount=Object.keys(this._assignments).length;this._dispatchEvent("commandChange",{command:assignment.value});},getAssignment:function(nameOrNumber){var name=(typeof nameOrNumber==="string")?nameOrNumber:Object.keys(this._assignments)[nameOrNumber];return this._assignments[name];},getParameterNames:function(){return Object.keys(this._assignments);},cloneAssignments:function(){return Object.keys(this._assignments).map(function(name){return this._assignments[name];},this);},_updateHints:function(){this.getAssignments(true).forEach(function(assignment){this._hints.push(assignment.getHint());},this);Hint.sort(this._hints);},getWorstHint:function(){return this._hints[0];},getArgsObject:function(){var args={};this.getAssignments().forEach(function(assignment){args[assignment.param.name]=assignment.value;},this);return args;},getAssignments:function(includeCommand){var args=[];if(includeCommand===true){args.push(this.commandAssignment);}Object.keys(this._assignments).forEach(function(name){args.push(this.getAssignment(name));},this);return args;},setDefaultValues:function(){this.getAssignments().forEach(function(assignment){assignment.setValue(undefined);},this);},exec:function(){canon.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString());},toCanonicalString:function(){var line=[];line.push(this.commandAssignment.value.name);Object.keys(this._assignments).forEach(function(name){var assignment=this._assignments[name];var type=assignment.param.type;if(assignment.value!==assignment.param.defaultValue){line.push(" ");line.push(type.stringify(assignment.value));}},this);return line.join("");}};oop.implement(Requisition.prototype,EventEmitter);exports.Requisition=Requisition;function CliRequisition(env,options){Requisition.call(this,env);if(options&&options.flags){this.flags=options.flags;}}oop.inherits(CliRequisition,Requisition);(function(){CliRequisition.prototype.update=function(input){this.input=input;this._hints=[];var args=this._tokenize(input.typed);this._split(args);if(this.commandAssignment.value){this._assign(args);}this._updateHints();};CliRequisition.prototype.getInputStatusMarkup=function(){var scores=this.toString().split("").map(function(ch){return Status.VALID;});this._hints.forEach(function(hint){for(var i=hint.start;i<=hint.end;i++){if(hint.status>scores[i]){scores[i]=hint.status;}}},this);return scores;};CliRequisition.prototype.toString=function(){return this.getAssignments(true).map(function(assignment){return assignment.toString();},this).join("");};var superUpdateHints=CliRequisition.prototype._updateHints;CliRequisition.prototype._updateHints=function(){superUpdateHints.call(this);var c=this.input.cursor;this._hints.forEach(function(hint){var startInHint=c.start>=hint.start&&c.start<=hint.end;var endInHint=c.end>=hint.start&&c.end<=hint.end;var inHint=startInHint||endInHint;if(!inHint&&hint.status===Status.INCOMPLETE){hint.status=Status.INVALID;}},this);Hint.sort(this._hints);};CliRequisition.prototype.getHints=function(){return this._hints;};CliRequisition.prototype.getAssignmentAt=function(position){var assignments=this.getAssignments(true);for(var i=0;i=typed.length){if(mode!==OUTSIDE){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start,i,prefix,""));}else{if(i!==start){var extra=typed.substring(start,i);var lastArg=args[args.length-1];if(!lastArg){lastArg=new Argument(this,"",i,i,extra,"");args.push(lastArg);}else{lastArg.suffix+=extra;}}}break;}var c=typed[i];switch(mode){case OUTSIDE:if(c==="'"){prefix=typed.substring(start,i+1);mode=IN_SINGLE_Q;start=i+1;}else{if(c==='"'){prefix=typed.substring(start,i+1);mode=IN_DOUBLE_Q;start=i+1;}else{if(/ /.test(c)){}else{prefix=typed.substring(start,i);mode=IN_SIMPLE;start=i; -}}}break;case IN_SIMPLE:if(c===" "){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start,i,prefix,""));mode=OUTSIDE;start=i;prefix="";}break;case IN_SINGLE_Q:if(c==="'"){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start-1,i+1,prefix,c));mode=OUTSIDE;start=i+1;prefix="";}break;case IN_DOUBLE_Q:if(c==='"'){var str=unescape2(typed.substring(start,i));args.push(new Argument(this,str,start-1,i+1,prefix,c));mode=OUTSIDE;start=i+1;prefix="";}break;}i++;}return args;};CliRequisition.prototype._split=function(args){var argsUsed=1;var arg;while(argsUsed<=args.length){var arg=Argument.merge(args,0,argsUsed);this.commandAssignment.setArgument(arg);if(!this.commandAssignment.value){break;}if(this.commandAssignment.value.exec){for(var i=0;i=args.length){break;}continue;}if(assignment.param.type.name==="boolean"){assignment.setValue(true);}else{if(i+10){var remaining=Argument.merge(args);this._hints.push(new Hint(Status.INVALID,"Input '"+remaining.text+"' makes no sense.",remaining));}};})();exports.CliRequisition=CliRequisition;});define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(require,exports,module){var types=require("pilot/types");var SelectionType=require("pilot/types/basic").SelectionType;var direction=new SelectionType({name:"direction",data:["above","below"]});var hintDirectionSetting={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"};var outputDirectionSetting={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"};var outputHeightSetting={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};exports.startup=function(data,reason){types.registerType(direction);data.env.settings.addSetting(hintDirectionSetting);data.env.settings.addSetting(outputDirectionSetting);data.env.settings.addSetting(outputHeightSetting);};exports.shutdown=function(data,reason){types.unregisterType(direction);data.env.settings.removeSetting(hintDirectionSetting);data.env.settings.removeSetting(outputDirectionSetting);data.env.settings.removeSetting(outputHeightSetting);};});define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(require,exports,module){var editorCss=require("text!cockpit/ui/cli_view.css");var event=require("pilot/event");var dom=require("pilot/dom");dom.importCssString(editorCss);var event=require("pilot/event");var keys=require("pilot/keys");var canon=require("pilot/canon");var Status=require("pilot/types").Status;var CliRequisition=require("cockpit/cli").CliRequisition;var Hint=require("cockpit/cli").Hint;var RequestView=require("cockpit/ui/request_view").RequestView;var NO_HINT=new Hint(Status.VALID,"",0,0);exports.startup=function(data,reason){var cli=new CliRequisition(data.env);var cliView=new CliView(cli,data.env);data.env.cli=cli;};function CliView(cli,env){cli.cliView=this;this.cli=cli;this.doc=document;this.win=dom.getParentWindow(this.doc);this.env=env;this.element=this.doc.getElementById("cockpitInput");if(!this.element){return;}this.settings=env.settings;this.hintDirection=this.settings.getSetting("hintDirection");this.outputDirection=this.settings.getSetting("outputDirection");this.outputHeight=this.settings.getSetting("outputHeight");this.isUpdating=false;this.createElements();this.update();}CliView.prototype={createElements:function(){var input=this.element;this.element.spellcheck=false;this.output=this.doc.getElementById("cockpitOutput");this.popupOutput=(this.output==null);if(!this.output){this.output=this.doc.createElement("div");this.output.id="cockpitOutput";this.output.className="cptOutput";input.parentNode.insertBefore(this.output,input.nextSibling);var setMaxOutputHeight=function(){this.output.style.maxHeight=this.outputHeight.get()+"px";}.bind(this);this.outputHeight.addEventListener("change",setMaxOutputHeight);setMaxOutputHeight();}this.completer=this.doc.createElement("div");this.completer.className="cptCompletion VALID";this.completer.style.color=dom.computedStyle(input,"color");this.completer.style.fontSize=dom.computedStyle(input,"fontSize");this.completer.style.fontFamily=dom.computedStyle(input,"fontFamily");this.completer.style.fontWeight=dom.computedStyle(input,"fontWeight");this.completer.style.fontStyle=dom.computedStyle(input,"fontStyle");input.parentNode.insertBefore(this.completer,input.nextSibling);this.completer.style.backgroundColor=input.style.backgroundColor;input.style.backgroundColor="transparent";this.hinter=this.doc.createElement("div");this.hinter.className="cptHints"; -input.parentNode.insertBefore(this.hinter,input.nextSibling);var resizer=this.resizer.bind(this);event.addListener(this.win,"resize",resizer);this.hintDirection.addEventListener("change",resizer);this.outputDirection.addEventListener("change",resizer);resizer();canon.addEventListener("output",function(ev){new RequestView(ev.request,this);}.bind(this));event.addCommandKeyListener(input,this.onCommandKey.bind(this));event.addListener(input,"keyup",this.onKeyUp.bind(this));event.addListener(input,"mouseup",function(ev){this.isUpdating=true;this.update();this.isUpdating=false;}.bind(this));this.cli.addEventListener("argumentChange",this.onArgChange.bind(this));event.addListener(input,"focus",function(){dom.addCssClass(this.output,"cptFocusPopup");dom.addCssClass(this.hinter,"cptFocusPopup");}.bind(this));function hideOutput(){dom.removeCssClass(this.output,"cptFocusPopup");dom.removeCssClass(this.hinter,"cptFocusPopup");}event.addListener(input,"blur",hideOutput.bind(this));hideOutput.call(this);},scrollOutputToBottom:function(){var scrollHeight=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=scrollHeight-this.output.clientHeight;},resizer:function(){var rect=this.element.getClientRects()[0];this.completer.style.top=rect.top+"px";var height=rect.bottom-rect.top;this.completer.style.height=height+"px";this.completer.style.lineHeight=height+"px";this.completer.style.left=rect.left+"px";var width=rect.right-rect.left;this.completer.style.width=width+"px";if(this.hintDirection.get()==="below"){this.hinter.style.top=rect.bottom+"px";this.hinter.style.bottom="auto";}else{this.hinter.style.top="auto";this.hinter.style.bottom=(this.doc.documentElement.clientHeight-rect.top)+"px";}this.hinter.style.left=(rect.left+30)+"px";this.hinter.style.maxWidth=(width-110)+"px";if(this.popupOutput){if(this.outputDirection.get()==="below"){this.output.style.top=rect.bottom+"px";this.output.style.bottom="auto";}else{this.output.style.top="auto";this.output.style.bottom=(this.doc.documentElement.clientHeight-rect.top)+"px";}this.output.style.left=rect.left+"px";this.output.style.width=(width-80)+"px";}},onCommandKey:function(ev,hashId,keyCode){var stopEvent;if(keyCode===keys.TAB||keyCode===keys.UP||keyCode===keys.DOWN){stopEvent=true;}else{if(hashId!=0||keyCode!=0){stopEvent=canon.execKeyCommand(this.env,"cli",hashId,keyCode);}}stopEvent&&event.stopEvent(ev);},onKeyUp:function(ev){var handled;if(ev.keyCode===keys.RETURN){var worst=this.cli.getWorstHint();if(worst.status===Status.VALID){this.cli.exec();this.element.value="";}else{dom.setSelectionStart(this.element,worst.start);dom.setSelectionEnd(this.element,worst.end);}}this.update();var current=this.cli.getAssignmentAt(dom.getSelectionStart(this.element));if(current){if(ev.keyCode===keys.TAB){current.complete();this.update();}if(ev.keyCode===keys.UP){current.increment();this.update();}if(ev.keyCode===keys.DOWN){current.decrement();this.update();}}return handled;},update:function(){this.isUpdating=true;var input={typed:this.element.value,cursor:{start:dom.getSelectionStart(this.element),end:dom.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(input);var display=this.cli.getAssignmentAt(input.cursor.start).getHint();dom.removeCssClass(this.completer,Status.VALID.toString());dom.removeCssClass(this.completer,Status.INCOMPLETE.toString());dom.removeCssClass(this.completer,Status.INVALID.toString());var completion='> ';if(this.element.value.length>0){var scores=this.cli.getInputStatusMarkup();completion+=this.markupStatusScore(scores);}if(this.element.value.length>0&&display.predictions&&display.predictions.length>0){var tab=display.predictions[0];completion+="  ⇥ "+(tab.name?tab.name:tab);}this.completer.innerHTML=completion;dom.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var hint="";if(this.element.value.length!==0){hint+=display.message;if(display.predictions&&display.predictions.length>0){hint+=": [ ";display.predictions.forEach(function(prediction){hint+=(prediction.name?prediction.name:prediction);hint+=" | ";},this);hint=hint.replace(/\| $/,"]");}}this.hinter.innerHTML=hint;if(hint.length===0){dom.addCssClass(this.hinter,"cptNoPopup");}else{dom.removeCssClass(this.hinter,"cptNoPopup");}this.isUpdating=false;},markupStatusScore:function(scores){var completion="";var i=0;var lastStatus=-1;while(true){if(lastStatus!==scores[i]){completion+="";lastStatus=scores[i];}completion+=this.element.value[i];i++;if(i===this.element.value.length){completion+="";break;}if(lastStatus!==scores[i]){completion+="";}}return completion;},onArgChange:function(ev){if(this.isUpdating){return;}var prefix=this.element.value.substring(0,ev.argument.start);var suffix=this.element.value.substring(ev.argument.end);var insert=typeof ev.text==="string"?ev.text:ev.text.name;this.element.value=prefix+insert+suffix;var insertEnd=(prefix+insert).length;this.element.selectionStart=insertEnd;this.element.selectionEnd=insertEnd;}};exports.CliView=CliView;});define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(require,exports,module){var dom=require("pilot/dom");var event=require("pilot/event");var requestViewHtml=require("text!cockpit/ui/request_view.html");var Templater=require("pilot/domtemplate").Templater;var requestViewCss=require("text!cockpit/ui/request_view.css");dom.importCssString(requestViewCss);var templates=document.createElement("div");templates.innerHTML=requestViewHtml;var row=templates.querySelector(".cptRow");function imageUrl(path){var dataUrl;try{dataUrl=require("text!cockpit/ui/"+path);}catch(e){}if(dataUrl){return dataUrl;}var filename=module.id.split("/").pop()+".js";var imagePath;if(module.uri.substr(-filename.length)!==filename){console.error("Can't work out path from module.uri/module.id"); -return path;}if(module.uri){var end=module.uri.length-filename.length-1;return module.uri.substr(0,end)+"/"+path;}return filename+path;}function RequestView(request,cliView){this.request=request;this.cliView=cliView;this.imageUrl=imageUrl;this.rowin=null;this.rowout=null;this.output=null;this.hide=null;this.show=null;this.duration=null;this.throb=null;new Templater().processNode(row.cloneNode(true),this);this.cliView.output.appendChild(this.rowin);this.cliView.output.appendChild(this.rowout);this.request.addEventListener("output",this.onRequestChange.bind(this));}RequestView.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed;},executeRequest:function(ev){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}});this.cliView.cli.exec();},hideOutput:function(ev){this.output.style.display="none";dom.addCssClass(this.hide,"cmd_hidden");dom.removeCssClass(this.show,"cmd_hidden");event.stopPropagation(ev);},showOutput:function(ev){this.output.style.display="block";dom.removeCssClass(this.hide,"cmd_hidden");dom.addCssClass(this.show,"cmd_hidden");event.stopPropagation(ev);},remove:function(ev){this.cliView.output.removeChild(this.rowin);this.cliView.output.removeChild(this.rowout);event.stopPropagation(ev);},onRequestChange:function(ev){this.duration.innerHTML=this.request.duration?"completed in "+(this.request.duration/1000)+" sec ":"";this.output.innerHTML="";this.request.outputs.forEach(function(output){var node;if(typeof output=="string"){node=document.createElement("p");node.innerHTML=output;}else{node=output;}this.output.appendChild(node);},this);this.cliView.scrollOutputToBottom();dom.setCssClass(this.output,"cmd_error",this.request.error);this.throb.style.display=this.request.completed?"none":"block";}};exports.RequestView=RequestView;});define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[];}Templater.prototype.processNode=function(node,data){if(typeof node==="string"){node=document.getElementById(node);}if(data===null||data===undefined){data={};}this.scope.push(node.nodeName+(node.id?"#"+node.id:""));try{if(node.attributes&&node.attributes.length){if(node.hasAttribute("foreach")){this.processForEach(node,data);return;}if(node.hasAttribute("if")){if(!this.processIf(node,data)){return;}}data.__element=node;var attrs=Array.prototype.slice.call(node.attributes);for(var i=0;i1){parts.forEach(function(part){if(part===null||part===undefined||part===""){return;}if(part.charAt(0)==="$"){part=this.envEval(part.slice(1),data,node.data);}if(part===null){part="null";}if(part===undefined){part="undefined";}if(typeof part.cloneNode!=="function"){part=node.ownerDocument.createTextNode(part.toString());}node.parentNode.insertBefore(part,node);},this);node.parentNode.removeChild(node);}};Templater.prototype.stripBraces=function(str){if(!str.match(/\$\{.*\}/g)){this.handleError("Expected "+str+" to match ${...}"); -return str;}return str.slice(2,-1);};Templater.prototype.property=function(path,data,newValue){this.scope.push(path);try{if(typeof path==="string"){path=path.split(".");}var value=data[path[0]];if(path.length===1){if(newValue!==undefined){data[path[0]]=newValue;}if(typeof value==="function"){return function(){return value.apply(data,arguments);};}return value;}if(!value){this.handleError("Can't find path="+path);return null;}return this.property(path.slice(1),value,newValue);}finally{this.scope.pop();}};Templater.prototype.envEval=function(script,env,context){with(env){try{this.scope.push(context);return eval(script);}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script;}finally{this.scope.pop();}}};Templater.prototype.handleError=function(message,ex){this.logError(message);this.logError("In: "+this.scope.join(" > "));if(ex){this.logError(ex);}};Templater.prototype.logError=function(message){window.console&&window.console.log&&console.log(message);};exports.Templater=Templater;});define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(require,exports,module){var canon=require("pilot/canon");var bangCommandSpec={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(env,args,request){var req=new XMLHttpRequest();req.open("GET","/exec?args="+args.command,true);req.onreadystatechange=function(ev){if(req.readyState==4){if(req.status==200){request.done("
                                                                            "+req.responseText+"
                                                                            ");}}};req.send(null);}};var canon=require("pilot/canon");exports.startup=function(data,reason){canon.addCommand(bangCommandSpec);};exports.shutdown=function(data,reason){canon.removeCommand(bangCommandSpec);};});define("text!cockpit/ui/cli_view.css",[],""+"#cockpitInput { padding-left: 16px; }"+""+".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }"+""+".cptCompletion { padding: 0; position: absolute; z-index: -1000; }"+".cptCompletion.VALID { background: #FFF; }"+".cptCompletion.INCOMPLETE { background: #DDD; }"+".cptCompletion.INVALID { background: #DDD; }"+".cptCompletion span { color: #FFF; }"+".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }"+".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }"+"span.cptPrompt { color: #66F; font-weight: bold; }"+""+""+".cptHints {"+" color: #000;"+" position: absolute;"+" border: 1px solid rgba(230, 230, 230, 0.8);"+" background: rgba(250, 250, 250, 0.8);"+" -moz-border-radius-topleft: 10px;"+" -moz-border-radius-topright: 10px;"+" border-top-left-radius: 10px; border-top-right-radius: 10px;"+" z-index: 1000;"+" padding: 8px;"+" display: none;"+"}"+""+".cptFocusPopup { display: block; }"+".cptFocusPopup.cptNoPopup { display: none; }"+""+".cptHints ul { margin: 0; padding: 0 15px; }"+""+".cptGt { font-weight: bold; font-size: 120%; }"+"");define("text!cockpit/ui/request_view.css",[],""+".cptRowIn {"+" display: box; display: -moz-box; display: -webkit-box;"+" box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;"+" box-align: center; -moz-box-align: center; -webkit-box-align: center;"+" color: #333;"+" background-color: #EEE;"+" width: 100%;"+" font-family: consolas, courier, monospace;"+"}"+".cptRowIn > * { padding-left: 2px; padding-right: 2px; }"+".cptRowIn > img { cursor: pointer; }"+".cptHover { display: none; }"+".cptRowIn:hover > .cptHover { display: block; }"+".cptRowIn:hover > .cptHover.cptHidden { display: none; }"+".cptOutTyped {"+" box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;"+" font-weight: bold; color: #000; font-size: 120%;"+"}"+".cptRowOutput { padding-left: 10px; line-height: 1.2em; }"+".cptRowOutput strong,"+".cptRowOutput b,"+".cptRowOutput th,"+".cptRowOutput h1,"+".cptRowOutput h2,"+".cptRowOutput h3 { color: #000; }"+".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }"+".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }"+".cptRowOutput input[type=password],"+".cptRowOutput input[type=text],"+".cptRowOutput textarea {"+" color: #000; font-size: 120%;"+" background: transparent; padding: 3px;"+" border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;"+"}"+".cptRowOutput table,"+".cptRowOutput td,"+".cptRowOutput th { border: 0; padding: 0 2px; }"+".cptRowOutput .right { text-align: right; }"+"");define("text!cockpit/ui/request_view.html",[],""+"
                                                                            "+" "+'
                                                                            '+""+" "+'
                                                                            >
                                                                            '+'
                                                                            ${request.typed}
                                                                            '+""+" "+'
                                                                            '+' Hide command output'+' Show command output'+' Remove this command from the history"+""+"
                                                                            "+""+" "+'
                                                                            '+'
                                                                            '+' '+"
                                                                            "+"
                                                                            "+"");define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); -define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7");define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg==");define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII=");define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII=");define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); -define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII=");define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII=");define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); -},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-worker-javascript",function(A){function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a});},this.emit=function(a,b){postMessage({type:"event",name:a,data:b});};}).call(c.prototype);return new c;}function initBaseUrls(a){require.tlns=a;}var console={log:function(a){postMessage({type:"log",data:a});}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports;}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a);};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a;}});},main,sender;onmessage=function(a){var b=a.data;if(b.command){main[b.command].apply(main,b.args);}else{if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender);}else{b.event&&sender&&sender._dispatchEvent(b.event,b.data);}}},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function"){return new TypeError;}var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a;}return b.call.apply(b,c.concat(d.call(arguments)));};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e;};}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__")){i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);}Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]";}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); -}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b); -},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip){p+=A.indent;}!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt();}bm("}",h),p=e;}else{a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);}j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c;}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)"){x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());}return b;}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return !0;}return !1;}function bP(a){var b=p,c,d=G,e=x;if(e.id===";"){be("Unnecessary semicolon.",e),bm(";");}else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c;}}function bO(a){var b=0,c;if(x.id===";"&&!z){for(;;){c=bl(b);if(c.reach){return;}if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break;}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break;}b+=1;}}}function bN(a){var b=bM(a);if(b){return b;}O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value);}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value;}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this;};return c;}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b;}bg("Bad assignment.",b);},20);}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this;};return d;}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b;}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O);}bg("Bad assignment.",b);},20);}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined");}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this;};return c;}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function"){return b(a,this);}this.left=a,this.right=bn(c);return this;};return e;}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this;});}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c;}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c;}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--"){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);}return this;};return c;}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z"){a.identifier=a.reserved=!0;}return a;}function bz(a,b){var c=by(a,b);c.block=!0;return c;}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c;}function bx(a){return bw(a,0);}function bw(a,b){var c=M[a];if(!c||typeof c!="object"){M[a]=c={id:a,lbp:b,value:a};}return c;}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x);}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value);}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from)); -}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b);}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value);}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value);}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud){d=O.fud();}else{if(O.nud){d=O.nud();}else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O;}bg("Expected an identifier and instead saw '{a}'.",O,O.id);}while(b=A.maxerr&&bd("Too many errors.",i,h);return j;}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw {name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."};}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0);}function bb(a,b){var c;for(c in b){ba(b,c)&&(a[c]=b[c]);}}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b);}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$; -(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/;})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]";}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _;}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a){ba(a,c)&&b.push(c);}return b;}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">");}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿";}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9";}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b;});}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4);})+'"':'"'+this+'"';});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g;}function e(){var b,e;if(c>=s.length){return !1;}a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e);}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length){i=0,e()||bh("Unclosed string.",c,b);}h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g);}if(h<" "){if(h==="\n"||h==="\r"){break;}bf("Control character in string: {a}.",c,a+i,d.slice(0,i));}else{if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a);}}}j+=h,a+=1,i+=1;}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f;}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d){return f(e()?"(endline)":"(end)","");}r=s(U);if(!r){r="",h="";while(d&&d<"!"){d=d.substr(1);}d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1));}else{if(h.isAlpha()||h==="_"||h==="$"){return f("(identifier)",r);}if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r);}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0){break;}e()||bh("Unclosed comment.",c,a);}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0){p[d.charAt(n)]=!1,n+=1; -}a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n));}}else{i+=1;}break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" "){n+=1,p+=1;}p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0;}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h);}if(g){switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,o=+h+o*10;}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,l=+h+l*10;}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l);}}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h);}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r);}}}}};}();bC("(number)",function(){return this;}),bC("(string)",function(){return this;}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c){switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b);}}else{if(j["(global)"]){a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);}else{switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0){j[b]=!0;}else{if(c===null){be("'{a}' is not allowed.",O,b),bU(O);}else{if(typeof c!="object"){a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);}else{switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b);}}}}}}}return this;},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value);}},bC("(regexp)",function(){return this;}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a);}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a);}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.");},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b;},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this;}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this;}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a;}b.left=a,b.right=c;return b;},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this;}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130); -return this;},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this;}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this;},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this;}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this;}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this;}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function"){if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O));}}else{a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);}}else{A.supernew||be("Weird construction. Delete 'new'.",this);}bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this;}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b;},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")"){for(;;){d[d.length]=bn(10),c+=1;if(x.id!==","){break;}bv();}}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b;},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a;}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b;},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===","){be("Extra comma."),bm(",");}if(x.id==="]"){break;}a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==","){break;}bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break;}}a&&(p-=A.indent,bt()),bm("]",this);return this;},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}"){break;}a&&bt();if(x.value==="get"&&bl().id!==":"){bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);}else{c=bV();if(typeof c!="string"){break;}bm(":"),br(O,x),bn(10);}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===","){bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);}else{break;}}a&&(p-=A.indent,bt()),bm("}",this);return this;},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O);};}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a){break;}c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==","){break;}bv();}return this;});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens."); -return this;}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this;}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this;}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally"){bm("finally"),bS(!1);}else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this;}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;){switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O);}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O);}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b){switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O);}}else{bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value);}}}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this;}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;});a.labelled=!0,a.exps=!0;}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var"){bm("var"),bY.fud.call(bY,!0);}else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value);}bm();}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}if(x.id!==";"){if(x.id==="var"){bm("var"),bY.fud.call(bY);}else{for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")"){for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this;}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this;}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this;}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this;}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e){if(Array.isArray(e)){for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u){if(typeof u[i]=="number"){a.member=u;break;}}return a;},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d");}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors){for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));}}if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";}m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ");}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";}m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ");}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ");}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);}if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ");}m.push("
                                                                            ");}}return m.join("");},b$.jshint=b$,b$.edition="2011-04-16";return b$;}();typeof b=="object"&&b&&(b.JSHINT=d);}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null){return null;}if(d.match(/^[\s]*\.end[\s]*$/)){break;}c+="\n"+d;}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f;}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c);}d(a.trim())&&(a="");for(;;){try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f;}catch(g){if(!e.unexpectedEOF){throw g;}var h;do{c&&putstr(c),h=readline();if(!h){throw g;}}while(d(h.trim()));a+="\n"+h;}}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done){throw d.newSyntaxError("Syntax error");}return e;}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue;}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA)){break;}}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal trailing ,");}break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break;}throw a.newSyntaxError("Invalid property name");}if(a.match(COLON)){d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);}else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY){throw a.newSyntaxError("missing : after property");}c.push(f);}}else{if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal property accessor");}c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM));}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY);}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand");}return c;}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0)){return c;}do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA){throw a.newSyntaxError("Yield expression must be parenthesized");}if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA){throw a.newSyntaxError("Generator expression must be parenthesized");}}c.push(d);}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c;}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b); -while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break;}default:a.unget();return d;}d=e;}return d;}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d);}return c;}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD)){d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;}return c;}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS)){d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;}return c;}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH)){d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;}return c;}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF)){d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;}return c;}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE)){d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;}return c;}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND)){d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;}return c;}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR)){d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;}return c;}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR)){d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;}return c;}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND)){d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;}return c;}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR)){d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;}return c;}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON)){throw a.newSyntaxError("missing : after ?");}c.push(AssignExpression(a,b));}return c;}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0)){return ReturnOrYield(a,b);}c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN)){return d;}c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment");}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c;}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}c.push(AssignExpression(a,b));}while(a.match(COMMA));}return c;}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}if(c.type===COMMA&&!c.parenthesized){throw a.newSyntaxError("Generator expression must be parenthesized");}c=GeneratorExpression(a,b,c);}return c;}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e]){throw a.newSyntaxError("Unparenthesized head followed by unbraced body");}}return d;}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier");}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d);}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c;}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)});}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d;}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP){throw a.newSyntaxError("Invalid array comprehension left-hand side");}if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0){throw a.newSyntaxError("More than one switch default");}case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case");}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY){f.statements.push(Statement(a,l));}e.cases.push(f);}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1){throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);}f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f;}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT){f.destructuredNames=checkDestructuring(a,m,f);}e.iterator=f;}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach){throw a.newSyntaxError("Invalid for each..in loop");}e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m);}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e;}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label);}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target){throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));}if(!e.target.isLoop&&j===CONTINUE){throw a.newSyntaxError("Invalid continue");}break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch");}if(a.match(IF)){if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal catch guard");}if(e.catchClauses.length&&!e.catchClauses.top().guard){throw a.newSyntaxError("Guarded catch after unguarded");}f.guard=Expression(a,b);}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f);}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock){throw a.newSyntaxError("Invalid try statement");}return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d)){throw a.newSyntaxError("Duplicate label");}a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e;}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end;}e.blockComments=n,MagicalSemicolon(a);return e;}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE){d.set(a,e);}else{if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f);}}}),this.node=a,this.exports=b,this.exportedModules=d;}function registerExport(a,b){function c(b,c){if(a.has(b)){throw new SyntaxError("multiple exports of "+b);}a.set(b,c);}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0){b+=c;}return b;},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export};}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null; -}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op==="."){continue;}var node=opTokens;for(var i=0;i"9"){throw this.newSyntaxError("Missing exponent");}do{ch=a[this.cursor++];}while(ch>="0"&&ch<="9");this.cursor--;return !0;}return !1;},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor);}else{if(a==="x"||a==="X"){do{a=c[this.cursor++];}while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{if(a>="0"&&a<="7"){do{a=c[this.cursor++];}while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{this.cursor--,this.lexExponent(),b.value=0;}}}},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do{a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);}while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f);},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor);}else{b.type=DOT,b.assignOp=null,b.value=".";}},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor){throw this.newSyntaxError("Unterminated string literal");}while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1);},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\"){this.cursor++;}else{if(ch==="["){do{if(ch===undefined){throw this.newSyntaxError("Unterminated character class");}ch==="\\"&&this.cursor++,ch=input[this.cursor++];}while(ch!=="]");}else{if(ch===undefined){throw this.newSyntaxError("Unterminated regex");}}}}while(ch!=="/");do{ch=input[this.cursor++];}while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor));},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f;},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null){c+=a;}b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c;},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines){return b.type;}}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length){return b.type=END;}b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null){this.lexIdent(d);}else{if(a&&e==="/"){this.lexRegExp(e);}else{if(e in opTokens){this.lexOp(e);}else{if(e==="."){this.lexDot(e);}else{if(e>="1"&&e<="9"){this.lexNumber(e);}else{if(e==="0"){this.lexZeroNumber(e);}else{if(e==='"'||e==="'"){this.lexString(e);}else{if(!this.scanNewlines||e!=="\n"&&e!=="\r"){throw this.newSyntaxError("Illegal token");}e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++;}}}}}}}b.end=this.cursor;return b.type; -},unget:function(){if(++this.lookahead===4){throw"PANIC: too much lookahead!";}this.tokenIndex=this.tokenIndex-1&3;},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b;},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length){return null;}var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16));}catch(d){return null;}this.cursor+=5;}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c;}return null;}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0;}catch(d){}f&&this.cursor++;return f?c:null;}};return{Tokenizer:Tokenizer};}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null;}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={}; -for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i;}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set); +}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]);}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf){return a.indexOf(b,c);}for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--;}return b;},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return !!b;});}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0; +},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip){p+=A.indent;}!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt();}bm("}",h),p=e;}else{a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);}j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c;}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)"){x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());}return b;}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return !0;}return !1;}function bP(a){var b=p,c,d=G,e=x;if(e.id===";"){be("Unnecessary semicolon.",e),bm(";");}else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c;}}function bO(a){var b=0,c;if(x.id===";"&&!z){for(;;){c=bl(b);if(c.reach){return;}if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break;}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break;}b+=1;}}}function bN(a){var b=bM(a);if(b){return b;}O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value);}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value;}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this;};return c;}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b;}bg("Bad assignment.",b);},20);}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this;};return d;}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b;}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O);}bg("Bad assignment.",b);},20);}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined");}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c; +return this;};return c;}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function"){return b(a,this);}this.left=a,this.right=bn(c);return this;};return e;}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this;});}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c;}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c;}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--"){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);}return this;};return c;}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z"){a.identifier=a.reserved=!0;}return a;}function bz(a,b){var c=by(a,b);c.block=!0;return c;}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c;}function bx(a){return bw(a,0);}function bw(a,b){var c=M[a];if(!c||typeof c!="object"){M[a]=c={id:a,lbp:b,value:a};}return c;}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x);}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value);}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from));}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b);}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value);}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value);}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud){d=O.fud();}else{if(O.nud){d=O.nud();}else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O;}bg("Expected an identifier and instead saw '{a}'.",O,O.id);}while(b=A.maxerr&&bd("Too many errors.",i,h);return j;}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw {name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."};}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0); +}function bb(a,b){var c;for(c in b){ba(b,c)&&(a[c]=b[c]);}}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b);}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/;})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]";}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _;}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a){ba(a,c)&&b.push(c);}return b;}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">");}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿";}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9";}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b;});}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4);})+'"':'"'+this+'"';});var bi=function(){function f(d,e){var f,g; +d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g;}function e(){var b,e;if(c>=s.length){return !1;}a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e);}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length){i=0,e()||bh("Unclosed string.",c,b);}h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g);}if(h<" "){if(h==="\n"||h==="\r"){break;}bf("Control character in string: {a}.",c,a+i,d.slice(0,i));}else{if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a);}}}j+=h,a+=1,i+=1;}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f;}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d){return f(e()?"(endline)":"(end)","");}r=s(U);if(!r){r="",h="";while(d&&d<"!"){d=d.substr(1);}d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1));}else{if(h.isAlpha()||h==="_"||h==="$"){return f("(identifier)",r);}if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r);}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0){break;}e()||bh("Unclosed comment.",c,a);}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0){p[d.charAt(n)]=!1,n+=1;}a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n));}}else{i+=1;}break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" "){n+=1,p+=1;}p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0;}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h);}if(g){switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,o=+h+o*10;}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,l=+h+l*10;}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l); +}}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h);}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r);}}}}};}();bC("(number)",function(){return this;}),bC("(string)",function(){return this;}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c){switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b);}}else{if(j["(global)"]){a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);}else{switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0){j[b]=!0;}else{if(c===null){be("'{a}' is not allowed.",O,b),bU(O);}else{if(typeof c!="object"){a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);}else{switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b);}}}}}}}return this;},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value);}},bC("(regexp)",function(){return this;}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a);}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a);}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.");},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b;},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this;}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this;}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a;}b.left=a,b.right=c;return b;},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this;}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this;},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this;}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this;},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this;}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this;}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this;}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function"){if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O));}}else{a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);}}else{A.supernew||be("Weird construction. Delete 'new'.",this);}bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this;}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b;},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself."); +var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")"){for(;;){d[d.length]=bn(10),c+=1;if(x.id!==","){break;}bv();}}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b;},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a;}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b;},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===","){be("Extra comma."),bm(",");}if(x.id==="]"){break;}a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==","){break;}bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break;}}a&&(p-=A.indent,bt()),bm("]",this);return this;},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}"){break;}a&&bt();if(x.value==="get"&&bl().id!==":"){bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);}else{c=bV();if(typeof c!="string"){break;}bm(":"),br(O,x),bn(10);}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===","){bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);}else{break;}}a&&(p-=A.indent,bt()),bm("}",this);return this;},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O);};}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a){break;}c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==","){break;}bv();}return this;});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this;}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this;}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this;}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally"){bm("finally"),bS(!1);}else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this;}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;){switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O);}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O);}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b){switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR(); +break;default:bg("Missing ':' on a case clause.",O);}}else{bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value);}}}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this;}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;});a.labelled=!0,a.exps=!0;}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var"){bm("var"),bY.fud.call(bY,!0);}else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value);}bm();}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}if(x.id!==";"){if(x.id==="var"){bm("var"),bY.fud.call(bY);}else{for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")"){for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this;}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this;}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this;}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this;}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e){if(Array.isArray(e)){for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u){if(typeof u[i]=="number"){a.member=u;break;}}return a;},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d");}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors){for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));}}if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";}m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ");}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";}m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ");}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ");}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label); +}if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ");}m.push("
                                                                            ");}}return m.join("");},b$.jshint=b$,b$.edition="2011-04-16";return b$;}();typeof b=="object"&&b&&(b.JSHINT=d);}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null){return null;}if(d.match(/^[\s]*\.end[\s]*$/)){break;}c+="\n"+d;}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f;}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c);}d(a.trim())&&(a="");for(;;){try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f;}catch(g){if(!e.unexpectedEOF){throw g;}var h;do{c&&putstr(c),h=readline();if(!h){throw g;}}while(d(h.trim()));a+="\n"+h;}}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done){throw d.newSyntaxError("Syntax error");}return e;}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue;}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA)){break;}}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal trailing ,");}break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break;}throw a.newSyntaxError("Invalid property name");}if(a.match(COLON)){d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);}else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY){throw a.newSyntaxError("missing : after property");}c.push(f);}}else{if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal property accessor");}c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM));}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY);}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand");}return c;}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0)){return c;}do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA){throw a.newSyntaxError("Yield expression must be parenthesized");}if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA){throw a.newSyntaxError("Generator expression must be parenthesized");}}c.push(d);}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c;}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break;}default:a.unget();return d;}d=e;}return d;}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d);}return c;}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD)){d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;}return c;}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS)){d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;}return c;}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH)){d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;}return c;}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF)){d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;}return c;}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE)){d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;}return c;}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND)){d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;}return c;}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR)){d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;}return c;}function BitwiseOrExpression(a,b){var c,d; +c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR)){d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;}return c;}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND)){d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;}return c;}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR)){d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;}return c;}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON)){throw a.newSyntaxError("missing : after ?");}c.push(AssignExpression(a,b));}return c;}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0)){return ReturnOrYield(a,b);}c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN)){return d;}c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment");}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c;}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}c.push(AssignExpression(a,b));}while(a.match(COMMA));}return c;}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}if(c.type===COMMA&&!c.parenthesized){throw a.newSyntaxError("Generator expression must be parenthesized");}c=GeneratorExpression(a,b,c);}return c;}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e]){throw a.newSyntaxError("Unparenthesized head followed by unbraced body");}}return d;}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier");}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d);}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c;}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)});}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d;}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP){throw a.newSyntaxError("Invalid array comprehension left-hand side");}if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0){throw a.newSyntaxError("More than one switch default");}case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case");}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY){f.statements.push(Statement(a,l));}e.cases.push(f);}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1){throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);}f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f;}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT){f.destructuredNames=checkDestructuring(a,m,f);}e.iterator=f;}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach){throw a.newSyntaxError("Invalid for each..in loop");}e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m); +}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e;}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label);}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target){throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));}if(!e.target.isLoop&&j===CONTINUE){throw a.newSyntaxError("Invalid continue");}break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch");}if(a.match(IF)){if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal catch guard");}if(e.catchClauses.length&&!e.catchClauses.top().guard){throw a.newSyntaxError("Guarded catch after unguarded");}f.guard=Expression(a,b);}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f);}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock){throw a.newSyntaxError("Invalid try statement");}return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d)){throw a.newSyntaxError("Duplicate label");}a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e;}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end;}e.blockComments=n,MagicalSemicolon(a);return e;}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE){d.set(a,e);}else{if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f);}}}),this.node=a,this.exports=b,this.exportedModules=d;}function registerExport(a,b){function c(b,c){if(a.has(b)){throw new SyntaxError("multiple exports of "+b);}a.set(b,c);}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0){b+=c;}return b;},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export};}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null;}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op==="."){continue;}var node=opTokens;for(var i=0;i"9"){throw this.newSyntaxError("Missing exponent");}do{ch=a[this.cursor++];}while(ch>="0"&&ch<="9");this.cursor--;return !0;}return !1;},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor);}else{if(a==="x"||a==="X"){do{a=c[this.cursor++];}while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{if(a>="0"&&a<="7"){do{a=c[this.cursor++];}while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{this.cursor--,this.lexExponent(),b.value=0;}}}},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do{a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);}while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f);},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor);}else{b.type=DOT,b.assignOp=null,b.value=".";}},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor){throw this.newSyntaxError("Unterminated string literal");}while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1);},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\"){this.cursor++;}else{if(ch==="["){do{if(ch===undefined){throw this.newSyntaxError("Unterminated character class");}ch==="\\"&&this.cursor++,ch=input[this.cursor++];}while(ch!=="]");}else{if(ch===undefined){throw this.newSyntaxError("Unterminated regex");}}}}while(ch!=="/");do{ch=input[this.cursor++];}while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor));},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f;},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null){c+=a;}b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c;},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines){return b.type;}}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length){return b.type=END;}b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null){this.lexIdent(d);}else{if(a&&e==="/"){this.lexRegExp(e);}else{if(e in opTokens){this.lexOp(e);}else{if(e==="."){this.lexDot(e);}else{if(e>="1"&&e<="9"){this.lexNumber(e);}else{if(e==="0"){this.lexZeroNumber(e);}else{if(e==='"'||e==="'"){this.lexString(e);}else{if(!this.scanNewlines||e!=="\n"&&e!=="\r"){throw this.newSyntaxError("Illegal token");}e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++;}}}}}}}b.end=this.cursor;return b.type;},unget:function(){if(++this.lookahead===4){throw"PANIC: too much lookahead!";}this.tokenIndex=this.tokenIndex-1&3;},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b;},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length){return null;}var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16));}catch(d){return null;}this.cursor+=5;}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c;}return null;}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0;}catch(d){}f&&this.cursor++;return f?c:null;}};return{Tokenizer:Tokenizer};}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null;}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i;}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.CSharpHighlightRules=m;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/behaviour").Behaviour,j=function(){this.add("braces","insertion",function(B,A,z,y,x){if(x=="{"){var w=z.getSelectionRange(),v=y.doc.getTextRange(w);return v!==""?{text:"{"+v+"}",selection:!1}:{text:"{}",selection:[1,1]};}if(x=="}"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var r=y.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(r!==null){return{text:"",selection:[1,1]};}}}else{if(x=="\n"){var u=z.getCursorPosition(),t=y.doc.getLine(u.row),s=t.substring(u.column,u.column+1);if(s=="}"){var q=y.findMatchingBracket({row:u.row,column:u.column+1});if(!q){return !1;}var p=this.getNextLineIndent(B,t.substring(0,t.length-1),y.getTabString()),o=this.$getIndent(y.doc.getLine(q.row));return{text:"\n"+p+"\n"+o,selection:[1,p.length,1,p.length]};}}}return !1;}),this.add("braces","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="{"){var r=u.doc.getLine(t.start.row),q=r.substring(t.end.column,t.end.column+1);if(q=="}"){t.end.column++;return t;}}return !1;}),this.add("parens","insertion",function(y,x,w,v,u){if(u=="("){var t=w.getSelectionRange(),s=v.doc.getTextRange(t);return s!==""?{text:"("+s+")",selection:!1}:{text:"()",selection:[1,1]};}if(u==")"){var r=w.getCursorPosition(),q=v.doc.getLine(r.row),p=q.substring(r.column,r.column+1);if(p==")"){var o=v.$findOpeningBracket(")",{column:r.column+1,row:r.row});if(o!==null){return{text:"",selection:[1,1]};}}}return !1;}),this.add("parens","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=="("){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q==")"){t.end.column++;return t;}}return !1;}),this.add("string_dquotes","insertion",function(F,E,D,C,B){if(B=='"'){var A=D.getSelectionRange(),z=C.doc.getTextRange(A);if(z!==""){return{text:'"'+z+'"',selection:!1};}var y=D.getCursorPosition(),x=C.doc.getLine(y.row),w=x.substring(y.column-1,y.column);if(w=="\\"){return !1;}var v=C.getTokens(A.start.row,A.start.row)[0].tokens,u=0,t,s=-1;for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-mode-scala",function(a){define("ace/mode/scala",["require","exports","module","pilot/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle"],function(u,t,s){var r=u("pilot/oop"),q=u("ace/mode/javascript").Mode,p=u("ace/tokenizer").Tokenizer,o=u("ace/mode/scala_highlight_rules").ScalaHighlightRules,n=u("ace/mode/matching_brace_outdent").MatchingBraceOutdent,m=u("ace/mode/behaviour/cstyle").CstyleBehaviour,k=function(){this.$tokenizer=new p((new o).getRules()),this.$outdent=new n,this.$behaviour=new m;};r.inherits(k,q),function(){this.createWorker=function(b){return null;};}.call(k.prototype),t.Mode=k;}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(x,w,v){var u=x("pilot/oop"),t=x("ace/mode/text").Mode,s=x("ace/tokenizer").Tokenizer,r=x("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,q=x("ace/mode/matching_brace_outdent").MatchingBraceOutdent,p=x("ace/range").Range,o=x("ace/worker/worker_client").WorkerClient,n=x("ace/mode/behaviour/cstyle").CstyleBehaviour,m=function(){this.$tokenizer=new s((new r).getRules()),this.$outdent=new q,this.$behaviour=new n; };u.inherits(m,t),function(){this.toggleCommentLines=function(I,H,G,F){var E=!0,D=[],C=/^(\s*)\/\//;for(var B=G;B<=F;B++){if(!C.test(H.getLine(B))){E=!1;break;}}if(E){var A=new p(0,0,0,0);for(var B=G;B<=F;B++){var z=H.getLine(B),y=z.match(C);A.start.row=B,A.end.row=B,A.end.column=y[0].length,H.replace(A,y[1]);}}else{H.indentRows(G,F,"//");}},this.getNextLineIndent=function(k,j,D){var C=this.$getIndent(j),B=this.$tokenizer.getLineTokens(j,k),A=B.tokens,z=B.state;if(A.length&&A[A.length-1].type=="comment"){return C;}if(k=="start"){var y=j.match(/^.*[\{\(\[\:]\s*$/);y&&(C+=D);}else{if(k=="doc-start"){if(z=="start"){return"";}var y=j.match(/^\s*(\/?)\*/);y&&(y[1]&&(C+=" "),C+="* ");}}return C;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new o(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("jslint",function(g){var k=[];for(var j=0;j=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]};};m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/scala_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),e=p.arrayToMap("true|false".split("|")),h=p.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),g=p.arrayToMap("".split("|")); @@ -129,4 +117,4 @@ this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("do this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(b){return d.hasOwnProperty(b)?"keyword":f.hasOwnProperty(b)?"constant.language":e.hasOwnProperty(b)?"support.function":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|d)+"},{token:"string.regexp",regex:'/#"(?:.|(\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]};};o.inherits(k,m),h.ClojureHighlightRules=k;}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\)/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\))/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingParensOutdent=h;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-keybinding-vim",function(a){define("ace/keyboard/keybinding/vim",["require","exports","module","ace/keyboard/state_handler"],function(h,g,n){var m=h("ace/keyboard/state_handler").StateHandler,k=h("ace/keyboard/state_handler").matchCharacterOnly,j={start:[{key:"i",then:"insertMode"},{key:"d",then:"deleteMode"},{key:"a",exec:"gotoright",then:"insertMode"},{key:"shift-i",exec:"gotolinestart",then:"insertMode"},{key:"shift-a",exec:"gotolineend",then:"insertMode"},{key:"shift-c",exec:"removetolineend",then:"insertMode"},{key:"shift-r",exec:"overwrite",then:"replaceMode"},{regex:["([0-9]*)","(k|up)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(j|down|enter)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(l|right)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(h|left)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{key:"shift-g",exec:"gotoend"},{key:"b",exec:"gotowordleft"},{key:"e",exec:"gotowordright"},{key:"x",exec:"del"},{key:"shift-x",exec:"backspace"},{key:"shift-d",exec:"removetolineend"},{comment:"Catch some keyboard input to stop it here",match:k}],insertMode:[{key:"esc",then:"start"}],replaceMode:[{key:"esc",exec:"overwrite",then:"start"}],deleteMode:[{key:"d",exec:"removeline",then:"start"}]};g.Vim=new m(j);}),define("ace/keyboard/state_handler",["require","exports","module"],function(g,f,k){function h(b){this.keymapping=this.$buildKeymappingRegex(b);}var j=!1;h.prototype={$buildKeymappingRegex:function(b){for(state in b){this.$buildBindingsRegex(b[state]);}return b;},$buildBindingsRegex:function(b){b.forEach(function(c){c.key?c.key=new RegExp("^"+c.key+"$"):Array.isArray(c.regex)?(c.key=new RegExp("^"+c.regex[1]+"$"),c.regex=new RegExp(c.regex.join("")+"$")):c.regex&&(c.regex=new RegExp(c.regex+"$"));});},$composeBuffer:function(n,m,r){if(n.state==null||n.buffer==null){n.state="start",n.buffer="";}var q=[];m&1&&q.push("ctrl"),m&8&&q.push("command"),m&2&&q.push("option"),m&4&&q.push("shift"),r&&q.push(r);var p=q.join("-"),o=n.buffer+p;m!=2&&(n.buffer=o);return{bufferToUse:o,symbolicName:p};},$find:function(m,d,q,p,o){var n={};this.keymapping[m.state].some(function(r){var e;if(r.key&&!r.key.test(q)){return !1;}if(r.regex&&!(e=r.regex.exec(d))){return !1;}if(r.match&&!r.match(d,p,o,q)){return !1;}if(r.disallowMatches){for(var c=0;c=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(m,"doc-",[(new m).getEndRule("start")]);};p.inherits(j,k),r.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,n){var m=h("pilot/oop"),k=h("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; };m.inherits(j,k),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(j.prototype),g.DocCommentHighlightRules=j;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,k){var j=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(m,d){var r=m.getLine(d),q=r.match(/^(\s*\})/);if(!q){return 0;}var p=q[1].length,o=m.findMatchingBracket({row:d,column:p});if(!o||o.row==d){return 0;}var n=this.$getIndent(m.getLine(o.row));m.replace(new j(d,0,d,p-1),n);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,n){var m=h("pilot/oop"),k=h("pilot/event_emitter").EventEmitter,j=function(z,y,x,w){this.callbacks=[];if(h.packaged){var v=this.$guessBasePath(),u=this.$worker=new Worker(v+y);}else{var t=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),u=this.$worker=new Worker(t),s={};for(var r=0;rA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(p,o,v,u,t){var s=u.doc.getTextRange(t);if(!t.isMultiLine()&&s=='"'){var r=u.doc.getLine(t.start.row),q=r.substring(t.start.column+1,t.start.column+2);if(q=='"'){t.end.column++;return t;}}return !1;});};m.inherits(j,k),g.CstyleBehaviour=j;}),define("ace/mode/groovy_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(k,j,r){var q=k("pilot/oop"),p=k("pilot/lang"),o=k("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules,n=k("ace/mode/text_highlight_rules").TextHighlightRules,m=function(){var f=p.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),e=p.arrayToMap("null|Infinity|NaN|undefined".split("|")),h=p.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),g=p.arrayToMap("".split("|")); -this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.GroovyHighlightRules=m;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-textmate",function(a){define("ace/theme/textmate",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";j.importCssString(h),f.cssClass="ace-tm";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor",function(a){},"@VERSION@",{use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false}); +this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new o).getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(b){return b=="this"?"variable.language":f.hasOwnProperty(b)?"keyword":h.hasOwnProperty(b)?"support.function":g.hasOwnProperty(b)?"support.function":e.hasOwnProperty(b)?"constant.language":"identifier";},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(o,"doc-",[(new o).getEndRule("start")]);};q.inherits(m,n),j.GroovyHighlightRules=m;});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor-theme-textmate",function(a){define("ace/theme/textmate",["require","exports","module"],function(g,f,k){var j=g("pilot/dom"),h=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";j.importCssString(h),f.cssClass="ace-tm";});},"@VERSION@",{skinnable:false,requires:["aui-ace-editor-base"]});AUI.add("aui-ace-editor",function(a){},"@VERSION@",{use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-ace-editor/aui-ace-editor-mode-html-debug.js b/build/aui-ace-editor/aui-ace-editor-mode-html-debug.js index f4f1a900a30..923c72584db 100644 --- a/build/aui-ace-editor/aui-ace-editor-mode-html-debug.js +++ b/build/aui-ace-editor/aui-ace-editor-mode-html-debug.js @@ -1,4 +1,4 @@ AUI.add('aui-ace-editor-mode-html', function(A) { -define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/mode/css").Mode,h=a("ace/tokenizer").Tokenizer,i=a("ace/mode/html_highlight_rules").HtmlHighlightRules,j=a("ace/mode/behaviour/xml").XmlBehaviour,k=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g})};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(k.prototype),b.Mode=k}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:e},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a(d))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(l,"doc-",[(new l).getEndRule("start")]);};o.inherits(j,k),q.JavaScriptHighlightRules=j;}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(h,g,l){var k=h("pilot/oop"),j=h("ace/mode/text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}; };k.inherits(i,j),function(){this.getStartRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:b};},this.getEndRule=function(b){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:b};};}.call(i.prototype),g.DocCommentHighlightRules=i;}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(g,f,j){var i=g("ace/range").Range,h=function(){};(function(){this.checkOutdent=function(d,c){return/^\s+$/.test(d)?/^\s*\}/.test(c):!1;},this.autoOutdent=function(k,d){var p=k.getLine(d),o=p.match(/^(\s*\})/);if(!o){return 0;}var n=o[1].length,m=k.findMatchingBracket({row:d,column:n});if(!m||m.row==d){return 0;}var l=this.$getIndent(k.getLine(m.row));k.replace(new i(d,0,d,n-1),l);},this.$getIndent=function(d){var c=d.match(/^(\s+)/);return c?c[1]:"";};}).call(h.prototype),f.MatchingBraceOutdent=h;}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(h,g,l){var k=h("pilot/oop"),j=h("pilot/event_emitter").EventEmitter,i=function(y,x,w,v){this.callbacks=[];if(h.packaged){var u=this.$guessBasePath(),t=this.$worker=new Worker(u+x);}else{var s=this.$normalizePath(h.nameToUrl("ace/worker/worker",null,"_")),t=this.$worker=new Worker(s),r={};for(var q=0;qA.start.column){break;}u+=v[r].value.length;}if(!t||s<0&&t.type!=="comment"&&(t.type!=="string"||A.start.column!==t.value.length+u-1&&t.value.lastIndexOf('"')===t.value.length-1)){return{text:'""',selection:[1,1]};}if(t&&t.type==="string"){var q=x.substring(y.column,y.column+1);if(q=='"'){return{text:"",selection:[1,1]};}}}return !1;}),this.add("string_dquotes","deletion",function(n,m,t,s,r){var q=s.doc.getTextRange(r);if(!r.isMultiLine()&&q=='"'){var p=s.doc.getLine(r.start.row),o=p.substring(r.start.column+1,r.start.column+2);if(o=='"'){r.end.column++;return r;}}return !1;});};k.inherits(i,j),g.CstyleBehaviour=i;}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(t,s,r){var q=t("pilot/oop"),p=t("ace/mode/text").Mode,o=t("ace/tokenizer").Tokenizer,n=t("ace/mode/css_highlight_rules").CssHighlightRules,m=t("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=t("ace/worker/worker_client").WorkerClient,k=function(){this.$tokenizer=new o((new n).getRules()),this.$outdent=new m; };q.inherits(k,p),function(){this.getNextLineIndent=function(h,g,v){var u=this.$getIndent(g),j=this.$tokenizer.getLineTokens(g,h).tokens;if(j.length&&j[j.length-1].type=="comment"){return u;}var i=g.match(/^.*\{\s*$/);i&&(u+=v);return u;},this.checkOutdent=function(e,d,f){return this.$outdent.checkOutdent(d,f);},this.autoOutdent=function(e,d,f){this.$outdent.autoOutdent(d,f);},this.createWorker=function(e){var d=e.getDocument(),f=new l(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");f.call("setValue",[d.getValue()]),d.on("change",function(b){b.range={start:b.data.range.start,end:b.data.range.end},f.emit("change",b);}),f.on("csslint",function(g){var h=[];g.data.forEach(function(b){h.push({row:b.line-1,column:b.col-1,text:b.message,type:b.type,lint:b});}),e.setAnnotations(h);});};}.call(k.prototype),s.Mode=k;}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(i,h,n){var m=i("pilot/oop"),l=i("pilot/lang"),k=i("ace/mode/text_highlight_rules").TextHighlightRules,j=function(){function u(g){var f=[],B=g.split("");for(var A=0;A",next:h},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(e("attribute-list"));}function d(g,c){return[{token:"string",merge:!0,regex:".*"+g,next:c},{token:"string",merge:!0,regex:".+"}];}function e(b){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:b+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:b+"-qstring"}];}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":d("'","style"),"style-qqstring":d('"',"style"),"script-qstring":d("'","script"),"script-qqstring":d('"',"script"),"tag-qstring":d("'","tag"),"tag-qqstring":d('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},f(this.$rules,"tag","start"),f(this.$rules,"css","css-start"),f(this.$rules,"script","js-start"),this.embedRules(m,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(n,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}]);};o.inherits(k,l),i.HtmlHighlightRules=k;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(i,h,n){var m=i("pilot/oop"),l=i("ace/mode/behaviour").Behaviour,k=i("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.inherit(k,["string_dquotes"]),this.add("brackets","insertion",function(A,z,y,x,w){if(w=="<"){var v=y.getSelectionRange(),u=x.doc.getTextRange(v);return u!==""?!1:{text:"<>",selection:[1,1]};}if(w==">"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),r=s.substring(t.column,t.column+1);if(r==">"){return{text:"",selection:[1,1]};}}else{if(w=="\n"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),q=s.substring(t.column,t.column+2);if(q=="",next:b},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(e(g));}function d(g,c){return[{token:"string",merge:!0,regex:".*"+g,next:c},{token:"string",merge:!0,regex:".+"}];}function e(b){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:b+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:b+"-qstring"}];}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},f(this.$rules,"tag","start"),f(this.$rules,"css","css-start"),f(this.$rules,"script","js-start"),this.embedRules(m,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(n,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}]);};o.inherits(k,l),i.HtmlHighlightRules=k;}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(i,h,n){var m=i("pilot/oop"),l=i("ace/mode/behaviour").Behaviour,k=i("ace/mode/behaviour/cstyle").CstyleBehaviour,j=function(){this.inherit(k,["string_dquotes"]),this.add("brackets","insertion",function(A,z,y,x,w){if(w=="<"){var v=y.getSelectionRange(),u=x.doc.getTextRange(v);return u!==""?!1:{text:"<>",selection:[1,1]};}if(w==">"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),r=s.substring(t.column,t.column+1);if(r==">"){return{text:"",selection:[1,1]};}}else{if(w=="\n"){var t=y.getCursorPosition(),s=x.doc.getLine(t.row),q=s.substring(t.column,t.column+2);if(q=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:e},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a(d))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2){var n=arguments[1];}else{do{if(o in this){n=this[o++];break;}if(++o>=k){throw new TypeError;}}while(!0);}for(;o=2){var n=arguments[1];}else{do{if(o in this){n=this[o--];break;}if(--o<0){throw new TypeError;}}while(!0);}for(;o>=0;o--){o in this&&(n=m.call(null,n,this[o],o,this));}return n;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(m){var k=this.length;if(!k){return -1;}var n=arguments[1]||0;if(n>=k){return -1;}n<0&&(n+=k);for(;n=0;n--){if(!P(this,n)){continue;}if(m===this[n]){return n;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||k.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var J="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(m,k){if(typeof m!="object"&&typeof m!="function"||m===null){throw new TypeError(J+m);}if(!P(m,k)){return undefined;}var q,p,o;q={enumerable:!0,configurable:!0};if(K){var n=m.__proto__;m.__proto__=Q;var p=M(m,k),o=L(m,k);m.__proto__=n;if(p||o){p&&(descriptor.get=p),o&&(descriptor.set=o);return descriptor;}}descriptor.value=m[k];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k);}),Object.create||(Object.create=function(m,k){var o;if(m===null){o={"__proto__":null};}else{if(typeof m!="object"){throw new TypeError("typeof prototype["+typeof m+"] != 'object'");}var n=function(){};n.prototype=m,o=new n,o.__proto__=m;}typeof k!="undefined"&&Object.defineProperties(o,k);return o;});if(!Object.defineProperty){var I="Property description must be an object: ",H="Object.defineProperty called on non-object: ",G="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(m,k,o){if(typeof m!="object"&&typeof m!="function"){throw new TypeError(H+m);}if(typeof m!="object"||m===null){throw new TypeError(I+o);}if(P(o,"value")){if(K&&(M(m,k)||L(m,k))){var n=m.__proto__;m.__proto__=Q,delete m[k],m[k]=o.value,m.prototype;}else{m[k]=o.value;}}else{if(!K){throw new TypeError(G);}P(o,"get")&&O(m,k,o.get),P(o,"set")&&N(m,k,o.set);}return m;};}Object.defineProperties||(Object.defineProperties=function(m,k){for(var n in k){P(k,n)&&Object.defineProperty(m,n,k[n]);}return m;}),Object.seal||(Object.seal=function(k){return k;}),Object.freeze||(Object.freeze=function(k){return k;});try{Object.freeze(function(){});}catch(F){Object.freeze=function(m){return function k(n){return typeof n=="function"?n:m(n); -};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(k){return k;}),Object.isSealed||(Object.isSealed=function(k){return !1;}),Object.isFrozen||(Object.isFrozen=function(k){return !1;}),Object.isExtensible||(Object.isExtensible=function(k){return !0;});if(!Object.keys){var E=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=D.length;for(var B in {toString:null}){E=!1;}Object.keys=function y(n){if(typeof n!="object"&&typeof n!="function"||n===null){throw new TypeError("Object.keys called on a non-object");}var m=[];for(var k in n){P(n,k)&&m.push(k);}if(E){for(var q=0,p=C;q=7?new m(W,x,w,v,u,t,s):r>=6?new m(W,x,w,v,u,t):r>=5?new m(W,x,w,v,u):r>=4?new m(W,x,w,v):r>=3?new m(W,x,w):r>=2?new m(W,x):r>=1?new m(W):new m;q.constructor=k;return q;}return m.apply(this,arguments);},p=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var o in m){k[o]=m[o];}k.now=m.now,k.UTC=m.UTC,k.prototype=m.prototype,k.prototype.constructor=k,k.parse=function n(q){var u=p.exec(q);if(u){u.shift();var t=u[0]===undefined;for(var s=0;s<10;s++){if(s===7){continue;}u[s]=+(u[s]||(s<3?1:0)),s===1&&u[s]--;}if(t){return((u[3]*60+u[4])*60+u[5])*1000+u[6];}var r=(u[8]*60+u[9])*60*1000;u[6]==="-"&&(r=-r);return m.UTC.apply(this,u.slice(0,7))+r;}return m.parse.apply(this,arguments);};return k;}(Date));if(!String.prototype.trim){var A=/^\s\s*/,z=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(A,"").replace(z,"");};}}),f("pilot/event_emitter",["require","exports","module"],function(m,k,o){var n={};n._emit=n._dispatchEvent=function(q,p){this._eventRegistry=this._eventRegistry||{};var s=this._eventRegistry[q];if(!!s&&!!s.length){var p=p||{};p.type=q;for(var r=0;r=t&&(u.row=Math.max(0,t-1),u.column=this.getLine(t-1).length);return u;},this.insert=function(u,t){if(t.length==0){return u;}u=this.$clipPosition(u),this.getLength()<=1&&this.$detectNewLine(t);var x=this.$split(t),w=x.splice(0,1)[0],v=x.length==0?null:x.splice(x.length-1,1)[0];u=this.insertInLine(u,w),v!==null&&(u=this.insertNewLine(u),u=this.insertLines(u.row,x),u=this.insertInLine(u,v||""));return u;},this.insertLines=function(u,t){if(t.length==0){return{row:u,column:0};}var x=[u,0];x.push.apply(x,t),this.$lines.splice.apply(this.$lines,x);var w=new p(u,0,u+t.length,0),v={action:"insertLines",range:w,lines:t};this._dispatchEvent("change",{data:v});return w.end;},this.insertNewLine=function(u){u=this.$clipPosition(u);var t=this.$lines[u.row]||"";this.$lines[u.row]=t.substring(0,u.column),this.$lines.splice(u.row+1,0,t.substring(u.column,t.length));var w={row:u.row+1,column:0},v={action:"insertText",range:p.fromPoints(u,w),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});return w;},this.insertInLine=function(u,t){if(t.length==0){return u;}var x=this.$lines[u.row]||"";this.$lines[u.row]=x.substring(0,u.column)+t+x.substring(u.column);var w={row:u.row,column:u.column+t.length},v={action:"insertText",range:p.fromPoints(u,w),text:t};this._dispatchEvent("change",{data:v});return w;},this.remove=function(u){u.start=this.$clipPosition(u.start),u.end=this.$clipPosition(u.end);if(u.isEmpty()){return u.start;}var t=u.start.row,x=u.end.row;if(u.isMultiLine()){var w=u.start.column==0?t:t+1,v=x-1;u.end.column>0&&this.removeInLine(x,0,u.end.column),v>=w&&this.removeLines(w,v),w!=t&&(this.removeInLine(t,u.start.column,this.getLine(t).length),this.removeNewLine(u.start.row));}else{this.removeInLine(t,u.start.column,u.end.column);}return u.start;},this.removeInLine=function(u,t,A){if(t!=A){var z=new p(u,t,u,A),y=this.getLine(u),x=y.substring(t,A),w=y.substring(0,t)+y.substring(A,y.length);this.$lines.splice(u,1,w);var v={action:"removeText",range:z,text:x};this._dispatchEvent("change",{data:v});return z.start;}},this.removeLines=function(u,t){var x=new p(u,0,t+1,0),w=this.$lines.splice(u,t-u+1),v={action:"removeLines",range:x,nl:this.getNewLineCharacter(),lines:w};this._dispatchEvent("change",{data:v});return w;},this.removeNewLine=function(u){var t=this.getLine(u),y=this.getLine(u+1),x=new p(u,t.length,u+1,0),w=t+y;this.$lines.splice(u,2,w);var v={action:"removeText",range:x,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});},this.replace=function(u,t){if(t.length==0&&u.isEmpty()){return u.start;}if(t==this.getTextRange(u)){return u.end;}this.remove(u);if(t){var v=this.insert(u.start,t);}else{v=u.start;}return v;},this.applyDeltas=function(u){for(var t=0;t=0;t--){var w=u[t],v=p.fromPoints(w.range.start,w.range.end);w.action=="insertLines"?this.removeLines(v.start.row,v.end.row-1):w.action=="insertText"?this.remove(v):w.action=="removeLines"?this.insertLines(v.start.row,w.lines):w.action=="removeText"&&this.insert(v.start,w.text);}};}).call(n.prototype),k.Document=n;}),f("ace/range",["require","exports","module"],function(m,k,o){var n=function(q,p,s,r){this.start={row:q,column:p},this.end={row:s,column:r};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(q,p){return this.compare(q,p)==0;},this.compareRange=function(q){var p,s=q.end,r=q.start;p=this.compare(s.row,s.column);if(p==1){p=this.compare(r.row,r.column);return p==1?2:p==0?1:0;}if(p==-1){return -2;}p=this.compare(r.row,r.column);return p==-1?-1:p==1?42:0;},this.containsRange=function(q){var p=this.compareRange(q);return p==-1||p==0||p==1;},this.isEnd=function(q,p){return this.end.row==q&&this.end.column==p;},this.isStart=function(q,p){return this.start.row==q&&this.start.column==p;},this.setStart=function(q,p){typeof q=="object"?(this.start.column=q.column,this.start.row=q.row):(this.start.row=q,this.start.column=p);},this.setEnd=function(q,p){typeof q=="object"?(this.end.column=q.column,this.end.row=q.row):(this.end.row=q,this.end.column=p);},this.inside=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)||this.isStart(q,p)?!1:!0;}return !1;},this.insideStart=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)?!1:!0;}return !1;},this.insideEnd=function(q,p){if(this.compare(q,p)==0){return this.isStart(q,p)?!1:!0;}return !1;},this.compare=function(q,p){if(!this.isMultiLine()&&q===this.start.row){return pthis.end.column?1:0;}return qthis.end.row?1:this.start.row===q?p>=this.start.column?0:-1:this.end.row===q?p<=this.end.column?0:1:0;},this.compareStart=function(q,p){return this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.compareEnd=function(q,p){return this.end.row==q&&this.end.column==p?1:this.compare(q,p);},this.compareInside=function(q,p){return this.end.row==q&&this.end.column==p?1:this.start.row==q&&this.start.column==p?-1:this.compare(q,p); -},this.clipRows=function(q,p){if(this.end.row>p){var s={row:p+1,column:0};}if(this.start.row>p){var r={row:p+1,column:0};}if(this.start.rowthis.row){return;}if(v.start.row==this.row&&v.start.column>this.column){return;}var u=this.row,t=this.column;r.action==="insertText"?v.start.row===u&&v.start.column<=t?v.start.row===v.end.row?t+=v.end.column-v.start.column:(t-=v.start.column,u+=v.end.row-v.start.row):v.start.row!==v.end.row&&v.start.row=t?t=v.start.column:t=Math.max(0,t-(v.end.column-v.start.column)):v.start.row!==v.end.row&&v.start.row=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):s<0?(t.row=0,t.column=0):(t.row=s,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,r))),r<0&&(t.column=0);return t;};}).call(n.prototype);}),f("pilot/lang",["require","exports","module"],function(m,k,p){k.stringReverse=function(q){return q.split("").reverse().join("");},k.stringRepeat=function(r,q){return Array(q+1).join(r);};var o=/^\s\s*/,n=/\s\s*$/;k.stringTrimLeft=function(q){return q.replace(o,"");},k.stringTrimRight=function(q){return q.replace(n,"");},k.copyObject=function(r){var q={};for(var s in r){q[s]=r[s];}return q;},k.copyArray=function(r){var q=[];for(i=0,l=r.length;i=0||!t&&Z.call(aP,s)>=0){o=s.toUpperCase(),o==="WHEN"&&(m=this.tag(),Z.call(aB,m)>=0)?o="LEADING_WHEN":o==="FOR"?this.seenFor=!0:o==="UNLESS"?o="IF":Z.call(ah,o)>=0?o="UNARY":Z.call(an,o)>=0&&(o!=="INSTANCEOF"&&this.seenFor?(o="FOR"+o,this.seenFor=!1):(o="RELATION",this.value()==="!"&&(this.tokens.pop(),s="!"+s)));}Z.call(aD,s)>=0&&(t?(o="IDENTIFIER",s=new String(s),s.reserved=!0):Z.call(am,s)>=0&&this.identifierError(s)),t||(Z.call(aR,s)>=0&&(s=aQ[s]),o=function(){switch(s){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return o;}}()),this.token(o,s),u&&this.token(":",":");return r.length;},k.prototype.numberToken=function(){var n,m;if(!(n=aq.exec(this.chunk))){return 0;}m=n[0],this.token("NUMBER",m);return m.length;},k.prototype.stringToken=function(){var n,m;switch(this.chunk.charAt(0)){case"'":if(!(n=aj.exec(this.chunk))){return 0;}this.token("STRING",(m=n[0]).replace(aw,"\\\n"));break;case'"':if(!(m=this.balancedString(this.chunk,'"'))){return 0;}0=0)){return 0;}if(!(n=ao.exec(this.chunk))){return 0;}p=n[0],this.token("REGEX",p==="//"?"/(?:)/":p);return p.length;},k.prototype.heregexToken=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;y=B[0],A=B[1],z=B[2];if(0>A.indexOf("#{")){x=A.replace(aH,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(x||"(?:)")+"/"+z);return y.length;}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),v=[],r=this.interpolateString(A,{regex:!0});for(t=0,s=r.length;tthis.indent){if(q){this.indebt=o-this.indent,this.suppressNewlines();return m.length;}n=o-this.indent+this.outdebt,this.token("INDENT",n),this.indents.push(n),this.outdebt=this.indebt=0;}else{this.indebt=0,this.outdentToken(this.indent-o,q);}this.indent=o;return m.length;},k.prototype.outdentToken=function(n,m,q){var p,o;while(n>0){o=this.indents.length-1,this.indents[o]===void 0?n=0:this.indents[o]===this.outdebt?(n-=this.outdebt,this.outdebt=0):this.indents[o]=0)&&this.assignmentError();if((q=m[1])==="||"||q==="&&"){m[0]="COMPOUND_ASSIGN",m[1]+="=";return s.length;}}if(s===";"){t="TERMINATOR";}else{if(Z.call(ax,s)>=0){t="MATH";}else{if(Z.call(aN,s)>=0){t="COMPARE";}else{if(Z.call(aM,s)>=0){t="COMPOUND_ASSIGN";}else{if(Z.call(ah,s)>=0){t="UNARY";}else{if(Z.call(ak,s)>=0){t="SHIFT";}else{if(Z.call(az,s)>=0||s==="?"&&(m!=null?m.spaced:void 0)){t="LOGIC";}else{if(m&&!m.spaced){if(s==="("&&(p=m[0],Z.call(aT,p)>=0)){m[0]==="?"&&(m[0]="FUNC_EXIST"),t="CALL_START";}else{if(s==="["&&(o=m[0],Z.call(aF,o)>=0)){t="INDEX_START";switch(m[0]){case"?":m[0]="INDEX_SOAK";break;case"::":m[0]="INDEX_PROTO";}}}}}}}}}}}this.token(t,s);return s.length;},k.prototype.sanitizeHeredoc=function(n,m){var s,r,q,p,o;q=m.indent,r=m.herecomment;if(r){if(aK.test(n)){throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1)); -}if(n.indexOf("\n")<=0){return n;}}else{while(p=aJ.exec(n)){s=p[1];if(q===null||0<(o=s.length)&&oo;1<=o?s++:s--){switch(r=n.charAt(s)){case"\\":s++;continue;case m:p.pop();if(!p.length){return n.slice(0,s+1);}m=p[p.length-1];continue;}m!=="}"||r!=='"'&&r!=="'"?m==="}"&&r==="{"?p.push(m="}"):m==='"'&&q==="#"&&r==="{"&&p.push(m="}"):p.push(m=r),q=r;}throw new Error("missing "+p.pop()+", starting on line "+(this.line+1));},k.prototype.interpolateString=function(M,L){var K,J,I,H,G,F,E,D,C,B,A,z,y,x,w,v,u;L==null&&(L={}),J=L.heredoc,B=L.regex,z=[],C=0,I=-1;while(E=M.charAt(I+=1)){if(E==="\\"){I+=1;continue;}if(E!=="#"||M.charAt(I+1)!=="{"||!(K=this.balancedString(M.slice(I+1),"}"))){continue;}C1&&(D.unshift(["(","("]),D.push([")",")"])),z.push(["TOKENS",D]);}}I+=K.length,C=I+1;}I>C&&C1)&&this.token("(","(");for(I=0,x=z.length;I|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,ag=/^[^\n\S]+/,aO=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,aS=/^[-=]>/,av=/^(?:\n[^\n\S]*)+/,aj=/^'[^\\']*(?:\\.[^\\']*)*'/,aE=/^`[^\\`]*(?:\\.[^\\`]*)*`/,ao=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,aI=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,aH=/\s+(?:#.*)?/g,aw=/\n/g,aJ=/\n+([^\n\S]*)/g,aK=/\*\//,aV=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,aA=/^\s*(?:,|\??\.(?![.\d])|::)/,ai=/\s+$/,ar=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,aM=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],ah=["!","~","NEW","TYPEOF","DELETE","DO"],az=["&&","||","&","|","^"],ak=["<<",">>",">>>"],aN=["==","!=","<",">","<=",">="],ax=["*","/","%"],an=["IN","OF","INSTANCEOF"],aU=["TRUE","FALSE","NULL","UNDEFINED"],au=["NUMBER","REGEX","BOOL","++","--","]"],at=au.concat(")","}","THIS","IDENTIFIER","STRING"),aT=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],aF=aT.concat("NUMBER","BOOL"),aB=["INDENT","OUTDENT","TERMINATOR"];}),f("ace/mode/coffee/rewriter",["require","exports","module"],function(T,S,R){var Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,z,y=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k=0){s+=1;}else{if(o=r[0],y.call(O,o)>=0){s-=1;}}n+=1;}return n-1;},k.prototype.removeLeadingNewlines=function(){var n,m,p,o;o=this.tokens; -for(n=0,p=o.length;n=0)){p.splice(m,1);return 0;}return 1;});},k.prototype.closeOpenCalls=function(){var n,m;m=function(p,o){var q;return(q=p[0])===")"||q==="CALL_END"||p[0]==="OUTDENT"&&this.tag(o-1)===")";},n=function(p,o){return this.tokens[p[0]==="OUTDENT"?o-1:o][0]="CALL_END";};return this.scanTokens(function(p,o){p[0]==="CALL_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.closeOpenIndexes=function(){var n,m;m=function(p,o){var q;return(q=p[0])==="]"||q==="INDEX_END";},n=function(p,o){return p[0]="INDEX_END";};return this.scanTokens(function(p,o){p[0]==="INDEX_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.addImplicitBraces=function(){var n,m,q,p,o;q=[],p=null,o=0,m=function(s,r){var V,U,w,v,u,t;u=this.tokens.slice(r+1,r+3+1||9000000000),V=u[0],v=u[1],w=u[2];if("HERECOMMENT"===(V!=null?V[0]:void 0)){return !1;}U=s[0];return(U==="TERMINATOR"||U==="OUTDENT")&&(v!=null?v[0]:void 0)!==":"&&((V!=null?V[0]:void 0)!=="@"||(w!=null?w[0]:void 0)!==":")||U===","&&V&&(t=V[0])!=="IDENTIFIER"&&t!=="NUMBER"&&t!=="STRING"&&t!=="@"&&t!=="TERMINATOR"&&t!=="OUTDENT";},n=function(s,r){var t;t=["}","}",s[2]],t.generated=!0;return this.tokens.splice(r,0,t);};return this.scanTokens(function(X,W,V){var U,w,v,u,t,s,r;if(s=v=X[0],y.call(N,s)>=0){q.push([v==="INDENT"&&this.tag(W-1)==="{"?"{":v,W]);return 1;}if(y.call(O,v)>=0){p=q.pop();return 1;}if(v!==":"||(U=this.tag(W-2))!==":"&&((r=q[q.length-1])!=null?r[0]:void 0)==="{"){return 1;}q.push(["{"]),w=U==="@"?W-2:W-1;while(this.tag(w-2)==="HERECOMMENT"){w-=2;}t=new String("{"),t.generated=!0,u=["{",t,X[2]],u.generated=!0,V.splice(w,0,u),this.detectEnd(W+2,m,n);return 2;});},k.prototype.addImplicitParentheses=function(){var n,m;m=!1,n=function(p,o){var q;q=p[0]==="OUTDENT"?o+1:o;return this.tokens.splice(q,0,["CALL_END",")",p[2]]);};return this.scanTokens(function(ab,aa,Z){var Y,X,W,V,U,w,v,ae,ad,ac;v=ab[0];if(v==="CLASS"||v==="IF"){m=!0;}ae=Z.slice(aa-1,aa+1+1||9000000000),V=ae[0],X=ae[1],W=ae[2],Y=!m&&v==="INDENT"&&W&&W.generated&&W[0]==="{"&&V&&(ad=V[0],y.call(J,ad)>=0),w=!1,U=!1,y.call(G,v)>=0&&(m=!1),V&&!V.spaced&&v==="?"&&(ab.call=!0);if(ab.fromThen){return 1;}if(!(Y||(V!=null?V.spaced:void 0)&&(V.call||(ac=V[0],y.call(J,ac)>=0))&&(y.call(L,v)>=0||!ab.spaced&&!ab.newLine&&y.call(I,v)>=0))){return 1;}Z.splice(aa,0,["CALL_START","(",ab[2]]),this.detectEnd(aa+1,function(p,o){var r,q;v=p[0];if(!w&&p.fromThen){return !0;}if(v==="IF"||v==="ELSE"||v==="CATCH"||v==="->"||v==="=>"){w=!0;}if(v==="IF"||v==="ELSE"||v==="SWITCH"||v==="TRY"){U=!0;}return v!=="."&&v!=="?."&&v!=="::"||this.tag(o-1)!=="OUTDENT"?!p.generated&&this.tag(o-1)!==","&&(y.call(K,v)>=0||v==="INDENT"&&!U)&&(v!=="INDENT"||this.tag(o-2)!=="CLASS"&&(q=this.tag(o-1),y.call(M,q)<0)&&(!(r=this.tokens[o+1])||!r.generated||r[0]!=="{")):!0;},n),V[0]==="?"&&(V[0]="FUNC_EXIST");return 2;});},k.prototype.addImplicitIndentation=function(){return this.scanTokens(function(w,v,u){var t,s,r,q,p,o,n,m;o=w[0];if(o==="TERMINATOR"&&this.tag(v+1)==="THEN"){u.splice(v,1);return 0;}if(o==="ELSE"&&this.tag(v-1)!=="OUTDENT"){u.splice.apply(u,[v,0].concat(x.call(this.indentation(w))));return 2;}if(o!=="CATCH"||(n=this.tag(v+2))!=="OUTDENT"&&n!=="TERMINATOR"&&n!=="FINALLY"){if(y.call(E,o)>=0&&this.tag(v+1)!=="INDENT"&&(o!=="ELSE"||this.tag(v+1)!=="IF")){p=o,m=this.indentation(w),r=m[0],q=m[1],p==="THEN"&&(r.fromThen=!0),r.generated=q.generated=!0,u.splice(v+1,0,r),s=function(V,U){var W;return V[1]!==";"&&(W=V[0],y.call(F,W)>=0)&&(V[0]!=="ELSE"||p==="IF"||p==="THEN");},t=function(V,U){return this.tokens.splice(this.tag(U-1)===","?U-1:U,0,q);},this.detectEnd(v+2,s,t),o==="THEN"&&u.splice(v,1);return 1;}return 1;}u.splice.apply(u,[v+2,0].concat(x.call(this.indentation(w))));return 4;});},k.prototype.tagPostfixConditionals=function(){var m;m=function(o,n){var p;return(p=o[0])==="TERMINATOR"||p==="INDENT";};return this.scanTokens(function(n,p){var o;if(n[0]!=="IF"){return 1;}o=n,this.detectEnd(p+1,m,function(r,q){if(r[0]!=="INDENT"){return o[0]="POST_"+o[0];}});return 1;});},k.prototype.ensureBalance=function(Y){var X,W,V,U,w,v,u,t,s,r,q,p,o;V={},w={},p=this.tokens;for(t=0,r=p.length;t0){throw Error("unclosed "+U+" on line "+(w[U]+1));}}return this;},k.prototype.rewriteClosingParens=function(){var n,m,o;o=[],n={};for(m in H){n[m]=0;}return this.scanTokens(function(V,U,w){var v,u,t,s,r,q,p;if(p=r=V[0],y.call(N,p)>=0){o.push(V);return 1;}if(y.call(O,r)<0){return 1;}if(n[v=H[r]]>0){n[v]-=1,w.splice(U,1);return 0;}u=o.pop(),t=u[0],s=H[t];if(r===s){return 1;}n[t]+=1,q=[s,t==="INDENT"?u[1]:s],this.tag(U+2)===t?(w.splice(U+3,0,q),o.push(u)):w.splice(U,0,q);return 1;});},k.prototype.indentation=function(m){return[["INDENT",2,m[2]],["OUTDENT",2,m[2]]];},k.prototype.tag=function(n){var m;return(m=this.tokens[n])!=null?m[0]:void 0;};return k;}(),Q=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],H={},N=[],O=[];for(B=0,A=Q.length;B","=>","[","(","{","--","++"],I=["+","-"],M=["->","=>","{","[",","],K=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],E=["ELSE","->","=>","TRY","FINALLY","THEN"],F=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],G=["TERMINATOR","INDENT","OUTDENT"]; -}),f("ace/mode/coffee/helpers",["require","exports","module"],function(m,k,p){var o,n;k.starts=function(r,q,s){return q===r.substr(s,q.length);},k.ends=function(r,q,t){var s;s=q.length;return q===r.substr(r.length-s-(t||0),s);},k.compact=function(r){var q,u,t,s;s=[];for(u=0,t=r.length;u":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function o(s,r,y,x,w,v,u){var t=v.length-1;switch(w){case 1:return this.$=new x.Block;case 2:return this.$=v[t];case 3:return this.$=v[t-1];case 4:this.$=x.Block.wrap([v[t]]);break;case 5:this.$=v[t-2].push(v[t]);break;case 6:this.$=v[t-1];break;case 7:this.$=v[t];break;case 8:this.$=v[t];break;case 9:this.$=v[t];break;case 10:this.$=v[t];break;case 11:this.$=v[t];break;case 12:this.$=new x.Literal(v[t]);break;case 13:this.$=v[t];break;case 14:this.$=v[t];break;case 15:this.$=v[t];break;case 16:this.$=v[t];break;case 17:this.$=v[t];break;case 18:this.$=v[t];break;case 19:this.$=v[t];break;case 20:this.$=v[t];break;case 21:this.$=v[t];break;case 22:this.$=v[t];break;case 23:this.$=v[t];break;case 24:this.$=new x.Block;break;case 25:this.$=v[t-1];break;case 26:this.$=new x.Literal(v[t]);break;case 27:this.$=new x.Literal(v[t]);break;case 28:this.$=new x.Literal(v[t]);break;case 29:this.$=v[t];break;case 30:this.$=new x.Literal(v[t]);break;case 31:this.$=new x.Literal(v[t]);break;case 32:this.$=function(){var z;z=new x.Literal(v[t]),v[t]==="undefined"&&(z.isUndefined=!0);return z;}();break;case 33:this.$=new x.Assign(v[t-2],v[t]);break;case 34:this.$=new x.Assign(v[t-4],v[t-1]);break;case 35:this.$=new x.Value(v[t]);break;case 36:this.$=new x.Assign(new x.Value(v[t-2]),v[t],"object");break;case 37:this.$=new x.Assign(new x.Value(v[t-4]),v[t-1],"object");break;case 38:this.$=v[t];break;case 39:this.$=v[t];break; -case 40:this.$=v[t];break;case 41:this.$=v[t];break;case 42:this.$=new x.Return(v[t]);break;case 43:this.$=new x.Return;break;case 44:this.$=new x.Comment(v[t]);break;case 45:this.$=new x.Code(v[t-3],v[t],v[t-1]);break;case 46:this.$=new x.Code([],v[t],v[t-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=v[t];break;case 50:this.$=v[t];break;case 51:this.$=[];break;case 52:this.$=[v[t]];break;case 53:this.$=v[t-2].concat(v[t]);break;case 54:this.$=new x.Param(v[t]);break;case 55:this.$=new x.Param(v[t-1],null,!0);break;case 56:this.$=new x.Param(v[t-2],v[t]);break;case 57:this.$=v[t];break;case 58:this.$=v[t];break;case 59:this.$=v[t];break;case 60:this.$=v[t];break;case 61:this.$=new x.Splat(v[t-1]);break;case 62:this.$=new x.Value(v[t]);break;case 63:this.$=v[t-1].push(v[t]);break;case 64:this.$=new x.Value(v[t-1],[v[t]]);break;case 65:this.$=v[t];break;case 66:this.$=v[t];break;case 67:this.$=new x.Value(v[t]);break;case 68:this.$=new x.Value(v[t]);break;case 69:this.$=v[t];break;case 70:this.$=new x.Value(v[t]);break;case 71:this.$=new x.Value(v[t]);break;case 72:this.$=new x.Value(v[t]);break;case 73:this.$=v[t];break;case 74:this.$=new x.Access(v[t]);break;case 75:this.$=new x.Access(v[t],"soak");break;case 76:this.$=new x.Access(v[t],"proto");break;case 77:this.$=new x.Access(new x.Literal("prototype"));break;case 78:this.$=v[t];break;case 79:this.$=v[t-1];break;case 80:this.$=x.extend(v[t],{soak:!0});break;case 81:this.$=x.extend(v[t],{proto:!0});break;case 82:this.$=new x.Index(v[t]);break;case 83:this.$=new x.Slice(v[t]);break;case 84:this.$=new x.Obj(v[t-2],v[t-3].generated);break;case 85:this.$=[];break;case 86:this.$=[v[t]];break;case 87:this.$=v[t-2].concat(v[t]);break;case 88:this.$=v[t-3].concat(v[t]);break;case 89:this.$=v[t-5].concat(v[t-2]);break;case 90:this.$=new x.Class;break;case 91:this.$=new x.Class(null,null,v[t]);break;case 92:this.$=new x.Class(null,v[t]);break;case 93:this.$=new x.Class(null,v[t-1],v[t]);break;case 94:this.$=new x.Class(v[t]);break;case 95:this.$=new x.Class(v[t-1],null,v[t]);break;case 96:this.$=new x.Class(v[t-2],v[t]);break;case 97:this.$=new x.Class(v[t-3],v[t-1],v[t]);break;case 98:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 99:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 100:this.$=new x.Call("super",[new x.Splat(new x.Literal("arguments"))]);break;case 101:this.$=new x.Call("super",v[t]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=v[t-2];break;case 106:this.$=new x.Value(new x.Literal("this"));break;case 107:this.$=new x.Value(new x.Literal("this"));break;case 108:this.$=new x.Value(new x.Literal("this"),[new x.Access(v[t])],"this");break;case 109:this.$=new x.Arr([]);break;case 110:this.$=new x.Arr(v[t-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new x.Range(v[t-3],v[t-1],v[t-2]);break;case 114:this.$=new x.Range(v[t-2],v[t],v[t-1]);break;case 115:this.$=new x.Range(v[t-1],null,v[t]);break;case 116:this.$=new x.Range(null,v[t],v[t-1]);break;case 117:this.$=[v[t]];break;case 118:this.$=v[t-2].concat(v[t]);break;case 119:this.$=v[t-3].concat(v[t]);break;case 120:this.$=v[t-2];break;case 121:this.$=v[t-5].concat(v[t-2]);break;case 122:this.$=v[t];break;case 123:this.$=v[t];break;case 124:this.$=v[t];break;case 125:this.$=[].concat(v[t-2],v[t]);break;case 126:this.$=new x.Try(v[t]);break;case 127:this.$=new x.Try(v[t-1],v[t][0],v[t][1]);break;case 128:this.$=new x.Try(v[t-2],null,null,v[t]);break;case 129:this.$=new x.Try(v[t-3],v[t-2][0],v[t-2][1],v[t]);break;case 130:this.$=[v[t-1],v[t]];break;case 131:this.$=new x.Throw(v[t]);break;case 132:this.$=new x.Parens(v[t-1]);break;case 133:this.$=new x.Parens(v[t-2]);break;case 134:this.$=new x.While(v[t]);break;case 135:this.$=new x.While(v[t-2],{guard:v[t]});break;case 136:this.$=new x.While(v[t],{invert:!0});break;case 137:this.$=new x.While(v[t-2],{invert:!0,guard:v[t]});break;case 138:this.$=v[t-1].addBody(v[t]);break;case 139:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 140:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 141:this.$=v[t];break;case 142:this.$=(new x.While(new x.Literal("true"))).addBody(v[t]);break;case 143:this.$=(new x.While(new x.Literal("true"))).addBody(x.Block.wrap([v[t]]));break;case 144:this.$=new x.For(v[t-1],v[t]);break;case 145:this.$=new x.For(v[t-1],v[t]);break;case 146:this.$=new x.For(v[t],v[t-1]);break;case 147:this.$={source:new x.Value(v[t])};break;case 148:this.$=function(){v[t].own=v[t-1].own,v[t].name=v[t-1][0],v[t].index=v[t-1][1];return v[t];}();break;case 149:this.$=v[t];break;case 150:this.$=function(){v[t].own=!0;return v[t];}();break;case 151:this.$=v[t];break;case 152:this.$=new x.Value(v[t]);break;case 153:this.$=new x.Value(v[t]);break;case 154:this.$=[v[t]];break;case 155:this.$=[v[t-2],v[t]];break;case 156:this.$={source:v[t]};break;case 157:this.$={source:v[t],object:!0};break;case 158:this.$={source:v[t-2],guard:v[t]};break;case 159:this.$={source:v[t-2],guard:v[t],object:!0};break;case 160:this.$={source:v[t-2],step:v[t]};break;case 161:this.$={source:v[t-4],guard:v[t-2],step:v[t]};break;case 162:this.$={source:v[t-4],step:v[t-2],guard:v[t]};break;case 163:this.$=new x.Switch(v[t-3],v[t-1]);break;case 164:this.$=new x.Switch(v[t-5],v[t-3],v[t-1]);break;case 165:this.$=new x.Switch(null,v[t-1]);break;case 166:this.$=new x.Switch(null,v[t-3],v[t-1]);break;case 167:this.$=v[t];break;case 168:this.$=v[t-1].concat(v[t]);break;case 169:this.$=[[v[t-1],v[t]]];break;case 170:this.$=[[v[t-2],v[t-1]]];break;case 171:this.$=new x.If(v[t-1],v[t],{type:v[t-2]});break;case 172:this.$=v[t-4].addElse(new x.If(v[t-1],v[t],{type:v[t-2]}));break;case 173:this.$=v[t];break;case 174:this.$=v[t-2].addElse(v[t]);break;case 175:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 176:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 177:this.$=new x.Op(v[t-1],v[t]); -break;case 178:this.$=new x.Op("-",v[t]);break;case 179:this.$=new x.Op("+",v[t]);break;case 180:this.$=new x.Op("--",v[t]);break;case 181:this.$=new x.Op("++",v[t]);break;case 182:this.$=new x.Op("--",v[t-1],null,!0);break;case 183:this.$=new x.Op("++",v[t-1],null,!0);break;case 184:this.$=new x.Existence(v[t-1]);break;case 185:this.$=new x.Op("+",v[t-2],v[t]);break;case 186:this.$=new x.Op("-",v[t-2],v[t]);break;case 187:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 188:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 189:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 190:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 191:this.$=function(){return v[t-1].charAt(0)==="!"?(new x.Op(v[t-1].slice(1),v[t-2],v[t])).invert():new x.Op(v[t-1],v[t-2],v[t]);}();break;case 192:this.$=new x.Assign(v[t-2],v[t],v[t-1]);break;case 193:this.$=new x.Assign(v[t-4],v[t-1],v[t-3]);break;case 194:this.$=new x.Extends(v[t-2],v[t]);}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(s,r){throw new Error(s); +AUI.add("aui-ace-editor-worker-coffee",function(a){function g(){var m=b("pilot/event_emitter").EventEmitter,k=b("pilot/oop"),n=function(){};(function(){k.implement(this,m),this.callback=function(p,o){postMessage({type:"call",id:o,data:p});},this.emit=function(p,o){postMessage({type:"event",name:p,data:o});};}).call(n.prototype);return new n;}function j(k){b.tlns=k;}var d={log:function(k){postMessage({type:"log",data:k});}},h={console:d},b=function(m){var k=b.modules[m];if(k){k.initialized||(k.exports=k.factory().exports,k.initialized=!0);return k.exports;}var n=m.split("/");n[0]=b.tlns[n[0]]||n[0],path=n.join("/")+".js",b.id=m,importScripts(path);return b(m);};b.modules={},b.tlns={};var f=function(m,k,n){arguments.length==2?n=k:arguments.length==1&&(n=m,m=b.id);m.indexOf("text/")!==0&&(b.modules[m]={factory:function(){var p={exports:{}},o=n(b,p.exports,p);o&&(p.exports=o);return p;}});},c,e;onmessage=function(m){var k=m.data;if(k.command){c[k.command].apply(c,k.args);}else{if(k.init){j(k.tlns),b("pilot/fixoldbrowsers"),e=g();var n=b(k.module)[k.classname];c=new n(e);}else{k.event&&e&&e._dispatchEvent(k.event,k.data);}}},f("pilot/fixoldbrowsers",["require","exports","module","pilot/regexp"],function(X,V,U){X("pilot/regexp");if(!Function.prototype.bind){var T=Array.prototype.slice;Function.prototype.bind=function(m){var k=this;if(typeof k.apply!="function"||typeof k.call!="function"){return new TypeError;}var p=T.call(arguments),o=function n(){if(this instanceof n){var q=Object.create(k.prototype);k.apply(q,p.concat(T.call(arguments)));return q;}return k.call.apply(k,p.concat(T.call(arguments)));};o.length=typeof k=="function"?Math.max(k.length-p.length,0):0;return o;};}var S=Function.prototype.call,R=Array.prototype,Q=Object.prototype,P=S.bind(Q.hasOwnProperty),O,N,M,L,K;if(K=P(Q,"__defineGetter__")){O=S.bind(Q.__defineGetter__),N=S.bind(Q.__defineSetter__),M=S.bind(Q.__lookupGetter__),L=S.bind(Q.__lookupSetter__);}Array.isArray||(Array.isArray=function(k){return Object.prototype.toString.call(k)==="[object Array]";}),Array.prototype.forEach||(Array.prototype.forEach=function(m,k){var o=+this.length;for(var n=0;n=2){var n=arguments[1];}else{do{if(o in this){n=this[o++];break;}if(++o>=k){throw new TypeError;}}while(!0);}for(;o=2){var n=arguments[1];}else{do{if(o in this){n=this[o--];break;}if(--o<0){throw new TypeError;}}while(!0);}for(;o>=0;o--){o in this&&(n=m.call(null,n,this[o],o,this));}return n;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(m){var k=this.length;if(!k){return -1;}var n=arguments[1]||0;if(n>=k){return -1;}n<0&&(n+=k);for(;n=0;n--){if(!P(this,n)){continue;}if(m===this[n]){return n;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(k){return k.__proto__||k.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var J="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(m,k){if(typeof m!="object"&&typeof m!="function"||m===null){throw new TypeError(J+m);}if(!P(m,k)){return undefined;}var q,p,o;q={enumerable:!0,configurable:!0};if(K){var n=m.__proto__;m.__proto__=Q;var p=M(m,k),o=L(m,k);m.__proto__=n;if(p||o){p&&(descriptor.get=p),o&&(descriptor.set=o);return descriptor;}}descriptor.value=m[k];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(k){return Object.keys(k);}),Object.create||(Object.create=function(m,k){var o;if(m===null){o={"__proto__":null};}else{if(typeof m!="object"){throw new TypeError("typeof prototype["+typeof m+"] != 'object'");}var n=function(){};n.prototype=m,o=new n,o.__proto__=m;}typeof k!="undefined"&&Object.defineProperties(o,k);return o;});if(!Object.defineProperty){var I="Property description must be an object: ",H="Object.defineProperty called on non-object: ",G="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(m,k,o){if(typeof m!="object"&&typeof m!="function"){throw new TypeError(H+m);}if(typeof m!="object"||m===null){throw new TypeError(I+o);}if(P(o,"value")){if(K&&(M(m,k)||L(m,k))){var n=m.__proto__;m.__proto__=Q,delete m[k],m[k]=o.value,m.prototype;}else{m[k]=o.value;}}else{if(!K){throw new TypeError(G);}P(o,"get")&&O(m,k,o.get),P(o,"set")&&N(m,k,o.set);}return m;};}Object.defineProperties||(Object.defineProperties=function(m,k){for(var n in k){P(k,n)&&Object.defineProperty(m,n,k[n]);}return m;}),Object.seal||(Object.seal=function(k){return k;}),Object.freeze||(Object.freeze=function(k){return k;});try{Object.freeze(function(){});}catch(F){Object.freeze=function(m){return function k(n){return typeof n=="function"?n:m(n); +};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(k){return k;}),Object.isSealed||(Object.isSealed=function(k){return !1;}),Object.isFrozen||(Object.isFrozen=function(k){return !1;}),Object.isExtensible||(Object.isExtensible=function(k){return !0;});if(!Object.keys){var E=!0,D=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=D.length;for(var B in {toString:null}){E=!1;}Object.keys=function y(n){if(typeof n!="object"&&typeof n!="function"||n===null){throw new TypeError("Object.keys called on a non-object");}var m=[];for(var k in n){P(n,k)&&m.push(k);}if(E){for(var q=0,p=C;q=7?new m(W,x,w,v,u,t,s):r>=6?new m(W,x,w,v,u,t):r>=5?new m(W,x,w,v,u):r>=4?new m(W,x,w,v):r>=3?new m(W,x,w):r>=2?new m(W,x):r>=1?new m(W):new m;q.constructor=k;return q;}return m.apply(this,arguments);},p=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var o in m){k[o]=m[o];}k.now=m.now,k.UTC=m.UTC,k.prototype=m.prototype,k.prototype.constructor=k,k.parse=function n(q){var u=p.exec(q);if(u){u.shift();var t=u[0]===undefined;for(var s=0;s<10;s++){if(s===7){continue;}u[s]=+(u[s]||(s<3?1:0)),s===1&&u[s]--;}if(t){return((u[3]*60+u[4])*60+u[5])*1000+u[6];}var r=(u[8]*60+u[9])*60*1000;u[6]==="-"&&(r=-r);return m.UTC.apply(this,u.slice(0,7))+r;}return m.parse.apply(this,arguments);};return k;}(Date));if(!String.prototype.trim){var A=/^\s\s*/,z=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(A,"").replace(z,"");};}}),f("pilot/regexp",["require","exports","module"],function(m,k,s){function n(u,t,w){if(Array.prototype.indexOf){return u.indexOf(t,w);}for(var v=w||0;v1&&n(t,"")>-1&&(w=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(u.slice(t.index),w,function(){for(var y=1;yt.index&&this.lastIndex--;}return t;},p||(RegExp.prototype.test=function(u){var t=r.exec.call(this,u);t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--;return !!t;});}),f("pilot/event_emitter",["require","exports","module"],function(m,k,o){var n={};n._emit=n._dispatchEvent=function(q,p){this._eventRegistry=this._eventRegistry||{};var s=this._eventRegistry[q];if(!!s&&!!s.length){var p=p||{};p.type=q;for(var r=0;r=t&&(u.row=Math.max(0,t-1),u.column=this.getLine(t-1).length);return u;},this.insert=function(u,t){if(t.length==0){return u;}u=this.$clipPosition(u),this.getLength()<=1&&this.$detectNewLine(t);var x=this.$split(t),w=x.splice(0,1)[0],v=x.length==0?null:x.splice(x.length-1,1)[0];u=this.insertInLine(u,w),v!==null&&(u=this.insertNewLine(u),u=this.insertLines(u.row,x),u=this.insertInLine(u,v||""));return u;},this.insertLines=function(u,t){if(t.length==0){return{row:u,column:0};}var x=[u,0];x.push.apply(x,t),this.$lines.splice.apply(this.$lines,x);var w=new p(u,0,u+t.length,0),v={action:"insertLines",range:w,lines:t};this._dispatchEvent("change",{data:v});return w.end;},this.insertNewLine=function(u){u=this.$clipPosition(u);var t=this.$lines[u.row]||"";this.$lines[u.row]=t.substring(0,u.column),this.$lines.splice(u.row+1,0,t.substring(u.column,t.length));var w={row:u.row+1,column:0},v={action:"insertText",range:p.fromPoints(u,w),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});return w;},this.insertInLine=function(u,t){if(t.length==0){return u;}var x=this.$lines[u.row]||"";this.$lines[u.row]=x.substring(0,u.column)+t+x.substring(u.column);var w={row:u.row,column:u.column+t.length},v={action:"insertText",range:p.fromPoints(u,w),text:t};this._dispatchEvent("change",{data:v});return w;},this.remove=function(u){u.start=this.$clipPosition(u.start),u.end=this.$clipPosition(u.end);if(u.isEmpty()){return u.start;}var t=u.start.row,x=u.end.row;if(u.isMultiLine()){var w=u.start.column==0?t:t+1,v=x-1;u.end.column>0&&this.removeInLine(x,0,u.end.column),v>=w&&this.removeLines(w,v),w!=t&&(this.removeInLine(t,u.start.column,this.getLine(t).length),this.removeNewLine(u.start.row));}else{this.removeInLine(t,u.start.column,u.end.column);}return u.start;},this.removeInLine=function(u,t,A){if(t!=A){var z=new p(u,t,u,A),y=this.getLine(u),x=y.substring(t,A),w=y.substring(0,t)+y.substring(A,y.length);this.$lines.splice(u,1,w);var v={action:"removeText",range:z,text:x};this._dispatchEvent("change",{data:v});return z.start;}},this.removeLines=function(u,t){var x=new p(u,0,t+1,0),w=this.$lines.splice(u,t-u+1),v={action:"removeLines",range:x,nl:this.getNewLineCharacter(),lines:w};this._dispatchEvent("change",{data:v});return w;},this.removeNewLine=function(u){var t=this.getLine(u),y=this.getLine(u+1),x=new p(u,t.length,u+1,0),w=t+y;this.$lines.splice(u,2,w);var v={action:"removeText",range:x,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:v});},this.replace=function(u,t){if(t.length==0&&u.isEmpty()){return u.start;}if(t==this.getTextRange(u)){return u.end;}this.remove(u);if(t){var v=this.insert(u.start,t);}else{v=u.start;}return v;},this.applyDeltas=function(u){for(var t=0;t=0;t--){var w=u[t],v=p.fromPoints(w.range.start,w.range.end);w.action=="insertLines"?this.removeLines(v.start.row,v.end.row-1):w.action=="insertText"?this.remove(v):w.action=="removeLines"?this.insertLines(v.start.row,w.lines):w.action=="removeText"&&this.insert(v.start,w.text);}};}).call(n.prototype),k.Document=n;}),f("ace/range",["require","exports","module"],function(m,k,o){var n=function(q,p,s,r){this.start={row:q,column:p},this.end={row:s,column:r};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(q,p){return this.compare(q,p)==0;},this.compareRange=function(q){var p,s=q.end,r=q.start;p=this.compare(s.row,s.column);if(p==1){p=this.compare(r.row,r.column);return p==1?2:p==0?1:0;}if(p==-1){return -2;}p=this.compare(r.row,r.column);return p==-1?-1:p==1?42:0;},this.containsRange=function(q){var p=this.compareRange(q); +return p==-1||p==0||p==1;},this.isEnd=function(q,p){return this.end.row==q&&this.end.column==p;},this.isStart=function(q,p){return this.start.row==q&&this.start.column==p;},this.setStart=function(q,p){typeof q=="object"?(this.start.column=q.column,this.start.row=q.row):(this.start.row=q,this.start.column=p);},this.setEnd=function(q,p){typeof q=="object"?(this.end.column=q.column,this.end.row=q.row):(this.end.row=q,this.end.column=p);},this.inside=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)||this.isStart(q,p)?!1:!0;}return !1;},this.insideStart=function(q,p){if(this.compare(q,p)==0){return this.isEnd(q,p)?!1:!0;}return !1;},this.insideEnd=function(q,p){if(this.compare(q,p)==0){return this.isStart(q,p)?!1:!0;}return !1;},this.compare=function(q,p){if(!this.isMultiLine()&&q===this.start.row){return pthis.end.column?1:0;}return qthis.end.row?1:this.start.row===q?p>=this.start.column?0:-1:this.end.row===q?p<=this.end.column?0:1:0;},this.compareStart=function(q,p){return this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.compareEnd=function(q,p){return this.end.row==q&&this.end.column==p?1:this.compare(q,p);},this.compareInside=function(q,p){return this.end.row==q&&this.end.column==p?1:this.start.row==q&&this.start.column==p?-1:this.compare(q,p);},this.clipRows=function(q,p){if(this.end.row>p){var s={row:p+1,column:0};}if(this.start.row>p){var r={row:p+1,column:0};}if(this.start.rowthis.row){return;}if(v.start.row==this.row&&v.start.column>this.column){return;}var u=this.row,t=this.column;r.action==="insertText"?v.start.row===u&&v.start.column<=t?v.start.row===v.end.row?t+=v.end.column-v.start.column:(t-=v.start.column,u+=v.end.row-v.start.row):v.start.row!==v.end.row&&v.start.row=t?t=v.start.column:t=Math.max(0,t-(v.end.column-v.start.column)):v.start.row!==v.end.row&&v.start.row=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):s<0?(t.row=0,t.column=0):(t.row=s,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,r))),r<0&&(t.column=0);return t;};}).call(n.prototype);}),f("pilot/lang",["require","exports","module"],function(m,k,p){k.stringReverse=function(q){return q.split("").reverse().join("");},k.stringRepeat=function(r,q){return Array(q+1).join(r);};var o=/^\s\s*/,n=/\s\s*$/;k.stringTrimLeft=function(q){return q.replace(o,"");},k.stringTrimRight=function(q){return q.replace(n,"");},k.copyObject=function(r){var q={};for(var s in r){q[s]=r[s];}return q;},k.copyArray=function(r){var q=[];for(i=0,l=r.length;i=0||!t&&Z.call(aP,s)>=0){o=s.toUpperCase(),o==="WHEN"&&(m=this.tag(),Z.call(aB,m)>=0)?o="LEADING_WHEN":o==="FOR"?this.seenFor=!0:o==="UNLESS"?o="IF":Z.call(ah,o)>=0?o="UNARY":Z.call(an,o)>=0&&(o!=="INSTANCEOF"&&this.seenFor?(o="FOR"+o,this.seenFor=!1):(o="RELATION",this.value()==="!"&&(this.tokens.pop(),s="!"+s)));}Z.call(aD,s)>=0&&(t?(o="IDENTIFIER",s=new String(s),s.reserved=!0):Z.call(am,s)>=0&&this.identifierError(s)),t||(Z.call(aR,s)>=0&&(s=aQ[s]),o=function(){switch(s){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return o;}}()),this.token(o,s),u&&this.token(":",":");return r.length;},k.prototype.numberToken=function(){var n,m;if(!(n=aq.exec(this.chunk))){return 0;}m=n[0],this.token("NUMBER",m);return m.length;},k.prototype.stringToken=function(){var n,m;switch(this.chunk.charAt(0)){case"'":if(!(n=aj.exec(this.chunk))){return 0;}this.token("STRING",(m=n[0]).replace(aw,"\\\n"));break;case'"':if(!(m=this.balancedString(this.chunk,'"'))){return 0;}0=0)){return 0;}if(!(n=ao.exec(this.chunk))){return 0;}p=n[0],this.token("REGEX",p==="//"?"/(?:)/":p);return p.length;},k.prototype.heregexToken=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;y=B[0],A=B[1],z=B[2];if(0>A.indexOf("#{")){x=A.replace(aH,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(x||"(?:)")+"/"+z);return y.length;}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),v=[],r=this.interpolateString(A,{regex:!0});for(t=0,s=r.length;tthis.indent){if(q){this.indebt=o-this.indent,this.suppressNewlines();return m.length;}n=o-this.indent+this.outdebt,this.token("INDENT",n),this.indents.push(n),this.outdebt=this.indebt=0;}else{this.indebt=0,this.outdentToken(this.indent-o,q);}this.indent=o;return m.length;},k.prototype.outdentToken=function(n,m,q){var p,o;while(n>0){o=this.indents.length-1,this.indents[o]===void 0?n=0:this.indents[o]===this.outdebt?(n-=this.outdebt,this.outdebt=0):this.indents[o]=0)&&this.assignmentError();if((q=m[1])==="||"||q==="&&"){m[0]="COMPOUND_ASSIGN",m[1]+="=";return s.length;}}if(s===";"){t="TERMINATOR";}else{if(Z.call(ax,s)>=0){t="MATH";}else{if(Z.call(aN,s)>=0){t="COMPARE";}else{if(Z.call(aM,s)>=0){t="COMPOUND_ASSIGN";}else{if(Z.call(ah,s)>=0){t="UNARY";}else{if(Z.call(ak,s)>=0){t="SHIFT";}else{if(Z.call(az,s)>=0||s==="?"&&(m!=null?m.spaced:void 0)){t="LOGIC";}else{if(m&&!m.spaced){if(s==="("&&(p=m[0],Z.call(aT,p)>=0)){m[0]==="?"&&(m[0]="FUNC_EXIST"),t="CALL_START";}else{if(s==="["&&(o=m[0],Z.call(aF,o)>=0)){t="INDEX_START";switch(m[0]){case"?":m[0]="INDEX_SOAK";break;case"::":m[0]="INDEX_PROTO";}}}}}}}}}}}this.token(t,s);return s.length;},k.prototype.sanitizeHeredoc=function(n,m){var s,r,q,p,o;q=m.indent,r=m.herecomment;if(r){if(aK.test(n)){throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));}if(n.indexOf("\n")<=0){return n;}}else{while(p=aJ.exec(n)){s=p[1];if(q===null||0<(o=s.length)&&oo;1<=o?s++:s--){switch(r=n.charAt(s)){case"\\":s++;continue;case m:p.pop();if(!p.length){return n.slice(0,s+1);}m=p[p.length-1];continue;}m!=="}"||r!=='"'&&r!=="'"?m==="}"&&r==="{"?p.push(m="}"):m==='"'&&q==="#"&&r==="{"&&p.push(m="}"):p.push(m=r),q=r;}throw new Error("missing "+p.pop()+", starting on line "+(this.line+1));},k.prototype.interpolateString=function(M,L){var K,J,I,H,G,F,E,D,C,B,A,z,y,x,w,v,u;L==null&&(L={}),J=L.heredoc,B=L.regex,z=[],C=0,I=-1;while(E=M.charAt(I+=1)){if(E==="\\"){I+=1;continue;}if(E!=="#"||M.charAt(I+1)!=="{"||!(K=this.balancedString(M.slice(I+1),"}"))){continue;}C1&&(D.unshift(["(","("]),D.push([")",")"])),z.push(["TOKENS",D]);}}I+=K.length,C=I+1;}I>C&&C1)&&this.token("(","(");for(I=0,x=z.length;I|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,ag=/^[^\n\S]+/,aO=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,aS=/^[-=]>/,av=/^(?:\n[^\n\S]*)+/,aj=/^'[^\\']*(?:\\.[^\\']*)*'/,aE=/^`[^\\`]*(?:\\.[^\\`]*)*`/,ao=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,aI=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,aH=/\s+(?:#.*)?/g,aw=/\n/g,aJ=/\n+([^\n\S]*)/g,aK=/\*\//,aV=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,aA=/^\s*(?:,|\??\.(?![.\d])|::)/,ai=/\s+$/,ar=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,aM=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],ah=["!","~","NEW","TYPEOF","DELETE","DO"],az=["&&","||","&","|","^"],ak=["<<",">>",">>>"],aN=["==","!=","<",">","<=",">="],ax=["*","/","%"],an=["IN","OF","INSTANCEOF"],aU=["TRUE","FALSE","NULL","UNDEFINED"],au=["NUMBER","REGEX","BOOL","++","--","]"],at=au.concat(")","}","THIS","IDENTIFIER","STRING"),aT=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],aF=aT.concat("NUMBER","BOOL"),aB=["INDENT","OUTDENT","TERMINATOR"]; +}),f("ace/mode/coffee/rewriter",["require","exports","module"],function(T,S,R){var Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,z,y=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k=0){s+=1;}else{if(o=r[0],y.call(O,o)>=0){s-=1;}}n+=1;}return n-1;},k.prototype.removeLeadingNewlines=function(){var n,m,p,o;o=this.tokens;for(n=0,p=o.length;n=0)){p.splice(m,1);return 0;}return 1;});},k.prototype.closeOpenCalls=function(){var n,m;m=function(p,o){var q;return(q=p[0])===")"||q==="CALL_END"||p[0]==="OUTDENT"&&this.tag(o-1)===")";},n=function(p,o){return this.tokens[p[0]==="OUTDENT"?o-1:o][0]="CALL_END";};return this.scanTokens(function(p,o){p[0]==="CALL_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.closeOpenIndexes=function(){var n,m;m=function(p,o){var q;return(q=p[0])==="]"||q==="INDEX_END";},n=function(p,o){return p[0]="INDEX_END";};return this.scanTokens(function(p,o){p[0]==="INDEX_START"&&this.detectEnd(o+1,m,n);return 1;});},k.prototype.addImplicitBraces=function(){var n,m,q,p,o;q=[],p=null,o=0,m=function(s,r){var V,U,w,v,u,t;u=this.tokens.slice(r+1,r+3+1||9000000000),V=u[0],v=u[1],w=u[2];if("HERECOMMENT"===(V!=null?V[0]:void 0)){return !1;}U=s[0];return(U==="TERMINATOR"||U==="OUTDENT")&&(v!=null?v[0]:void 0)!==":"&&((V!=null?V[0]:void 0)!=="@"||(w!=null?w[0]:void 0)!==":")||U===","&&V&&(t=V[0])!=="IDENTIFIER"&&t!=="NUMBER"&&t!=="STRING"&&t!=="@"&&t!=="TERMINATOR"&&t!=="OUTDENT";},n=function(s,r){var t;t=["}","}",s[2]],t.generated=!0;return this.tokens.splice(r,0,t);};return this.scanTokens(function(X,W,V){var U,w,v,u,t,s,r;if(s=v=X[0],y.call(N,s)>=0){q.push([v==="INDENT"&&this.tag(W-1)==="{"?"{":v,W]);return 1;}if(y.call(O,v)>=0){p=q.pop();return 1;}if(v!==":"||(U=this.tag(W-2))!==":"&&((r=q[q.length-1])!=null?r[0]:void 0)==="{"){return 1;}q.push(["{"]),w=U==="@"?W-2:W-1;while(this.tag(w-2)==="HERECOMMENT"){w-=2;}t=new String("{"),t.generated=!0,u=["{",t,X[2]],u.generated=!0,V.splice(w,0,u),this.detectEnd(W+2,m,n);return 2;});},k.prototype.addImplicitParentheses=function(){var n,m;m=!1,n=function(p,o){var q;q=p[0]==="OUTDENT"?o+1:o;return this.tokens.splice(q,0,["CALL_END",")",p[2]]);};return this.scanTokens(function(ab,aa,Z){var Y,X,W,V,U,w,v,ae,ad,ac;v=ab[0];if(v==="CLASS"||v==="IF"){m=!0;}ae=Z.slice(aa-1,aa+1+1||9000000000),V=ae[0],X=ae[1],W=ae[2],Y=!m&&v==="INDENT"&&W&&W.generated&&W[0]==="{"&&V&&(ad=V[0],y.call(J,ad)>=0),w=!1,U=!1,y.call(G,v)>=0&&(m=!1),V&&!V.spaced&&v==="?"&&(ab.call=!0);if(ab.fromThen){return 1;}if(!(Y||(V!=null?V.spaced:void 0)&&(V.call||(ac=V[0],y.call(J,ac)>=0))&&(y.call(L,v)>=0||!ab.spaced&&!ab.newLine&&y.call(I,v)>=0))){return 1;}Z.splice(aa,0,["CALL_START","(",ab[2]]),this.detectEnd(aa+1,function(p,o){var r,q;v=p[0];if(!w&&p.fromThen){return !0;}if(v==="IF"||v==="ELSE"||v==="CATCH"||v==="->"||v==="=>"){w=!0;}if(v==="IF"||v==="ELSE"||v==="SWITCH"||v==="TRY"){U=!0;}return v!=="."&&v!=="?."&&v!=="::"||this.tag(o-1)!=="OUTDENT"?!p.generated&&this.tag(o-1)!==","&&(y.call(K,v)>=0||v==="INDENT"&&!U)&&(v!=="INDENT"||this.tag(o-2)!=="CLASS"&&(q=this.tag(o-1),y.call(M,q)<0)&&(!(r=this.tokens[o+1])||!r.generated||r[0]!=="{")):!0;},n),V[0]==="?"&&(V[0]="FUNC_EXIST");return 2;});},k.prototype.addImplicitIndentation=function(){return this.scanTokens(function(w,v,u){var t,s,r,q,p,o,n,m;o=w[0];if(o==="TERMINATOR"&&this.tag(v+1)==="THEN"){u.splice(v,1);return 0;}if(o==="ELSE"&&this.tag(v-1)!=="OUTDENT"){u.splice.apply(u,[v,0].concat(x.call(this.indentation(w))));return 2;}if(o!=="CATCH"||(n=this.tag(v+2))!=="OUTDENT"&&n!=="TERMINATOR"&&n!=="FINALLY"){if(y.call(E,o)>=0&&this.tag(v+1)!=="INDENT"&&(o!=="ELSE"||this.tag(v+1)!=="IF")){p=o,m=this.indentation(w),r=m[0],q=m[1],p==="THEN"&&(r.fromThen=!0),r.generated=q.generated=!0,u.splice(v+1,0,r),s=function(V,U){var W;return V[1]!==";"&&(W=V[0],y.call(F,W)>=0)&&(V[0]!=="ELSE"||p==="IF"||p==="THEN");},t=function(V,U){return this.tokens.splice(this.tag(U-1)===","?U-1:U,0,q);},this.detectEnd(v+2,s,t),o==="THEN"&&u.splice(v,1);return 1;}return 1;}u.splice.apply(u,[v+2,0].concat(x.call(this.indentation(w))));return 4;});},k.prototype.tagPostfixConditionals=function(){var m;m=function(o,n){var p;return(p=o[0])==="TERMINATOR"||p==="INDENT";};return this.scanTokens(function(n,p){var o;if(n[0]!=="IF"){return 1;}o=n,this.detectEnd(p+1,m,function(r,q){if(r[0]!=="INDENT"){return o[0]="POST_"+o[0];}});return 1;});},k.prototype.ensureBalance=function(Y){var X,W,V,U,w,v,u,t,s,r,q,p,o;V={},w={},p=this.tokens;for(t=0,r=p.length;t0){throw Error("unclosed "+U+" on line "+(w[U]+1));}}return this;},k.prototype.rewriteClosingParens=function(){var n,m,o;o=[],n={};for(m in H){n[m]=0;}return this.scanTokens(function(V,U,w){var v,u,t,s,r,q,p;if(p=r=V[0],y.call(N,p)>=0){o.push(V);return 1;}if(y.call(O,r)<0){return 1;}if(n[v=H[r]]>0){n[v]-=1,w.splice(U,1); +return 0;}u=o.pop(),t=u[0],s=H[t];if(r===s){return 1;}n[t]+=1,q=[s,t==="INDENT"?u[1]:s],this.tag(U+2)===t?(w.splice(U+3,0,q),o.push(u)):w.splice(U,0,q);return 1;});},k.prototype.indentation=function(m){return[["INDENT",2,m[2]],["OUTDENT",2,m[2]]];},k.prototype.tag=function(n){var m;return(m=this.tokens[n])!=null?m[0]:void 0;};return k;}(),Q=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],H={},N=[],O=[];for(B=0,A=Q.length;B","=>","[","(","{","--","++"],I=["+","-"],M=["->","=>","{","[",","],K=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],E=["ELSE","->","=>","TRY","FINALLY","THEN"],F=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],G=["TERMINATOR","INDENT","OUTDENT"];}),f("ace/mode/coffee/helpers",["require","exports","module"],function(m,k,p){var o,n;k.starts=function(r,q,s){return q===r.substr(s,q.length);},k.ends=function(r,q,t){var s;s=q.length;return q===r.substr(r.length-s-(t||0),s);},k.compact=function(r){var q,u,t,s;s=[];for(u=0,t=r.length;u":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function o(s,r,y,x,w,v,u){var t=v.length-1;switch(w){case 1:return this.$=new x.Block;case 2:return this.$=v[t];case 3:return this.$=v[t-1];case 4:this.$=x.Block.wrap([v[t]]);break;case 5:this.$=v[t-2].push(v[t]);break;case 6:this.$=v[t-1];break;case 7:this.$=v[t];break;case 8:this.$=v[t];break;case 9:this.$=v[t];break;case 10:this.$=v[t]; +break;case 11:this.$=v[t];break;case 12:this.$=new x.Literal(v[t]);break;case 13:this.$=v[t];break;case 14:this.$=v[t];break;case 15:this.$=v[t];break;case 16:this.$=v[t];break;case 17:this.$=v[t];break;case 18:this.$=v[t];break;case 19:this.$=v[t];break;case 20:this.$=v[t];break;case 21:this.$=v[t];break;case 22:this.$=v[t];break;case 23:this.$=v[t];break;case 24:this.$=new x.Block;break;case 25:this.$=v[t-1];break;case 26:this.$=new x.Literal(v[t]);break;case 27:this.$=new x.Literal(v[t]);break;case 28:this.$=new x.Literal(v[t]);break;case 29:this.$=v[t];break;case 30:this.$=new x.Literal(v[t]);break;case 31:this.$=new x.Literal(v[t]);break;case 32:this.$=function(){var z;z=new x.Literal(v[t]),v[t]==="undefined"&&(z.isUndefined=!0);return z;}();break;case 33:this.$=new x.Assign(v[t-2],v[t]);break;case 34:this.$=new x.Assign(v[t-4],v[t-1]);break;case 35:this.$=new x.Value(v[t]);break;case 36:this.$=new x.Assign(new x.Value(v[t-2]),v[t],"object");break;case 37:this.$=new x.Assign(new x.Value(v[t-4]),v[t-1],"object");break;case 38:this.$=v[t];break;case 39:this.$=v[t];break;case 40:this.$=v[t];break;case 41:this.$=v[t];break;case 42:this.$=new x.Return(v[t]);break;case 43:this.$=new x.Return;break;case 44:this.$=new x.Comment(v[t]);break;case 45:this.$=new x.Code(v[t-3],v[t],v[t-1]);break;case 46:this.$=new x.Code([],v[t],v[t-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=v[t];break;case 50:this.$=v[t];break;case 51:this.$=[];break;case 52:this.$=[v[t]];break;case 53:this.$=v[t-2].concat(v[t]);break;case 54:this.$=new x.Param(v[t]);break;case 55:this.$=new x.Param(v[t-1],null,!0);break;case 56:this.$=new x.Param(v[t-2],v[t]);break;case 57:this.$=v[t];break;case 58:this.$=v[t];break;case 59:this.$=v[t];break;case 60:this.$=v[t];break;case 61:this.$=new x.Splat(v[t-1]);break;case 62:this.$=new x.Value(v[t]);break;case 63:this.$=v[t-1].push(v[t]);break;case 64:this.$=new x.Value(v[t-1],[v[t]]);break;case 65:this.$=v[t];break;case 66:this.$=v[t];break;case 67:this.$=new x.Value(v[t]);break;case 68:this.$=new x.Value(v[t]);break;case 69:this.$=v[t];break;case 70:this.$=new x.Value(v[t]);break;case 71:this.$=new x.Value(v[t]);break;case 72:this.$=new x.Value(v[t]);break;case 73:this.$=v[t];break;case 74:this.$=new x.Access(v[t]);break;case 75:this.$=new x.Access(v[t],"soak");break;case 76:this.$=new x.Access(v[t],"proto");break;case 77:this.$=new x.Access(new x.Literal("prototype"));break;case 78:this.$=v[t];break;case 79:this.$=v[t-1];break;case 80:this.$=x.extend(v[t],{soak:!0});break;case 81:this.$=x.extend(v[t],{proto:!0});break;case 82:this.$=new x.Index(v[t]);break;case 83:this.$=new x.Slice(v[t]);break;case 84:this.$=new x.Obj(v[t-2],v[t-3].generated);break;case 85:this.$=[];break;case 86:this.$=[v[t]];break;case 87:this.$=v[t-2].concat(v[t]);break;case 88:this.$=v[t-3].concat(v[t]);break;case 89:this.$=v[t-5].concat(v[t-2]);break;case 90:this.$=new x.Class;break;case 91:this.$=new x.Class(null,null,v[t]);break;case 92:this.$=new x.Class(null,v[t]);break;case 93:this.$=new x.Class(null,v[t-1],v[t]);break;case 94:this.$=new x.Class(v[t]);break;case 95:this.$=new x.Class(v[t-1],null,v[t]);break;case 96:this.$=new x.Class(v[t-2],v[t]);break;case 97:this.$=new x.Class(v[t-3],v[t-1],v[t]);break;case 98:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 99:this.$=new x.Call(v[t-2],v[t],v[t-1]);break;case 100:this.$=new x.Call("super",[new x.Splat(new x.Literal("arguments"))]);break;case 101:this.$=new x.Call("super",v[t]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=v[t-2];break;case 106:this.$=new x.Value(new x.Literal("this"));break;case 107:this.$=new x.Value(new x.Literal("this"));break;case 108:this.$=new x.Value(new x.Literal("this"),[new x.Access(v[t])],"this");break;case 109:this.$=new x.Arr([]);break;case 110:this.$=new x.Arr(v[t-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new x.Range(v[t-3],v[t-1],v[t-2]);break;case 114:this.$=new x.Range(v[t-2],v[t],v[t-1]);break;case 115:this.$=new x.Range(v[t-1],null,v[t]);break;case 116:this.$=new x.Range(null,v[t],v[t-1]);break;case 117:this.$=[v[t]];break;case 118:this.$=v[t-2].concat(v[t]);break;case 119:this.$=v[t-3].concat(v[t]);break;case 120:this.$=v[t-2];break;case 121:this.$=v[t-5].concat(v[t-2]);break;case 122:this.$=v[t];break;case 123:this.$=v[t];break;case 124:this.$=v[t];break;case 125:this.$=[].concat(v[t-2],v[t]);break;case 126:this.$=new x.Try(v[t]);break;case 127:this.$=new x.Try(v[t-1],v[t][0],v[t][1]);break;case 128:this.$=new x.Try(v[t-2],null,null,v[t]);break;case 129:this.$=new x.Try(v[t-3],v[t-2][0],v[t-2][1],v[t]);break;case 130:this.$=[v[t-1],v[t]];break;case 131:this.$=new x.Throw(v[t]);break;case 132:this.$=new x.Parens(v[t-1]);break;case 133:this.$=new x.Parens(v[t-2]);break;case 134:this.$=new x.While(v[t]);break;case 135:this.$=new x.While(v[t-2],{guard:v[t]});break;case 136:this.$=new x.While(v[t],{invert:!0});break;case 137:this.$=new x.While(v[t-2],{invert:!0,guard:v[t]});break;case 138:this.$=v[t-1].addBody(v[t]);break;case 139:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 140:this.$=v[t].addBody(x.Block.wrap([v[t-1]]));break;case 141:this.$=v[t];break;case 142:this.$=(new x.While(new x.Literal("true"))).addBody(v[t]);break;case 143:this.$=(new x.While(new x.Literal("true"))).addBody(x.Block.wrap([v[t]]));break;case 144:this.$=new x.For(v[t-1],v[t]);break;case 145:this.$=new x.For(v[t-1],v[t]);break;case 146:this.$=new x.For(v[t],v[t-1]);break;case 147:this.$={source:new x.Value(v[t])};break;case 148:this.$=function(){v[t].own=v[t-1].own,v[t].name=v[t-1][0],v[t].index=v[t-1][1];return v[t];}();break;case 149:this.$=v[t];break;case 150:this.$=function(){v[t].own=!0;return v[t];}();break;case 151:this.$=v[t];break;case 152:this.$=new x.Value(v[t]);break;case 153:this.$=new x.Value(v[t]);break;case 154:this.$=[v[t]];break;case 155:this.$=[v[t-2],v[t]];break;case 156:this.$={source:v[t]}; +break;case 157:this.$={source:v[t],object:!0};break;case 158:this.$={source:v[t-2],guard:v[t]};break;case 159:this.$={source:v[t-2],guard:v[t],object:!0};break;case 160:this.$={source:v[t-2],step:v[t]};break;case 161:this.$={source:v[t-4],guard:v[t-2],step:v[t]};break;case 162:this.$={source:v[t-4],step:v[t-2],guard:v[t]};break;case 163:this.$=new x.Switch(v[t-3],v[t-1]);break;case 164:this.$=new x.Switch(v[t-5],v[t-3],v[t-1]);break;case 165:this.$=new x.Switch(null,v[t-1]);break;case 166:this.$=new x.Switch(null,v[t-3],v[t-1]);break;case 167:this.$=v[t];break;case 168:this.$=v[t-1].concat(v[t]);break;case 169:this.$=[[v[t-1],v[t]]];break;case 170:this.$=[[v[t-2],v[t-1]]];break;case 171:this.$=new x.If(v[t-1],v[t],{type:v[t-2]});break;case 172:this.$=v[t-4].addElse(new x.If(v[t-1],v[t],{type:v[t-2]}));break;case 173:this.$=v[t];break;case 174:this.$=v[t-2].addElse(v[t]);break;case 175:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 176:this.$=new x.If(v[t],x.Block.wrap([v[t-2]]),{type:v[t-1],statement:!0});break;case 177:this.$=new x.Op(v[t-1],v[t]);break;case 178:this.$=new x.Op("-",v[t]);break;case 179:this.$=new x.Op("+",v[t]);break;case 180:this.$=new x.Op("--",v[t]);break;case 181:this.$=new x.Op("++",v[t]);break;case 182:this.$=new x.Op("--",v[t-1],null,!0);break;case 183:this.$=new x.Op("++",v[t-1],null,!0);break;case 184:this.$=new x.Existence(v[t-1]);break;case 185:this.$=new x.Op("+",v[t-2],v[t]);break;case 186:this.$=new x.Op("-",v[t-2],v[t]);break;case 187:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 188:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 189:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 190:this.$=new x.Op(v[t-1],v[t-2],v[t]);break;case 191:this.$=function(){return v[t-1].charAt(0)==="!"?(new x.Op(v[t-1].slice(1),v[t-2],v[t])).invert():new x.Op(v[t-1],v[t-2],v[t]);}();break;case 192:this.$=new x.Assign(v[t-2],v[t],v[t-1]);break;case 193:this.$=new x.Assign(v[t-4],v[t-1],v[t-3]);break;case 194:this.$=new x.Extends(v[t-2],v[t]);}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(s,r){throw new Error(s); },parse:function n(ab){function N(){var r;r=aa.lexer.lex()||1,typeof r!="number"&&(r=aa.symbols_[r]||r);return r;}function O(r){Z.length=Z.length-2*r,Y.length=Y.length-r,X.length=X.length-r;}var aa=this,Z=[0],Y=[null],X=[],W=this.table,V="",U=0,T=0,S=0,R=2,Q=1;this.lexer.setInput(ab),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var P=this.lexer.yylloc;X.push(P),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var M,K,J,I,H,G,F={},E,D,C,B;for(;;){J=Z[Z.length-1],this.defaultActions[J]?I=this.defaultActions[J]:(M==null&&(M=N()),I=W[J]&&W[J][M]);if(typeof I=="undefined"||!I.length||!I[0]){if(!S){B=[];for(E in W[J]){this.terminals_[E]&&E>2&&B.push("'"+this.terminals_[E]+"'");}var L="";this.lexer.showPosition?L="Parse error on line "+(U+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+B.join(", "):L="Parse error on line "+(U+1)+": Unexpected "+(M==1?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(L,{text:this.lexer.match,token:this.terminals_[M]||M,line:this.lexer.yylineno,loc:P,expected:B});}if(S==3){if(M==Q){throw new Error(L||"Parsing halted.");}T=this.lexer.yyleng,V=this.lexer.yytext,U=this.lexer.yylineno,P=this.lexer.yylloc,M=N();}for(;;){if(R.toString() in W[J]){break;}if(J==0){throw new Error(L||"Parsing halted.");}O(1),J=Z[Z.length-1];}K=M,M=R,J=Z[Z.length-1],I=W[J]&&W[J][R],S=3;}if(I[0] instanceof Array&&I.length>1){throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+M);}switch(I[0]){case 1:Z.push(M),Y.push(this.lexer.yytext),X.push(this.lexer.yylloc),Z.push(I[1]),M=null,K?(M=K,K=null):(T=this.lexer.yyleng,V=this.lexer.yytext,U=this.lexer.yylineno,P=this.lexer.yylloc,S>0&&S--);break;case 2:D=this.productions_[I[1]][1],F.$=Y[Y.length-D],F._$={first_line:X[X.length-(D||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(D||1)].first_column,last_column:X[X.length-1].last_column},G=this.performAction.call(F,V,T,U,this.yy,I[1],Y,X);if(typeof G!="undefined"){return G;}D&&(Z=Z.slice(0,-1*D*2),Y=Y.slice(0,-1*D),X=X.slice(0,-1*D)),Z.push(this.productions_[I[1]][0]),Y.push(F.$),X.push(F._$),C=W[Z[Z.length-2]][Z[Z.length-1]],Z.push(C);break;case 3:return !0;}}return !0;}};q.exports=p;}),f("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(bp,bn,a8){var a6,a4,a2,a0,aY,aW,aU,aS,aQ,aP,aO,aN,aM,aL,aK,aJ,aI,aH,aG,aF,aE,aD,aC,aA,az,ay,ax,aw,av,au,at,ar,aq,ap,ao,an,am,al,ak,aj,ai,ah,ag,af,ae,ad,ac,ab,aa,aB,bs,br,bq,bo,a9,a7,a5,a3,a1,aZ,aX=Object.prototype.hasOwnProperty,aV=function(m,k){function n(){this.constructor=m;}for(var o in k){aX.call(k,o)&&(m[o]=k[o]);}n.prototype=k.prototype,m.prototype=new n,m.__super__=k.prototype;return m;},aT=function(m,k){return function(){return m.apply(k,arguments);};},aR=Array.prototype.indexOf||function(m){for(var k=0,n=this.length;k1&&n.level>=aE?"("+m+")":m;},k.prototype.compileRoot=function(n){var m;n.indent=this.tab=n.bare?"":ai,n.scope=new am(null,this,null),n.level=aA,m=this.compileWithDeclarations(n);return n.bare?m:"(function() {\n"+m+"\n}).call(this);\n";},k.prototype.compileWithDeclarations=function(w){var v,u,t,s,r,q,p,o,n,m;u=q="",m=this.expressions;for(r=0,n=m.length;r=aG?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+m+";":m;},k.prototype.toString=function(){return' "'+this.value+'"';};return k;}(),bn.Return=ao=function(){function k(m){m&&!m.unwrap().isUndefined&&(this.expression=m);}aV(k,a0),k.prototype.children=["expression"],k.prototype.isStatement=ab,k.prototype.makeReturn=ah,k.prototype.jumps=ah,k.prototype.compile=function(m,p){var o,n;o=(n=this.expression)!=null?n.makeReturn():void 0;return !o||o instanceof k?k.__super__.compile.call(this,m,p):o.compile(m,p);},k.prototype.compileNode=function(m){return this.tab+("return"+(this.expression?" "+this.expression.compile(m,aC):"")+";");};return k;}(),bn.Value=ad=function(){function k(m,o,n){if(!o&&m instanceof k){return m;}this.base=m,this.properties=o||[],n&&(this[n]=!0);return this;}aV(k,a0),k.prototype.children=["base","properties"],k.prototype.push=function(m){this.properties.push(m);return this;},k.prototype.hasProperties=function(){return !!this.properties.length;},k.prototype.isArray=function(){return !this.properties.length&&this.base instanceof a4;},k.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex();},k.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable();},k.prototype.isSimpleNumber=function(){return this.base instanceof az&&an.test(this.base.value);},k.prototype.isAtomic=function(){var n,m,p,o;o=this.properties.concat(this.base);for(m=0,p=o.length;m"+this.equals],s=o[0],v=o[1],x=this.stepNum?x=+this.stepNum>0?""+s+" "+this.toVar:""+v+" "+this.toVar:t?(n=[+this.fromNum,+this.toNum],w=n[0],q=n[1],n,x=w<=q?""+s+" "+q:""+v+" "+q):(y=""+this.fromVar+" <= "+this.toVar,x=""+y+" ? "+s+" "+this.toVar+" : "+v+" "+this.toVar),r=this.stepVar?""+u+" += "+this.stepVar:t?w<=q?""+u+"++":""+u+"--":""+y+" ? "+u+"++ : "+u+"--";return""+p+"; "+x+"; "+r;},k.prototype.compileArray=function(B){var A,z,y,x,w,v,u,t,s,r,q,p,o;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){u=function(){o=[];for(var n=q=+this.fromNum,m=+this.toNum;q<=m?n<=m:n>=m;q<=m?n++:n--){o.push(n);}return o;}.apply(this,arguments),this.exclusive&&u.pop();return"["+u.join(", ")+"]";}x=this.tab+ai,y=B.scope.freeVariable("i"),t=B.scope.freeVariable("results"),v="\n"+x+t+" = [];",this.fromNum&&this.toNum?(B.index=y,A=this.compileNode(B)):(s=""+y+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),z=""+this.fromVar+" <= "+this.toVar,A="var "+s+"; "+z+" ? "+y+" <"+this.equals+" "+this.toVar+" : "+y+" >"+this.equals+" "+this.toVar+"; "+z+" ? "+y+"++ : "+y+"--"),w="{ "+t+".push("+y+"); }\n"+x+"return "+t+";\n"+B.indent; diff --git a/build/aui-ace-editor/aui-ace-editor-worker-coffee.js b/build/aui-ace-editor/aui-ace-editor-worker-coffee.js index 431fa140e7c..89e62f149da 100644 --- a/build/aui-ace-editor/aui-ace-editor-worker-coffee.js +++ b/build/aui-ace-editor/aui-ace-editor-worker-coffee.js @@ -1,4 +1,4 @@ AUI.add('aui-ace-editor-worker-coffee', function(A) { -function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); -}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b); -},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type;},LA:function(a){var b=a,c;if(a>0){if(a>5){throw new Error("Too much lookahead.");}while(b){c=this.get(),b--;}while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name;},tokenType:function(a){return this._tokenData[a]||-1;},unget:function(){if(this._ltIndexCache.length){this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];}else{throw new Error("Too much lookahead.");}}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e};})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens);}function mix(a,b){for(var c in b){b.hasOwnProperty(c)&&(a[c]=b[c]);}return a;}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a));}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a));}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a);}function isNewLine(a){return a!=null&&nl.test(a);}function isWhitespace(a){return a!=null&&/\s/.test(a);}function isDigit(a){return a!=null&&/\d/.test(a);}function isHexDigit(a){return a!=null&&h.test(a);}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[];}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b;}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution";}}else{/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text); -}}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b;}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null;}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c;}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b;}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling");}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1}; +AUI.add("aui-ace-editor-worker-css",function(A){function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a});},this.emit=function(a,b){postMessage({type:"event",name:a,data:b});};}).call(c.prototype);return new c;}function initBaseUrls(a){require.tlns=a;}var console={log:function(a){postMessage({type:"log",data:a});}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports;}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a);};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a;}});},main,sender;onmessage=function(a){var b=a.data;if(b.command){main[b.command].apply(main,b.args);}else{if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender);}else{b.event&&sender&&sender._dispatchEvent(b.event,b.data);}}},define("pilot/fixoldbrowsers",["require","exports","module","pilot/regexp"],function(a,b,c){a("pilot/regexp");if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function"){return new TypeError;}var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a;}return b.call.apply(b,c.concat(d.call(arguments)));};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e;};}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__")){i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);}Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]";}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); +}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf){return a.indexOf(b,c);}for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--;}return b;},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return !!b;});}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b); +},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type;},LA:function(a){var b=a,c;if(a>0){if(a>5){throw new Error("Too much lookahead.");}while(b){c=this.get(),b--;}while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name;},tokenType:function(a){return this._tokenData[a]||-1;},unget:function(){if(this._ltIndexCache.length){this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];}else{throw new Error("Too much lookahead.");}}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e};})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens);}function mix(a,b){for(var c in b){b.hasOwnProperty(c)&&(a[c]=b[c]);}return a;}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a));}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a));}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a);}function isNewLine(a){return a!=null&&nl.test(a);}function isWhitespace(a){return a!=null&&/\s/.test(a);}function isDigit(a){return a!=null&&/\d/.test(a);}function isHexDigit(a){return a!=null&&h.test(a);}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[];}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b;}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency"; +break;case"dpi":case"dpcm":this.type="resolution";}}else{/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text);}}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a;}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b;}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null;}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c;}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b;}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling");}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1}; MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM){this._import(),this._skipCruft();}while(a.peek()==Tokens.NAMESPACE_SYM){this._namespace(),this._skipCruft();}d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset()){switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token());}}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});}else{throw e;}}d=a.peek();}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet");},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}));},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol});},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d});},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;){if(a.peek()==Tokens.PAGE_SYM){this._page();}else{if(!this._ruleset()){break;}}}a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c});},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA)){this._readWhitespace(),b.push(this._media_query());}return b;},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0){return null;}this._readWhitespace();while(a.match(Tokens.IDENT)){a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());}return new MediaQuery(c,b,e,d.startLine,d.startCol);},_media_type:function(){return this._media_feature();},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null);},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token());},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c});},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return !0;}return !1;},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null;},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value;},_font_face:function(){var a=this._tokenStream,b,c; a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c});},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null;},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b;},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null;},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b;},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group();}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict)){throw d;}this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE){throw d;}return !0;}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c;},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA)){this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1));}}return b.length?b:null;},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null){return null;}b.push(c);do{d=this._combinator();if(d!==null){b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);}else{if(this._readWhitespace()){e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));}else{break;}}}while(!0);return new Selector(b,b[0].line,b[0].col);},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S){break;}while(f1&&a.unget());return null;}b&&(c.text=b+c.text,c.col-=b.length);return c;},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1);}return null;},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol);}return null;},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE){a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";}return b.length?b:null;},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null;},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol);}return null;},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b;},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b;},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION])){b+=a.token().value,b+=this._readWhitespace();}return b.length?b:null;},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f;},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null;},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i; g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null;},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null;},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b;},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN){a.get(),b+=a.token().value,d=a.peek();}}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace();}return b;},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c)){throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);}this._readWhitespace();}return c;},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE){this._keyframe_rule(),this._readWhitespace(),c=a.peek();}this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE);},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token());},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col});},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA)){this._readWhitespace(),d.push(this._key()),this._readWhitespace();}return d;},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE)){return SyntaxUnit.fromToken(a.token());}if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value)){return SyntaxUnit.fromToken(b);}a.unget();}this._unexpectedToken(a.LT(1));},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC])){}},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration()){break;}if(!c.match(Tokens.SEMICOLON)){break;}}this._readWhitespace();}c.mustMatch(Tokens.RBRACE),this._readWhitespace();}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict)){throw e;}this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON){this._readDeclarations(!1,b);}else{if(d!=Tokens.RBRACE){throw e;}}}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S)){b+=a.token().value;}return b;},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol);},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1));},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet();},parseStyleSheet:function(a){return this.parse(a);},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b;},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b;},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b;},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b;}};for(b in c){a[b]=c[b];}return a;}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol); diff --git a/build/aui-ace-editor/aui-ace-editor-worker-css.js b/build/aui-ace-editor/aui-ace-editor-worker-css.js index 84f8b1a1329..5f5e3477b33 100644 --- a/build/aui-ace-editor/aui-ace-editor-worker-css.js +++ b/build/aui-ace-editor/aui-ace-editor-worker-css.js @@ -1,4 +1,4 @@ AUI.add('aui-ace-editor-worker-css', function(A) { -function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); -}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0;}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b); -},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip){p+=A.indent;}!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt();}bm("}",h),p=e;}else{a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);}j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c;}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)"){x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());}return b;}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return !0;}return !1;}function bP(a){var b=p,c,d=G,e=x;if(e.id===";"){be("Unnecessary semicolon.",e),bm(";");}else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c;}}function bO(a){var b=0,c;if(x.id===";"&&!z){for(;;){c=bl(b);if(c.reach){return;}if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break;}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break;}b+=1;}}}function bN(a){var b=bM(a);if(b){return b;}O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value);}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value;}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this;};return c;}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b;}bg("Bad assignment.",b);},20);}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this;};return d;}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b;}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O);}bg("Bad assignment.",b);},20);}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined");}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this;};return c;}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function"){return b(a,this);}this.left=a,this.right=bn(c);return this;};return e;}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this;});}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c;}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c;}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--"){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);}return this;};return c;}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z"){a.identifier=a.reserved=!0;}return a;}function bz(a,b){var c=by(a,b);c.block=!0;return c;}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c;}function bx(a){return bw(a,0);}function bw(a,b){var c=M[a];if(!c||typeof c!="object"){M[a]=c={id:a,lbp:b,value:a};}return c;}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x);}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value);}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from)); -}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b);}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value);}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value);}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud){d=O.fud();}else{if(O.nud){d=O.nud();}else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O;}bg("Expected an identifier and instead saw '{a}'.",O,O.id);}while(b=A.maxerr&&bd("Too many errors.",i,h);return j;}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw {name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."};}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0);}function bb(a,b){var c;for(c in b){ba(b,c)&&(a[c]=b[c]);}}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b);}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$; -(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/;})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]";}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _;}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a){ba(a,c)&&b.push(c);}return b;}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">");}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿";}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9";}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b;});}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4);})+'"':'"'+this+'"';});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g;}function e(){var b,e;if(c>=s.length){return !1;}a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e);}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length){i=0,e()||bh("Unclosed string.",c,b);}h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g);}if(h<" "){if(h==="\n"||h==="\r"){break;}bf("Control character in string: {a}.",c,a+i,d.slice(0,i));}else{if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a);}}}j+=h,a+=1,i+=1;}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f;}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d){return f(e()?"(endline)":"(end)","");}r=s(U);if(!r){r="",h="";while(d&&d<"!"){d=d.substr(1);}d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1));}else{if(h.isAlpha()||h==="_"||h==="$"){return f("(identifier)",r);}if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r);}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0){break;}e()||bh("Unclosed comment.",c,a);}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0){p[d.charAt(n)]=!1,n+=1; -}a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n));}}else{i+=1;}break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" "){n+=1,p+=1;}p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0;}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h);}if(g){switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,o=+h+o*10;}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,l=+h+l*10;}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l);}}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h);}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r);}}}}};}();bC("(number)",function(){return this;}),bC("(string)",function(){return this;}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c){switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b);}}else{if(j["(global)"]){a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);}else{switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0){j[b]=!0;}else{if(c===null){be("'{a}' is not allowed.",O,b),bU(O);}else{if(typeof c!="object"){a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);}else{switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b);}}}}}}}return this;},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value);}},bC("(regexp)",function(){return this;}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a);}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a);}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.");},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b;},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this;}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this;}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a;}b.left=a,b.right=c;return b;},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this;}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130); -return this;},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this;}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this;},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this;}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this;}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this;}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function"){if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O));}}else{a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);}}else{A.supernew||be("Weird construction. Delete 'new'.",this);}bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this;}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b;},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")"){for(;;){d[d.length]=bn(10),c+=1;if(x.id!==","){break;}bv();}}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b;},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a;}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b;},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===","){be("Extra comma."),bm(",");}if(x.id==="]"){break;}a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==","){break;}bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break;}}a&&(p-=A.indent,bt()),bm("]",this);return this;},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}"){break;}a&&bt();if(x.value==="get"&&bl().id!==":"){bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);}else{c=bV();if(typeof c!="string"){break;}bm(":"),br(O,x),bn(10);}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===","){bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);}else{break;}}a&&(p-=A.indent,bt()),bm("}",this);return this;},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O);};}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a){break;}c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==","){break;}bv();}return this;});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens."); -return this;}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this;}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this;}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally"){bm("finally"),bS(!1);}else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this;}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;){switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O);}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O);}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b){switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O);}}else{bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value);}}}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this;}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;});a.labelled=!0,a.exps=!0;}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var"){bm("var"),bY.fud.call(bY,!0);}else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value);}bm();}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}if(x.id!==";"){if(x.id==="var"){bm("var"),bY.fud.call(bY);}else{for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")"){for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this;}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this;}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this;}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this;}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e){if(Array.isArray(e)){for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u){if(typeof u[i]=="number"){a.member=u;break;}}return a;},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d");}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors){for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));}}if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";}m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ");}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";}m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ");}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ");}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);}if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ");}m.push("
                                                                            ");}}return m.join("");},b$.jshint=b$,b$.edition="2011-04-16";return b$;}();typeof b=="object"&&b&&(b.JSHINT=d);}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null){return null;}if(d.match(/^[\s]*\.end[\s]*$/)){break;}c+="\n"+d;}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f;}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c);}d(a.trim())&&(a="");for(;;){try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f;}catch(g){if(!e.unexpectedEOF){throw g;}var h;do{c&&putstr(c),h=readline();if(!h){throw g;}}while(d(h.trim()));a+="\n"+h;}}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done){throw d.newSyntaxError("Syntax error");}return e;}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue;}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA)){break;}}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal trailing ,");}break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break;}throw a.newSyntaxError("Invalid property name");}if(a.match(COLON)){d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);}else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY){throw a.newSyntaxError("missing : after property");}c.push(f);}}else{if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal property accessor");}c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM));}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY);}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand");}return c;}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0)){return c;}do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA){throw a.newSyntaxError("Yield expression must be parenthesized");}if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA){throw a.newSyntaxError("Generator expression must be parenthesized");}}c.push(d);}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c;}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b); -while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break;}default:a.unget();return d;}d=e;}return d;}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d);}return c;}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD)){d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;}return c;}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS)){d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;}return c;}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH)){d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;}return c;}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF)){d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;}return c;}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE)){d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;}return c;}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND)){d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;}return c;}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR)){d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;}return c;}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR)){d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;}return c;}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND)){d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;}return c;}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR)){d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;}return c;}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON)){throw a.newSyntaxError("missing : after ?");}c.push(AssignExpression(a,b));}return c;}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0)){return ReturnOrYield(a,b);}c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN)){return d;}c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment");}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c;}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}c.push(AssignExpression(a,b));}while(a.match(COMMA));}return c;}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}if(c.type===COMMA&&!c.parenthesized){throw a.newSyntaxError("Generator expression must be parenthesized");}c=GeneratorExpression(a,b,c);}return c;}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e]){throw a.newSyntaxError("Unparenthesized head followed by unbraced body");}}return d;}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier");}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d);}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c;}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)});}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d;}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP){throw a.newSyntaxError("Invalid array comprehension left-hand side");}if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0){throw a.newSyntaxError("More than one switch default");}case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case");}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY){f.statements.push(Statement(a,l));}e.cases.push(f);}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1){throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);}f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f;}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT){f.destructuredNames=checkDestructuring(a,m,f);}e.iterator=f;}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach){throw a.newSyntaxError("Invalid for each..in loop");}e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m);}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e;}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label);}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target){throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));}if(!e.target.isLoop&&j===CONTINUE){throw a.newSyntaxError("Invalid continue");}break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch");}if(a.match(IF)){if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal catch guard");}if(e.catchClauses.length&&!e.catchClauses.top().guard){throw a.newSyntaxError("Guarded catch after unguarded");}f.guard=Expression(a,b);}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f);}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock){throw a.newSyntaxError("Invalid try statement");}return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d)){throw a.newSyntaxError("Duplicate label");}a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e;}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end;}e.blockComments=n,MagicalSemicolon(a);return e;}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE){d.set(a,e);}else{if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f);}}}),this.node=a,this.exports=b,this.exportedModules=d;}function registerExport(a,b){function c(b,c){if(a.has(b)){throw new SyntaxError("multiple exports of "+b);}a.set(b,c);}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0){b+=c;}return b;},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export};}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null; -}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op==="."){continue;}var node=opTokens;for(var i=0;i"9"){throw this.newSyntaxError("Missing exponent");}do{ch=a[this.cursor++];}while(ch>="0"&&ch<="9");this.cursor--;return !0;}return !1;},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor);}else{if(a==="x"||a==="X"){do{a=c[this.cursor++];}while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{if(a>="0"&&a<="7"){do{a=c[this.cursor++];}while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{this.cursor--,this.lexExponent(),b.value=0;}}}},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do{a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);}while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f);},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor);}else{b.type=DOT,b.assignOp=null,b.value=".";}},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor){throw this.newSyntaxError("Unterminated string literal");}while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1);},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\"){this.cursor++;}else{if(ch==="["){do{if(ch===undefined){throw this.newSyntaxError("Unterminated character class");}ch==="\\"&&this.cursor++,ch=input[this.cursor++];}while(ch!=="]");}else{if(ch===undefined){throw this.newSyntaxError("Unterminated regex");}}}}while(ch!=="/");do{ch=input[this.cursor++];}while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor));},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f;},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null){c+=a;}b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c;},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines){return b.type;}}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length){return b.type=END;}b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null){this.lexIdent(d);}else{if(a&&e==="/"){this.lexRegExp(e);}else{if(e in opTokens){this.lexOp(e);}else{if(e==="."){this.lexDot(e);}else{if(e>="1"&&e<="9"){this.lexNumber(e);}else{if(e==="0"){this.lexZeroNumber(e);}else{if(e==='"'||e==="'"){this.lexString(e);}else{if(!this.scanNewlines||e!=="\n"&&e!=="\r"){throw this.newSyntaxError("Illegal token");}e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++;}}}}}}}b.end=this.cursor;return b.type; -},unget:function(){if(++this.lookahead===4){throw"PANIC: too much lookahead!";}this.tokenIndex=this.tokenIndex-1&3;},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b;},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length){return null;}var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16));}catch(d){return null;}this.cursor+=5;}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c;}return null;}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0;}catch(d){}f&&this.cursor++;return f?c:null;}};return{Tokenizer:Tokenizer};}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null;}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={}; -for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i;}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2){var d=arguments[1];}else{do{if(c in this){d=this[c++];break;}if(++c>=b){throw new TypeError;}}while(!0);}for(;c=2){var d=arguments[1];}else{do{if(c in this){d=this[c--];break;}if(--c<0){throw new TypeError;}}while(!0);}for(;c>=0;c--){c in this&&(d=a.call(null,d,this[c],c,this));}return d;}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b){return -1;}var c=arguments[1]||0;if(c>=b){return -1;}c<0&&(c+=b);for(;c=0;c--){if(!h(this,c)){continue;}if(a===this[c]){return c;}}return -1;}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype;});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError(n+a);}if(!h(a,b)){return undefined;}var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor;}}descriptor.value=a[b];return descriptor;};}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a);}),Object.create||(Object.create=function(a,b){var c;if(a===null){c={"__proto__":null};}else{if(typeof a!="object"){throw new TypeError("typeof prototype["+typeof a+"] != 'object'");}var d=function(){};d.prototype=a,c=new d,c.__proto__=a;}typeof b!="undefined"&&Object.defineProperties(c,b);return c;});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function"){throw new TypeError(p+a);}if(typeof a!="object"||a===null){throw new TypeError(o+c);}if(h(c,"value")){if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype;}else{a[b]=c.value;}}else{if(!m){throw new TypeError(q);}h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set);}return a;};}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b){h(b,c)&&Object.defineProperty(a,c,b[c]); +}return a;}),Object.seal||(Object.seal=function(a){return a;}),Object.freeze||(Object.freeze=function(a){return a;});try{Object.freeze(function(){});}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b);};}(Object.freeze);}Object.preventExtensions||(Object.preventExtensions=function(a){return a;}),Object.isSealed||(Object.isSealed=function(a){return !1;}),Object.isFrozen||(Object.isFrozen=function(a){return !1;}),Object.isExtensible||(Object.isExtensible=function(a){return !0;});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in {toString:null}){s=!1;}Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null){throw new TypeError("Object.keys called on a non-object");}var W=[];for(var b in a){h(a,b)&&W.push(b);}if(s){for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k;}return a.apply(this,arguments);},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a){b[d]=a[d];}b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7){continue;}d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--;}if(e){return((d[3]*60+d[4])*60+d[5])*1000+d[6];}var g=(d[8]*60+d[9])*60*1000;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g;}return a.parse.apply(this,arguments);};return b;}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"");};}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf){return a.indexOf(b,c);}for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--;}return b;},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return !!b;});}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a;},this.insert=function(a,b){if(b.length==0){return a;}a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a;},this.insertLines=function(a,b){if(b.length==0){return{row:a,column:0};}var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end;},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c;},this.insertInLine=function(a,b){if(b.length==0){return a;}var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d;},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty()){return a.start;}var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row));}else{this.removeInLine(b,a.start.column,a.end.column);}return a.start;},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start;}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d;},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g});},this.replace=function(a,b){if(b.length==0&&a.isEmpty()){return a.start;}if(b==this.getTextRange(a)){return a.end;}this.remove(a);if(b){var c=this.insert(a.start,b);}else{c=a.start;}return c;},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text);}};}).call(h.prototype),b.Document=h;}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d};};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]";},this.contains=function(a,b){return this.compare(a,b)==0;},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0; +}if(b==-1){return -2;}b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0;},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1;},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b;},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b;},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b);},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b);},this.inside=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;}return !1;},this.insideStart=function(a,b){if(this.compare(a,b)==0){return this.isEnd(a,b)?!1:!0;}return !1;},this.insideEnd=function(a,b){if(this.compare(a,b)==0){return this.isStart(a,b)?!1:!0;}return !1;},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row){return bthis.end.column?1:0;}return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0;},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b);},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b);},this.clipRows=function(a,b){if(this.end.row>b){var c={row:b+1,column:0};}if(this.start.row>b){var e={row:b+1,column:0};}if(this.start.rowthis.row){return;}if(c.start.row==this.row&&c.start.column>this.column){return;}var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c;};}).call(f.prototype);}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("");},b.stringRepeat=function(a,b){return Array(b+1).join(a);};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"");},b.stringTrimRight=function(a){return a.replace(e,"");},b.copyObject=function(a){var b={};for(var c in a){b[c]=a[c];}return b;},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip){p+=A.indent;}!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt();}bm("}",h),p=e;}else{a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);}j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c;}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)"){x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());}return b;}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return !0;}return !1;}function bP(a){var b=p,c,d=G,e=x;if(e.id===";"){be("Unnecessary semicolon.",e),bm(";");}else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c;}}function bO(a){var b=0,c;if(x.id===";"&&!z){for(;;){c=bl(b);if(c.reach){return;}if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break;}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break;}b+=1;}}}function bN(a){var b=bM(a);if(b){return b;}O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value);}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value;}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this;};return c;}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b;}bg("Bad assignment.",b);},20);}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this;};return d;}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b;}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b;}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O);}bg("Bad assignment.",b);},20);}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined");}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this;};return c;}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x)); +if(typeof b=="function"){return b(a,this);}this.left=a,this.right=bn(c);return this;};return e;}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this;});}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c;}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c;}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--"){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);}return this;};return c;}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z"){a.identifier=a.reserved=!0;}return a;}function bz(a,b){var c=by(a,b);c.block=!0;return c;}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c;}function bx(a){return bw(a,0);}function bw(a,b){var c=M[a];if(!c||typeof c!="object"){M[a]=c={id:a,lbp:b,value:a};}return c;}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x);}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value);}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from));}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value));}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b);}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value);}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value);}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud){d=O.fud();}else{if(O.nud){d=O.nud();}else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O;}bg("Expected an identifier and instead saw '{a}'.",O,O.id);}while(b=A.maxerr&&bd("Too many errors.",i,h);return j;}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw {name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."};}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0); +}function bb(a,b){var c;for(c in b){ba(b,c)&&(a[c]=b[c]);}}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b);}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/;})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]";}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _;}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a){ba(a,c)&&b.push(c);}return b;}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">");}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿";}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9";}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b;});}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4);})+'"':'"'+this+'"';});var bi=function(){function f(d,e){var f,g; +d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g;}function e(){var b,e;if(c>=s.length){return !1;}a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e);}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length){i=0,e()||bh("Unclosed string.",c,b);}h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g);}if(h<" "){if(h==="\n"||h==="\r"){break;}bf("Control character in string: {a}.",c,a+i,d.slice(0,i));}else{if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a);}}}j+=h,a+=1,i+=1;}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f;}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d){return f(e()?"(endline)":"(end)","");}r=s(U);if(!r){r="",h="";while(d&&d<"!"){d=d.substr(1);}d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1));}else{if(h.isAlpha()||h==="_"||h==="$"){return f("(identifier)",r);}if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r);}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0){break;}e()||bh("Unclosed comment.",c,a);}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0){p[d.charAt(n)]=!1,n+=1;}a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n));}}else{i+=1;}break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" "){n+=1,p+=1;}p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0;}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h);}if(g){switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,o=+h+o*10;}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9"){break;}n+=1,l=+h+l*10;}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l); +}}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h);}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r);}}}}};}();bC("(number)",function(){return this;}),bC("(string)",function(){return this;}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c){switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b);}}else{if(j["(global)"]){a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);}else{switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0){j[b]=!0;}else{if(c===null){be("'{a}' is not allowed.",O,b),bU(O);}else{if(typeof c!="object"){a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);}else{switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b);}}}}}}}return this;},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value);}},bC("(regexp)",function(){return this;}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a);}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a);}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.");},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b;},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this;}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this;}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a;}b.left=a,b.right=c;return b;},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this;}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this;},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this;}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this;},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this;}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this;}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this;}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function"){if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O));}}else{a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);}}else{A.supernew||be("Weird construction. Delete 'new'.",this);}bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this;}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b;},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself."); +var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")"){for(;;){d[d.length]=bn(10),c+=1;if(x.id!==","){break;}bv();}}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b;},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a;}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b;},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===","){be("Extra comma."),bm(",");}if(x.id==="]"){break;}a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==","){break;}bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break;}}a&&(p-=A.indent,bt()),bm("]",this);return this;},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}"){break;}a&&bt();if(x.value==="get"&&bl().id!==":"){bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);}else{c=bV();if(typeof c!="string"){break;}bm(":"),br(O,x),bn(10);}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===","){bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);}else{break;}}a&&(p-=A.indent,bt()),bm("}",this);return this;},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O);};}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a){break;}c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==","){break;}bv();}return this;});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this;}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this;}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this;}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally"){bm("finally"),bS(!1);}else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this;}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;){switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O);}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O);}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b){switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR(); +break;default:bg("Missing ':' on a case clause.",O);}}else{bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value);}}}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this;}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;});a.labelled=!0,a.exps=!0;}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var"){bm("var"),bY.fud.call(bY,!0);}else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value);}bm();}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}if(x.id!==";"){if(x.id==="var"){bm("var"),bY.fud.call(bY);}else{for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")"){for(;;){bn(0,"for");if(x.id!==","){break;}bv();}}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this;}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this;}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this;}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this;}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this;}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e){if(Array.isArray(e)){for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u){if(typeof u[i]=="number"){a.member=u;break;}}return a;},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d");}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors){for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));}}if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";}m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ");}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";}m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ");}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ");}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label); +}if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ");}m.push("
                                                                            ");}}return m.join("");},b$.jshint=b$,b$.edition="2011-04-16";return b$;}();typeof b=="object"&&b&&(b.JSHINT=d);}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null){return null;}if(d.match(/^[\s]*\.end[\s]*$/)){break;}c+="\n"+d;}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f;}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c);}d(a.trim())&&(a="");for(;;){try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f;}catch(g){if(!e.unexpectedEOF){throw g;}var h;do{c&&putstr(c),h=readline();if(!h){throw g;}}while(d(h.trim()));a+="\n"+h;}}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done){throw d.newSyntaxError("Syntax error");}return e;}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue;}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA)){break;}}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal trailing ,");}break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break;}throw a.newSyntaxError("Invalid property name");}if(a.match(COLON)){d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);}else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY){throw a.newSyntaxError("missing : after property");}c.push(f);}}else{if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal property accessor");}c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM));}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY);}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand");}return c;}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0)){return c;}do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA){throw a.newSyntaxError("Yield expression must be parenthesized");}if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA){throw a.newSyntaxError("Generator expression must be parenthesized");}}c.push(d);}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c;}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break;}default:a.unget();return d;}d=e;}return d;}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d);}return c;}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD)){d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;}return c;}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS)){d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;}return c;}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH)){d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;}return c;}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF)){d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;}return c;}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE)){d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;}return c;}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND)){d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;}return c;}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR)){d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;}return c;}function BitwiseOrExpression(a,b){var c,d; +c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR)){d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;}return c;}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND)){d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;}return c;}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR)){d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;}return c;}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON)){throw a.newSyntaxError("missing : after ?");}c.push(AssignExpression(a,b));}return c;}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0)){return ReturnOrYield(a,b);}c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN)){return d;}c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment");}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c;}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}c.push(AssignExpression(a,b));}while(a.match(COMMA));}return c;}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized){throw a.newSyntaxError("Yield expression must be parenthesized");}if(c.type===COMMA&&!c.parenthesized){throw a.newSyntaxError("Generator expression must be parenthesized");}c=GeneratorExpression(a,b,c);}return c;}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e]){throw a.newSyntaxError("Unparenthesized head followed by unbraced body");}}return d;}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier");}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d);}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c;}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)});}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d;}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP){throw a.newSyntaxError("Invalid array comprehension left-hand side");}if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0){throw a.newSyntaxError("More than one switch default");}case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case");}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY){f.statements.push(Statement(a,l));}e.cases.push(f);}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1){throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);}f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f;}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT){f.destructuredNames=checkDestructuring(a,m,f);}e.iterator=f;}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach){throw a.newSyntaxError("Invalid for each..in loop");}e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m); +}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e;}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label);}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target){throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));}if(!e.target.isLoop&&j===CONTINUE){throw a.newSyntaxError("Invalid continue");}break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch");}if(a.match(IF)){if(b.ecma3OnlyMode){throw a.newSyntaxError("Illegal catch guard");}if(e.catchClauses.length&&!e.catchClauses.top().guard){throw a.newSyntaxError("Guarded catch after unguarded");}f.guard=Expression(a,b);}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f);}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock){throw a.newSyntaxError("Invalid try statement");}return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d)){throw a.newSyntaxError("Duplicate label");}a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e;}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end;}e.blockComments=n,MagicalSemicolon(a);return e;}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE){d.set(a,e);}else{if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f);}}}),this.node=a,this.exports=b,this.exportedModules=d;}function registerExport(a,b){function c(b,c){if(a.has(b)){throw new SyntaxError("multiple exports of "+b);}a.set(b,c);}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0){b+=c;}return b;},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export};}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null;}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op==="."){continue;}var node=opTokens;for(var i=0;i"9"){throw this.newSyntaxError("Missing exponent");}do{ch=a[this.cursor++];}while(ch>="0"&&ch<="9");this.cursor--;return !0;}return !1;},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor);}else{if(a==="x"||a==="X"){do{a=c[this.cursor++];}while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{if(a>="0"&&a<="7"){do{a=c[this.cursor++];}while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor));}else{this.cursor--,this.lexExponent(),b.value=0;}}}},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do{a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);}while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f);},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do{a=c[this.cursor++];}while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor);}else{b.type=DOT,b.assignOp=null,b.value=".";}},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor){throw this.newSyntaxError("Unterminated string literal");}while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length){throw this.newSyntaxError("Unterminated string literal");}}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1);},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\"){this.cursor++;}else{if(ch==="["){do{if(ch===undefined){throw this.newSyntaxError("Unterminated character class");}ch==="\\"&&this.cursor++,ch=input[this.cursor++];}while(ch!=="]");}else{if(ch===undefined){throw this.newSyntaxError("Unterminated regex");}}}}while(ch!=="/");do{ch=input[this.cursor++];}while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor));},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f;},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null){c+=a;}b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c;},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines){return b.type;}}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length){return b.type=END;}b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null){this.lexIdent(d);}else{if(a&&e==="/"){this.lexRegExp(e);}else{if(e in opTokens){this.lexOp(e);}else{if(e==="."){this.lexDot(e);}else{if(e>="1"&&e<="9"){this.lexNumber(e);}else{if(e==="0"){this.lexZeroNumber(e);}else{if(e==='"'||e==="'"){this.lexString(e);}else{if(!this.scanNewlines||e!=="\n"&&e!=="\r"){throw this.newSyntaxError("Illegal token");}e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++;}}}}}}}b.end=this.cursor;return b.type;},unget:function(){if(++this.lookahead===4){throw"PANIC: too much lookahead!";}this.tokenIndex=this.tokenIndex-1&3;},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b;},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length){return null;}var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16));}catch(d){return null;}this.cursor+=5;}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c;}return null;}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0;}catch(d){}f&&this.cursor++;return f?c:null;}};return{Tokenizer:Tokenizer};}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null;}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i;}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                            "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                            Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                            "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                            "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                            Implied global: "+n.join(", ")+"

                                                                            ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                            Unused variable: "+n.join(", ")+"

                                                                            ")}b.json&&m.push("

                                                                            JSON: bad.

                                                                            "),m.push("
                                                                            ")}if(!a){m.push("
                                                                            "),b.urls&&o("URLs
                                                                            ",b.urls,"
                                                                            "),b.json&&!f?m.push("

                                                                            JSON: good.

                                                                            "):b.globals?m.push("
                                                                            Global "+b.globals.sort().join(", ")+"
                                                                            "):m.push("
                                                                            No new global variables introduced.
                                                                            ");for(h=0;h
                                                                            "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                            "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                            /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                            "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                            ")}m.push("
                                                                            ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                            "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                            Sub-Commands of "+e.name+"

                                                                            "),d.push("

                                                                            "+e.description+"

                                                                            ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                            Commands starting with '"+b.search+"':

                                                                            ")):d.push("

                                                                            Available Commands:

                                                                            ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                            '+e.name+""+e.description+"
                                                                            ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                            ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                            "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                            "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(e){c&&c(e),d&&d(),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/8,a.wheelY=-a.wheelDeltaY/8):(a.wheelX=0,a.wheelY=-a.wheelDelta/8):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",d),b.addListener(a,"mousewheel",d)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;g.isIE||setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function u(){return document.activeElement===c}function l(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!u())return!1}}i=!1,j=!1,c.value=g,c.select()}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);l();var h=!1,i=!1,j=!1,k="",m=function(a){setTimeout(function(){h||l(a.data)},0)},n=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||l()},0)},o=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(p,0)},p=function(){!h||b.onCompositionUpdate(c.value)},q=function(a){h=!1,b.onCompositionEnd()},r=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),c.select(),setTimeout(function(){l()},0)},s=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),c.select(),setTimeout(function(){l()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var t={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||t[a.keyCode])&&setTimeout(q,0);(c.value.charCodeAt(0)|0)<129||(h?p():o())})}c.attachEvent?d.addListener(c,"propertychange",n):e.isChrome||e.isSafari?d.addListener(c,"textInput",m):e.isIE?d.addListener(c,"textinput",m):d.addListener(c,"input",m),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(l(a.clipboardData.getData("text/plain")),a.preventDefault()):n()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",r),d.addListener(c,"cut",s)),d.addListener(c,"compositionstart",o),e.isGecko&&d.addListener(c,"text",p),e.isWebKit&&d.addListener(c,"keyup",p),d.addListener(c,"compositionend",q),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),c.select()}),this.focus=function(){b.onFocus(),c.select(),c.focus()},this.blur=function(){c.blur()},this.isFocused=u,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),l()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),p=h}if(!(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused())){var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=g,q=!1,r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}q=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),p==g?D(f):p==i&&B(),m.$clickSelection=null,p=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(p==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){p=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){p=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}p==i?F():p==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)})};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                            ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                            ¦
                                                                            ");c.push("
                                                                            "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                            "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                            "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                            "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                            ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                            ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                            "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                            ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                            ","
                                                                            "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                            ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/build/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/build_support/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/demo/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo { background: url("something.png"); display: inline; padding-left: 3px; padding-right: 7px; border-right: 1px dotted #066;}li.last.first { display: inline; padding-left: 3px !important; padding-right: 3px; border-right: 0px;}@media print { li.inline { color: black; }@charset "UTF-8"; @page { margin: 10%; counter-increment: page; @top-center { font-family: sans-serif; font-weight: bold; font-size: 2em; content: counter(page); }}'),define("text/deps/requirejs/dist/ie.css",[],"body .sect { display: none;}#content ul.index { list-style: none;}"),define("text/deps/requirejs/dist/main.css",[],'@font-face { font-family: Inconsolata; src: url("fonts/Inconsolata.ttf");}* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;}body { font-size: 12px; line-height: 21px; background-color: #fff; font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif; color: #0a0a0a;}#wrapper { margin: 0;}#grid { position: fixed; top: 0; left: 0; width: 796px; background-image: url("i/grid.png"); z-index: 100;}pre { line-height: 18px; font-size: 13px; margin: 7px 0 21px; padding: 5px 10px; overflow: auto; background-color: #fafafa; border: 1px solid #e6e6e6; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/* typography stuff*/.mono { font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans { font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif { font-family: "Georgia", Times New Roman, Times, serif;}a { color: #2e87dd; text-decoration: none;}a:hover { text-decoration: underline;}/* navigation*/#navBg { background-color: #f2f2f2; background-image: url("i/shadow.png"); background-position: right top; background-repeat: repeat-y; width: 220px; position: fixed; top: 0; left: 0; z-index: 0;}#nav { background-image: url("i/logo.png"); background-repeat: no-repeat; background-position: center 10px; width: 220px; float: left; margin: 0; padding: 150px 20px 0; font-size: 13px; text-shadow: 1px 1px #fff; position: relative; z-index: 1;}#nav .homeImageLink { position: absolute; display: block; top: 10px; left: 0; width: 220px; height: 138px;}#nav ul { list-style-type:none; padding: 0; margin: 21px 0 0 0;}#nav ul li { width: 100%;}#nav ul li.version { text-align: center; color: #4d4d4d;}#nav h1 { color: #4d4d4d; text-align: center; font-size: 15px; font-weight: normal; text-transform: uppercase; letter-spacing: 3px;}span.spacer { color: #2e87dd; margin: 0 3px 0 5px; background-image: url("i/dot.png"); background-repeat: repeat-x; background-position: left 13px;}/* icons*/span.icon { width: 16px; display: block; background-image: url("i/sprite.png"); background-repeat: no-repeat;}span.icon.home { background-position: center 5px;}span.icon.start { background-position: center -27px;}span.icon.download { background-position: center -59px;}span.icon.api { background-position: center -89px;}span.icon.optimize { background-position: center -119px;}span.icon.script { background-position: center -150px;}span.icon.question { background-position: center -182px;}span.icon.requirement { background-position: center -214px;}span.icon.history { background-position: center -247px;}span.icon.help { background-position: center -279px;}span.icon.blog { background-position: center -311px;}span.icon.twitter { background-position: center -343px;}span.icon.git { background-position: center -375px;}span.icon.fork { background-position: center -407px;}/* content*/#content { margin: 0 0 0 220px; padding: 0 20px; background-color: #fff; font-family: "Georgia", Times New Roman, Times, serif; position: relative;}#content p { padding: 7px 0; color: #333; font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 { font-weight: normal; padding: 21px 0 7px;}#content h1 { font-size: 21px;}#content h2 { padding: 0 0 18px 0; margin: 0 0 7px 0; font-weight: normal; font-size: 21px; line-height: 24px; text-align: center; color: #222; background-image: url("i/arrow.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace; text-transform: uppercase; letter-spacing: 2px; text-shadow: 1px 1px 0 #fff;}#content h2 a { color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover { text-decoration: none;}span.sectionMark { display: block; color: #aaa; text-shadow: 1px 1px 0 #fff; font-size: 15px; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 { font-size: 17px;}#content h4 { padding-top: 0; font-size: 15px;}#content h5 { font-size: 10px;}#content ul { list-style-type: disc;}#content ul,#content ol { /* border-left: 1px solid #333; */ color: #333; font-size: 14px; list-style-position: outside; margin: 7px 0 21px 0; /* padding: 0 0 0 28px; */}#content ul { font-style: italic;}#content ol { border: none; list-style-position: inside; padding: 0; font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol { border: none; padding: 0; margin: 0 0 0 28px;}#content .section { padding: 48px 0; background-image: url("i/line.png"); background-repeat: no-repeat; background-position: center bottom; width: 576px; margin: 0 auto;}#content .section .subSection { padding: 0 0 0 48px; margin: 28px 0 0 0; display: block; border-left: 2px solid #ddd;}#content .section:last-child { background-image: none;}#content .note { color: #222; background-color: #ffff99; padding: 5px 10px; margin: 7px 0; display: inline-block;}/* page directory*/#content #directory.section { background-color: #fff; width: 576px;}#content #directory.section ul ul ul { margin: 0 0 0 48px;}#content #directory.section ul ul li { background-image: url("i/sprite.png"); background-repeat: no-repeat; background-position: left -437px; padding-left: 18px; font-style: normal;}#content #directory h1 { padding: 0 0 65px 0; margin: 0 0 14px 0; font-weight: normal; font-size: 21px; text-align: center; text-transform: uppercase; letter-spacing: 2px; color: #222; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center bottom; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index { padding: 0; background-color: transparent; border: none; -moz-box-shadow: none; font-style: normal; font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li { width: 100%; font-size: 15px; color: #333; padding: 0 0 7px 0;}/* intro page specific*/#content #intro { width: 576px; margin: 0 auto; padding: 21px 0;}#content #intro p,#content #intro h1 { font-size: 19px; line-height: 28px; color: green; letter-spacing: 2px; padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child { padding: 0;}#content #intro p a { color: green; text-decoration: underline;}/* download page*/#content h4 a.download { -webkit-border-radius: 5px; -moz-border-radius: 5px; background-color: #F2F2F2; background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%); background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2)); background-position: 7px -58px, center center; background-repeat: no-repeat, no-repeat; border: 1px solid #CCCCCC; color: #333333; font-size: 12px; margin: 0 0 0 5px; padding: 0 10px 0 25px; text-shadow: 1px 1px 0 #FFFFFF;}/* footer*/#footer { color: #4d4d4d; padding: 65px 20px 20px; margin: 20px 0 0 220px; text-align: center; display: block; font-size: 13px; background-image: url("i/arrow-x.png"); background-repeat: no-repeat; background-position: center top; background-color: #fff;}#footer .line { display: block;}#footer .line a { color: #4d4d4d; text-decoration: underline;}/* Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/* webkit scroll bars*/pre::-webkit-scrollbar { width: 6px; height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment { display: block; height: 0; width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment { background-color: transparent; display: block; height: 0; width: 0;}pre::-webkit-scrollbar-track-piece { -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical { background-color: #aaa; -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal { background-color: #aaa; -webkit-border-radius: 3px;}/* hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/* clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}'),define("text/doc/site/iphone.css",[],"#wrapper { position:relative; overflow:hidden;}#wrapper .content .column1 { margin:0 16px 0 15px;}#header .content .signature { font-size:18px; bottom:0;}UL.menu-list LI { font-size:22px;}UL.menu-footer LI { font-size:22px;}PRE{ font-size:22px;}"),define("text/doc/site/style.css",[],"body { margin:0; padding:0; background-color:#e6f5fc; }H2, H3, H4 { font-family:Trebuchet MS; font-weight:bold; margin:0; padding:0;}H2 { font-size:28px; color:#263842; padding-bottom:6px;}H3 { font-family:Trebuchet MS; font-weight:bold; font-size:22px; color:#253741; margin-top:43px; margin-bottom:8px;}H4 { font-family:Trebuchet MS; font-weight:bold; font-size:21px; color:#222222; margin-bottom:4px;}P { padding:13px 0; margin:0; line-height:22px;}UL{ line-height : 22px;}PRE{ background : #333; color : white; padding : 10px;}#header { height : 227px; position:relative; overflow:hidden; background: url(images/background.png) repeat-x 0 0; border-bottom:1px solid #c9e8fa; }#header .content .signature { font-family:Trebuchet MS; font-size:11px; color:#ebe4d6; position:absolute; bottom:5px; right:42px; letter-spacing : 1px;}.content { width:970px; position:relative; overflow:hidden; margin:0 auto;}#header .content { height:184px; margin-top:22px;}#header .content .logo { width : 282px; height : 184px; background:url(images/logo.png) no-repeat 0 0; position:absolute; top:0; left:0;}#header .content .title { width : 605px; height : 58px; background:url(images/ace.png) no-repeat 0 0; position:absolute; top:98px; left:329px;}#wrapper { background:url(images/body_background.png) repeat-x 0 0; min-height:250px;}#wrapper .content { font-family:Arial; font-size:14px; color:#222222; width:1000px;}#wrapper .content .column1 { position:relative; overflow:hidden; float:left; width:315px; margin-right:31px;}#wrapper .content .column2 { position:relative; overflow:hidden; float:left; width:600px; padding-top:47px;}.fork_on_github { width:310px; height:80px; background:url(images/fork_on_github.png) no-repeat 0 0; position:relative; overflow:hidden; margin-top:49px; cursor:pointer;}.fork_on_github:hover { background-position:0 -80px;}.divider { height:3px; background-color:#bedaea; margin-bottom:3px;}.menu { padding:23px 0 0 24px;}UL.content-list { padding:15px; margin:0;}UL.menu-list { padding:0; margin:0 0 20px 0; list-style-type:none; line-height : 16px;}UL.menu-list LI { color:#2557b4; font-family:Trebuchet MS; font-size:14px; padding:7px 0; border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child { border-bottom:0;}A { color:#2557b4; text-decoration:none;}A:hover { text-decoration:underline;}P#first{ background : rgba(255,255,255,0.5); padding : 20px; font-size : 16px; line-height : 24px; margin : 0 0 20px 0;}#footer { height:40px; position:relative; overflow:hidden; background:url(images/bottombar.png) repeat-x 0 0; position:relative; margin-top:40px;}UL.menu-footer { padding:0; margin:8px 11px 0 0; list-style-type:none; float:right;}UL.menu-footer LI { color:white; font-family:Arial; font-size:12px; display:inline-block; margin:0 1px;}UL.menu-footer LI A { color:#8dd0ff; text-decoration:none;}UL.menu-footer LI A:hover { text-decoration:underline;}"),define("text/lib/ace/css/editor.css",[],'.ace_editor { position: absolute; overflow: hidden; font-family: Monaco, "Menlo", "Courier New", monospace; font-size: 12px;}.ace_scroller { position: absolute; overflow-x: scroll; overflow-y: hidden;}.ace_content { position: absolute; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_composition { position: absolute; background: #555; color: #DDD; z-index: 4;}.ace_gutter { position: absolute; overflow-x: hidden; overflow-y: hidden; height: 100%;}.ace_gutter-cell.ace_error { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_gutter-cell.ace_warning { background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B"); background-repeat: no-repeat; background-position: 4px center;}.ace_editor .ace_sb { position: absolute; overflow-x: hidden; overflow-y: scroll; right: 0;}.ace_editor .ace_sb div { position: absolute; width: 1px; left: 0;}.ace_editor .ace_print_margin_layer { z-index: 0; position: absolute; overflow: hidden; margin: 0; left: 0; height: 100%; width: 100%;}.ace_editor .ace_print_margin { position: absolute; height: 100%;}.ace_editor textarea { position: fixed; z-index: -1; width: 10px; height: 30px; opacity: 0; background: transparent; appearance: none; -moz-appearance: none; border: none; resize: none; outline: none; overflow: hidden;}.ace_layer { z-index: 1; position: absolute; overflow: hidden; white-space: nowrap; height: 100%; width: 100%;}.ace_text-layer { color: black;}.ace_cjk { display: inline-block; text-align: center;}.ace_cursor-layer { z-index: 4; cursor: text; /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor { z-index: 4; position: absolute;}.ace_cursor.ace_hidden { opacity: 0.2;}.ace_line { white-space: nowrap;}.ace_marker-layer { cursor: text; pointer-events: none;}.ace_marker-layer .ace_step { position: absolute; z-index: 3;}.ace_marker-layer .ace_selection { position: absolute; z-index: 4;}.ace_marker-layer .ace_bracket { position: absolute; z-index: 5;}.ace_marker-layer .ace_active_line { position: absolute; z-index: 2;}.ace_marker-layer .ace_selected_word { position: absolute; z-index: 6; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;}.ace_line .ace_fold { cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer { cursor: move;}'),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title { text-align: center; }.todo { color: red; }.done { color: green; }.tag { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre { border: 1pt solid #AEBDCC; background-color: #F3F5F7; padding: 5pt; font-family: monospace; font-size: 90%; overflow:auto;}pre.src { background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold; white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000; font-weight:bold; }sup { vertical-align: baseline; position: relative; top: -0.5em; font-size: 80%;}sup a:link, sup a:visited { text-decoration: none; color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble { color: #777; font-size: 90%; padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999; margin-top: 2em; padding-left: 2em; padding-right: 2em; text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print { html { font-size: 11pt; }}'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor { border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus { border: 2px solid #327fbd;}.%cssClass% .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.%cssClass% .ace_gutter-layer { width: 100%; text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.%cssClass% .ace_print_margin { width: 1px; background: %printMargin%;}.%cssClass% .ace_scroller { background-color: %background%;}.%cssClass% .ace_text-layer { cursor: text; color: %foreground%;}.%cssClass% .ace_cursor { border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection { background: %selection%;}.%cssClass% .ace_marker-layer .ace_step { background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line { background: %active_line%;} .%cssClass% .ace_invisible { %invisible%}.%cssClass% .ace_keyword { %keyword%}.%cssClass% .ace_keyword.ace_operator { %keyword.operator%}.%cssClass% .ace_constant { %constant%}.%cssClass% .ace_constant.ace_language { %constant.language%}.%cssClass% .ace_constant.ace_library { %constant.library%}.%cssClass% .ace_constant.ace_numeric { %constant.numeric%}.%cssClass% .ace_invalid { %invalid%}.%cssClass% .ace_invalid.ace_illegal { %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated { %invalid.deprecated%}.%cssClass% .ace_support { %support%}.%cssClass% .ace_support.ace_function { %support.function%}.%cssClass% .ace_function.ace_buildin { %function.buildin%}.%cssClass% .ace_string { %string%}.%cssClass% .ace_string.ace_regexp { %string.regexp%}.%cssClass% .ace_comment { %comment%}.%cssClass% .ace_comment.ace_doc { %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag { %comment.doc.tag%}.%cssClass% .ace_variable { %variable%}.%cssClass% .ace_variable.ace_language { %variable.language%}.%cssClass% .ace_xml_pe { %xml_pe%}.%cssClass% .ace_meta { %meta%}.%cssClass% .ace_meta.ace_tag { %meta.tag%}.%cssClass% .ace_meta.ace_tag.ace_input { %ace.meta.tag.input%}.%cssClass% .ace_entity.ace_other.ace_attribute-name { %entity.other.attribute-name%}.%cssClass% .ace_collab.ace_user1 { %collab.user1% }"),define("text/styles.css",[],"html { height: 100%; width: 100%; overflow: hidden;}body { overflow: hidden; margin: 0; padding: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif; font-size: 12px; background: rgb(14, 98, 165); color: white;}#logo { padding: 15px; margin-left: 65px;}#editor { position: absolute; top: 0px; left: 280px; bottom: 0px; right: 0px; background: white;}#controls { padding: 5px;}#controls td { text-align: right;}#controls td + td { text-align: left;}#cockpitInput { position: absolute; left: 280px; right: 0px; bottom: 0; border: none; outline: none; font-family: consolas, courier, monospace; font-size: 120%;}#cockpitOutput { padding: 10px; margin: 0 15px; border: 1px solid #AAA; -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 4px; border-top-right-radius: 4px; background: #DDD; color: #000;}"),require(["ace/ace"],function(a){window.ace=a}) +(function(){var a=function(){return this}();if(a.require&&a.define)require.packaged=!0;else{var b=function(a,c,d){typeof a!="string"?b.original?b.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace()):(arguments.length==2&&(d=c),define.modules||(define.modules={}),define.modules[a]=d)};a.define&&(b.original=a.define),a.define=b;var c=function(a,b){if(Object.prototype.toString.call(a)==="[object Array]"){var e=[];for(var f=0,g=a.length;f=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("ace/ace",["require","exports","module","pilot/index","pilot/fixoldbrowsers","pilot/plugin_manager","pilot/dom","pilot/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/theme/textmate","pilot/environment"],function(a,b,c){a("pilot/index"),a("pilot/fixoldbrowsers");var d=a("pilot/plugin_manager").catalog;d.registerPlugins(["pilot/index"]);var e=a("pilot/dom"),f=a("pilot/event"),g=a("ace/editor").Editor,h=a("ace/edit_session").EditSession,i=a("ace/undomanager").UndoManager,j=a("ace/virtual_renderer").VirtualRenderer;b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));var c=new h(e.getInnerText(b));c.setUndoManager(new i),b.innerHTML="";var k=new g(new j(b,a("ace/theme/textmate")));k.setSession(c);var l=a("pilot/environment").create();d.startupPlugins({env:l}).then(function(){l.document=c,l.editor=k,k.resize(),f.addListener(window,"resize",function(){k.resize()}),b.env=l}),k.env=l;return k}}),define("pilot/index",["require","exports","module","pilot/fixoldbrowsers","pilot/types/basic","pilot/types/command","pilot/types/settings","pilot/commands/settings","pilot/commands/basic","pilot/settings/canon","pilot/canon"],function(a,b,c){b.startup=function(b,c){a("pilot/fixoldbrowsers"),a("pilot/types/basic").startup(b,c),a("pilot/types/command").startup(b,c),a("pilot/types/settings").startup(b,c),a("pilot/commands/settings").startup(b,c),a("pilot/commands/basic").startup(b,c),a("pilot/settings/canon").startup(b,c),a("pilot/canon").startup(b,c)},b.shutdown=function(b,c){a("pilot/types/basic").shutdown(b,c),a("pilot/types/command").shutdown(b,c),a("pilot/types/settings").shutdown(b,c),a("pilot/commands/settings").shutdown(b,c),a("pilot/commands/basic").shutdown(b,c),a("pilot/settings/canon").shutdown(b,c),a("pilot/canon").shutdown(b,c)}}),define("pilot/types/basic",["require","exports","module","pilot/types"],function(a,b,c){function m(a){if(a instanceof e)this.subtype=a;else{if(typeof a!="string")throw new Error("Can' handle array subtype");this.subtype=d.getType(a);if(this.subtype==null)throw new Error("Unknown array subtype: "+a)}}function l(a){if(typeof a.defer!="function")throw new Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function j(a){if(!Array.isArray(a.data)&&typeof a.data!="function")throw new Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}var d=a("pilot/types"),e=d.Type,f=d.Conversion,g=d.Status,h=new e;h.stringify=function(a){return a},h.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to text.parse()");return new f(a)},h.name="text";var i=new e;i.stringify=function(a){return a?""+a:null},i.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to number.parse()");if(a.replace(/\s/g,"").length===0)return new f(null,g.INCOMPLETE,"");var b=new f(parseInt(a,10));isNaN(b.value)&&(b.status=g.INVALID,b.message="Can't convert \""+a+'" to a number.');return b},i.decrement=function(a){return a-1},i.increment=function(a){return a+1},i.name="number",j.prototype=new e,j.prototype.stringify=function(a){return a},j.prototype.parse=function(a){if(typeof a!="string")throw new Error("non-string passed to parse()");if(!this.data)throw new Error("Missing data on selection type extension.");var b=typeof this.data=="function"?this.data():this.data,c=!1,d,e=[];b.forEach(function(b){a==b?(d=this.fromString(b),c=!0):b.indexOf(a)===0&&e.push(this.fromString(b))},this);if(c)return new f(d);this.noMatch&&this.noMatch();if(e.length>0){var h="Possibilities"+(a.length===0?"":" for '"+a+"'");return new f(null,g.INCOMPLETE,h,e)}var h="Can't use '"+a+"'.";return new f(null,g.INVALID,h,e)},j.prototype.fromString=function(a){return a},j.prototype.decrement=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=b.length-1;else{var d=this.stringify(a),c=b.indexOf(d);c=c===0?b.length-1:c-1}return this.fromString(b[c])},j.prototype.increment=function(a){var b=typeof this.data=="function"?this.data():this.data,c;if(a==null)c=0;else{var d=this.stringify(a),c=b.indexOf(d);c=c===b.length-1?0:c+1}return this.fromString(b[c])},j.prototype.name="selection",b.SelectionType=j;var k=new j({name:"bool",data:["true","false"],stringify:function(a){return""+a},fromString:function(a){return a==="true"?!0:!1}});l.prototype=new e,l.prototype.stringify=function(a){return this.defer().stringify(a)},l.prototype.parse=function(a){return this.defer().parse(a)},l.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):undefined},l.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):undefined},l.prototype.name="deferred",b.DeferredType=l,m.prototype=new e,m.prototype.stringify=function(a){return a.join(" ")},m.prototype.parse=function(a){return this.defer().parse(a)},m.prototype.name="array";var n=!1;b.startup=function(){n||(n=!0,d.registerType(h),d.registerType(i),d.registerType(k),d.registerType(j),d.registerType(l),d.registerType(m))},b.shutdown=function(){n=!1,d.unregisterType(h),d.unregisterType(i),d.unregisterType(k),d.unregisterType(j),d.unregisterType(l),d.unregisterType(m)}}),define("pilot/types",["require","exports","module"],function(a,b,c){function h(a,b){if(a.substr(-2)==="[]"){var c=a.slice(0,-2);return new g.array(c)}var d=g[a];typeof d=="function"&&(d=new d(b));return d}function f(){}function e(a,b,c,e){this.value=a,this.status=b||d.VALID,this.message=c,this.predictions=e||[]}var d={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(a){var b=d.VALID;for(var c=0;cb.valueOf()&&(b=a[c]);return b}};b.Status=d,b.Conversion=e,f.prototype={stringify:function(a){throw new Error("not implemented")},parse:function(a){throw new Error("not implemented")},name:undefined,increment:function(a){return undefined},decrement:function(a){return undefined},getDefault:function(){return this.parse("")}},b.Type=f;var g={};b.registerType=function(a){if(typeof a=="object"){if(!(a instanceof f))throw new Error("Can't registerType using: "+a);if(!a.name)throw new Error("All registered types must have a name");g[a.name]=a}else{if(typeof a!="function")throw new Error("Unknown type: "+a);if(!a.prototype.name)throw new Error("All registered types must have a name");g[a.prototype.name]=a}},b.registerTypes=function(a){Object.keys(a).forEach(function(c){var d=a[c];d.name=c,b.registerType(d)})},b.deregisterType=function(a){delete g[a.name]},b.getType=function(a){if(typeof a=="string")return h(a);if(typeof a=="object"){if(!a.name)throw new Error("Missing 'name' member to typeSpec");return h(a.name,a)}throw new Error("Can't extract type from "+a)}}),define("pilot/types/command",["require","exports","module","pilot/canon","pilot/types/basic","pilot/types"],function(a,b,c){var d=a("pilot/canon"),e=a("pilot/types/basic").SelectionType,f=a("pilot/types"),g=new e({name:"command",data:function(){return d.getCommandNames()},stringify:function(a){return a.name},fromString:function(a){return d.getCommand(a)}});b.startup=function(){f.registerType(g)},b.shutdown=function(){f.unregisterType(g)}}),define("pilot/canon",["require","exports","module","pilot/console","pilot/stacktrace","pilot/oop","pilot/useragent","pilot/keys","pilot/event_emitter","pilot/typecheck","pilot/catalog","pilot/types","pilot/lang"],function(a,b,c){function J(a){a=a||{},this.command=a.command,this.args=a.args,this.typed=a.typed,this._begunOutput=!1,this.start=new Date,this.end=null,this.completed=!1,this.error=!1}function G(a,b,c,e,f){function h(){a.exec(b,g.args,g),!g.isAsync&&!g.isDone&&g.done()}typeof a=="string"&&(a=q[a]);if(!a)return!1;var g=new J({sender:c,command:a,args:e||{},typed:f});if(g.getStatus()==l.INVALID){d.error("Canon.exec: Invalid parameter(s) passed to "+a.name);return!1}if(g.getStatus()==l.INCOMPLETE){var i,j=b[c];if(!j||!j.getArgsProvider||!(i=j.getArgsProvider()))i=F;i(g,function(){g.getStatus()==l.VALID&&h()});return!0}h();return!0}function F(a,b){var c=a.args,d=a.command.params;for(var e=0;eI)H.shiftObject();b._dispatchEvent("output",{requests:H,request:this})},J.prototype.doneWithError=function(a){this.error=!0,this.done(a)},J.prototype.async=function(){this.isAsync=!0,this._begunOutput||this._beginOutput()},J.prototype.output=function(a){this._begunOutput||this._beginOutput(),typeof a!="string"&&!(a instanceof Node)&&(a=a.toString()),this.outputs.push(a),this.isDone=!0,this._dispatchEvent("output",{});return this},J.prototype.done=function(a){this.completed=!0,this.end=new Date,this.duration=this.end.getTime()-this.start.getTime(),a&&this.output(a),this.isDone||(this.isDone=!0,this._dispatchEvent("output",{}))},b.Request=J}),define("pilot/console",["require","exports","module"],function(a,b,c){var d=function(){},e=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];typeof window=="undefined"?e.forEach(function(a){b[a]=function(){var b=Array.prototype.slice.call(arguments),c={op:"log",method:a,args:b};postMessage(JSON.stringify(c))}}):e.forEach(function(a){window.console&&window.console[a]?b[a]=Function.prototype.bind.call(window.console[a],window.console):b[a]=d})}),define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(a,b,c){function i(){}function g(a){for(var b=0;b\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b){e.log(a);return[]}b=b.replace(/(?:\n@:0)?\s+$/m,""),b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var b=a.message.split("\n"),c="{anonymous}",d=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,f,g;for(e=4,f=0,g=b.length;e=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("pilot/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("pilot/keys",["require","exports","module","pilot/oop"],function(a,b,c){var d=a("pilot/oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in a.FUNCTION_KEYS){var b=a.FUNCTION_KEYS[i].toUpperCase();a[b]=parseInt(i,10)}d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS);return a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d'+c.name+" = "+c.value+"
                                                                            "})}else b.value===undefined?d=""+setting.name+" = "+setting.get():(b.setting.set(b.value),d="Setting: "+b.setting.name+" = "+b.setting.get());c.done(d)}},e={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],description:"unset a setting entirely",exec:function(a,b,c){var d=a.settings.get(b.setting);d?(d.reset(),c.done("Reset "+d.name+" to default: "+a.settings.get(b.setting))):c.doneWithError("No setting with the name "+b.setting+".")}},f=a("pilot/canon");b.startup=function(a,b){f.addCommand(d),f.addCommand(e)},b.shutdown=function(a,b){f.removeCommand(d),f.removeCommand(e)}}),define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(require,exports,module){var checks=require("pilot/typecheck"),canon=require("pilot/canon"),helpCommandSpec={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(a,b,c){var d=[],e=canon.getCommand(b.search);if(e&&e.exec)d.push(e.description?e.description:"No description for "+b.search);else{var f=!1;e?(d.push("

                                                                            Sub-Commands of "+e.name+"

                                                                            "),d.push("

                                                                            "+e.description+"

                                                                            ")):b.search?(b.search=="hidden"&&(b.search="",f=!0),d.push("

                                                                            Commands starting with '"+b.search+"':

                                                                            ")):d.push("

                                                                            Available Commands:

                                                                            ");var g=canon.getCommandNames();g.sort(),d.push("");for(var h=0;h"),d.push('"),d.push(""),d.push("")}d.push("
                                                                            '+e.name+""+e.description+"
                                                                            ")}c.done(d.join(""))}},evalCommandSpec={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:!0,exec:function(env,args,request){var result,javascript=args.javascript;try{result=eval(javascript)}catch(e){result="Error: "+e.message+""}var msg="",type="",x;if(checks.isFunction(result))msg=(result+"").replace(/\n/g,"
                                                                            ").replace(/ /g," "),type="function";else if(checks.isObject(result)){Array.isArray(result)?type="array":type="object";var items=[],value;for(x in result)result.hasOwnProperty(x)&&(checks.isFunction(result[x])?value="[function]":checks.isObject(result[x])?value="[object]":value=result[x],items.push({name:x,value:value}));items.sort(function(a,b){return a.name.toLowerCase()"+items[x].name+": "+items[x].value+"
                                                                            "}else msg=result,type=typeof result;request.done("Result for eval '"+javascript+"'"+" (type: "+type+"):

                                                                            "+msg)}},canon=require("pilot/canon");exports.startup=function(a,b){canon.addCommand(helpCommandSpec),canon.addCommand(evalCommandSpec)},exports.shutdown=function(a,b){canon.removeCommand(helpCommandSpec),canon.removeCommand(evalCommandSpec)}}),define("pilot/settings/canon",["require","exports","module"],function(a,b,c){var d={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};b.startup=function(a,b){a.env.settings.addSetting(d)},b.shutdown=function(a,b){a.env.settings.removeSetting(d)}}),define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(a,b,c){var d=a("pilot/promise").Promise;b.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8},b.Plugin=function(a){this.name=a,this.status=this.INSTALLED},b.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,c){var e=new d;if(this.status>this.NEW){e.resolve(this);return e}a([this.name],function(a){a.install&&a.install(b,c),this.status=this.INSTALLED,e.resolve(this)}.bind(this));return e},register:function(b,c){var e=new d;if(this.status!=this.INSTALLED){e.resolve(this);return e}a([this.name],function(a){a.register&&a.register(b,c),this.status=this.REGISTERED,e.resolve(this)}.bind(this));return e},startup:function(c,e){e=e||b.REASONS.APP_STARTUP;var f=new d;if(this.status!=this.REGISTERED){f.resolve(this);return f}a([this.name],function(a){a.startup&&a.startup(c,e),this.status=this.STARTED,f.resolve(this)}.bind(this));return f},shutdown:function(b,c){this.status==this.STARTED&&(pluginModule=a(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,c))}},b.PluginCatalog=function(){this.plugins={}},b.PluginCatalog.prototype={registerPlugins:function(a,c,e){var f=[];a.forEach(function(a){var d=this.plugins[a];d===undefined&&(d=new b.Plugin(a),this.plugins[a]=d,f.push(d.register(c,e)))}.bind(this));return d.group(f)},startupPlugins:function(a,b){var c=[];for(var e in this.plugins){var f=this.plugins[e];c.push(f.startup(a,b))}return d.group(c)}},b.catalog=new b.PluginCatalog}),define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(a,b,c){var d=a("pilot/console"),e=a("pilot/stacktrace").Trace,f=-1,g=0,h=1,i=0,j=!1,k=[],l=[];Promise=function(){this._status=g,this._value=undefined,this._onSuccessHandlers=[],this._onErrorHandlers=[],this._id=i++,k[this._id]=this},Promise.prototype.isPromise=!0,Promise.prototype.isComplete=function(){return this._status!=g},Promise.prototype.isResolved=function(){return this._status==h},Promise.prototype.isRejected=function(){return this._status==f},Promise.prototype.then=function(a,b){typeof a=="function"&&(this._status===h?a.call(null,this._value):this._status===g&&this._onSuccessHandlers.push(a)),typeof b=="function"&&(this._status===f?b.call(null,this._value):this._status===g&&this._onErrorHandlers.push(b));return this},Promise.prototype.chainPromise=function(a){var b=new Promise;b._chainedFrom=this,this.then(function(c){try{b.resolve(a(c))}catch(d){b.reject(d)}},function(a){b.reject(a)});return b},Promise.prototype.resolve=function(a){return this._complete(this._onSuccessHandlers,h,a,"resolve")},Promise.prototype.reject=function(a){return this._complete(this._onErrorHandlers,f,a,"reject")},Promise.prototype._complete=function(a,b,c,f){if(this._status!=g){d.group("Promise already closed"),d.error("Attempted "+f+"() with ",c),d.error("Previous status = ",this._status,", previous value = ",this._value),d.trace(),this._completeTrace&&(d.error("Trace of previous completion:"),this._completeTrace.log(5)),d.groupEnd();return this}j&&(this._completeTrace=new e(new Error)),this._status=b,this._value=c,a.forEach(function(a){a.call(null,this._value)},this),this._onSuccessHandlers.length=0,this._onErrorHandlers.length=0,delete k[this._id],l.push(this);while(l.length>20)l.shift();return this},Promise.group=function(a){a instanceof Array||(a=Array.prototype.slice.call(arguments));if(a.length===0)return(new Promise).resolve([]);var b=new Promise,c=[],d=0,e=function(e){return function(g){c[e]=g,d++,b._status!==f&&d===a.length&&b.resolve(c)}};a.forEach(function(a,c){var d=e(c),f=b.reject.bind(b);a.then(d,f)});return b},b.Promise=Promise,b._outstanding=k,b._recent=l}),define("pilot/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},document.documentElement.classList?(b.hasCssClass=function(a,b){return a.classList.contains(b)},b.addCssClass=function(a,b){a.classList.add(b)},b.removeCssClass=function(a,b){a.classList.remove(b)},b.toggleCssClass=function(a,b){return a.classList.toggle(b)}):(b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}d&&c.push(b),a.className=c.join(" ");return d}),b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.importCssString=function(a,b){b=b||document;if(b.createStyleSheet){var c=b.createStyleSheet();c.cssText=a}else{var e=b.createElementNS?b.createElementNS(d,"style"):b.createElement("style");e.appendChild(b.createTextNode(a));var f=b.getElementsByTagName("head")[0]||b.documentElement;f.appendChild(e)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"))+parseInt(b.computedStyle(a,"paddingRight"))+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"))+parseInt(b.computedStyle(a,"paddingBottom"))+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(){var a=b.createElement("p");a.style.width="100%",a.style.minWidth="0px",a.style.height="200px";var c=b.createElement("div"),d=c.style;d.position="absolute",d.left="-10000px",d.overflow="hidden",d.width="200px",d.minWidth="0px",d.height="150px",c.appendChild(a);var e=document.body||document.documentElement;e.appendChild(c);var f=a.offsetWidth;d.overflow="scroll";var g=a.offsetWidth;f==g&&(g=c.clientWidth),e.removeChild(c);return f-g},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);c.innerHTML=b,a.parentNode.replaceChild(c,a);return c},b.setInnerText=function(a,b){document.body&&"textContent"in document.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){return document.body&&"textContent"in document.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow},b.getSelectionStart=function(a){var b;try{b=a.selectionStart||0}catch(c){b=0}return b},b.setSelectionStart=function(a,b){return a.selectionStart=b},b.getSelectionEnd=function(a){var b;try{b=a.selectionEnd||0}catch(c){b=0}return b},b.setSelectionEnd=function(a,b){return a.selectionEnd=b}}),define("pilot/event",["require","exports","module","pilot/keys","pilot/useragent","pilot/dom"],function(a,b,c){function g(a,b,c){var f=0;e.isOpera&&e.isMac?f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0):f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}f&8&&(c==91||c==93)&&(c=0);return f!=0||c in d.FUNCTION_KEYS?a(b,f,c):!1}var d=a("pilot/keys"),e=a("pilot/useragent"),f=a("pilot/dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){b.stopPropagation(a),b.preventDefault(a);return!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getDocumentX=function(a){return a.clientX?a.clientX+f.getPageScrollLeft():a.pageX},b.getDocumentY=function(a){return a.clientY?a.clientY+f.getPageScrollTop():a.pageY},b.getButton=function(a){if(a.type=="dblclick")return 0;if(a.type=="contextmenu")return 2;return a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function g(e){c(e),f||(f=!0,d()),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",g),b.removeListener(a,"losecapture",g),a.releaseCapture()}function e(a){c(a);return b.stopPropagation(a)}var f=!1;b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",g),b.addListener(a,"losecapture",g),a.setCapture()}:b.capture=function(a,b,c){function e(a){b&&b(a),c&&c(),document.removeEventListener("mousemove",d,!0),document.removeEventListener("mouseup",e,!0),a.stopPropagation()}function d(a){b(a),a.stopPropagation()}document.addEventListener("mousemove",d,!0),document.addEventListener("mouseup",e,!0)},b.addMouseWheelListener=function(a,c){var d=0,e=function(a){a.wheelDelta!==undefined?(Math.abs(a.wheelDeltaY)>d&&(d=Math.abs(a.wheelDeltaY)),d>5e3?factor=400:factor=8,a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/factor,a.wheelY=-a.wheelDeltaY/factor):(a.wheelX=0,a.wheelY=-a.wheelDelta/factor)):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",e),b.addListener(a,"mousewheel",e)},b.addMultiMouseDownListener=function(a,c,d,f,g){var h=0,i,j,k=function(a){h+=1,h==1&&(i=a.clientX,j=a.clientY,setTimeout(function(){h=0},f||600));var e=b.getButton(a)==c;if(!e||Math.abs(a.clientX-i)>5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){h=a.keyIdentifier||a.keyCode;return g(c,a,a.keyCode)}),e.isMac&&e.isOpera&&d(a,"keypress",function(a){var b=a.keyIdentifier||a.keyCode;if(h!==b)return g(c,a,a.keyCode);h=null})}}}),define("ace/editor",["require","exports","module","pilot/fixoldbrowsers","pilot/oop","pilot/event","pilot/lang","pilot/useragent","ace/keyboard/textinput","ace/mouse_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","pilot/event_emitter"],function(a,b,c){a("pilot/fixoldbrowsers");var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("ace/keyboard/textinput").TextInput,i=a("ace/mouse_handler").MouseHandler,j=a("ace/keyboard/keybinding").KeyBinding,k=a("ace/edit_session").EditSession,l=a("ace/search").Search,m=a("ace/range").Range,n=a("pilot/event_emitter").EventEmitter,o=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.textInput=new h(a.getTextAreaContainer(),this),this.keyBinding=new j(this),g.isIPad||(this.$mouseHandler=new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.$forwardEvents={gutterclick:1,gutterdblclick:1},this.$originalAddEventListener=this.addEventListener,this.$originalRemoveEventListener=this.removeEventListener,this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)},this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)},this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange),this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.scrollToRow(a.getScrollTopRow()),this.renderer.updateFull(),this._dispatchEvent("changeSession",{session:a,oldSession:b})}},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(!this.$highlightPending){var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)}},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._dispatchEvent("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._dispatchEvent("blur")},this.onDocumentChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines")var d=c.end.row;else d=Infinity;this.renderer.updateLines(c.start.row,d),this.renderer.updateCursor()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onCursorChange=function(a){this.renderer.updateCursor(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.renderer.moveTextAreaToCursor(this.textInput.getElement()),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row),d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a);return a},this.onCut=function(){if(!this.$readOnly){var a=this.getSelectionRange();this._emit("cut",a),this.selection.isEmpty()||(this.session.remove(a),this.clearSelection())}},this.insert=function(a){if(!this.$readOnly){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){var d=this.session.remove(this.getSelectionRange());this.clearSelection()}else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)=="\t"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}else i&&c.autoOutdent(h,b,d.row)}},this.onTextInput=function(a,b){b||this._emit("paste",a);if(b&&a.length==1){var c=this.keyBinding.onCommandKey({},0,null,a);c||this.insert(a)}else this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.$selectionStyle="line",this.setSelectionStyle=function(a){this.$selectionStyle!=a&&(this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a}))},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){this.$highlightActiveLine!=a&&(this.$highlightActiveLine=a,this.$updateHighlightActiveLine())},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){this.$highlightSelectedWord!=a&&(this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this))},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,c=b.getState(a.start.row),d=b.getMode().transformAction(c,"deletion",this,b,a);d!==!1&&(a=d)}this.session.remove(a),this.clearSelection()}},this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection())},this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()}},this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)}},this.transposeLetters=function(){if(!this.$readOnly){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b==0)return;var c=this.session.getLine(a.row);if(b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()},this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)},this.selectPageDown=function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),c=this.session.documentToScreenPosition(b.getSelectionLead()),d=this.session.screenToDocumentPosition(a,c.column);b.selectTo(d.row,d.column)},this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var c=this.getSelection(),d=this.session.documentToScreenPosition(c.getSelectionLead()),e=this.session.screenToDocumentPosition(b,d.column);c.selectTo(e.row,e.column)},this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a),this.getSelection().moveCursorToScreen(a,b)},this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())},this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.gotoLine=function(a,b){this.selection.clearSelection(),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,!0)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session);!c||(this.$tryReplace(c,a),c!==null&&this.selection.setSelectionRange(c))},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session);if(!!c.length){var d=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0),this.$blockScrolling+=1;for(var e=c.length-1;e>=0;--e)this.$tryReplace(c[e],a);this.selection.setSelectionRange(d),this.$blockScrolling-=1}},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a),b=this.$search.replace(c,b);if(b!==null){a.end=this.session.replace(a,b);return a}return null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find()},this.findNext=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!1),this.$search.set(a),this.$find()},this.findPrevious=function(a){a=a||{},typeof a.backwards=="undefined"&&(a.backwards=!0),this.$search.set(a),this.$find()},this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var b=this.$search.find(this.session);b&&(this.gotoLine(b.end.row+1,b.end.column),this.selection.setSelectionRange(b))},this.undo=function(){this.session.getUndoManager().undo()},this.redo=function(){this.session.getUndoManager().redo()},this.destroy=function(){this.renderer.destroy()}}).call(o.prototype),b.Editor=o}),define("ace/keyboard/textinput",["require","exports","module","pilot/event","pilot/useragent","pilot/dom"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/useragent"),f=a("pilot/dom"),g=function(a,b){function v(){return document.activeElement===c}function m(a){if(!i){var d=a||c.value;if(d){d.charCodeAt(d.length-1)==g.charCodeAt(0)?(d=d.slice(0,-1),d&&b.onTextInput(d,!j)):b.onTextInput(d,!j);if(!v())return!1}}i=!1,j=!1,c.value=g,l()}function l(){try{c.select()}catch(a){}}var c=f.createElement("textarea");c.style.left="-10000px",a.appendChild(c);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data)},0)},o=function(a){e.isIE&&c.value.charCodeAt(0)>128||setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){!h||b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);(c.value.charCodeAt(0)|0)<129||(h?q():p())})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),e.isIE?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),define("ace/mouse_handler",["require","exports","module","pilot/event","pilot/dom","pilot/browser_focus"],function(a,b,c){var d=a("pilot/event"),e=a("pilot/dom"),f=a("pilot/browser_focus").BrowserFocus,g=0,h=1,i=2,j=250,k=5,l=function(a){this.editor=a,this.browserFocus=new f,d.addListener(a.container,"mousedown",function(b){a.focus();return d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseDown.bind(this)),d.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this)),d.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this)),d.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this)),d.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.$getEventPosition=function(a){var b=d.getDocumentX(a),c=d.getDocumentY(a),e=this.editor.renderer.screenToTextCoordinates(b,c);e.row=Math.max(0,Math.min(e.row,this.editor.session.getLength()-1));return e},this.$distance=function(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))},this.onMouseDown=function(a){function D(b){a.shiftKey?l.selection.selectToPosition(b):m.$clickSelection||(l.moveCursorToPosition(b),l.selection.clearSelection(b.row,b.column)),q=h}var b=d.getDocumentX(a),c=d.getDocumentY(a),f=this.$getEventPosition(a),l=this.editor,m=this,n=l.getSelectionRange(),o=n.isEmpty(),p=!l.getReadOnly()&&!o&&n.contains(f.row,f.column),q=g;if(p&&(!this.browserFocus.isFocused()||(new Date).getTime()-this.browserFocus.lastFocus<20||!this.editor.isFocused()))this.editor.focus();else{var r=d.getButton(a);if(r!==0){o&&l.moveCursorToPosition(f),r==2&&(l.textInput.onContextMenu({x:b,y:c},o),d.capture(l.container,function(){},l.textInput.onContextMenuClose));return}var s=l.session.getFoldAt(f.row,f.column,1);if(s){l.selection.setSelectionRange(s.range);return}p||D(f);var t,u,v=l.getOverwrite(),w=(new Date).getTime(),x,y,z=function(a){t=d.getDocumentX(a),u=d.getDocumentY(a)},A=function(){clearInterval(G),q==g?D(f):q==i&&B(),m.$clickSelection=null,q=g},B=function(){e.removeCssClass(l.container,"ace_dragging"),l.session.removeMarker(dragSelectionMarker),m.$clickSelection||x||(l.moveCursorToPosition(f),l.selection.clearSelection(f.row,f.column));if(!!x){if(y.contains(x.row,x.column)){x=null;return}l.clearSelection();var a=l.moveText(y,x);if(!a){x=null;return}l.selection.setSelectionRange(a)}},C=function(){if(t!==undefined&&u!==undefined){if(q==g){var a=m.$distance(b,c,t,u),d=(new Date).getTime();if(a>k){q=h;var f=l.renderer.screenToTextCoordinates(t,u);f.row=Math.max(0,Math.min(f.row,l.session.getLength()-1)),D(f)}else if(d-w>j){q=i,y=l.getSelectionRange();var n=l.getSelectionStyle();dragSelectionMarker=l.session.addMarker(y,"ace_selection",n),l.clearSelection(),e.addCssClass(l.container,"ace_dragging")}}q==i?F():q==h&&E()}},E=function(){var a=l.renderer.screenToTextCoordinates(t,u);a.row=Math.max(0,Math.min(a.row,l.session.getLength()-1));if(m.$clickSelection)if(m.$clickSelection.contains(a.row,a.column))l.selection.setSelectionRange(m.$clickSelection);else{if(m.$clickSelection.compare(a.row,a.column)==-1)var b=m.$clickSelection.end;else var b=m.$clickSelection.start;l.selection.setSelectionAnchor(b.row,b.column),l.selection.selectToPosition(a)}else l.selection.selectToPosition(a);l.renderer.scrollCursorIntoView()},F=function(){x=l.renderer.screenToTextCoordinates(t,u),x.row=Math.max(0,Math.min(x.row,l.session.getLength()-1)),l.moveCursorToPosition(x)};d.capture(l.container,z,A);var G=setInterval(C,20);return d.preventDefault(a)}},this.onMouseDoubleClick=function(a){var b=this.editor,c=this.$getEventPosition(a),d=b.session.getFoldAt(c.row,c.column,1);d?b.session.expandFold(d):(b.moveCursorToPosition(c),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())},this.onMouseTripleClick=function(a){var b=this.$getEventPosition(a);this.editor.moveCursorToPosition(b),this.editor.selection.selectLine(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseQuadClick=function(a){this.editor.selectAll(),this.$clickSelection=this.editor.getSelectionRange()},this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return d.preventDefault(a)}}).call(l.prototype),b.MouseHandler=l}),define("pilot/browser_focus",["require","exports","module","pilot/oop","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event"),f=a("pilot/event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){this._isFocused!=a&&(a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus"))}}).call(g.prototype),b.BrowserFocus=g}),define("ace/keyboard/keybinding",["require","exports","module","pilot/useragent","pilot/keys","pilot/event","pilot/settings","pilot/canon","ace/commands/default_commands"],function(a,b,c){var d=a("pilot/useragent"),e=a("pilot/keys"),f=a("pilot/event"),g=a("pilot/settings").settings,h=a("pilot/canon");a("ace/commands/default_commands");var i=function(a){this.$editor=a,this.$data={},this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(a){this.$keyboardHandler!=a&&(this.$data={},this.$keyboardHandler=a)},this.getKeyboardHandler=function(){return this.$keyboardHandler},this.$callKeyboardHandler=function(a,b,c,d){var e={editor:this.$editor},g;this.$keyboardHandler&&(g=this.$keyboardHandler.handleKeyboard(this.$data,b,c,d,a));if(!g||!g.command)b!=0||d!=0?g={command:h.findKeyCommand(e,"editor",b,c)}:g={command:"inserttext",args:{text:c}};var i=!1;g&&(i=h.exec(g.command,e,"editor",g.args),i&&f.stopEvent(a));return i},this.onCommandKey=function(a,b,c,d){d||(d=e.keyCodeToString(c));return this.$callKeyboardHandler(a,b,d,c)},this.onTextInput=function(a){return this.$callKeyboardHandler({},0,a,0)}}).call(i.prototype),b.KeyBinding=i}),define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(a,b,c){function f(a,b){return{win:a,mac:b,sender:"editor"}}var d=a("pilot/lang"),e=a("pilot/canon");e.addCommand({name:"null",exec:function(a,b,c){}}),e.addCommand({name:"selectall",bindKey:f("Ctrl-A","Command-A"),exec:function(a,b,c){a.editor.selectAll()}}),e.addCommand({name:"removeline",bindKey:f("Ctrl-D","Command-D"),exec:function(a,b,c){a.editor.removeLines()}}),e.addCommand({name:"gotoline",bindKey:f("Ctrl-L","Command-L"),exec:function(a,b,c){var d=parseInt(prompt("Enter line number:"));isNaN(d)||a.editor.gotoLine(d)}}),e.addCommand({name:"togglecomment",bindKey:f("Ctrl-7","Command-7"),exec:function(a,b,c){a.editor.toggleCommentLines()}}),e.addCommand({name:"findnext",bindKey:f("Ctrl-K","Command-G"),exec:function(a,b,c){a.editor.findNext()}}),e.addCommand({name:"findprevious",bindKey:f("Ctrl-Shift-K","Command-Shift-G"),exec:function(a,b,c){a.editor.findPrevious()}}),e.addCommand({name:"find",bindKey:f("Ctrl-F","Command-F"),exec:function(a,b,c){var d=prompt("Find:");a.editor.find(d)}}),e.addCommand({name:"replace",bindKey:f("Ctrl-R","Command-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replace(e,{needle:d})}}}),e.addCommand({name:"replaceall",bindKey:f("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a,b,c){var d=prompt("Find:");if(!!d){var e=prompt("Replacement:");if(!e)return;a.editor.replaceAll(e,{needle:d})}}}),e.addCommand({name:"undo",bindKey:f("Ctrl-Z","Command-Z"),exec:function(a,b,c){a.editor.undo()}}),e.addCommand({name:"redo",bindKey:f("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a,b,c){a.editor.redo()}}),e.addCommand({name:"overwrite",bindKey:f("Insert","Insert"),exec:function(a,b,c){a.editor.toggleOverwrite()}}),e.addCommand({name:"copylinesup",bindKey:f("Ctrl-Alt-Up","Command-Option-Up"),exec:function(a,b,c){a.editor.copyLinesUp()}}),e.addCommand({name:"movelinesup",bindKey:f("Alt-Up","Option-Up"),exec:function(a,b,c){a.editor.moveLinesUp()}}),e.addCommand({name:"selecttostart",bindKey:f("Ctrl-Shift-Home|Alt-Shift-Up","Command-Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectFileStart()}}),e.addCommand({name:"gotostart",bindKey:f("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(a,b,c){a.editor.navigateFileStart()}}),e.addCommand({name:"selectup",bindKey:f("Shift-Up","Shift-Up"),exec:function(a,b,c){a.editor.getSelection().selectUp()}}),e.addCommand({name:"golineup",bindKey:f("Up","Up|Ctrl-P"),exec:function(a,b,c){a.editor.navigateUp(b.times)}}),e.addCommand({name:"copylinesdown",bindKey:f("Ctrl-Alt-Down","Command-Option-Down"),exec:function(a,b,c){a.editor.copyLinesDown()}}),e.addCommand({name:"movelinesdown",bindKey:f("Alt-Down","Option-Down"),exec:function(a,b,c){a.editor.moveLinesDown()}}),e.addCommand({name:"selecttoend",bindKey:f("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectFileEnd()}}),e.addCommand({name:"gotoend",bindKey:f("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(a,b,c){a.editor.navigateFileEnd()}}),e.addCommand({name:"selectdown",bindKey:f("Shift-Down","Shift-Down"),exec:function(a,b,c){a.editor.getSelection().selectDown()}}),e.addCommand({name:"golinedown",bindKey:f("Down","Down|Ctrl-N"),exec:function(a,b,c){a.editor.navigateDown(b.times)}}),e.addCommand({name:"selectwordleft",bindKey:f("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectWordLeft()}}),e.addCommand({name:"gotowordleft",bindKey:f("Ctrl-Left","Option-Left"),exec:function(a,b,c){a.editor.navigateWordLeft()}}),e.addCommand({name:"selecttolinestart",bindKey:f("Alt-Shift-Left","Command-Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"gotolinestart",bindKey:f("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a,b,c){a.editor.navigateLineStart()}}),e.addCommand({name:"selectleft",bindKey:f("Shift-Left","Shift-Left"),exec:function(a,b,c){a.editor.getSelection().selectLeft()}}),e.addCommand({name:"gotoleft",bindKey:f("Left","Left|Ctrl-B"),exec:function(a,b,c){a.editor.navigateLeft(b.times)}}),e.addCommand({name:"selectwordright",bindKey:f("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectWordRight()}}),e.addCommand({name:"gotowordright",bindKey:f("Ctrl-Right","Option-Right"),exec:function(a,b,c){a.editor.navigateWordRight()}}),e.addCommand({name:"selecttolineend",bindKey:f("Alt-Shift-Right","Command-Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"gotolineend",bindKey:f("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a,b,c){a.editor.navigateLineEnd()}}),e.addCommand({name:"selectright",bindKey:f("Shift-Right","Shift-Right"),exec:function(a,b,c){a.editor.getSelection().selectRight()}}),e.addCommand({name:"gotoright",bindKey:f("Right","Right|Ctrl-F"),exec:function(a,b,c){a.editor.navigateRight(b.times)}}),e.addCommand({name:"selectpagedown",bindKey:f("Shift-PageDown","Shift-PageDown"),exec:function(a,b,c){a.editor.selectPageDown()}}),e.addCommand({name:"pagedown",bindKey:f(null,"PageDown"),exec:function(a,b,c){a.editor.scrollPageDown()}}),e.addCommand({name:"gotopagedown",bindKey:f("PageDown","Option-PageDown|Ctrl-V"),exec:function(a,b,c){a.editor.gotoPageDown()}}),e.addCommand({name:"selectpageup",bindKey:f("Shift-PageUp","Shift-PageUp"),exec:function(a,b,c){a.editor.selectPageUp()}}),e.addCommand({name:"pageup",bindKey:f(null,"PageUp"),exec:function(a,b,c){a.editor.scrollPageUp()}}),e.addCommand({name:"gotopageup",bindKey:f("PageUp","Option-PageUp"),exec:function(a,b,c){a.editor.gotoPageUp()}}),e.addCommand({name:"selectlinestart",bindKey:f("Shift-Home","Shift-Home"),exec:function(a,b,c){a.editor.getSelection().selectLineStart()}}),e.addCommand({name:"selectlineend",bindKey:f("Shift-End","Shift-End"),exec:function(a,b,c){a.editor.getSelection().selectLineEnd()}}),e.addCommand({name:"del",bindKey:f("Delete","Delete|Ctrl-D"),exec:function(a,b,c){a.editor.removeRight()}}),e.addCommand({name:"backspace",bindKey:f("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a,b,c){a.editor.removeLeft()}}),e.addCommand({name:"removetolinestart",bindKey:f(null,"Option-Backspace"),exec:function(a,b,c){a.editor.removeToLineStart()}}),e.addCommand({name:"removetolineend",bindKey:f(null,"Ctrl-K"),exec:function(a,b,c){a.editor.removeToLineEnd()}}),e.addCommand({name:"removewordleft",bindKey:f("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a,b,c){a.editor.removeWordLeft()}}),e.addCommand({name:"removewordright",bindKey:f(null,"Alt-Delete"),exec:function(a,b,c){a.editor.removeWordRight()}}),e.addCommand({name:"outdent",bindKey:f("Shift-Tab","Shift-Tab"),exec:function(a,b,c){a.editor.blockOutdent()}}),e.addCommand({name:"indent",bindKey:f("Tab","Tab"),exec:function(a,b,c){a.editor.indent()}}),e.addCommand({name:"inserttext",exec:function(a,b,c){a.editor.insert(d.stringRepeat(b.text||"",b.times||1))}}),e.addCommand({name:"centerselection",bindKey:f(null,"Ctrl-L"),exec:function(a,b,c){a.editor.centerSelection()}}),e.addCommand({name:"splitline",bindKey:f(null,"Ctrl-O"),exec:function(a,b,c){a.editor.splitLine()}}),e.addCommand({name:"transposeletters",bindKey:f("Ctrl-T","Ctrl-T"),exec:function(a,b,c){a.editor.transposeLetters()}})}),define("ace/edit_session",["require","exports","module","pilot/oop","pilot/lang","pilot/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/edit_session/folding"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("pilot/event_emitter").EventEmitter,g=a("ace/selection").Selection,h=a("ace/mode/text").Mode,j=a("ace/range").Range,k=a("ace/document").Document,l=a("ace/background_tokenizer").BackgroundTokenizer,m=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$rowCache=[],this.$wrapData=[],this.$foldData=[],this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a},a instanceof k?this.setDocument(a):this.setDocument(new k(a)),this.selection=new g(this),b?this.setMode(b):this.setMode(new h)};(function(){function o(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}d.implement(this,f),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else{var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._dispatchEvent("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=e.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?e.stringRepeat(" ",this.getTabSize()):"\t"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){this.$useSoftTabs!==a&&(this.$useSoftTabs=a)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){!isNaN(a)&&this.$tabSize!==a&&(this.$modified=!0,this.$tabSize=a,this._dispatchEvent("changeTabSize"))},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){this.$overwrite!=a&&(this.$overwrite=a,this._dispatchEvent("changeOverwrite"))},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=0){var h=g.charAt(d);if(h==c){f-=1;if(f==0)return{row:e,column:d}}else h==a&&(f+=1);d-=1}e-=1;if(e<0)break;var g=this.getLine(e),d=g.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],d=b.column,e=b.row,f=1,g=this.getLine(e),h=this.getLength();for(;;){while(d=h)break;var g=this.getLine(e),d=0}return null},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--)delta=a[d],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,!0,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=!1,c&&!b&&this.selection.setSelectionRange(c);return c}},this.redoChanges=function(a,b){if(!!a.length){this.$fromUndo=!0;var c=null;for(var d=0;d=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(i=0;i0){this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit"));return!0}return!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;c&&(a=Math.min(c,a));return Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines.length):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{var q;c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f);return i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),f=this.$wrapData,i=this.$wrapLimit,j,l,m=a;b=Math.min(b,c.length-1);while(m<=b){l=this.getFoldLine(m);if(!l)j=this.$getDisplayTokens(e.stringTrimRight(c[m]));else{j=[],l.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,j.length),f[0]=g;for(var i=1;i=k)j.pop()}f[m]=this.$computeWrapSplits(j,i,d),m=this.getRowFoldEnd(m)+1}};var b=1,c=2,g=3,h=4,k=10,m=11,n=12;this.$computeWrapSplits=function(a,b,c){function j(b){var c=a.slice(f,b),e=c.length;c.join("").replace(/12/g,function(a){e-=1}).replace(/2/g,function(a){e-=1}),i+=e,d.push(i),f=b}if(a.length==0)return[];var c=this.getTabSize(),d=[],e=a.length,f=0,i=0;while(e-f>b){var l=f+b;if(a[l]>=k){while(a[l]>=k)l++;j(l);continue}if(a[l]==g||a[l]==h){for(l;l!=f-1;l--)if(a[l]==g)break;if(l>f){j(l);continue}l=f+b;for(l;l=g){l++;break}if(l>f){j(l);continue}l=f+b,j(f+b)}return d},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;gb)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g,h=0,i=0,j=this.$rowCache;for(var k=0;k=a||d>=m)break;h+=i,d++,d>o&&(d=n.end.row+1,n=this.getNextFold(d),o=n?n.start.row:Infinity),l&&j.push({docRow:d,screenRow:h})}n&&n.start.row<=d?c=this.getFoldDisplayLine(n):(c=this.getLine(d),n=null);var p=[];this.$useWrapMode&&(p=this.$wrapData[d],p&&(f=p[a-h],a>h&&p.length&&(e=p[a-h-1]||p[p.length-1],c=c.substring(e)))),e+=this.$getStringScreenWidth(c,b)[1],h+p.length=f&&(e=f-1):e=Math.min(e,c.length);return n?n.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=this.$rowCache.length,e;if(this.$useWrapMode){e=this.$wrapData;if(a>e.length-1)return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1}}var f=0,g=0,h=null,i=null;i=this.getFoldAt(a,b,1),i&&(a=i.start.row,b=i.start.column);var j,k=0,l=this.$rowCache;for(var m=0;m=p){j=o.end.row+1;if(j>a)break;o=this.getNextFold(j),p=o?o.start.row:Infinity}else j=k+1;f+=this.getRowLength(k),k=j,n&&l.push({docRow:k,screenRow:f})}var q="";o&&k>=p?(q=this.getFoldDisplayLine(o,a,b),h=o.start.row):(q=this.getLine(a).substring(0,b),h=a);if(this.$useWrapMode){var r=e[h],s=0;while(q.length>=r[s])f++,s++;q=q.substring(r[s-1]||0,q.length)}return{row:f,column:this.$getStringScreenWidth(q)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null,c=null;if(!this.$useWrapMode){a=this.getLength();var d=this.$foldData;for(var e=0;eb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._dispatchEvent("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$updateDesiredColumn()},this.$updateDesiredColumn=function(){var a=this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)},this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.selectWord=function(){var a=this.getCursor(),b=this.session.getWordRange(a.row,a.column);this.setSelectionRange(b)},this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a,this.setSelectionAnchor(a,0),this.$moveSelection(function(){this.moveCursorTo(b+1,0)})},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.selectionLead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)}},this.clearSelectionHighlight=function(a){!a.session.$selectionOccurrences||(a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[])},this.createModeDelegates=function(a){if(!!this.$embeds){this.$modes={};for(var b=0;b1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token;var o=l.next;o&&o!==c&&(c=o,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row!=c.end.row||c.start.row==this.row){if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!!c.running){var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._dispatchEvent("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc)return[];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold"],function(a,b,c){function g(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFold=function(a,b){var c=this.$foldData,d,e=0;b&&(e=c.indexOf(b)),e==-1&&(e=0);for(e;e=a)return f}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row});return a},this.addFold=function(a,b){var c=this.$foldData,d=!1;if(a instanceof f)var g=a;else g=new f(b,a);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1);if(l&&l.range.isEnd(j,k)&&l.range.isStart(h,i))return g;l=this.getFoldAt(h,i,1);if(l&&!l.range.isStart(h,i))throw"A fold can't start inside of an already existing fold";l=this.getFoldAt(j,k,-1);if(l&&!l.range.isEnd(j,k))throw"A fold can't end inside of an already existing fold";if(j>=this.doc.getLength())throw"End of fold is outside of the document.";if(k>this.getLine(j).length||i>this.getLine(h).length)throw"End of fold is outside of the document.";var m=this.getFoldsInRange(g.range);m.length>0&&(this.removeFolds(m),g.subFolds=m);for(var n=0;nthis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column));return f}var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=a.getSelection().getCursor(),e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h)if(i)b=e,g=f,j=!0;else return;b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=a.getSelection().getRange(),d=b?c.end:c.start,e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","pilot/event_emitter","text/ace/css/editor.css"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/useragent"),h=a("ace/layer/gutter").Gutter,i=a("ace/layer/marker").Marker,j=a("ace/layer/text").Text,k=a("ace/layer/cursor").Cursor,l=a("ace/scrollbar").ScrollBar,m=a("ace/renderloop").RenderLoop,n=a("pilot/event_emitter").EventEmitter,o=a("text/ace/css/editor.css");e.importCssString(o);var p=function(a,b){this.container=a,e.addCssClass(this.container,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new h(this.$gutter),this.$markerBack=new i(this.content);var c=this.$textLayer=new j(this.content);this.canvas=c.element,this.$markerFront=new i(this.content),this.characterWidth=c.getCharacterWidth(),this.lineHeight=c.getLineHeight(),this.$cursorLayer=new k(this.content),this.$cursorPadding=8,this.$horizScroll=!0,this.$horizScrollAlwaysVisible=!0,this.scrollBar=new l(a),this.scrollBar.addEventListener("scroll",this.onScroll.bind(this)),this.scrollTop=0,this.cursorPos={row:0,column:0};var d=this;this.$textLayer.addEventListener("changeCharaterSize",function(){d.characterWidth=c.getCharacterWidth(),d.lineHeight=c.getLineHeight(),d.$updatePrintMargin(),d.onResize(!0),d.$loop.schedule(d.CHANGE_FULL)}),f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this)),f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this)),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new m(this.$renderChanges.bind(this)),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,d.implement(this,n),this.setSession=function(a){this.session=a,this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowc.lastRow+1)){if(bc&&this.scrollToY(c),this.scrollTop+this.$size.scrollerHeightb&&this.scrollToX(b),d+this.$size.scrollerWidththis.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+this.characterWidth-this.$size.scrollerWidth)))}},this.getScrollTop=function(){return this.scrollTop},this.getScrollLeft=function(){return this.scroller.scrollLeft},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)},this.scrollToLine=function(a,b){var c={lineHeight:this.lineHeight},d=0;for(var e=1;eh&&(e=g.end.row+1,g=this.session.getNextFold(e),h=g?g.start.row:Infinity);if(e>f)break;var i=this.$annotations[e]||b;c.push("
                                                                            ",e+1);var j=this.session.getRowLength(e)-1;while(j--)c.push("
                                                                            ¦
                                                                            ");c.push("
                                                                            "),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px"}}).call(e.prototype),b.Gutter=e}),define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(a,b,c){var d=a("ace/range").Range,e=a("pilot/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!!a){this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz,a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))}},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c,e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f
                                                                            "),i=this.$getTop(b.end.row,d),h=Math.round(b.end.column*d.characterWidth),a.push("
                                                                            "),g=(b.end.row-b.start.row-1)*d.lineHeight;g<0||(i=this.$getTop(b.start.row+1,d),h=d.width,a.push("
                                                                            "))},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
                                                                            ")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","pilot/oop","pilot/dom","pilot/lang","pilot/useragent","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/lang"),g=a("pilot/useragent"),h=a("pilot/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",this.element.style.width="auto",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="absolute",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(document.body)document.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0&&i.height==0?null:i},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){if(this.showInvisibles==a)return!1;this.showInvisibles=a;return!0},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+Array(c).join(" ")+""):b.push(Array(c+1).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=document.createDocumentFragment(),f=b,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFold(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFold(f),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
                                                                            ");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
                                                                            "),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,h=function(a,c,d,f,h){if(a.charCodeAt(0)==32)return Array(a.length+1).join(" ");if(a=="\t"){var i=e.session.getScreenTabSize(b+f);b+=i-1;return e.$tabStrings[i]}if(a=="&")return g.isOldGecko?"&":"&";if(a=="<")return"<";if(a==" "){var j=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",k=e.showInvisibles?e.SPACE_CHAR:"";b+=1;return""+k+""}if(a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)){if(e.showInvisibles){var k=Array(a.length+1).join(e.SPACE_CHAR);return""+k+""}return" "}b+=1;return""+a+""},i=d.replace(f,h);if(!this.$textToken[c.type]){var j="ace_"+c.type.replace(/\./g," ace_");a.push("",i,"")}else a.push(i);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=this.config.characterWidth,j=0,k=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
                                                                            ");for(var l=0;l=h)j=k.$renderToken(a,j,m,n.substring(0,h-f)),n=n.substring(h-f),f=h,e||a.push("
                                                                            ","
                                                                            "),g++,j=0,h=d[g]||Number.MAX_VALUE;n.length!=0&&(f+=n.length,j=k.$renderToken(a,j,m,n))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
                                                                            ")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.cursor=d.createElement("div"),this.cursor.className="ace_cursor ace_hidden",this.element.appendChild(this.cursor),this.isVisible=!1};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.hideCursor=function(){this.isVisible=!1,d.addCssClass(this.cursor,"ace_hidden"),clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0,d.removeCssClass(this.cursor,"ace_hidden"),this.cursor.style.visibility="visible",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!!this.isVisible){var a=this.cursor;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility="visible"},400)},1e3)}},this.getPixelPosition=function(a){if(!this.config||!this.session)return{left:0,top:0};var b=this.session.selection.getCursor(),c=this.session.documentToScreenPosition(b),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a,this.pixelPos=this.getPixelPosition(!0),this.cursor.style.left=this.pixelPos.left+"px",this.cursor.style.top=this.pixelPos.top+"px",this.cursor.style.width=a.characterWidth+"px",this.cursor.style.height=a.lineHeight+"px";var b=this.session.getOverwrite();b!=this.overwrite&&(this.overwrite=b,b?d.addCssClass(this.cursor,"ace_overwrite"):d.removeCssClass(this.cursor,"ace_overwrite")),this.restartTimer()},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","pilot/oop","pilot/dom","pilot/event","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/dom"),f=a("pilot/event"),g=a("pilot/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(),this.element.style.width=(this.width||15)+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","pilot/event"],function(a,b,c){var d=a("pilot/event"),e=function(a){this.onRender=a,this.pending=!1,this.changes=0};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;this.setTimeoutZero(function(){b.pending=!1;var a=b.changes;b.changes=0,b.onRender(a)})}},this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame,this.setTimeoutZero?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(a){if(!this.attached){var b=this;d.addListener(window,"message",function(a){b.callback&&a.data==b.messageName&&(d.stopPropagation(a),b.callback())}),this.attached=!0}this.callback=a,window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(a){setTimeout(a,0)}}).call(e.prototype),b.RenderLoop=e}),define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(a,b,c){var d=a("pilot/dom"),e=".ace-tm .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-tm .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-tm .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-tm .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-tm .ace_text-layer {\n cursor: text;\n}\n\n.ace-tm .ace_cursor {\n border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid black;\n}\n \n.ace-tm .ace_line .ace_invisible {\n color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_keyword {\n color: blue;\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n background-color: rgb(153, 0, 0);\n color: white;\n}\n\n.ace-tm .ace_line .ace_fold {\n background-color: #E4E4E4;\n border-radius: 3px;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n background: rgb(181, 213, 255);\n}\n\n.ace-tm .ace_marker-layer .ace_step {\n background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n background: rgb(250, 250, 255);\n border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n color:rgb(28, 2, 255);\n}\n\n.ace-tm .ace_string.ace_regex {\n color: rgb(255, 0, 0)\n}";d.importCssString(e),b.cssClass="ace-tm"}),define("pilot/environment",["require","exports","module","pilot/settings"],function(a,b,c){function e(){return{settings:d}}var d=a("pilot/settings").settings;b.create=e}),define("text/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/build/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/build_support/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/demo/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/demo/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";\n\n@import url("booya.css") print,screen;\n@import "whatup.css" screen;\n@import "wicked.css";\n\n@namespace "http://www.w3.org/1999/xhtml";\n@namespace svg "http://www.w3.org/2000/svg";\n\nli.inline #foo {\n background: url("something.png");\n display: inline;\n padding-left: 3px;\n padding-right: 7px;\n border-right: 1px dotted #066;\n}\n\nli.last.first {\n display: inline;\n padding-left: 3px !important;\n padding-right: 3px;\n border-right: 0px;\n}\n\n@media print {\n li.inline {\n color: black;\n }\n\n\n@charset "UTF-8"; \n\n@page {\n margin: 10%;\n counter-increment: page;\n\n @top-center {\n font-family: sans-serif;\n font-weight: bold;\n font-size: 2em;\n content: counter(page);\n }\n}'),define("text/deps/requirejs/dist/ie.css",[],"\nbody .sect {\n display: none;\n}\n\n\n#content ul.index {\n list-style: none;\n}\n"),define("text/deps/requirejs/dist/main.css",[],'@font-face {\n font-family: Inconsolata;\n src: url("fonts/Inconsolata.ttf");\n}\n\n* {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-size: 12px;\n line-height: 21px;\n background-color: #fff;\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n color: #0a0a0a;\n}\n\n#wrapper {\n margin: 0;\n}\n\n#grid {\n position: fixed;\n top: 0;\n left: 0;\n width: 796px;\n background-image: url("i/grid.png");\n z-index: 100;\n}\n\npre {\n line-height: 18px;\n font-size: 13px;\n margin: 7px 0 21px;\n padding: 5px 10px;\n overflow: auto;\n background-color: #fafafa;\n border: 1px solid #e6e6e6;\n -moz-border-radius: 5px;\n -webkit-border-radius: 5px;\n border-radius: 5px;\n -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);\n}\n\n/*\n typography stuff\n*/\n.mono {\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n.sans {\n font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;\n}\n\n.serif {\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\na {\n color: #2e87dd;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/*\n navigation\n*/\n\n#navBg {\n background-color: #f2f2f2;\n background-image: url("i/shadow.png");\n background-position: right top;\n background-repeat: repeat-y;\n width: 220px;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 0;\n}\n\n#nav {\n background-image: url("i/logo.png");\n background-repeat: no-repeat;\n background-position: center 10px;\n width: 220px;\n float: left;\n margin: 0;\n padding: 150px 20px 0;\n font-size: 13px;\n text-shadow: 1px 1px #fff;\n position: relative;\n z-index: 1;\n}\n\n#nav .homeImageLink {\n position: absolute;\n display: block;\n top: 10px;\n left: 0;\n width: 220px;\n height: 138px;\n}\n#nav ul {\n list-style-type:none;\n padding: 0;\n margin: 21px 0 0 0;\n}\n\n#nav ul li {\n width: 100%;\n}\n\n#nav ul li.version {\n text-align: center;\n color: #4d4d4d;\n}\n\n#nav h1 {\n color: #4d4d4d;\n text-align: center;\n font-size: 15px;\n font-weight: normal;\n text-transform: uppercase;\n letter-spacing: 3px;\n}\n\nspan.spacer {\n color: #2e87dd;\n margin: 0 3px 0 5px;\n background-image: url("i/dot.png");\n background-repeat: repeat-x;\n background-position: left 13px;\n}\n\n/*\n icons\n*/\n\nspan.icon {\n width: 16px;\n display: block;\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n}\n\nspan.icon.home {\n background-position: center 5px;\n}\n\nspan.icon.start {\n background-position: center -27px;\n}\n\nspan.icon.download {\n background-position: center -59px;\n}\n\nspan.icon.api {\n background-position: center -89px;\n}\n\nspan.icon.optimize {\n background-position: center -119px;\n}\n\nspan.icon.script {\n background-position: center -150px;\n}\n\nspan.icon.question {\n background-position: center -182px;\n}\n\nspan.icon.requirement {\n background-position: center -214px;\n}\n\nspan.icon.history {\n background-position: center -247px;\n}\n\nspan.icon.help {\n background-position: center -279px;\n}\n\nspan.icon.blog {\n background-position: center -311px;\n}\n\nspan.icon.twitter {\n background-position: center -343px;\n}\n\nspan.icon.git {\n background-position: center -375px;\n}\n\nspan.icon.fork {\n background-position: center -407px;\n}\n\n/*\n content\n*/\n\n#content {\n margin: 0 0 0 220px;\n padding: 0 20px;\n background-color: #fff;\n font-family: "Georgia", Times New Roman, Times, serif;\n position: relative;\n}\n\n#content p {\n padding: 7px 0;\n color: #333;\n font-size: 14px;\n}\n\n#content h1,\n#content h2,\n#content h3,\n#content h4,\n#content h5 {\n font-weight: normal;\n padding: 21px 0 7px;\n}\n\n#content h1 {\n font-size: 21px;\n}\n\n#content h2 {\n padding: 0 0 18px 0;\n margin: 0 0 7px 0;\n font-weight: normal;\n font-size: 21px;\n line-height: 24px;\n text-align: center;\n color: #222;\n background-image: url("i/arrow.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n text-transform: uppercase;\n letter-spacing: 2px;\n text-shadow: 1px 1px 0 #fff;\n}\n\n#content h2 a {\n color: #222;\n}\n\n#content h2 a:hover,\n#content h3 a:hover,\n#content h4 a:hover {\n text-decoration: none;\n}\n\nspan.sectionMark {\n display: block;\n color: #aaa;\n text-shadow: 1px 1px 0 #fff;\n font-size: 15px;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content h3 {\n font-size: 17px;\n}\n\n#content h4 {\n padding-top: 0;\n font-size: 15px;\n}\n\n#content h5 {\n font-size: 10px;\n}\n\n#content ul {\n list-style-type: disc;\n}\n\n#content ul,\n#content ol {\n /* border-left: 1px solid #333; */\n color: #333;\n font-size: 14px;\n list-style-position: outside;\n margin: 7px 0 21px 0;\n /* padding: 0 0 0 28px; */\n}\n\n#content ul {\n font-style: italic;\n}\n\n#content ol {\n border: none;\n list-style-position: inside;\n padding: 0;\n font-family: "Georgia", Times New Roman, Times, serif;\n}\n\n#content ul ul,\n#content ol ol {\n border: none;\n padding: 0;\n margin: 0 0 0 28px;\n}\n\n#content .section {\n padding: 48px 0;\n background-image: url("i/line.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n width: 576px;\n margin: 0 auto;\n}\n\n#content .section .subSection {\n padding: 0 0 0 48px;\n margin: 28px 0 0 0;\n display: block;\n border-left: 2px solid #ddd;\n}\n\n#content .section:last-child {\n background-image: none;\n}\n\n#content .note {\n color: #222;\n background-color: #ffff99;\n padding: 5px 10px;\n margin: 7px 0;\n display: inline-block;\n}\n\n/*\n page directory\n*/\n\n#content #directory.section {\n background-color: #fff;\n width: 576px;\n}\n\n#content #directory.section ul ul ul {\n margin: 0 0 0 48px;\n}\n\n#content #directory.section ul ul li {\n background-image: url("i/sprite.png");\n background-repeat: no-repeat;\n background-position: left -437px;\n padding-left: 18px;\n font-style: normal;\n}\n\n#content #directory h1 {\n padding: 0 0 65px 0;\n margin: 0 0 14px 0;\n font-weight: normal;\n font-size: 21px;\n text-align: center;\n text-transform: uppercase;\n letter-spacing: 2px;\n color: #222;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center bottom;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n\n#content ul.index {\n padding: 0;\n background-color: transparent;\n border: none;\n -moz-box-shadow: none;\n font-style: normal;\n font-family: "Inconsolata", Andale Mono, Monaco, Monospace;\n}\n\n#content ul.index li {\n width: 100%;\n font-size: 15px;\n color: #333;\n padding: 0 0 7px 0;\n}\n\n\n/*\n intro page specific\n*/\n\n#content #intro {\n width: 576px;\n margin: 0 auto;\n padding: 21px 0;\n}\n\n#content #intro p,\n#content #intro h1 {\n font-size: 19px;\n line-height: 28px;\n color: green;\n letter-spacing: 2px;\n padding: 0 0 28px 0;\n}\n\n#content #intro p:last-child,\n#content #intro h1:last-child {\n padding: 0;\n}\n\n#content #intro p a {\n color: green;\n text-decoration: underline;\n}\n\n/*\n download page\n*/\n\n#content h4 a.download {\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n background-color: #F2F2F2;\n background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%);\n background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2));\n background-position: 7px -58px, center center;\n background-repeat: no-repeat, no-repeat;\n border: 1px solid #CCCCCC;\n color: #333333;\n font-size: 12px;\n margin: 0 0 0 5px;\n padding: 0 10px 0 25px;\n text-shadow: 1px 1px 0 #FFFFFF;\n}\n\n/*\n footer\n*/\n#footer {\n color: #4d4d4d;\n padding: 65px 20px 20px;\n margin: 20px 0 0 220px;\n text-align: center;\n display: block;\n font-size: 13px;\n background-image: url("i/arrow-x.png");\n background-repeat: no-repeat;\n background-position: center top;\n background-color: #fff;\n}\n\n#footer .line {\n display: block;\n}\n\n#footer .line a {\n color: #4d4d4d;\n text-decoration: underline;\n}\n\n/*\n Pygments manni style\n*/\n\ncode {background-color: #fafafa; color: #333;}\n\ncode .comment {color: green; font-style: italic}\ncode .comment.preproc {color: #099; font-style: normal}\ncode .comment.special {font-weight: bold}\n\ncode .keyword {color: #069; font-weight: bold}\ncode .keyword.pseudo {font-weight: normal}\ncode .keyword.type {color: #078}\n\ncode .operator {color: #555}\ncode .operator.word {color: #000; font-weight: bold}\n\ncode .name.builtin {color: #366}\ncode .name.function {color: #c0f}\ncode .name.class {color: #0a8; font-weight: bold}\ncode .name.namespace {color: #0cf; font-weight: bold}\ncode .name.exception {color: #c00; font-weight: bold}\ncode .name.variable {color: #033}\ncode .name.constant {color: #360}\ncode .name.label {color: #99f}\ncode .name.entity {color: #999; font-weight: bold}\ncode .name.attribute {color: #309}\ncode .name.tag {color: #309; font-weight: bold}\ncode .name.decorator {color: #99f}\n\ncode .string {color: #c30}\ncode .string.doc {font-style: italic}\ncode .string.interpol {color: #a00}\ncode .string.escape {color: #c30; font-weight: bold}\ncode .string.regex {color: #3aa}\ncode .string.symbol {color: #fc3}\ncode .string.other {color: #c30}\n\ncode .number {color: #f60}\n\n\n/*\n webkit scroll bars\n*/\n\npre::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n\npre::-webkit-scrollbar-button:start:decrement,\npre::-webkit-scrollbar-button:end:increment {\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-button:vertical:increment,\npre::-webkit-scrollbar-button:horizontal:increment {\n background-color: transparent;\n display: block;\n height: 0;\n width: 0;\n}\n\npre::-webkit-scrollbar-track-piece {\n -webkit-border-radius: 3px;\n}\n\npre::-webkit-scrollbar-thumb:vertical {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n\n}\n\npre::-webkit-scrollbar-thumb:horizontal {\n background-color: #aaa;\n -webkit-border-radius: 3px;\n}\n\n/*\n hbox\n*/\n\n.hbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: horizontal;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: horizontal;\n\tbox-align: stretch;\n\n\twidth: 100%;\n}\n\n.hbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.vbox {\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-box-align: stretch;\n\n\tdisplay: -moz-box;\n\t-moz-box-orient: vertical;\n\t-moz-box-align: stretch;\n\n\tdisplay: box;\n\tbox-orient: vertical;\n\tbox-align: stretch;\n}\n\n.vbox > * {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n\tdisplay: block;\n}\n\n.spacer {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.reverse {\n\t-webkit-box-direction: reverse;\n\t-moz-box-direction: reverse;\n\tbox-direction: reverse;\n}\n\n.boxFlex0 {\n\t-webkit-box-flex: 0;\n\t-moz-box-flex: 0;\n\tbox-flex: 0;\n}\n\n.boxFlex1, .boxFlex {\n\t-webkit-box-flex: 1;\n\t-moz-box-flex: 1;\n\tbox-flex: 1;\n}\n\n.boxFlex2 {\n\t-webkit-box-flex: 2;\n\t-moz-box-flex: 2;\n\tbox-flex: 2;\n}\n\n.boxGroup1 {\n\t-webkit-box-flex-group: 1;\n\t-moz-box-flex-group: 1;\n\tbox-flex-group: 1;\n}\n\n.boxGroup2 {\n\t-webkit-box-flex-group: 2;\n\t-moz-box-flex-group: 2;\n\tbox-flex-group: 2;\n}\n\n.start {\n\t-webkit-box-pack: start;\n\t-moz-box-pack: start;\n\tbox-pack: start;\n}\n\n.end {\n\t-webkit-box-pack: end;\n\t-moz-box-pack: end;\n\tbox-pack: end;\n}\n\n.center {\n\t-webkit-box-pack: center;\n\t-moz-box-pack: center;\n\tbox-pack: center;\n}\n\n/*\n clearfix\n*/\n\n.clearfix:after {\n\tcontent: ".";\n\tdisplay: block;\n\tclear: both;\n\tvisibility: hidden;\n\tline-height: 0;\n\theight: 0;\n}\n\nhtml[xmlns] .clearfix {\n\tdisplay: block;\n}\n\n* html .clearfix {\n\theight: 1%;\n}'),define("text/doc/site/iphone.css",[],"#wrapper {\n position:relative;\n overflow:hidden;\n}\n\n#wrapper .content .column1 {\n margin:0 16px 0 15px;\n}\n\n#header .content .signature {\n font-size:18px;\n bottom:0;\n}\n\nUL.menu-list LI {\n font-size:22px;\n}\n\nUL.menu-footer LI {\n font-size:22px;\n}\n\nPRE{\n font-size:22px;\n}\n"),define("text/doc/site/style.css",[],"body {\n margin:0;\n padding:0;\n background-color:#e6f5fc;\n \n}\n\nH2, H3, H4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n margin:0;\n padding:0;\n}\n\nH2 {\n font-size:28px;\n color:#263842;\n padding-bottom:6px;\n}\n\nH3 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:22px;\n color:#253741;\n margin-top:43px;\n margin-bottom:8px;\n}\n\nH4 {\n font-family:Trebuchet MS;\n font-weight:bold;\n font-size:21px;\n color:#222222;\n margin-bottom:4px;\n}\n\nP {\n padding:13px 0;\n margin:0;\n line-height:22px;\n}\n\nUL{\n line-height : 22px;\n}\n\nPRE{\n background : #333;\n color : white;\n padding : 10px;\n}\n\n#header {\n height : 227px;\n position:relative;\n overflow:hidden;\n background: url(images/background.png) repeat-x 0 0;\n border-bottom:1px solid #c9e8fa; \n}\n\n#header .content .signature {\n font-family:Trebuchet MS;\n font-size:11px;\n color:#ebe4d6;\n position:absolute;\n bottom:5px;\n right:42px;\n letter-spacing : 1px;\n}\n\n.content {\n width:970px;\n position:relative;\n overflow:hidden;\n margin:0 auto;\n}\n\n#header .content {\n height:184px;\n margin-top:22px;\n}\n\n#header .content .logo {\n width : 282px;\n height : 184px;\n background:url(images/logo.png) no-repeat 0 0;\n position:absolute;\n top:0;\n left:0;\n}\n\n#header .content .title {\n width : 605px;\n height : 58px;\n background:url(images/ace.png) no-repeat 0 0;\n position:absolute;\n top:98px;\n left:329px;\n}\n\n#wrapper {\n background:url(images/body_background.png) repeat-x 0 0;\n min-height:250px;\n}\n\n#wrapper .content {\n font-family:Arial;\n font-size:14px;\n color:#222222;\n width:1000px;\n}\n\n#wrapper .content .column1 {\n position:relative;\n overflow:hidden;\n float:left;\n width:315px;\n margin-right:31px;\n}\n\n#wrapper .content .column2 {\n position:relative;\n overflow:hidden;\n float:left;\n width:600px;\n padding-top:47px;\n}\n\n.fork_on_github {\n width:310px;\n height:80px;\n background:url(images/fork_on_github.png) no-repeat 0 0;\n position:relative;\n overflow:hidden;\n margin-top:49px;\n cursor:pointer;\n}\n\n.fork_on_github:hover {\n background-position:0 -80px;\n}\n\n.divider {\n height:3px;\n background-color:#bedaea;\n margin-bottom:3px;\n}\n\n.menu {\n padding:23px 0 0 24px;\n}\n\nUL.content-list {\n padding:15px;\n margin:0;\n}\n\nUL.menu-list {\n padding:0;\n margin:0 0 20px 0;\n list-style-type:none;\n line-height : 16px;\n}\n\nUL.menu-list LI {\n color:#2557b4;\n font-family:Trebuchet MS;\n font-size:14px;\n padding:7px 0;\n border-bottom:1px dotted #d6e2e7;\n}\n\nUL.menu-list LI:last-child {\n border-bottom:0;\n}\n\nA {\n color:#2557b4;\n text-decoration:none;\n}\n\nA:hover {\n text-decoration:underline;\n}\n\nP#first{\n background : rgba(255,255,255,0.5);\n padding : 20px;\n font-size : 16px;\n line-height : 24px;\n margin : 0 0 20px 0;\n}\n\n#footer {\n height:40px;\n position:relative;\n overflow:hidden;\n background:url(images/bottombar.png) repeat-x 0 0;\n position:relative;\n margin-top:40px;\n}\n\nUL.menu-footer {\n padding:0;\n margin:8px 11px 0 0;\n list-style-type:none;\n float:right;\n}\n\nUL.menu-footer LI {\n color:white;\n font-family:Arial;\n font-size:12px;\n display:inline-block;\n margin:0 1px;\n}\n\nUL.menu-footer LI A {\n color:#8dd0ff;\n text-decoration:none;\n}\n\nUL.menu-footer LI A:hover {\n text-decoration:underline;\n}\n\n\n\n\n"),define("text/lib/ace/css/editor.css",[],"@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);\n\n\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow-x: hidden;\n overflow-y: hidden;\n height: 100%;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 4px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: -1;\n width: 10px;\n height: 30px;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n}\n\n.ace_text-layer {\n color: black;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n cursor: text;\n /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer {\n cursor: text;\n pointer-events: none;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 4;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 6;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n cursor: pointer;\n}\n\n.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {\n cursor: move;\n}\n"),define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }\nbody { max-width: 60em; }\n.title { text-align: center; }\n.todo { color: red; }\n.done { color: green; }\n.tag { background-color:lightblue; font-weight:normal }\n.target { }\n.timestamp { color: grey }\n.timestamp-kwd { color: CadetBlue }\np.verse { margin-left: 3% }\npre {\n border: 1pt solid #AEBDCC;\n background-color: #F3F5F7;\n padding: 5pt;\n font-family: monospace;\n font-size: 90%;\n overflow:auto;\n}\npre.src {\n background-color: #eee; color: #112; border: 1px solid #000;\n}\ntable { border-collapse: collapse; }\ntd, th { vertical-align: top; }\ndt { font-weight: bold; }\ndiv.figure { padding: 0.5em; }\ndiv.figure p { text-align: center; }\n.linenr { font-size:smaller }\n.code-highlighted {background-color:#ffff00;}\n.org-info-js_info-navigation { border-style:none; }\n#org-info-js_console-label { font-size:10px; font-weight:bold;\n white-space:nowrap; }\n.org-info-js_search-highlight {background-color:#ffff00; color:#000000;\n font-weight:bold; }\n\nsup {\n vertical-align: baseline;\n position: relative;\n top: -0.5em;\n font-size: 80%;\n}\n\nsup a:link, sup a:visited {\n text-decoration: none;\n color: #c00;\n}\n\nsup a:before { content: "["; color: #999; }\nsup a:after { content: "]"; color: #999; }\n\nh1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }\n\n#postamble {\n color: #777;\n font-size: 90%;\n padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;\n margin-top: 2em;\n padding-left: 2em;\n padding-right: 2em;\n text-align: right;\n}\n\n#postamble p { margin: 0; }\n\n#footnotes { border-top: 1px solid #000; }\n\nh1 { font-size: 200% }\nh2 { font-size: 175% }\nh3 { font-size: 150% }\nh4 { font-size: 125% }\n\nh1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }\n\n@media print {\n html { font-size: 11pt; }\n}\n'),define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"\n#cockpitInput { padding-left: 16px; }\n\n.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }\n\n.cptCompletion { padding: 0; position: absolute; z-index: -1000; }\n.cptCompletion.VALID { background: #FFF; }\n.cptCompletion.INCOMPLETE { background: #DDD; }\n.cptCompletion.INVALID { background: #DDD; }\n.cptCompletion span { color: #FFF; }\n.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }\n.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }\nspan.cptPrompt { color: #66F; font-weight: bold; }\n\n\n.cptHints {\n color: #000;\n position: absolute;\n border: 1px solid rgba(230, 230, 230, 0.8);\n background: rgba(250, 250, 250, 0.8);\n -moz-border-radius-topleft: 10px;\n -moz-border-radius-topright: 10px;\n border-top-left-radius: 10px; border-top-right-radius: 10px;\n z-index: 1000;\n padding: 8px;\n display: none;\n}\n\n.cptFocusPopup { display: block; }\n.cptFocusPopup.cptNoPopup { display: none; }\n\n.cptHints ul { margin: 0; padding: 0 15px; }\n\n.cptGt { font-weight: bold; font-size: 120%; }\n"),define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],"\n.cptRowIn {\n display: box; display: -moz-box; display: -webkit-box;\n box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;\n box-align: center; -moz-box-align: center; -webkit-box-align: center;\n color: #333;\n background-color: #EEE;\n width: 100%;\n font-family: consolas, courier, monospace;\n}\n.cptRowIn > * { padding-left: 2px; padding-right: 2px; }\n.cptRowIn > img { cursor: pointer; }\n.cptHover { display: none; }\n.cptRowIn:hover > .cptHover { display: block; }\n.cptRowIn:hover > .cptHover.cptHidden { display: none; }\n.cptOutTyped {\n box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;\n font-weight: bold; color: #000; font-size: 120%;\n}\n.cptRowOutput { padding-left: 10px; line-height: 1.2em; }\n.cptRowOutput strong,\n.cptRowOutput b,\n.cptRowOutput th,\n.cptRowOutput h1,\n.cptRowOutput h2,\n.cptRowOutput h3 { color: #000; }\n.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }\n.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }\n.cptRowOutput input[type=password],\n.cptRowOutput input[type=text],\n.cptRowOutput textarea {\n color: #000; font-size: 120%;\n background: transparent; padding: 3px;\n border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;\n}\n.cptRowOutput table,\n.cptRowOutput td,\n.cptRowOutput th { border: 0; padding: 0 2px; }\n.cptRowOutput .right { text-align: right; }\n"),define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.%cssClass% .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.%cssClass% .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.%cssClass% .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.%cssClass% .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.%cssClass% .ace_print_margin {\n width: 1px;\n background: %printMargin%;\n}\n\n.%cssClass% .ace_scroller {\n background-color: %background%;\n}\n\n.%cssClass% .ace_text-layer {\n cursor: text;\n color: %foreground%;\n}\n\n.%cssClass% .ace_cursor {\n border-left: 2px solid %cursor%;\n}\n\n.%cssClass% .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid %overwrite%;\n}\n \n.%cssClass% .ace_marker-layer .ace_selection {\n background: %selection%;\n}\n\n.%cssClass% .ace_marker-layer .ace_step {\n background: %step%;\n}\n\n.%cssClass% .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid %bracket%;\n}\n\n.%cssClass% .ace_marker-layer .ace_active_line {\n background: %active_line%;\n}\n\n \n.%cssClass% .ace_invisible {\n %invisible%\n}\n\n.%cssClass% .ace_keyword {\n %keyword%\n}\n\n.%cssClass% .ace_keyword.ace_operator {\n %keyword.operator%\n}\n\n.%cssClass% .ace_constant {\n %constant%\n}\n\n.%cssClass% .ace_constant.ace_language {\n %constant.language%\n}\n\n.%cssClass% .ace_constant.ace_library {\n %constant.library%\n}\n\n.%cssClass% .ace_constant.ace_numeric {\n %constant.numeric%\n}\n\n.%cssClass% .ace_invalid {\n %invalid%\n}\n\n.%cssClass% .ace_invalid.ace_illegal {\n %invalid.illegal%\n}\n\n.%cssClass% .ace_invalid.ace_deprecated {\n %invalid.deprecated%\n}\n\n.%cssClass% .ace_support {\n %support%\n}\n\n.%cssClass% .ace_support.ace_function {\n %support.function%\n}\n\n.%cssClass% .ace_function.ace_buildin {\n %function.buildin%\n}\n\n.%cssClass% .ace_string {\n %string%\n}\n\n.%cssClass% .ace_string.ace_regexp {\n %string.regexp%\n}\n\n.%cssClass% .ace_comment {\n %comment%\n}\n\n.%cssClass% .ace_comment.ace_doc {\n %comment.doc%\n}\n\n.%cssClass% .ace_comment.ace_doc.ace_tag {\n %comment.doc.tag%\n}\n\n.%cssClass% .ace_variable {\n %variable%\n}\n\n.%cssClass% .ace_variable.ace_language {\n %variable.language%\n}\n\n.%cssClass% .ace_xml_pe {\n %xml_pe%\n}\n\n.%cssClass% .ace_meta {\n %meta%\n}\n\n.%cssClass% .ace_meta.ace_tag {\n %meta.tag%\n}\n\n.%cssClass% .ace_meta.ace_tag.ace_input {\n %ace.meta.tag.input%\n}\n\n.%cssClass% .ace_entity.ace_other.ace_attribute-name {\n %entity.other.attribute-name%\n}\n\n\n.%cssClass% .ace_collab.ace_user1 {\n %collab.user1% \n}"),define("text/docs/css.css",[],'.text-layer {\n font-family: Monaco, "Courier New", monospace;\n font-size: 12px;\n cursor: text;\n}'),define("text/styles.css",[],"html {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\nbody {\n overflow: hidden;\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;\n font-size: 12px;\n background: rgb(14, 98, 165);\n color: white;\n}\n\n#logo {\n padding: 15px;\n margin-left: 65px;\n}\n\n#editor {\n position: absolute;\n top: 0px;\n left: 280px;\n bottom: 0px;\n right: 0px;\n background: white;\n}\n\n#controls {\n padding: 5px;\n}\n\n#controls td {\n text-align: right;\n}\n\n#controls td + td {\n text-align: left;\n}"),require(["ace/ace"],function(a){window.ace=a}) var Lang = A.Lang, BOUNDING_BOX = 'boundingBox', @@ -29,6 +29,13 @@ var AceEditor = A.Component.create( value: true }, + mode: { + lazyAdd: false, + getter: '_getMode', + setter: '_setMode', + value: EMPTY_STR + }, + readOnly: { lazyAdd: false, getter: '_getReadOnly', @@ -123,6 +130,12 @@ var AceEditor = A.Component.create( return instance.getEditor().getHighlightActiveLine(); }, + _getMode: function() { + var instance = this; + + return instance.getSession().getMode(); + }, + _getReadOnly: function() { var instance = this; @@ -165,6 +178,21 @@ var AceEditor = A.Component.create( instance.getEditor().setHighlightActiveLine(value); }, + _setMode: function(value) { + var instance = this; + + if (value) { + var Mode = require('ace/mode/' + value).Mode; + + if (Mode !== undefined) { + instance.getSession().setMode(new Mode()); + } + else { + throw new Error('The mode \'' + value + '\' is not available.'); + } + } + }, + _setReadOnly: function(value) { var instance = this; @@ -244,7 +272,7 @@ define("ace/theme/idle_fingers",["require","exports","module"],function(a,b,c){v }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-mode-html', function(A) { -define("ace/mode/html",["require","exports","module","pilot/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/mode/javascript").Mode,g=a("ace/mode/css").Mode,h=a("ace/tokenizer").Tokenizer,i=a("ace/mode/html_highlight_rules").HtmlHighlightRules,j=a("ace/mode/behaviour/xml").XmlBehaviour,k=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g})};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(k.prototype),b.Mode=k}),define("ace/mode/javascript",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/range").Range,j=a("ace/worker/worker_client").WorkerClient,k=a("ace/mode/behaviour/cstyle").CstyleBehaviour,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[\:]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new j(["ace","pilot"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:d},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a("attribute-list"))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],"style-qstring":b("'","style"),"style-qqstring":b('"',"style"),"script-qstring":b("'","script"),"script-qqstring":b('"',"script"),"tag-qstring":b("'","tag"),"tag-qqstring":b('"',"tag"),cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)",next:"regex_allowed"},{token:"lparen",regex:"[[({]",next:"regex_allowed"},{token:"rparen",regex:"[\\])}]"},{token:"keyword.operator",regex:"\\/=?",next:"regex_allowed"},{token:"comment",regex:"^#!.*$"},{token:"text",regex:"\\s+"}],regex_allowed:[{token:"string.regexp",regex:"\\/(?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*",next:"start"},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(g,"doc-",[(new g).getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/worker/worker_client",["require","exports","module","pilot/oop","pilot/event_emitter"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=function(b,c,d,e){this.callbacks=[];if(a.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),g=this.$worker=new Worker(h),i={};for(var j=0;jf.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/css",["require","exports","module","pilot/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/css_highlight_rules").CssHighlightRules,h=a("ace/mode/matching_brace_outdent").MatchingBraceOutdent,i=a("ace/worker/worker_client").WorkerClient,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);f&&(d+=c);return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=a.getDocument(),c=new i(["ace","pilot"],"worker-css.js","ace/mode/css_worker","Worker");c.call("setValue",[b.getValue()]),b.on("change",function(a){a.range={start:a.data.range.start,end:a.data.range.end},c.emit("change",a)}),c.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)})}}.call(j.prototype),b.Mode=j}),define("ace/mode/css_highlight_rules",["require","exports","module","pilot/oop","pilot/lang","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("pilot/lang"),f=a("ace/mode/text_highlight_rules").TextHighlightRules,g=function(){function g(a){var b=[],c=a.split("");for(var d=0;d",next:e},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(a(d))}function b(a,b){return[{token:"string",merge:!0,regex:".*"+a,next:b},{token:"string",merge:!0,regex:".+"}]}function a(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*$',next:a+"-qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*$",next:a+"-qstring"}]}this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"text",regex:"<(?=s*script)",next:"script"},{token:"text",regex:"<(?=s*style)",next:"css"},{token:"text",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},c(this.$rules,"tag","start"),c(this.$rules,"css","css-start"),c(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"text",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"text",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(h,g),b.HtmlHighlightRules=h}),define("ace/mode/behaviour/xml",["require","exports","module","pilot/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=a("ace/mode/behaviour/cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0&&this._ltIndex-1&&!b[h.type].hide&&(h.channel=b[h.type].channel,this._token=h,this._lt.push(h),this._ltIndexCache.push(this._lt.length-this._ltIndex+e),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),i=b[h.type];return i&&(i.hide||i.channel!==undefined&&a!==i.channel)?this.get(a):h.type},LA:function(a){var b=a,c;if(a>0){if(a>5)throw new Error("Too much lookahead.");while(b)c=this.get(),b--;while(bthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[a].name},tokenType:function(a){return this._tokenData[a]||-1},unget:function(){if(this._ltIndexCache.length)this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1];else throw new Error("Too much lookahead.")}},parserlib.util={StringReader:b,SyntaxError:c,SyntaxUnit:d,EventTarget:a,TokenStreamBase:e}})(),function(){function TokenStream(a){TokenStreamBase.call(this,a,Tokens)}function mix(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function isIdentStart(a){return a!=null&&(isNameStart(a)||/\-\\/.test(a))}function isNameChar(a){return a!=null&&(isNameStart(a)||/[0-9\-\\]/.test(a))}function isNameStart(a){return a!=null&&/[a-z_\u0080-\uFFFF\\]/i.test(a)}function isNewLine(a){return a!=null&&nl.test(a)}function isWhitespace(a){return a!=null&&/\s/.test(a)}function isDigit(a){return a!=null&&/\d/.test(a)}function isHexDigit(a){return a!=null&&h.test(a)}function SelectorSubPart(a,b,c,d){SyntaxUnit.call(this,a,c,d),this.type=b,this.args=[]}function SelectorPart(a,b,c,d,e){SyntaxUnit.call(this,c,d,e),this.elementName=a,this.modifiers=b}function Selector(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyValuePart(text,line,col){SyntaxUnit.apply(this,arguments),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function PropertyValue(a,b,c){SyntaxUnit.call(this,a.join(" "),b,c),this.parts=a}function PropertyName(a,b,c,d){SyntaxUnit.call(this,(b||"")+a,c,d),this.hack=b}function Parser(a){EventTarget.call(this),this.options=a||{},this._tokenStream=null}function MediaQuery(a,b,c,d,e){SyntaxUnit.call(this,(a?a+" ":"")+(b?b+" ":"")+c.join(" and "),d,e),this.modifier=a,this.mediaType=b,this.features=c}function MediaFeature(a,b){SyntaxUnit.call(this,"("+a+(b!==null?":"+b:"")+")",a.startLine,a.startCol),this.name=a,this.value=b}function Combinator(a,b,c){SyntaxUnit.call(this,a,b,c),this.type="unknown",/^\s+$/.test(a)?this.type="descendant":a==">"?this.type="child":a=="+"?this.type="adjacent-sibling":a=="~"&&(this.type="sibling")}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator;var Level1Properties={background:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,border:1,"border-bottom":1,"border-bottom-width":1,"border-color":1,"border-left":1,"border-left-width":1,"border-right":1,"border-right-width":1,"border-style":1,"border-top":1,"border-top-width":1,"border-width":1,clear:1,color:1,display:1,"float":1,font:1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,height:1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,"vertical-align":1,"white-space":1,width:1,"word-spacing":1},Level2Properties={azimuth:1,"cue-after":1,"cue-before":1,cue:1,elevation:1,"pause-after":1,"pause-before":1,pause:1,"pitch-range":1,pitch:1,"play-during":1,richness:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,speak:1,"speech-rate":1,stress:1,"voice-family":1,volume:1,orphans:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,widows:1,cursor:1,"outline-color":1,"outline-style":1,"outline-width":1,outline:1,"background-attachment":1,"background-color":1,"background-image":1,"background-position":1,"background-repeat":1,background:1,"border-collapse":1,"border-color":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-style":1,"border-top-width":1,"border-width":1,border:1,bottom:1,"caption-side":1,clear:1,clip:1,color:1,content:1,"counter-increment":1,"counter-reset":1,direction:1,display:1,"empty-cells":1,"float":1,"font-family":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,font:1,height:1,left:1,"letter-spacing":1,"line-height":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,"list-style":1,"margin-right":1,"margin-top":1,margin:1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,overflow:1,"padding-top":1,padding:1,position:1,quotes:1,right:1,"table-layout":1,"text-align":1,"text-decoration":1,"text-indent":1,"text-transform":1,top:1,"unicode-bidi":1,"vertical-align":1,visibility:1,"white-space":1,width:1,"word-spacing":1,"z-index":1};MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.prototype=function(){var a=new EventTarget,b,c={constructor:Parser,_stylesheet:function(){var a=this._tokenStream,b=null,c,d;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(a.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(a.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();d=a.peek();while(d>Tokens.EOF){try{switch(d){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(d){case Tokens.CHARSET_SYM:c=a.LT(1),this._charset(!1);throw new SyntaxError("@charset not allowed here.",c.startLine,c.startCol);case Tokens.IMPORT_SYM:c=a.LT(1),this._import(!1);throw new SyntaxError("@import not allowed here.",c.startLine,c.startCol);case Tokens.NAMESPACE_SYM:c=a.LT(1),this._namespace(!1);throw new SyntaxError("@namespace not allowed here.",c.startLine,c.startCol);default:a.get(),this._unexpectedToken(a.token())}}}catch(e){if(e instanceof SyntaxError&&!this.options.strict)this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col});else throw e}d=a.peek()}d!=Tokens.EOF&&this._unexpectedToken(a.token()),this.fire("endstylesheet")},_charset:function(a){var b=this._tokenStream,c,d,e,f;b.match(Tokens.CHARSET_SYM)&&(e=b.token().startLine,f=b.token().startCol,this._readWhitespace(),b.mustMatch(Tokens.STRING),d=b.token(),c=d.value,this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),a!==!1&&this.fire({type:"charset",charset:c,line:e,col:f}))},_import:function(a){var b=this._tokenStream,c,d,e,f=[];b.mustMatch(Tokens.IMPORT_SYM),e=b.token(),this._readWhitespace(),b.mustMatch([Tokens.STRING,Tokens.URI]),d=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),f=this._media_query_list(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"import",uri:d,media:f,line:e.startLine,col:e.startCol})},_namespace:function(a){var b=this._tokenStream,c,d,e,f;b.mustMatch(Tokens.NAMESPACE_SYM),c=b.token().startLine,d=b.token().startCol,this._readWhitespace(),b.match(Tokens.IDENT)&&(e=b.token().value,this._readWhitespace()),b.mustMatch([Tokens.STRING,Tokens.URI]),f=b.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),b.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),a!==!1&&this.fire({type:"namespace",prefix:e,uri:f,line:c,col:d})},_media:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.MEDIA_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),d=this._media_query_list(),a.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:d,line:b,col:c});for(;;)if(a.peek()==Tokens.PAGE_SYM)this._page();else if(!this._ruleset())break;a.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:d,line:b,col:c})},_media_query_list:function(){var a=this._tokenStream,b=[];this._readWhitespace(),(a.peek()==Tokens.IDENT||a.peek()==Tokens.LPAREN)&&b.push(this._media_query());while(a.match(Tokens.COMMA))this._readWhitespace(),b.push(this._media_query());return b},_media_query:function(){var a=this._tokenStream,b=null,c=null,d=null,e=[];a.match(Tokens.IDENT)&&(c=a.token().value.toLowerCase(),c!="only"&&c!="not"?(a.unget(),c=null):d=a.token()),this._readWhitespace(),a.peek()==Tokens.IDENT?(b=this._media_type(),d===null&&(d=a.token())):a.peek()==Tokens.LPAREN&&(d===null&&(d=a.LT(1)),e.push(this._media_expression()));if(b===null&&e.length===0)return null;this._readWhitespace();while(a.match(Tokens.IDENT))a.token().value.toLowerCase()!="and"&&this._unexpectedToken(a.token()),this._readWhitespace(),e.push(this._media_expression());return new MediaQuery(c,b,e,d.startLine,d.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var a=this._tokenStream,b=null,c,d=null;a.mustMatch(Tokens.LPAREN),b=this._media_feature(),this._readWhitespace(),a.match(Tokens.COLON)&&(this._readWhitespace(),c=a.LT(1),d=this._expression()),a.mustMatch(Tokens.RPAREN),this._readWhitespace();return new MediaFeature(b,d?new SyntaxUnit(d,c.startLine,c.startCol):null)},_media_feature:function(){var a=this._tokenStream;a.mustMatch(Tokens.IDENT);return SyntaxUnit.fromToken(a.token())},_page:function(){var a=this._tokenStream,b,c,d=null,e=null;a.mustMatch(Tokens.PAGE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),a.match(Tokens.IDENT)&&(d=a.token().value,d.toLowerCase()==="auto"&&this._unexpectedToken(a.token())),a.peek()==Tokens.COLON&&(e=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:d,pseudo:e,line:b,col:c}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:d,pseudo:e,line:b,col:c})},_margin:function(){var a=this._tokenStream,b,c,d=this._margin_sym();if(d){b=a.token().startLine,c=a.token().startCol,this.fire({type:"startpagemargin",margin:d,line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:d,line:b,col:c});return!0}return!1},_margin_sym:function(){var a=this._tokenStream;return a.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(a.token()):null},_pseudo_page:function(){var a=this._tokenStream;a.mustMatch(Tokens.COLON),a.mustMatch(Tokens.IDENT);return a.token().value},_font_face:function(){var a=this._tokenStream,b,c;a.mustMatch(Tokens.FONT_FACE_SYM),b=a.token().startLine,c=a.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:b,col:c}),this._readDeclarations(!0),this.fire({type:"endfontface",line:b,col:c})},_operator:function(){var a=this._tokenStream,b=null;a.match([Tokens.SLASH,Tokens.COMMA])&&(b=a.token(),this._readWhitespace());return b?PropertyValuePart.fromToken(b):null},_combinator:function(){var a=this._tokenStream,b=null,c;a.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(c=a.token(),b=new Combinator(c.value,c.startLine,c.startCol),this._readWhitespace());return b},_unary_operator:function(){var a=this._tokenStream;return a.match([Tokens.MINUS,Tokens.PLUS])?a.token().value:null},_property:function(){var a=this._tokenStream,b=null,c=null,d,e,f,g;a.peek()==Tokens.STAR&&this.options.starHack&&(a.get(),e=a.token(),c=e.value,f=e.startLine,g=e.startCol),a.match(Tokens.IDENT)&&(e=a.token(),d=e.value,d.charAt(0)=="_"&&this.options.underscoreHack&&(c="_",d=d.substring(1)),b=new PropertyName(d,c,f||e.startLine,g||e.startCol),this._readWhitespace());return b},_ruleset:function(){var a=this._tokenStream,b,c;try{c=this._selectors_group()}catch(d){if(!(d instanceof SyntaxError&&!this.options.strict))throw d;this.fire({type:"error",error:d,message:d.message,line:d.line,col:d.col}),b=a.advance([Tokens.RBRACE]);if(b!=Tokens.RBRACE)throw d;return!0}c&&(this.fire({type:"startrule",selectors:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:c,line:c[0].line,col:c[0].col}));return c},_selectors_group:function(){var a=this._tokenStream,b=[],c;c=this._selector();if(c!==null){b.push(c);while(a.match(Tokens.COMMA))this._readWhitespace(),c=this._selector(),c!==null?b.push(c):this._unexpectedToken(a.LT(1))}return b.length?b:null},_selector:function(){var a=this._tokenStream,b=[],c=null,d=null,e=null;c=this._simple_selector_sequence();if(c===null)return null;b.push(c);do{d=this._combinator();if(d!==null)b.push(d),c=this._simple_selector_sequence(),c===null?this._unexpectedToken(this.LT(1)):b.push(c);else if(this._readWhitespace())e=new Combinator(a.token().value,a.token().startLine,a.token().startCol),d=this._combinator(),c=this._simple_selector_sequence(),c===null?d!==null&&this._unexpectedToken(a.LT(1)):(d!==null?b.push(d):b.push(e),b.push(c));else break}while(!0);return new Selector(b,b[0].line,b[0].col)},_simple_selector_sequence:function(){var a=this._tokenStream,b=null,c=[],d="",e=[function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],f=0,g=e.length,h=null,i=!1,j,k;j=a.LT(1).startLine,k=a.LT(1).startCol,b=this._type_selector(),b||(b=this._universal()),b!==null&&(d+=b);for(;;){if(a.peek()===Tokens.S)break;while(f1&&a.unget());return null}b&&(c.text=b+c.text,c.col-=b.length);return c},_class:function(){var a=this._tokenStream,b;if(a.match(Tokens.DOT)){a.mustMatch(Tokens.IDENT),b=a.token();return new SelectorSubPart("."+b.value,"class",b.startLine,b.startCol-1)}return null},_element_name:function(){var a=this._tokenStream,b;if(a.match(Tokens.IDENT)){b=a.token();return new SelectorSubPart(b.value,"elementName",b.startLine,b.startCol)}return null},_namespace_prefix:function(){var a=this._tokenStream,b="";if(a.LA(1)===Tokens.PIPE||a.LA(2)===Tokens.PIPE)a.match([Tokens.IDENT,Tokens.STAR])&&(b+=a.token().value),a.mustMatch(Tokens.PIPE),b+="|";return b.length?b:null},_universal:function(){var a=this._tokenStream,b="",c;c=this._namespace_prefix(),c&&(b+=c),a.match(Tokens.STAR)&&(b+="*");return b.length?b:null},_attrib:function(){var a=this._tokenStream,b=null,c,d;if(a.match(Tokens.LBRACKET)){d=a.token(),b=d.value,b+=this._readWhitespace(),c=this._namespace_prefix(),c&&(b+=c),a.mustMatch(Tokens.IDENT),b+=a.token().value,b+=this._readWhitespace(),a.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(b+=a.token().value,b+=this._readWhitespace(),a.mustMatch([Tokens.IDENT,Tokens.STRING]),b+=a.token().value,b+=this._readWhitespace()),a.mustMatch(Tokens.RBRACKET);return new SelectorSubPart(b+"]","attribute",d.startLine,d.startCol)}return null},_pseudo:function(){var a=this._tokenStream,b=null,c=":",d,e;a.match(Tokens.COLON)&&(a.match(Tokens.COLON)&&(c+=":"),a.match(Tokens.IDENT)?(b=a.token().value,d=a.token().startLine,e=a.token().startCol-c.length):a.peek()==Tokens.FUNCTION&&(d=a.LT(1).startLine,e=a.LT(1).startCol-c.length,b=this._functional_pseudo()),b&&(b=new SelectorSubPart(c+b,"pseudo",d,e)));return b},_functional_pseudo:function(){var a=this._tokenStream,b=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,b+=this._readWhitespace(),b+=this._expression(),a.mustMatch(Tokens.RPAREN),b+=")");return b},_expression:function(){var a=this._tokenStream,b="";while(a.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION]))b+=a.token().value,b+=this._readWhitespace();return b.length?b:null},_negation:function(){var a=this._tokenStream,b,c,d="",e,f=null;a.match(Tokens.NOT)&&(d=a.token().value,b=a.token().startLine,c=a.token().startCol,d+=this._readWhitespace(),e=this._negation_arg(),d+=e,d+=this._readWhitespace(),a.match(Tokens.RPAREN),d+=a.token().value,f=new SelectorSubPart(d,"not",b,c),f.args.push(e));return f},_negation_arg:function(){var a=this._tokenStream,b=[this._type_selector,this._universal,function(){return a.match(Tokens.HASH)?new SelectorSubPart(a.token().value,"id",a.token().startLine,a.token().startCol):null},this._class,this._attrib,this._pseudo],c=null,d=0,e=b.length,f,g,h,i;g=a.LT(1).startLine,h=a.LT(1).startCol;while(d0?new PropertyValue(b,b[0].startLine,b[0].startCol):null},_term:function(){var a=this._tokenStream,b=null,c=null,d,e;b=this._unary_operator(),b!==null&&(d=a.token().startLine,e=a.token().startCol),a.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(c=this._ie_function(),b===null&&(d=a.token().startLine,e=a.token().startCol)):a.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(c=a.token().value,b===null&&(d=a.token().startLine,e=a.token().startCol),this._readWhitespace()):(c=this._hexcolor(),c===null?(b===null&&(d=a.LT(1).startLine,e=a.LT(1).startCol),c===null&&(a.LA(3)==Tokens.EQUALS&&this.options.ieFilters?c=this._ie_function():c=this._function())):b===null&&(d=a.token().startLine,e=a.token().startCol));return c!==null?new PropertyValuePart(b!==null?b+c:c,d,e):null},_function:function(){var a=this._tokenStream,b=null,c=null;a.match(Tokens.FUNCTION)&&(b=a.token().value,this._readWhitespace(),c=this._expr(),a.match(Tokens.RPAREN),b+=c+")",this._readWhitespace());return b},_ie_function:function(){var a=this._tokenStream,b=null,c=null,d;if(a.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){b=a.token().value;do{this._readWhitespace()&&(b+=a.token().value),a.LA(0)==Tokens.COMMA&&(b+=a.token().value),a.match(Tokens.IDENT),b+=a.token().value,a.match(Tokens.EQUALS),b+=a.token().value,d=a.peek();while(d!=Tokens.COMMA&&d!=Tokens.S&&d!=Tokens.RPAREN)a.get(),b+=a.token().value,d=a.peek()}while(a.match([Tokens.COMMA,Tokens.S]));a.match(Tokens.RPAREN),b+=")",this._readWhitespace()}return b},_hexcolor:function(){var a=this._tokenStream,b,c=null;if(a.match(Tokens.HASH)){b=a.token(),c=b.value;if(!/#[a-f0-9]{3,6}/i.test(c))throw new SyntaxError("Expected a hex color but found '"+c+"' at line "+b.startLine+", col "+b.startCol+".",b.startLine,b.startCol);this._readWhitespace()}return c},_keyframes:function(){var a=this._tokenStream,b,c,d;a.mustMatch(Tokens.KEYFRAMES_SYM),this._readWhitespace(),d=this._keyframe_name(),this._readWhitespace(),a.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),c=a.peek();while(c==Tokens.IDENT||c==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),c=a.peek();this.fire({type:"endkeyframes",name:d,line:d.line,col:d.col}),this._readWhitespace(),a.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var a=this._tokenStream,b;a.mustMatch([Tokens.IDENT,Tokens.STRING]);return SyntaxUnit.fromToken(a.token())},_keyframe_rule:function(){var a=this._tokenStream,b,c=this._key_list();this.fire({type:"startkeyframerule",keys:c,line:c[0].line,col:c[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:c,line:c[0].line,col:c[0].col})},_key_list:function(){var a=this._tokenStream,b,c,d=[];d.push(this._key()),this._readWhitespace();while(a.match(Tokens.COMMA))this._readWhitespace(),d.push(this._key()),this._readWhitespace();return d},_key:function(){var a=this._tokenStream,b;if(a.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(a.token());if(a.match(Tokens.IDENT)){b=a.token();if(/from|to/i.test(b.value))return SyntaxUnit.fromToken(b);a.unget()}this._unexpectedToken(a.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(a,b){var c=this._tokenStream,d;this._readWhitespace(),a&&c.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!b||!this._margin()){if(!this._declaration())break;if(!c.match(Tokens.SEMICOLON))break}this._readWhitespace()}c.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(e){if(!(e instanceof SyntaxError&&!this.options.strict))throw e;this.fire({type:"error",error:e,message:e.message,line:e.line,col:e.col}),d=c.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(d==Tokens.SEMICOLON)this._readDeclarations(!1,b);else if(d!=Tokens.RBRACE)throw e}},_readWhitespace:function(){var a=this._tokenStream,b="";while(a.match(Tokens.S))b+=a.token().value;return b},_unexpectedToken:function(a){throw new SyntaxError("Unexpected token '"+a.value+"' at line "+a.startLine+", col "+a.startCol+".",a.startLine,a.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},parse:function(a){this._tokenStream=new TokenStream(a,Tokens),this._stylesheet()},parseStyleSheet:function(a){return this.parse(a)},parseMediaQuery:function(a){this._tokenStream=new TokenStream(a,Tokens);var b=this._media_query();this._verifyEnd();return b},parsePropertyValue:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._expr();this._readWhitespace(),this._verifyEnd();return b},parseRule:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._ruleset();this._readWhitespace(),this._verifyEnd();return b},parseSelector:function(a){this._tokenStream=new TokenStream(a,Tokens),this._readWhitespace();var b=this._selector();this._readWhitespace(),this._verifyEnd();return b}};for(b in c)a[b]=c[b];return a}(),PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValue,PropertyValuePart.fromToken=function(a){return new PropertyValuePart(a.value,a.startLine,a.startCol)},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart;var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(a){var b,c=this._reader,d=null,e=c.getLine(),f=c.getCol();b=c.read();while(b){switch(b){case"/":c.peek()=="*"?d=this.commentToken(b,e,f):d=this.charToken(b,e,f);break;case"|":case"~":case"^":case"$":case"*":c.peek()=="="?d=this.comparisonToken(b,e,f):d=this.charToken(b,e,f);break;case'"':case"'":d=this.stringToken(b,e,f);break;case"#":isNameChar(c.peek())?d=this.hashToken(b,e,f):d=this.charToken(b,e,f);break;case".":isDigit(c.peek())?d=this.numberToken(b,e,f):d=this.charToken(b,e,f);break;case"-":c.peek()=="-"?d=this.htmlCommentEndToken(b,e,f):isNameStart(c.peek())?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f);break;case"!":d=this.importantToken(b,e,f);break;case"@":d=this.atRuleToken(b,e,f);break;case":":d=this.notToken(b,e,f);break;case"<":d=this.htmlCommentStartToken(b,e,f);break;case"U":case"u":if(c.peek()=="+"){d=this.unicodeRangeToken(b,e,f);break};default:isDigit(b)?d=this.numberToken(b,e,f):isWhitespace(b)?d=this.whitespaceToken(b,e,f):isIdentStart(b)?d=this.identOrFunctionToken(b,e,f):d=this.charToken(b,e,f)}break}!d&&b==null&&(d=this.createToken(Tokens.EOF,null,e,f));return d},createToken:function(a,b,c,d,e){var f=this._reader;e=e||{};return{value:b,type:a,channel:e.channel,hide:e.hide||!1,startLine:c,startCol:d,endLine:f.getLine(),endCol:f.getCol()}},atRuleToken:function(a,b,c){var d=a,e=this._reader,f=Tokens.CHAR,g=!1,h,i;e.mark(),h=this.readName(),d=a+h,f=Tokens.type(d.toLowerCase());if(f==Tokens.CHAR||f==Tokens.UNKNOWN)f=Tokens.CHAR,d=a,e.reset();return this.createToken(f,d,b,c)},charToken:function(a,b,c){var d=Tokens.type(a);d==-1&&(d=Tokens.CHAR);return this.createToken(d,a,b,c)},commentToken:function(a,b,c){var d=this._reader,e=this.readComment(a);return this.createToken(Tokens.COMMENT,e,b,c)},comparisonToken:function(a,b,c){var d=this._reader,e=a+d.read(),f=Tokens.type(e)||Tokens.CHAR;return this.createToken(f,e,b,c)},hashToken:function(a,b,c){var d=this._reader,e=this.readName(a);return this.createToken(Tokens.HASH,e,b,c)},htmlCommentStartToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(3);if(e=="")return this.createToken(Tokens.CDC,e,b,c);d.reset();return this.charToken(a,b,c)},identOrFunctionToken:function(a,b,c){var d=this._reader,e=this.readName(a),f=Tokens.IDENT;d.peek()=="("?(e+=d.read(),e.toLowerCase()=="url("?(f=Tokens.URI,e=this.readURI(e),e.toLowerCase()=="url("&&(f=Tokens.FUNCTION)):f=Tokens.FUNCTION):d.peek()==":"&&e.toLowerCase()=="progid"&&(e+=d.readTo("("),f=Tokens.IE_FUNCTION);return this.createToken(f,e,b,c)},importantToken:function(a,b,c){var d=this._reader,e=a,f=Tokens.CHAR,g,h;d.mark(),h=d.read();while(h){if(h=="/"){if(d.peek()!="*")break;g=this.readComment(h);if(g=="")break}else if(isWhitespace(h))e+=h+this.readWhitespace();else{if(/i/i.test(h)){g=d.readCount(8),/mportant/i.test(g)&&(e+=h+g,f=Tokens.IMPORTANT_SYM);break}break}h=d.read()}if(f==Tokens.CHAR){d.reset();return this.charToken(a,b,c)}return this.createToken(f,e,b,c)},notToken:function(a,b,c){var d=this._reader,e=a;d.mark(),e+=d.readCount(4);if(e.toLowerCase()==":not(")return this.createToken(Tokens.NOT,e,b,c);d.reset();return this.charToken(a,b,c)},numberToken:function(a,b,c){var d=this._reader,e=this.readNumber(a),f,g=Tokens.NUMBER,h=d.peek();isIdentStart(h)?(f=this.readName(d.read()),e+=f,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(f)?g=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(f)?g=Tokens.ANGLE:/^ms$|^s$/i.test(f)?g=Tokens.TIME:/^hz$|^khz$/i.test(f)?g=Tokens.FREQ:/^dpi$|^dpcm$/i.test(f)?g=Tokens.RESOLUTION:g=Tokens.DIMENSION):h=="%"&&(e+=d.read(),g=Tokens.PERCENTAGE);return this.createToken(g,e,b,c)},stringToken:function(a,b,c){var d=a,e=a,f=this._reader,g=a,h=Tokens.STRING,i=f.read();while(i){e+=i;if(i==d&&g!="\\")break;if(isNewLine(f.peek())&&i!="\\"){h=Tokens.INVALID;break}g=i,i=f.read()}i==null&&(h=Tokens.INVALID);return this.createToken(h,e,b,c)},unicodeRangeToken:function(a,b,c){var d=this._reader,e=a,f,g=Tokens.CHAR;d.peek()=="+"&&(d.mark(),e+=d.read(),e+=this.readUnicodeRangePart(!0),e.length==2?d.reset():(g=Tokens.UNICODE_RANGE,e.indexOf("?")==-1&&d.peek()=="-"&&(d.mark(),f=d.read(),f+=this.readUnicodeRangePart(!1),f.length==1?d.reset():e+=f)));return this.createToken(g,e,b,c)},whitespaceToken:function(a,b,c){var d=this._reader,e=a+this.readWhitespace();return this.createToken(Tokens.S,e,b,c)},readUnicodeRangePart:function(a){var b=this._reader,c="",d=b.peek();while(isHexDigit(d)&&c.length<6)b.read(),c+=d,d=b.peek();if(a)while(d=="?"&&c.length<6)b.read(),c+=d,d=b.peek();return c},readWhitespace:function(){var a=this._reader,b="",c=a.peek();while(isWhitespace(c))a.read(),b+=c,c=a.peek();return b},readNumber:function(a){var b=this._reader,c=a,d=a==".",e=b.peek();while(e){if(isDigit(e))c+=b.read();else{if(e!=".")break;if(d)break;d=!0,c+=b.read()}e=b.peek()}return c},readString:function(){var a=this._reader,b=a.read(),c=b,d=b,e=a.peek();while(e){e=a.read(),c+=e;if(e==b&&d!="\\")break;if(isNewLine(a.peek())&&e!="\\"){c="";break}d=e,e=a.peek()}e==null&&(c="");return c},readURI:function(a){var b=this._reader,c=a,d="",e=b.peek();b.mark();while(e&&isWhitespace(e))b.read(),e=b.peek();e=="'"||e=='"'?d=this.readString():d=this.readURL(),e=b.peek();while(e&&isWhitespace(e))b.read(),e=b.peek();d==""||e!=")"?(c=a,b.reset()):c+=d+b.read();return c},readURL:function(){var a=this._reader,b="",c=a.peek();while(/^[!#$%&\\*-~]$/.test(c))b+=a.read(),c=a.peek();return b},readName:function(a){var b=this._reader,c=a||"",d=b.peek();for(;;)if(d=="\\")c+=this.readEscape(b.read()),d=b.peek();else if(d&&isNameChar(d))c+=b.read(),d=b.peek();else break;return c},readEscape:function(a){var b=this._reader,c=a||"",d=0,e=b.peek();if(isHexDigit(e))do c+=b.read(),e=b.peek();while(e&&isHexDigit(e)&&++d<6);c.length==3&&/\s/.test(e)||c.length==7||c.length==1?b.read():e="";return c+e},readComment:function(a){var b=this._reader,c=a||"",d=b.read();if(d=="*"){while(d){c+=d;if(d=="*"&&b.peek()=="/"){c+=b.read();break}d=b.read()}return c}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var a=[],b={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var c=0,d=Tokens.length;c1&&b.warn("Don't use adjoining classes.",f.line,f.col,c)}}}})}}),CSSLint.addRule({id:"box-model",name:"Box Model",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(a,b){var c=this,d={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},e={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},f;a.addListener("startrule",function(){f={}}),a.addListener("property",function(a){var b=a.property.text.toLowerCase();if(e[b]||d[b])!/^0\S*$/.test(a.value)&&(b!="border"||a.value!="none")&&(f[b]={line:a.property.line,col:a.property.col,value:a.value});else if(b=="width"||b=="height")f[b]=1}),a.addListener("endrule",function(){var a;if(f.height)for(a in e)e.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[0].value!=0)&&b.warn("Broken box model: using height with "+a+".",f[a].line,f[a].col,c);if(f.width)for(a in d)d.hasOwnProperty(a)&&f[a]&&(a!="padding"||f[a].value.parts.length!=2||f[a].value.parts[1].value!=0)&&b.warn("Broken box model: using width with "+a+".",f[a].line,f[a].col,c)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Compatible Vendor Prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(a,b){var c=this,d,e,f,g,h,i,j,k=Array.prototype.push,l=[];d={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit moz","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz","column-gap":"webkit moz","column-rule":"webkit moz","column-rule-color":"webkit moz","column-rule-style":"webkit moz","column-rule-width":"webkit moz","column-width":"webkit moz",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz","word-break":"epub ms","writing-mode":"epub ms"};for(f in d)if(d.hasOwnProperty(f)){g=[],h=d[f].split(" ");for(i=0,j=h.length;i-1&&e.push(b)}),a.addListener("endrule",function(a){if(!!e.length){var f={},g,h,i,j,k,l,m,n,o,p;for(g=0,h=e.length;g-1&&(f[j]===undefined&&(f[j]={full:k.slice(0),actual:[]}),f[j].actual.indexOf(i)===-1&&f[j].actual.push(i)))}for(j in f)if(f.hasOwnProperty(j)){l=f[j],m=l.full,n=l.actual;if(m.length>n.length)for(g=0,h=m.length;g=10&&b.rollupWarn("Too many floats ("+d+"), you're probably using them for layout. Consider using a grid system instead.",c)})}}),CSSLint.addRule({id:"font-faces",name:"Font Faces",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("startfontface",function(){d++}),a.addListener("endstylesheet",function(){d>5&&b.rollupWarn("Too many @font-face declarations ("+d+").",c)})}}),CSSLint.addRule({id:"font-sizes",name:"Font Sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.property=="font-size"&&d++}),a.addListener("endstylesheet",function(){b.stat("font-sizes",d),d>=10&&b.rollupWarn("Too many font-size declarations ("+d+"), abstraction needed.",c)})}}),CSSLint.addRule({id:"gradients",name:"Gradients",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(a,b){var c=this,d;a.addListener("startrule",function(){d={moz:0,webkit:0,ms:0,o:0}}),a.addListener("property",function(a){/\-(moz|ms|o|webkit)(?:\-(?:linear|radial))\-gradient/.test(a.value)&&(d[RegExp.$1]=1)}),a.addListener("endrule",function(a){var e=[];d.moz||e.push("Firefox 3.6+"),d.webkit||e.push("Webkit (Safari, Chrome)"),d.ms||e.push("Internet Explorer 10+"),d.o||e.push("Opera 11.1+"),e.length&&e.length<4&&b.warn("Missing vendor-prefixed CSS gradients for "+e.join(", ")+".",a.selectors[0].line,a.selectors[0].col,c)})}}),CSSLint.addRule({id:"ids",name:"IDs",desc:"Selectors should not contain IDs.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j,k;for(i=0;i1&&b.warn(h+" IDs in the selector, really?",e.line,e.col,c)}})}}),CSSLint.addRule({id:"import",name:"@import",desc:"Don't use @import, use instead.",browsers:"All",init:function(a,b){var c=this;a.addListener("import",function(a){b.warn("@import prevents parallel downloads, use instead.",a.line,a.col,c)})}}),CSSLint.addRule({id:"important",name:"Important",desc:"Be careful when using !important declaration",browsers:"All",init:function(a,b){var c=this,d=0;a.addListener("property",function(a){a.important===!0&&(d++,b.warn("Use of !important",a.line,a.col,c))}),a.addListener("endstylesheet",function(){b.stat("important",d),d>=10&&b.rollupWarn("Too many !important declarations ("+d+"), try to use less than 10 to avoid specifity issues.",c)})}}),CSSLint.addRule({id:"known-properties",name:"Known Properties",desc:"Properties should be known (listed in CSS specification) or be a vendor-prefixed property.",browsers:"All",init:function(a,b){var c=this,d={"alignment-adjust":1,"alignment-baseline":1,animation:1,"animation-delay":1,"animation-direction":1,"animation-duration":1,"animation-iteration-count":1,"animation-name":1,"animation-play-state":1,"animation-timing-function":1,appearance:1,azimuth:1,"backface-visibility":1,background:1,"background-attachment":1,"background-break":1,"background-clip":1,"background-color":1,"background-image":1,"background-origin":1,"background-position":1,"background-repeat":1,"background-size":1,"baseline-shift":1,binding:1,bleed:1,"bookmark-label":1,"bookmark-level":1,"bookmark-state":1,"bookmark-target":1,border:1,"border-bottom":1,"border-bottom-color":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"border-bottom-style":1,"border-bottom-width":1,"border-collapse":1,"border-color":1,"border-image":1,"border-image-outset":1,"border-image-repeat":1,"border-image-slice":1,"border-image-source":1,"border-image-width":1,"border-left":1,"border-left-color":1,"border-left-style":1,"border-left-width":1,"border-radius":1,"border-right":1,"border-right-color":1,"border-right-style":1,"border-right-width":1,"border-spacing":1,"border-style":1,"border-top":1,"border-top-color":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-top-style":1,"border-top-width":1,"border-width":1,bottom:1,"box-align":1,"box-decoration-break":1,"box-direction":1,"box-flex":1,"box-flex-group":1,"box-lines":1,"box-ordinal-group":1,"box-orient":1,"box-pack":1,"box-shadow":1,"box-sizing":1,"break-after":1,"break-before":1,"break-inside":1,"caption-side":1,clear:1,clip:1,color:1,"color-profile":1,"column-count":1,"column-fill":1,"column-gap":1,"column-rule":1,"column-rule-color":1,"column-rule-style":1,"column-rule-width":1,"column-span":1,"column-width":1,columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:1,cue:1,"cue-after":1,"cue-before":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"drop-initial-after-adjust":1,"drop-initial-after-align":1,"drop-initial-before-adjust":1,"drop-initial-before-align":1,"drop-initial-size":1,"drop-initial-value":1,elevation:1,"empty-cells":1,fit:1,"fit-position":1,"float":1,"float-offset":1,font:1,"font-family":1,"font-size":1,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"grid-columns":1,"grid-rows":1,"hanging-punctuation":1,height:1,"hyphenate-after":1,"hyphenate-before":1,"hyphenate-character":1,"hyphenate-lines":1,"hyphenate-resource":1,hyphens:1,icon:1,"image-orientation":1,"image-rendering":1,"image-resolution":1,"inline-box-align":1,left:1,"letter-spacing":1,"line-height":1,"line-stacking":1,"line-stacking-ruby":1,"line-stacking-shift":1,"line-stacking-strategy":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,margin:1,"margin-bottom":1,"margin-left":1,"margin-right":1,"margin-top":1,mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":1,"max-width":1,"min-height":1,"min-width":1,"move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:1,orphans:1,outline:1,"outline-color":1,"outline-offset":1,"outline-style":1,"outline-width":1,overflow:1,"overflow-style":1,"overflow-x":1,"overflow-y":1,padding:1,"padding-bottom":1,"padding-left":1,"padding-right":1,"padding-top":1,page:1,"page-break-after":1,"page-break-before":1,"page-break-inside":1,"page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,position:1,"presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:1,rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:1,"speak-header":1,"speak-numeral":1,"speak-punctuation":1,"speech-rate":1,stress:1,"string-set":1,"table-layout":1,target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":1,"text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":1,"text-justify":1,"text-outline":1,"text-shadow":1,"text-transform":1,"text-wrap":1,top:1,transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":1,"vertical-align":1,visibility:1,"voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":1,"white-space-collapse":1,widows:1,width:1,"word-break":1,"word-spacing":1,"word-wrap":1,"z-index":1,filter:1,zoom:1};a.addListener("property",function(a){var e=a.property.text.toLowerCase();!d[e]&&e.charAt(0)!="-"&&b.error("Unknown property '"+a.property+"'.",a.line,a.col,c)})}}),CSSLint.addRule({id:"overqualified-elements",name:"Overqualified Elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(a,b){var c=this,d={};a.addListener("startrule",function(a){var e=a.selectors,f,g,h,i,j,k;for(i=0;i0&&b.warn("Heading ("+f.elementName+") should not be qualified.",f.line,f.col,c)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Regex Selectors",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h1&&b.warn("Heading ("+g.elementName+") has already been defined.",g.line,g.col,c))})}}),CSSLint.addRule({id:"universal-selector",name:"Universal Selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(a,b){var c=this;a.addListener("startrule",function(a){var d=a.selectors,e,f,g,h,i,j;for(h=0;h"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.c_cppHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","pilot/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),function(){this.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},this.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}}}.call(f.prototype),b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("ace/range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(a,b,c){var d=a("pilot/oop"),e=a("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return!1;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}return!1}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}"){e.end.column++;return e}}return!1}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}return!1}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")"){e.end.column++;return e}}return!1}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);if(g!=="")return{text:'"'+g+'"',selection:!1};var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column-1,h.column);if(j=="\\")return!1;var k=d.getTokens(f.start.row,f.start.row)[0].tokens,l=0,m,n=-1;for(var o=0;of.start.column)break;l+=k[o].value.length}if(!m||n<0&&m.type!=="comment"&&(m.type!=="string"||f.start.column!==m.value.length+l-1&&m.value.lastIndexOf('"')===m.value.length-1))return{text:'""',selection:[1,1]};if(m&&m.type==="string"){var p=i.substring(h.column,h.column+1);if(p=='"')return{text:"",selection:[1,1]}}}return!1}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=='"'){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"'){e.end.column++;return e}}return!1})};d.inherits(f,e),b.CstyleBehaviour=f}) -}, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); -AUI.add('aui-ace-editor-cockpit', function(A) { -define("cockpit/index",["require","exports","module","pilot/index","cockpit/cli","cockpit/ui/settings","cockpit/ui/cli_view","cockpit/commands/basic"],function(a,b,c){b.startup=function(b,c){a("pilot/index"),a("cockpit/cli").startup(b,c),a("cockpit/ui/settings").startup(b,c),a("cockpit/ui/cli_view").startup(b,c),a("cockpit/commands/basic").startup(b,c)}}),define("cockpit/cli",["require","exports","module","pilot/console","pilot/lang","pilot/oop","pilot/event_emitter","pilot/types","pilot/canon"],function(a,b,c){function r(a,b){q.call(this,a),b&&b.flags&&(this.flags=b.flags)}function q(a){this.env=a,this.commandAssignment=new o(p,this)}function o(a,b){this.param=a,this.requisition=b,this.setValue(a.defaultValue)}function n(a,b,c,d,e,f){this.emitter=a,this.setText(b),this.start=c,this.end=d,this.prefix=e,this.suffix=f}function m(a,b){this.status=a.status,this.message=a.message,b?(this.start=b.start,this.end=b.end):(this.start=0,this.end=0),this.predictions=a.predictions}function l(a,b,c,d,e){this.status=a,this.message=b;if(typeof c=="number")this.start=c,this.end=d,this.predictions=e;else{var f=c;this.start=f.start,this.end=f.end,this.predictions=f.predictions}}var d=a("pilot/console"),e=a("pilot/lang"),f=a("pilot/oop"),g=a("pilot/event_emitter").EventEmitter,h=a("pilot/types"),i=a("pilot/types").Status,j=a("pilot/types").Conversion,k=a("pilot/canon");b.startup=function(a,b){k.upgradeType("command",p)},l.prototype={},l.sort=function(a,b){b!==undefined&&a.forEach(function(a){a.start===n.AT_CURSOR?a.distance=0:ba.end?a.distance=b-a.end:a.distance=0},this),a.sort(function(a,c){if(b!==undefined){var d=a.distance-c.distance;if(d!=0)return d}return c.status-a.status}),b!==undefined&&a.forEach(function(a){delete a.distance},this);return a},b.Hint=l,f.inherits(m,l),n.prototype={merge:function(a){if(a.emitter!=this.emitter)throw new Error("Can't merge Arguments from different EventEmitters");return new n(this.emitter,this.text+this.suffix+a.prefix+a.text,this.start,a.end,this.prefix,a.suffix)},setText:function(a){if(a==null)throw new Error("Illegal text for Argument: "+a);var b={argument:this,oldText:this.text,text:a};this.text=a,this.emitter._dispatchEvent("argumentChange",b)},toString:function(){return this.prefix+this.text+this.suffix}},n.merge=function(a,b,c){b=b===undefined?0:b,c=c===undefined?a.length:c;var d;for(var e=b;e: ";this.param.description&&(b+=this.param.description.trim(),b.charAt(b.length-1)!=="."&&(b+="."),b.charAt(b.length-1)!==" "&&(b+=" "));var c=i.VALID,d=this.arg?this.arg.start:n.AT_CURSOR,e=this.arg?this.arg.end:n.AT_CURSOR,f;this.conversion&&(c=this.conversion.status,this.conversion.message&&(b+=this.conversion.message),f=this.conversion.predictions);var g=this.arg&&this.arg.text!=="",h=this.value!==undefined||g;this.param.defaultValue===undefined&&!h&&(c=i.INVALID,b+="Required");return new l(c,b,d,e,f)},complete:function(){this.conversion&&this.conversion.predictions&&this.conversion.predictions.length>0&&this.setValue(this.conversion.predictions[0])},isPositionCaptured:function(a){return this.arg?this.arg.start===-1?!1:a>this.arg.end?!1:a===this.arg.end?this.conversion.status!==i.VALID||this.conversion.predictions.length!==0:!0:!1},decrement:function(){var a=this.param.type.decrement(this.value);a!=null&&this.setValue(a)},increment:function(){var a=this.param.type.increment(this.value);a!=null&&this.setValue(a)},toString:function(){return this.arg?this.arg.toString():""}},b.Assignment=o;var p={name:"__command",type:"command",description:"The command to execute",getCustomHint:function(a,b){var c=[];c.push(" > "),c.push(a.name),a.params&&a.params.length>0&&a.params.forEach(function(a){a.defaultValue===undefined?c.push(" ["+a.name+"]"):c.push(" ["+a.name+"]")},this),c.push("
                                                                            "),c.push(a.description?a.description:"(No description)"),c.push("
                                                                            "),a.params&&a.params.length>0&&(c.push("
                                                                              "),a.params.forEach(function(a){c.push("
                                                                            • "),c.push(""+a.name+": "),c.push(a.description?a.description:"(No description)"),a.defaultValue===undefined?c.push(" [Required]"):a.defaultValue===null?c.push(" [Optional]"):c.push(" [Default: "+a.defaultValue+"]"),c.push("
                                                                            • ")},this),c.push("
                                                                            "));return new l(i.VALID,c.join(""),b)}};q.prototype={commandAssignment:undefined,assignmentCount:undefined,_assignments:undefined,_hints:undefined,_assignmentChanged:function(a){a.param.name==="__command"&&(this._assignments={},a.value&&a.value.params.forEach(function(a){this._assignments[a.name]=new o(a,this)},this),this.assignmentCount=Object.keys(this._assignments).length,this._dispatchEvent("commandChange",{command:a.value}))},getAssignment:function(a){var b=typeof a=="string"?a:Object.keys(this._assignments)[a];return this._assignments[b]},getParameterNames:function(){return Object.keys(this._assignments)},cloneAssignments:function(){return Object.keys(this._assignments).map(function(a){return this._assignments[a]},this)},_updateHints:function(){this.getAssignments(!0).forEach(function(a){this._hints.push(a.getHint())},this),l.sort(this._hints)},getWorstHint:function(){return this._hints[0]},getArgsObject:function(){var a={};this.getAssignments().forEach(function(b){a[b.param.name]=b.value},this);return a},getAssignments:function(a){var b=[];a===!0&&b.push(this.commandAssignment),Object.keys(this._assignments).forEach(function(a){b.push(this.getAssignment(a))},this);return b},setDefaultValues:function(){this.getAssignments().forEach(function(a){a.setValue(undefined)},this)},exec:function(){k.exec(this.commandAssignment.value,this.env,"cli",this.getArgsObject(),this.toCanonicalString())},toCanonicalString:function(){var a=[];a.push(this.commandAssignment.value.name),Object.keys(this._assignments).forEach(function(b){var c=this._assignments[b],d=c.param.type;c.value!==c.param.defaultValue&&(a.push(" "),a.push(d.stringify(c.value)))},this);return a.join("")}},f.implement(q.prototype,g),b.Requisition=q,f.inherits(r,q),function(){r.prototype.update=function(a){this.input=a,this._hints=[];var b=this._tokenize(a.typed);this._split(b),this.commandAssignment.value&&this._assign(b),this._updateHints()},r.prototype.getInputStatusMarkup=function(){var a=this.toString().split("").map(function(a){return i.VALID});this._hints.forEach(function(b){for(var c=b.start;c<=b.end;c++)b.status>a[c]&&(a[c]=b.status)},this);return a},r.prototype.toString=function(){return this.getAssignments(!0).map(function(a){return a.toString()},this).join("")};var a=r.prototype._updateHints;r.prototype._updateHints=function(){a.call(this);var b=this.input.cursor;this._hints.forEach(function(a){var c=b.start>=a.start&&b.start<=a.end,d=b.end>=a.start&&b.end<=a.end,e=c||d;!e&&a.status===i.INCOMPLETE&&(a.status=i.INVALID)},this),l.sort(this._hints)},r.prototype.getHints=function(){return this._hints},r.prototype.getAssignmentAt=function(a){var b=this.getAssignments(!0);for(var c=0;c=a.length){if(f!==b){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,""))}else if(h!==i){var m=a.substring(i,h),o=k[k.length-1];o?o.suffix+=m:(o=new n(this,"",h,h,m,""),k.push(o))}break}var p=a[h];switch(f){case b:p==="'"?(j=a.substring(i,h+1),f=d,i=h+1):p==='"'?(j=a.substring(i,h+1),f=e,i=h+1):/ /.test(p)||(j=a.substring(i,h),f=c,i=h);break;case c:if(p===" "){var l=g(a.substring(i,h));k.push(new n(this,l,i,h,j,"")),f=b,i=h,j=""}break;case d:if(p==="'"){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}break;case e:if(p==='"'){var l=g(a.substring(i,h));k.push(new n(this,l,i-1,h+1,j,p)),f=b,i=h+1,j=""}}h++}return k},r.prototype._split=function(a){var b=1,c;while(b<=a.length){var c=n.merge(a,0,b);this.commandAssignment.setArgument(c);if(!this.commandAssignment.value)break;if(this.commandAssignment.value.exec){for(var d=0;d=a.length)break;continue}b.param.type.name==="boolean"?b.setValue(!0):f+10){var g=n.merge(a);this._hints.push(new l(i.INVALID,"Input '"+g.text+"' makes no sense.",g))}}}}(),b.CliRequisition=r}),define("cockpit/ui/settings",["require","exports","module","pilot/types","pilot/types/basic"],function(a,b,c){var d=a("pilot/types"),e=a("pilot/types/basic").SelectionType,f=new e({name:"direction",data:["above","below"]}),g={name:"hintDirection",description:"Are hints shown above or below the command line?",type:"direction",defaultValue:"above"},h={name:"outputDirection",description:"Is the output window shown above or below the command line?",type:"direction",defaultValue:"above"},i={name:"outputHeight",description:"What height should the output panel be?",type:"number",defaultValue:300};b.startup=function(a,b){d.registerType(f),a.env.settings.addSetting(g),a.env.settings.addSetting(h),a.env.settings.addSetting(i)},b.shutdown=function(a,b){d.unregisterType(f),a.env.settings.removeSetting(g),a.env.settings.removeSetting(h),a.env.settings.removeSetting(i)}}),define("cockpit/ui/cli_view",["require","exports","module","text!cockpit/ui/cli_view.css","pilot/event","pilot/dom","pilot/keys","pilot/canon","pilot/types","cockpit/cli","cockpit/ui/request_view"],function(a,b,c){function n(a,b){a.cliView=this,this.cli=a,this.doc=document,this.win=f.getParentWindow(this.doc),this.env=b,this.element=this.doc.getElementById("cockpitInput");!this.element||(this.settings=b.settings,this.hintDirection=this.settings.getSetting("hintDirection"),this.outputDirection=this.settings.getSetting("outputDirection"),this.outputHeight=this.settings.getSetting("outputHeight"),this.isUpdating=!1,this.createElements(),this.update())}var d=a("text!cockpit/ui/cli_view.css"),e=a("pilot/event"),f=a("pilot/dom");f.importCssString(d);var e=a("pilot/event"),g=a("pilot/keys"),h=a("pilot/canon"),i=a("pilot/types").Status,j=a("cockpit/cli").CliRequisition,k=a("cockpit/cli").Hint,l=a("cockpit/ui/request_view").RequestView,m=new k(i.VALID,"",0,0);b.startup=function(a,b){var c=new j(a.env),d=new n(c,a.env);a.env.cli=c},n.prototype={createElements:function(){function d(){f.removeCssClass(this.output,"cptFocusPopup"),f.removeCssClass(this.hinter,"cptFocusPopup")}var a=this.element;this.element.spellcheck=!1,this.output=this.doc.getElementById("cockpitOutput"),this.popupOutput=this.output==null;if(!this.output){this.output=this.doc.createElement("div"),this.output.id="cockpitOutput",this.output.className="cptOutput",a.parentNode.insertBefore(this.output,a.nextSibling);var b=function(){this.output.style.maxHeight=this.outputHeight.get()+"px"}.bind(this);this.outputHeight.addEventListener("change",b),b()}this.completer=this.doc.createElement("div"),this.completer.className="cptCompletion VALID",this.completer.style.color=f.computedStyle(a,"color"),this.completer.style.fontSize=f.computedStyle(a,"fontSize"),this.completer.style.fontFamily=f.computedStyle(a,"fontFamily"),this.completer.style.fontWeight=f.computedStyle(a,"fontWeight"),this.completer.style.fontStyle=f.computedStyle(a,"fontStyle"),a.parentNode.insertBefore(this.completer,a.nextSibling),this.completer.style.backgroundColor=a.style.backgroundColor,a.style.backgroundColor="transparent",this.hinter=this.doc.createElement("div"),this.hinter.className="cptHints",a.parentNode.insertBefore(this.hinter,a.nextSibling);var c=this.resizer.bind(this);e.addListener(this.win,"resize",c),this.hintDirection.addEventListener("change",c),this.outputDirection.addEventListener("change",c),c(),h.addEventListener("output",function(a){new l(a.request,this)}.bind(this)),e.addCommandKeyListener(a,this.onCommandKey.bind(this)),e.addListener(a,"keyup",this.onKeyUp.bind(this)),e.addListener(a,"mouseup",function(a){this.isUpdating=!0,this.update(),this.isUpdating=!1}.bind(this)),this.cli.addEventListener("argumentChange",this.onArgChange.bind(this)),e.addListener(a,"focus",function(){f.addCssClass(this.output,"cptFocusPopup"),f.addCssClass(this.hinter,"cptFocusPopup")}.bind(this)),e.addListener(a,"blur",d.bind(this)),d.call(this)},scrollOutputToBottom:function(){var a=Math.max(this.output.scrollHeight,this.output.clientHeight);this.output.scrollTop=a-this.output.clientHeight},resizer:function(){var a=this.element.getClientRects()[0];this.completer.style.top=a.top+"px";var b=a.bottom-a.top;this.completer.style.height=b+"px",this.completer.style.lineHeight=b+"px",this.completer.style.left=a.left+"px";var c=a.right-a.left;this.completer.style.width=c+"px",this.hintDirection.get()==="below"?(this.hinter.style.top=a.bottom+"px",this.hinter.style.bottom="auto"):(this.hinter.style.top="auto",this.hinter.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.hinter.style.left=a.left+30+"px",this.hinter.style.maxWidth=c-110+"px",this.popupOutput&&(this.outputDirection.get()==="below"?(this.output.style.top=a.bottom+"px",this.output.style.bottom="auto"):(this.output.style.top="auto",this.output.style.bottom=this.doc.documentElement.clientHeight-a.top+"px"),this.output.style.left=a.left+"px",this.output.style.width=c-80+"px")},onCommandKey:function(a,b,c){var d;if(c===g.TAB||c===g.UP||c===g.DOWN)d=!0;else if(b!=0||c!=0)d=h.execKeyCommand(this.env,"cli",b,c);d&&e.stopEvent(a)},onKeyUp:function(a){var b;if(a.keyCode===g.RETURN){var c=this.cli.getWorstHint();c.status===i.VALID?(this.cli.exec(),this.element.value=""):(f.setSelectionStart(this.element,c.start),f.setSelectionEnd(this.element,c.end))}this.update();var d=this.cli.getAssignmentAt(f.getSelectionStart(this.element));d&&(a.keyCode===g.TAB&&(d.complete(),this.update()),a.keyCode===g.UP&&(d.increment(),this.update()),a.keyCode===g.DOWN&&(d.decrement(),this.update()));return b},update:function(){this.isUpdating=!0;var a={typed:this.element.value,cursor:{start:f.getSelectionStart(this.element),end:f.getSelectionEnd(this.element.selectionEnd)}};this.cli.update(a);var b=this.cli.getAssignmentAt(a.cursor.start).getHint();f.removeCssClass(this.completer,i.VALID.toString()),f.removeCssClass(this.completer,i.INCOMPLETE.toString()),f.removeCssClass(this.completer,i.INVALID.toString());var c='> ';if(this.element.value.length>0){var d=this.cli.getInputStatusMarkup();c+=this.markupStatusScore(d)}if(this.element.value.length>0&&b.predictions&&b.predictions.length>0){var e=b.predictions[0];c+="  ⇥ "+(e.name?e.name:e)}this.completer.innerHTML=c,f.addCssClass(this.completer,this.cli.getWorstHint().status.toString());var g="";this.element.value.length!==0&&(g+=b.message,b.predictions&&b.predictions.length>0&&(g+=": [ ",b.predictions.forEach(function(a){g+=a.name?a.name:a,g+=" | "},this),g=g.replace(/\| $/,"]"))),this.hinter.innerHTML=g,g.length===0?f.addCssClass(this.hinter,"cptNoPopup"):f.removeCssClass(this.hinter,"cptNoPopup"),this.isUpdating=!1},markupStatusScore:function(a){var b="",c=0,d=-1;for(;;){d!==a[c]&&(b+="",d=a[c]),b+=this.element.value[c],c++;if(c===this.element.value.length){b+="";break}d!==a[c]&&(b+="")}return b},onArgChange:function(a){if(!this.isUpdating){var b=this.element.value.substring(0,a.argument.start),c=this.element.value.substring(a.argument.end),d=typeof a.text=="string"?a.text:a.text.name;this.element.value=b+d+c;var e=(b+d).length;this.element.selectionStart=e,this.element.selectionEnd=e}}},b.CliView=n}),define("cockpit/ui/request_view",["require","exports","module","pilot/dom","pilot/event","text!cockpit/ui/request_view.html","pilot/domtemplate","text!cockpit/ui/request_view.css"],function(a,b,c){function l(a,b){this.request=a,this.cliView=b,this.imageUrl=k,this.rowin=null,this.rowout=null,this.output=null,this.hide=null,this.show=null,this.duration=null,this.throb=null,(new g).processNode(j.cloneNode(!0),this),this.cliView.output.appendChild(this.rowin),this.cliView.output.appendChild(this.rowout),this.request.addEventListener("output",this.onRequestChange.bind(this))}function k(b){var d;try{d=a("text!cockpit/ui/"+b)}catch(e){}if(d)return d;var f=c.id.split("/").pop()+".js",g;if(c.uri.substr(-f.length)!==f){console.error("Can't work out path from module.uri/module.id");return b}if(c.uri){var h=c.uri.length-f.length-1;return c.uri.substr(0,h)+"/"+b}return f+b}var d=a("pilot/dom"),e=a("pilot/event"),f=a("text!cockpit/ui/request_view.html"),g=a("pilot/domtemplate").Templater,h=a("text!cockpit/ui/request_view.css");d.importCssString(h);var i=document.createElement("div");i.innerHTML=f;var j=i.querySelector(".cptRow");l.prototype={copyToInput:function(){this.cliView.element.value=this.request.typed},executeRequest:function(a){this.cliView.cli.update({typed:this.request.typed,cursor:{start:0,end:0}}),this.cliView.cli.exec()},hideOutput:function(a){this.output.style.display="none",d.addCssClass(this.hide,"cmd_hidden"),d.removeCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},showOutput:function(a){this.output.style.display="block",d.removeCssClass(this.hide,"cmd_hidden"),d.addCssClass(this.show,"cmd_hidden"),e.stopPropagation(a)},remove:function(a){this.cliView.output.removeChild(this.rowin),this.cliView.output.removeChild(this.rowout),e.stopPropagation(a)},onRequestChange:function(a){this.duration.innerHTML=this.request.duration?"completed in "+this.request.duration/1e3+" sec ":"",this.output.innerHTML="",this.request.outputs.forEach(function(a){var b;typeof a=="string"?(b=document.createElement("p"),b.innerHTML=a):b=a,this.output.appendChild(b)},this),this.cliView.scrollOutputToBottom(),d.setCssClass(this.output,"cmd_error",this.request.error),this.throb.style.display=this.request.completed?"none":"block"}},b.RequestView=l}),define("pilot/domtemplate",["require","exports","module"],function(require,exports,module){function Templater(){this.scope=[]}Templater.prototype.processNode=function(a,b){typeof a=="string"&&(a=document.getElementById(a));if(b===null||b===undefined)b={};this.scope.push(a.nodeName+(a.id?"#"+a.id:""));try{if(a.attributes&&a.attributes.length){if(a.hasAttribute("foreach")){this.processForEach(a,b);return}if(a.hasAttribute("if")&&!this.processIf(a,b))return;b.__element=a;var c=Array.prototype.slice.call(a.attributes);for(var d=0;d1&&(d.forEach(function(c){c!==null&&c!==undefined&&c!==""&&(c.charAt(0)==="$"&&(c=this.envEval(c.slice(1),b,a.data)),c===null&&(c="null"),c===undefined&&(c="undefined"),typeof c.cloneNode!="function"&&(c=a.ownerDocument.createTextNode(c.toString())),a.parentNode.insertBefore(c,a))},this),a.parentNode.removeChild(a))},Templater.prototype.stripBraces=function(a){if(!a.match(/\$\{.*\}/g)){this.handleError("Expected "+a+" to match ${...}");return a}return a.slice(2,-1)},Templater.prototype.property=function(a,b,c){this.scope.push(a);try{typeof a=="string"&&(a=a.split("."));var d=b[a[0]];if(a.length===1){c!==undefined&&(b[a[0]]=c);return typeof d=="function"?function(){return d.apply(b,arguments)}:d}if(!d){this.handleError("Can't find path="+a);return null}return this.property(a.slice(1),d,c)}finally{this.scope.pop()}},Templater.prototype.envEval=function(script,env,context){with(env)try{this.scope.push(context);return eval(script)}catch(ex){this.handleError("Template error evaluating '"+script+"'",ex);return script}finally{this.scope.pop()}},Templater.prototype.handleError=function(a,b){this.logError(a),this.logError("In: "+this.scope.join(" > ")),b&&this.logError(b)},Templater.prototype.logError=function(a){window.console&&window.console.log&&console.log(a)},exports.Templater=Templater}),define("cockpit/commands/basic",["require","exports","module","pilot/canon"],function(a,b,c){var d=a("pilot/canon"),e={name:"sh",description:"Execute a system command (requires server support)",params:[{name:"command",type:"text",description:"The string to send to the os shell."}],exec:function(a,b,c){var d=new XMLHttpRequest;d.open("GET","/exec?args="+b.command,!0),d.onreadystatechange=function(a){d.readyState==4&&d.status==200&&c.done("
                                                                            "+d.responseText+"
                                                                            ")},d.send(null)}},d=a("pilot/canon");b.startup=function(a,b){d.addCommand(e)},b.shutdown=function(a,b){d.removeCommand(e)}}),define("text!cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints { color: #000; position: absolute; border: 1px solid rgba(230, 230, 230, 0.8); background: rgba(250, 250, 250, 0.8); -moz-border-radius-topleft: 10px; -moz-border-radius-topright: 10px; border-top-left-radius: 10px; border-top-right-radius: 10px; z-index: 1000; padding: 8px; display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }"),define("text!cockpit/ui/request_view.css",[],".cptRowIn { display: box; display: -moz-box; display: -webkit-box; box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal; box-align: center; -moz-box-align: center; -webkit-box-align: center; color: #333; background-color: #EEE; width: 100%; font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped { box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1; font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea { color: #000; font-size: 120%; background: transparent; padding: 3px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }"),define("text!cockpit/ui/request_view.html",[],'
                                                                            >
                                                                            ${request.typed}
                                                                            Hide command output Show command output Remove this command from the history
                                                                            '),define("text!cockpit/ui/images/closer.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"),define("text!cockpit/ui/images/dot_clear.gif",[],"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"),define("text!cockpit/ui/images/minus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="),define("text!cockpit/ui/images/pinaction.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinin.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pinout.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="),define("text!cockpit/ui/images/pins.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="),define("text!cockpit/ui/images/plus.png",[],"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="),define("text!cockpit/ui/images/throbber.gif",[],"data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA==") - }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-theme-clouds', function(A) { define("ace/theme/clouds",["require","exports","module"],function(a,b,c){var d=a("pilot/dom"),e=".ace-clouds .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-clouds .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-clouds .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-clouds .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-clouds .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-clouds .ace_print_margin {\n width: 1px;\n background: #e8e8e8;\n}\n\n.ace-clouds .ace_scroller {\n background-color: #FFFFFF;\n}\n\n.ace-clouds .ace_text-layer {\n cursor: text;\n color: #000000;\n}\n\n.ace-clouds .ace_cursor {\n border-left: 2px solid #000000;\n}\n\n.ace-clouds .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #000000;\n}\n \n.ace-clouds .ace_marker-layer .ace_selection {\n background: #BDD5FC;\n}\n\n.ace-clouds .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-clouds .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #BFBFBF;\n}\n\n.ace-clouds .ace_marker-layer .ace_active_line {\n background: #FFFBD1;\n}\n\n \n.ace-clouds .ace_invisible {\n color: #BFBFBF;\n}\n\n.ace-clouds .ace_keyword {\n color:#AF956F;\n}\n\n.ace-clouds .ace_keyword.ace_operator {\n color:#484848;\n}\n\n.ace-clouds .ace_constant {\n \n}\n\n.ace-clouds .ace_constant.ace_language {\n color:#39946A;\n}\n\n.ace-clouds .ace_constant.ace_library {\n \n}\n\n.ace-clouds .ace_constant.ace_numeric {\n color:#46A609;\n}\n\n.ace-clouds .ace_invalid {\n background-color:#FF002A;\n}\n\n.ace-clouds .ace_invalid.ace_illegal {\n \n}\n\n.ace-clouds .ace_invalid.ace_deprecated {\n \n}\n\n.ace-clouds .ace_support {\n \n}\n\n.ace-clouds .ace_support.ace_function {\n color:#C52727;\n}\n\n.ace-clouds .ace_function.ace_buildin {\n \n}\n\n.ace-clouds .ace_string {\n color:#5D90CD;\n}\n\n.ace-clouds .ace_string.ace_regexp {\n \n}\n\n.ace-clouds .ace_comment {\n color:#BCC8BA;\n}\n\n.ace-clouds .ace_comment.ace_doc {\n \n}\n\n.ace-clouds .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-clouds .ace_variable {\n \n}\n\n.ace-clouds .ace_variable.ace_language {\n \n}\n\n.ace-clouds .ace_xml_pe {\n \n}\n\n.ace-clouds .ace_meta {\n \n}\n\n.ace-clouds .ace_meta.ace_tag {\n \n}\n\n.ace-clouds .ace_meta.ace_tag.ace_input {\n \n}\n\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\n color:#606060;\n}\n\n\n.ace-clouds .ace_collab.ace_user1 {\n \n}";d.importCssString(e),b.cssClass="ace-clouds"}) @@ -339,7 +363,7 @@ define("ace/mode/scss",["require","exports","module","pilot/oop","ace/mode/text" }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-worker-coffee', function(A) { -function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;i=0||!b&&Y.call(j,c)>=0)g=c.toUpperCase(),g==="WHEN"&&(l=this.tag(),Y.call(x,l)>=0)?g="LEADING_WHEN":g==="FOR"?this.seenFor=!0:g==="UNLESS"?g="IF":Y.call(Q,g)>=0?g="UNARY":Y.call(K,g)>=0&&(g!=="INSTANCEOF"&&this.seenFor?(g="FOR"+g,this.seenFor=!1):(g="RELATION",this.value()==="!"&&(this.tokens.pop(),c="!"+c)));Y.call(v,c)>=0&&(b?(g="IDENTIFIER",c=new String(c),c.reserved=!0):Y.call(L,c)>=0&&this.identifierError(c)),b||(Y.call(h,c)>=0&&(c=i[c]),g=function(){switch(c){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":case"null":case"undefined":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";default:return g}}()),this.token(g,c),a&&this.token(":",":");return d.length},a.prototype.numberToken=function(){var a,b;if(!(a=H.exec(this.chunk)))return 0;b=a[0],this.token("NUMBER",b);return b.length},a.prototype.stringToken=function(){var a,b;switch(this.chunk.charAt(0)){case"'":if(!(a=O.exec(this.chunk)))return 0;this.token("STRING",(b=a[0]).replace(C,"\\\n"));break;case'"':if(!(b=this.balancedString(this.chunk,'"')))return 0;0=0))return 0;if(!(a=J.exec(this.chunk)))return 0;c=a[0],this.token("REGEX",c==="//"?"/(?:)/":c);return c.length},a.prototype.heregexToken=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=a[0],b=a[1],c=a[2];if(0>b.indexOf("#{")){e=b.replace(r,"").replace(/\//g,"\\/"),this.token("REGEX","/"+(e||"(?:)")+"/"+c);return d.length}this.token("IDENTIFIER","RegExp"),this.tokens.push(["CALL_START","("]),g=[],k=this.interpolateString(b,{regex:!0});for(i=0,j=k.length;ithis.indent){if(d){this.indebt=f-this.indent,this.suppressNewlines();return b.length}a=f-this.indent+this.outdebt,this.token("INDENT",a),this.indents.push(a),this.outdebt=this.indebt=0}else this.indebt=0,this.outdentToken(this.indent-f,d);this.indent=f;return b.length},a.prototype.outdentToken=function(a,b,c){var d,e;while(a>0)e=this.indents.length-1,this.indents[e]===void 0?a=0:this.indents[e]===this.outdebt?(a-=this.outdebt,this.outdebt=0):this.indents[e]=0)&&this.assignmentError();if((h=b[1])==="||"||h==="&&"){b[0]="COMPOUND_ASSIGN",b[1]+="=";return d.length}}if(d===";")c="TERMINATOR";else if(Y.call(B,d)>=0)c="MATH";else if(Y.call(l,d)>=0)c="COMPARE";else if(Y.call(m,d)>=0)c="COMPOUND_ASSIGN";else if(Y.call(Q,d)>=0)c="UNARY";else if(Y.call(N,d)>=0)c="SHIFT";else if(Y.call(z,d)>=0||d==="?"&&(b!=null?b.spaced:void 0))c="LOGIC";else if(b&&!b.spaced)if(d==="("&&(i=b[0],Y.call(f,i)>=0))b[0]==="?"&&(b[0]="FUNC_EXIST"),c="CALL_START";else if(d==="["&&(j=b[0],Y.call(t,j)>=0)){c="INDEX_START";switch(b[0]){case"?":b[0]="INDEX_SOAK";break;case"::":b[0]="INDEX_PROTO"}}this.token(c,d);return d.length},a.prototype.sanitizeHeredoc=function(a,b){var c,d,e,f,g;e=b.indent,d=b.herecomment;if(d){if(o.test(a))throw new Error('block comment cannot contain "*/", starting on line '+(this.line+1));if(a.indexOf("\n")<=0)return a}else while(f=p.exec(a)){c=f[1];if(e===null||0<(g=c.length)&&gg;1<=g?c++:c--){switch(d=a.charAt(c)){case"\\":c++;continue;case b:f.pop();if(!f.length)return a.slice(0,c+1);b=f[f.length-1];continue}b!=="}"||d!=='"'&&d!=="'"?b==="}"&&d==="{"?f.push(b="}"):b==='"'&&e==="#"&&d==="{"&&f.push(b="}"):f.push(b=d),e=d}throw new Error("missing "+f.pop()+", starting on line "+(this.line+1))},a.prototype.interpolateString=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c==null&&(c={}),e=c.heredoc,m=c.regex,o=[],l=0,f=-1;while(j=b.charAt(f+=1)){if(j==="\\"){f+=1;continue}if(j!=="#"||b.charAt(f+1)!=="{"||!(d=this.balancedString(b.slice(f+1),"}")))continue;l1&&(k.unshift(["(","("]),k.push([")",")"])),o.push(["TOKENS",k])}f+=d.length,l=f+1}f>l&&l1)&&this.token("(","(");for(f=0,q=o.length;f|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/,R=/^[^\n\S]+/,k=/^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/,g=/^[-=]>/,D=/^(?:\n[^\n\S]*)+/,O=/^'[^\\']*(?:\\.[^\\']*)*'/,u=/^`[^\\`]*(?:\\.[^\\`]*)*`/,J=/^\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/[imgy]{0,4}(?!\w)/,q=/^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/,r=/\s+(?:#.*)?/g,C=/\n/g,p=/\n+([^\n\S]*)/g,o=/\*\//,d=/^\s*@?([$A-Za-z_][$\w\x7f-\uffff]*|['"].*['"])[^\n\S]*?[:=][^:=>]/,y=/^\s*(?:,|\??\.(?![.\d])|::)/,P=/\s+$/,G=/^(?:[-+*&|\/%=<>!.\\][<>=&|]*|and|or|is(?:nt)?|n(?:ot|ew)|delete|typeof|instanceof)$/,m=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|="],Q=["!","~","NEW","TYPEOF","DELETE","DO"],z=["&&","||","&","|","^"],N=["<<",">>",">>>"],l=["==","!=","<",">","<=",">="],B=["*","/","%"],K=["IN","OF","INSTANCEOF"],e=["TRUE","FALSE","NULL","UNDEFINED"],E=["NUMBER","REGEX","BOOL","++","--","]"],F=E.concat(")","}","THIS","IDENTIFIER","STRING"),f=["IDENTIFIER","STRING","REGEX",")","]","}","?","::","@","THIS","SUPER"],t=f.concat("NUMBER","BOOL"),x=["INDENT","OUTDENT","TERMINATOR"]}),define("ace/mode/coffee/rewriter",["require","exports","module"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b=0)d+=1;else if(j=e[0],v.call(f,j)>=0)d-=1;a+=1}return a-1},a.prototype.removeLeadingNewlines=function(){var a,b,c,d;d=this.tokens;for(a=0,c=d.length;a=0)){c.splice(b,1);return 0}return 1})},a.prototype.closeOpenCalls=function(){var a,b;b=function(a,b){var c;return(c=a[0])===")"||c==="CALL_END"||a[0]==="OUTDENT"&&this.tag(b-1)===")"},a=function(a,b){return this.tokens[a[0]==="OUTDENT"?b-1:b][0]="CALL_END"};return this.scanTokens(function(c,d){c[0]==="CALL_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.closeOpenIndexes=function(){var a,b;b=function(a,b){var c;return(c=a[0])==="]"||c==="INDEX_END"},a=function(a,b){return a[0]="INDEX_END"};return this.scanTokens(function(c,d){c[0]==="INDEX_START"&&this.detectEnd(d+1,b,a);return 1})},a.prototype.addImplicitBraces=function(){var a,b,c,d,e;c=[],d=null,e=0,b=function(a,b){var c,d,e,f,g,h;g=this.tokens.slice(b+1,b+3+1||9e9),c=g[0],f=g[1],e=g[2];if("HERECOMMENT"===(c!=null?c[0]:void 0))return!1;d=a[0];return(d==="TERMINATOR"||d==="OUTDENT")&&(f!=null?f[0]:void 0)!==":"&&((c!=null?c[0]:void 0)!=="@"||(e!=null?e[0]:void 0)!==":")||d===","&&c&&(h=c[0])!=="IDENTIFIER"&&h!=="NUMBER"&&h!=="STRING"&&h!=="@"&&h!=="TERMINATOR"&&h!=="OUTDENT"},a=function(a,b){var c;c=["}","}",a[2]],c.generated=!0;return this.tokens.splice(b,0,c)};return this.scanTokens(function(e,h,i){var j,k,l,m,n,o,p;if(o=l=e[0],v.call(g,o)>=0){c.push([l==="INDENT"&&this.tag(h-1)==="{"?"{":l,h]);return 1}if(v.call(f,l)>=0){d=c.pop();return 1}if(l!==":"||(j=this.tag(h-2))!==":"&&((p=c[c.length-1])!=null?p[0]:void 0)==="{")return 1;c.push(["{"]),k=j==="@"?h-2:h-1;while(this.tag(k-2)==="HERECOMMENT")k-=2;n=new String("{"),n.generated=!0,m=["{",n,e[2]],m.generated=!0,i.splice(k,0,m),this.detectEnd(h+2,b,a);return 2})},a.prototype.addImplicitParentheses=function(){var a,b;b=!1,a=function(a,b){var c;c=a[0]==="OUTDENT"?b+1:b;return this.tokens.splice(c,0,["CALL_END",")",a[2]])};return this.scanTokens(function(c,d,e){var f,g,m,o,p,q,r,s,t,u;r=c[0];if(r==="CLASS"||r==="IF")b=!0;s=e.slice(d-1,d+1+1||9e9),o=s[0],g=s[1],m=s[2],f=!b&&r==="INDENT"&&m&&m.generated&&m[0]==="{"&&o&&(t=o[0],v.call(k,t)>=0),q=!1,p=!1,v.call(n,r)>=0&&(b=!1),o&&!o.spaced&&r==="?"&&(c.call=!0);if(c.fromThen)return 1;if(!(f||(o!=null?o.spaced:void 0)&&(o.call||(u=o[0],v.call(k,u)>=0))&&(v.call(i,r)>=0||!c.spaced&&!c.newLine&&v.call(l,r)>=0)))return 1;e.splice(d,0,["CALL_START","(",c[2]]),this.detectEnd(d+1,function(a,b){var c,d;r=a[0];if(!q&&a.fromThen)return!0;if(r==="IF"||r==="ELSE"||r==="CATCH"||r==="->"||r==="=>")q=!0;if(r==="IF"||r==="ELSE"||r==="SWITCH"||r==="TRY")p=!0;return r!=="."&&r!=="?."&&r!=="::"||this.tag(b-1)!=="OUTDENT"?!a.generated&&this.tag(b-1)!==","&&(v.call(j,r)>=0||r==="INDENT"&&!p)&&(r!=="INDENT"||this.tag(b-2)!=="CLASS"&&(d=this.tag(b-1),v.call(h,d)<0)&&(!(c=this.tokens[b+1])||!c.generated||c[0]!=="{")):!0},a),o[0]==="?"&&(o[0]="FUNC_EXIST");return 2})},a.prototype.addImplicitIndentation=function(){return this.scanTokens(function(a,b,c){var d,e,f,g,h,i,j,k;i=a[0];if(i==="TERMINATOR"&&this.tag(b+1)==="THEN"){c.splice(b,1);return 0}if(i==="ELSE"&&this.tag(b-1)!=="OUTDENT"){c.splice.apply(c,[b,0].concat(w.call(this.indentation(a))));return 2}if(i!=="CATCH"||(j=this.tag(b+2))!=="OUTDENT"&&j!=="TERMINATOR"&&j!=="FINALLY"){if(v.call(p,i)>=0&&this.tag(b+1)!=="INDENT"&&(i!=="ELSE"||this.tag(b+1)!=="IF")){h=i,k=this.indentation(a),f=k[0],g=k[1],h==="THEN"&&(f.fromThen=!0),f.generated=g.generated=!0,c.splice(b+1,0,f),e=function(a,b){var c;return a[1]!==";"&&(c=a[0],v.call(o,c)>=0)&&(a[0]!=="ELSE"||h==="IF"||h==="THEN")},d=function(a,b){return this.tokens.splice(this.tag(b-1)===","?b-1:b,0,g)},this.detectEnd(b+2,e,d),i==="THEN"&&c.splice(b,1);return 1}return 1}c.splice.apply(c,[b+2,0].concat(w.call(this.indentation(a))));return 4})},a.prototype.tagPostfixConditionals=function(){var a;a=function(a,b){var c;return(c=a[0])==="TERMINATOR"||c==="INDENT"};return this.scanTokens(function(b,c){var d;if(b[0]!=="IF")return 1;d=b,this.detectEnd(c+1,a,function(a,b){if(a[0]!=="INDENT")return d[0]="POST_"+d[0]});return 1})},a.prototype.ensureBalance=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d={},f={},m=this.tokens;for(i=0,k=m.length;i0)throw Error("unclosed "+e+" on line "+(f[e]+1))}return this},a.prototype.rewriteClosingParens=function(){var a,b,c;c=[],a={};for(b in m)a[b]=0;return this.scanTokens(function(b,d,e){var h,i,j,k,l,n,o;if(o=l=b[0],v.call(g,o)>=0){c.push(b);return 1}if(v.call(f,l)<0)return 1;if(a[h=m[l]]>0){a[h]-=1,e.splice(d,1);return 0}i=c.pop(),j=i[0],k=m[j];if(l===k)return 1;a[j]+=1,n=[k,j==="INDENT"?i[1]:k],this.tag(d+2)===j?(e.splice(d+3,0,n),c.push(i)):e.splice(d,0,n);return 1})},a.prototype.indentation=function(a){return[["INDENT",2,a[2]],["OUTDENT",2,a[2]]]},a.prototype.tag=function(a){var b;return(b=this.tokens[a])!=null?b[0]:void 0};return a}(),d=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"]],m={},g=[],f=[];for(s=0,t=d.length;s","=>","[","(","{","--","++"],l=["+","-"],h=["->","=>","{","[",","],j=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],p=["ELSE","->","=>","TRY","FINALLY","THEN"],o=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],n=["TERMINATOR","INDENT","OUTDENT"]}),define("ace/mode/coffee/helpers",["require","exports","module"],function(a,b,c){var d,e;b.starts=function(a,b,c){return b===a.substr(c,b.length)},b.ends=function(a,b,c){var d;d=b.length;return b===a.substr(a.length-d-(c||0),d)},b.compact=function(a){var b,c,d,e;e=[];for(c=0,d=a.length;c":48,"=>":49,OptComma:50,",":51,Param:52,ParamVar:53,"...":54,Array:55,Object:56,Splat:57,SimpleAssignable:58,Accessor:59,Parenthetical:60,Range:61,This:62,".":63,"?.":64,"::":65,Index:66,INDEX_START:67,IndexValue:68,INDEX_END:69,INDEX_SOAK:70,INDEX_PROTO:71,Slice:72,"{":73,AssignList:74,"}":75,CLASS:76,EXTENDS:77,OptFuncExist:78,Arguments:79,SUPER:80,FUNC_EXIST:81,CALL_START:82,CALL_END:83,ArgList:84,THIS:85,"@":86,"[":87,"]":88,RangeDots:89,"..":90,Arg:91,SimpleArgs:92,TRY:93,Catch:94,FINALLY:95,CATCH:96,THROW:97,"(":98,")":99,WhileSource:100,WHILE:101,WHEN:102,UNTIL:103,Loop:104,LOOP:105,ForBody:106,FOR:107,ForStart:108,ForSource:109,ForVariables:110,OWN:111,ForValue:112,FORIN:113,FOROF:114,BY:115,SWITCH:116,Whens:117,ELSE:118,When:119,LEADING_WHEN:120,IfBlock:121,IF:122,POST_IF:123,UNARY:124,"-":125,"+":126,"--":127,"++":128,"?":129,MATH:130,SHIFT:131,COMPARE:132,LOGIC:133,RELATION:134,COMPOUND_ASSIGN:135,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",13:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"BOOL",37:"=",40:":",42:"RETURN",43:"HERECOMMENT",44:"PARAM_START",46:"PARAM_END",48:"->",49:"=>",51:",",54:"...",63:".",64:"?.",65:"::",67:"INDEX_START",69:"INDEX_END",70:"INDEX_SOAK",71:"INDEX_PROTO",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[66,3],[66,2],[66,2],[68,1],[68,1],[56,4],[74,0],[74,1],[74,3],[74,4],[74,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[78,0],[78,1],[79,2],[79,4],[62,1],[62,1],[41,2],[55,2],[55,4],[89,1],[89,1],[61,5],[72,3],[72,2],[72,2],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[20,2],[20,3],[20,4],[20,5],[94,3],[11,2],[60,3],[60,5],[100,2],[100,4],[100,2],[100,4],[21,2],[21,2],[21,2],[21,1],[104,2],[104,2],[22,2],[22,2],[22,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[23,5],[23,7],[23,4],[23,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[19,1],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],performAction:function f(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return this.$=new d.Block;case 2:return this.$=f[h];case 3:return this.$=f[h-1];case 4:this.$=d.Block.wrap([f[h]]);break;case 5:this.$=f[h-2].push(f[h]);break;case 6:this.$=f[h-1];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$=f[h];break;case 10:this.$=f[h];break;case 11:this.$=f[h];break;case 12:this.$=new d.Literal(f[h]);break;case 13:this.$=f[h];break;case 14:this.$=f[h];break;case 15:this.$=f[h];break;case 16:this.$=f[h];break;case 17:this.$=f[h];break;case 18:this.$=f[h];break;case 19:this.$=f[h];break;case 20:this.$=f[h];break;case 21:this.$=f[h];break;case 22:this.$=f[h];break;case 23:this.$=f[h];break;case 24:this.$=new d.Block;break;case 25:this.$=f[h-1];break;case 26:this.$=new d.Literal(f[h]);break;case 27:this.$=new d.Literal(f[h]);break;case 28:this.$=new d.Literal(f[h]);break;case 29:this.$=f[h];break;case 30:this.$=new d.Literal(f[h]);break;case 31:this.$=new d.Literal(f[h]);break;case 32:this.$=function(){var a;a=new d.Literal(f[h]),f[h]==="undefined"&&(a.isUndefined=!0);return a}();break;case 33:this.$=new d.Assign(f[h-2],f[h]);break;case 34:this.$=new d.Assign(f[h-4],f[h-1]);break;case 35:this.$=new d.Value(f[h]);break;case 36:this.$=new d.Assign(new d.Value(f[h-2]),f[h],"object");break;case 37:this.$=new d.Assign(new d.Value(f[h-4]),f[h-1],"object");break;case 38:this.$=f[h];break;case 39:this.$=f[h];break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=new d.Return(f[h]);break;case 43:this.$=new d.Return;break;case 44:this.$=new d.Comment(f[h]);break;case 45:this.$=new d.Code(f[h-3],f[h],f[h-1]);break;case 46:this.$=new d.Code([],f[h],f[h-1]);break;case 47:this.$="func";break;case 48:this.$="boundfunc";break;case 49:this.$=f[h];break;case 50:this.$=f[h];break;case 51:this.$=[];break;case 52:this.$=[f[h]];break;case 53:this.$=f[h-2].concat(f[h]);break;case 54:this.$=new d.Param(f[h]);break;case 55:this.$=new d.Param(f[h-1],null,!0);break;case 56:this.$=new d.Param(f[h-2],f[h]);break;case 57:this.$=f[h];break;case 58:this.$=f[h];break;case 59:this.$=f[h];break;case 60:this.$=f[h];break;case 61:this.$=new d.Splat(f[h-1]);break;case 62:this.$=new d.Value(f[h]);break;case 63:this.$=f[h-1].push(f[h]);break;case 64:this.$=new d.Value(f[h-1],[f[h]]);break;case 65:this.$=f[h];break;case 66:this.$=f[h];break;case 67:this.$=new d.Value(f[h]);break;case 68:this.$=new d.Value(f[h]);break;case 69:this.$=f[h];break;case 70:this.$=new d.Value(f[h]);break;case 71:this.$=new d.Value(f[h]);break;case 72:this.$=new d.Value(f[h]);break;case 73:this.$=f[h];break;case 74:this.$=new d.Access(f[h]);break;case 75:this.$=new d.Access(f[h],"soak");break;case 76:this.$=new d.Access(f[h],"proto");break;case 77:this.$=new d.Access(new d.Literal("prototype"));break;case 78:this.$=f[h];break;case 79:this.$=f[h-1];break;case 80:this.$=d.extend(f[h],{soak:!0});break;case 81:this.$=d.extend(f[h],{proto:!0});break;case 82:this.$=new d.Index(f[h]);break;case 83:this.$=new d.Slice(f[h]);break;case 84:this.$=new d.Obj(f[h-2],f[h-3].generated);break;case 85:this.$=[];break;case 86:this.$=[f[h]];break;case 87:this.$=f[h-2].concat(f[h]);break;case 88:this.$=f[h-3].concat(f[h]);break;case 89:this.$=f[h-5].concat(f[h-2]);break;case 90:this.$=new d.Class;break;case 91:this.$=new d.Class(null,null,f[h]);break;case 92:this.$=new d.Class(null,f[h]);break;case 93:this.$=new d.Class(null,f[h-1],f[h]);break;case 94:this.$=new d.Class(f[h]);break;case 95:this.$=new d.Class(f[h-1],null,f[h]);break;case 96:this.$=new d.Class(f[h-2],f[h]);break;case 97:this.$=new d.Class(f[h-3],f[h-1],f[h]);break;case 98:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 99:this.$=new d.Call(f[h-2],f[h],f[h-1]);break;case 100:this.$=new d.Call("super",[new d.Splat(new d.Literal("arguments"))]);break;case 101:this.$=new d.Call("super",f[h]);break;case 102:this.$=!1;break;case 103:this.$=!0;break;case 104:this.$=[];break;case 105:this.$=f[h-2];break;case 106:this.$=new d.Value(new d.Literal("this"));break;case 107:this.$=new d.Value(new d.Literal("this"));break;case 108:this.$=new d.Value(new d.Literal("this"),[new d.Access(f[h])],"this");break;case 109:this.$=new d.Arr([]);break;case 110:this.$=new d.Arr(f[h-2]);break;case 111:this.$="inclusive";break;case 112:this.$="exclusive";break;case 113:this.$=new d.Range(f[h-3],f[h-1],f[h-2]);break;case 114:this.$=new d.Range(f[h-2],f[h],f[h-1]);break;case 115:this.$=new d.Range(f[h-1],null,f[h]);break;case 116:this.$=new d.Range(null,f[h],f[h-1]);break;case 117:this.$=[f[h]];break;case 118:this.$=f[h-2].concat(f[h]);break;case 119:this.$=f[h-3].concat(f[h]);break;case 120:this.$=f[h-2];break;case 121:this.$=f[h-5].concat(f[h-2]);break;case 122:this.$=f[h];break;case 123:this.$=f[h];break;case 124:this.$=f[h];break;case 125:this.$=[].concat(f[h-2],f[h]);break;case 126:this.$=new d.Try(f[h]);break;case 127:this.$=new d.Try(f[h-1],f[h][0],f[h][1]);break;case 128:this.$=new d.Try(f[h-2],null,null,f[h]);break;case 129:this.$=new d.Try(f[h-3],f[h-2][0],f[h-2][1],f[h]);break;case 130:this.$=[f[h-1],f[h]];break;case 131:this.$=new d.Throw(f[h]);break;case 132:this.$=new d.Parens(f[h-1]);break;case 133:this.$=new d.Parens(f[h-2]);break;case 134:this.$=new d.While(f[h]);break;case 135:this.$=new d.While(f[h-2],{guard:f[h]});break;case 136:this.$=new d.While(f[h],{invert:!0});break;case 137:this.$=new d.While(f[h-2],{invert:!0,guard:f[h]});break;case 138:this.$=f[h-1].addBody(f[h]);break;case 139:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 140:this.$=f[h].addBody(d.Block.wrap([f[h-1]]));break;case 141:this.$=f[h];break;case 142:this.$=(new d.While(new d.Literal("true"))).addBody(f[h]);break;case 143:this.$=(new d.While(new d.Literal("true"))).addBody(d.Block.wrap([f[h]]));break;case 144:this.$=new d.For(f[h-1],f[h]);break;case 145:this.$=new d.For(f[h-1],f[h]);break;case 146:this.$=new d.For(f[h],f[h-1]);break;case 147:this.$={source:new d.Value(f[h])};break;case 148:this.$=function(){f[h].own=f[h-1].own,f[h].name=f[h-1][0],f[h].index=f[h-1][1];return f[h]}();break;case 149:this.$=f[h];break;case 150:this.$=function(){f[h].own=!0;return f[h]}();break;case 151:this.$=f[h];break;case 152:this.$=new d.Value(f[h]);break;case 153:this.$=new d.Value(f[h]);break;case 154:this.$=[f[h]];break;case 155:this.$=[f[h-2],f[h]];break;case 156:this.$={source:f[h]};break;case 157:this.$={source:f[h],object:!0};break;case 158:this.$={source:f[h-2],guard:f[h]};break;case 159:this.$={source:f[h-2],guard:f[h],object:!0};break;case 160:this.$={source:f[h-2],step:f[h]};break;case 161:this.$={source:f[h-4],guard:f[h-2],step:f[h]};break;case 162:this.$={source:f[h-4],step:f[h-2],guard:f[h]};break;case 163:this.$=new d.Switch(f[h-3],f[h-1]);break;case 164:this.$=new d.Switch(f[h-5],f[h-3],f[h-1]);break;case 165:this.$=new d.Switch(null,f[h-1]);break;case 166:this.$=new d.Switch(null,f[h-3],f[h-1]);break;case 167:this.$=f[h];break;case 168:this.$=f[h-1].concat(f[h]);break;case 169:this.$=[[f[h-1],f[h]]];break;case 170:this.$=[[f[h-2],f[h-1]]];break;case 171:this.$=new d.If(f[h-1],f[h],{type:f[h-2]});break;case 172:this.$=f[h-4].addElse(new d.If(f[h-1],f[h],{type:f[h-2]}));break;case 173:this.$=f[h];break;case 174:this.$=f[h-2].addElse(f[h]);break;case 175:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 176:this.$=new d.If(f[h],d.Block.wrap([f[h-2]]),{type:f[h-1],statement:!0});break;case 177:this.$=new d.Op(f[h-1],f[h]);break;case 178:this.$=new d.Op("-",f[h]);break;case 179:this.$=new d.Op("+",f[h]);break;case 180:this.$=new d.Op("--",f[h]);break;case 181:this.$=new d.Op("++",f[h]);break;case 182:this.$=new d.Op("--",f[h-1],null,!0);break;case 183:this.$=new d.Op("++",f[h-1],null,!0);break;case 184:this.$=new d.Existence(f[h-1]);break;case 185:this.$=new d.Op("+",f[h-2],f[h]);break;case 186:this.$=new d.Op("-",f[h-2],f[h]);break;case 187:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 188:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 189:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 190:this.$=new d.Op(f[h-1],f[h-2],f[h]);break;case 191:this.$=function(){return f[h-1].charAt(0)==="!"?(new d.Op(f[h-1].slice(1),f[h-2],f[h])).invert():new d.Op(f[h-1],f[h-2],f[h])}();break;case 192:this.$=new d.Assign(f[h-2],f[h],f[h-1]);break;case 193:this.$=new d.Assign(f[h-4],f[h-1],f[h-3]);break;case 194:this.$=new d.Extends(f[h-2],f[h])}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,71]},{6:[1,72]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:74,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[1,73],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],46:[2,13],51:[2,13],54:[2,13],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,13],70:[1,97],71:[1,98],75:[2,13],78:89,81:[1,91],82:[2,102],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],46:[2,14],51:[2,14],54:[2,14],59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,14],70:[1,97],71:[1,98],75:[2,14],78:99,81:[1,91],82:[2,102],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],46:[2,15],51:[2,15],54:[2,15],69:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],46:[2,16],51:[2,16],54:[2,16],69:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],46:[2,17],51:[2,17],54:[2,17],69:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],46:[2,18],51:[2,18],54:[2,18],69:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],46:[2,19],51:[2,19],54:[2,19],69:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],46:[2,20],51:[2,20],54:[2,20],69:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],46:[2,21],51:[2,21],54:[2,21],69:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],46:[2,22],51:[2,22],54:[2,22],69:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],46:[2,23],51:[2,23],54:[2,23],69:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,12],6:[2,12],26:[2,12],99:[2,12],101:[2,12],103:[2,12],107:[2,12],123:[2,12]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],37:[1,101],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],46:[2,70],51:[2,70],54:[2,70],63:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],46:[2,71],51:[2,71],54:[2,71],63:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],46:[2,72],51:[2,72],54:[2,72],63:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],46:[2,73],51:[2,73],54:[2,73],63:[2,73],64:[2,73],65:[2,73],67:[2,73],69:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],46:[2,100],51:[2,100],54:[2,100],63:[2,100],64:[2,100],65:[2,100],67:[2,100],69:[2,100],70:[2,100],71:[2,100],75:[2,100],79:102,81:[2,100],82:[1,103],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{27:107,28:[1,70],41:108,45:104,46:[2,51],51:[2,51],52:105,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:118,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{14:119,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:122,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],37:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[1,126],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[1,123],128:[1,124],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[1,125]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],46:[2,173],51:[2,173],54:[2,173],69:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[1,127],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],46:[2,141],51:[2,141],54:[2,141],69:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{5:130,25:[1,5]},{8:131,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,132],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,90],5:133,6:[2,90],14:119,15:120,25:[1,5],26:[2,90],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,46:[2,90],51:[2,90],54:[2,90],55:47,56:48,58:135,60:25,61:26,62:27,69:[2,90],73:[1,67],75:[2,90],77:[1,134],80:[1,28],83:[2,90],85:[1,55],86:[1,56],87:[1,54],88:[2,90],90:[2,90],98:[1,53],99:[2,90],101:[2,90],102:[2,90],103:[2,90],107:[2,90],115:[2,90],123:[2,90],125:[2,90],126:[2,90],129:[2,90],130:[2,90],131:[2,90],132:[2,90],133:[2,90],134:[2,90]},{1:[2,43],6:[2,43],8:136,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,43],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,43],100:39,101:[2,43],103:[2,43],104:40,105:[1,64],106:41,107:[2,43],108:66,116:[1,42],121:37,122:[1,61],123:[2,43],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:137,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,44],6:[2,44],25:[2,44],26:[2,44],51:[2,44],75:[2,44],99:[2,44],101:[2,44],103:[2,44],107:[2,44],123:[2,44]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],37:[2,67],46:[2,67],51:[2,67],54:[2,67],63:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67],71:[2,67],75:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],37:[2,68],46:[2,68],51:[2,68],54:[2,68],63:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68],71:[2,68],75:[2,68],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],46:[2,29],51:[2,29],54:[2,29],63:[2,29],64:[2,29],65:[2,29],67:[2,29],69:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],46:[2,30],51:[2,30],54:[2,30],63:[2,30],64:[2,30],65:[2,30],67:[2,30],69:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],46:[2,31],51:[2,31],54:[2,31],63:[2,31],64:[2,31],65:[2,31],67:[2,31],69:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],46:[2,32],51:[2,32],54:[2,32],63:[2,32],64:[2,32],65:[2,32],67:[2,32],69:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{4:138,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,139],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],46:[2,106],51:[2,106],54:[2,106],63:[2,106],64:[2,106],65:[2,106],67:[2,106],69:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],27:146,28:[1,70],46:[2,107],51:[2,107],54:[2,107],63:[2,107],64:[2,107],65:[2,107],67:[2,107],69:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{25:[2,47]},{25:[2,48]},{1:[2,62],6:[2,62],25:[2,62],26:[2,62],37:[2,62],46:[2,62],51:[2,62],54:[2,62],63:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62],71:[2,62],75:[2,62],77:[2,62],81:[2,62],82:[2,62],83:[2,62],88:[2,62],90:[2,62],99:[2,62],101:[2,62],102:[2,62],103:[2,62],107:[2,62],115:[2,62],123:[2,62],125:[2,62],126:[2,62],127:[2,62],128:[2,62],129:[2,62],130:[2,62],131:[2,62],132:[2,62],133:[2,62],134:[2,62],135:[2,62]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],37:[2,65],46:[2,65],51:[2,65],54:[2,65],63:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{8:147,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,5],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,70],55:157,56:158,61:152,73:[1,67],87:[1,54],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,85],12:165,25:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:162,75:[2,85],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],40:[2,27],46:[2,27],51:[2,27],54:[2,27],63:[2,27],64:[2,27],65:[2,27],67:[2,27],69:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],40:[2,28],46:[2,28],51:[2,28],54:[2,28],63:[2,28],64:[2,28],65:[2,28],67:[2,28],69:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],37:[2,26],40:[2,26],46:[2,26],51:[2,26],54:[2,26],63:[2,26],64:[2,26],65:[2,26],67:[2,26],69:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,26:[2,6],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],99:[2,6],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],46:[2,24],51:[2,24],54:[2,24],69:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,71],26:[1,170]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],46:[2,184],51:[2,184],54:[2,184],69:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{8:171,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],46:[2,140],51:[2,140],54:[2,140],69:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],46:[2,145],51:[2,145],54:[2,145],69:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],101:[2,145],102:[2,145],103:[2,145],107:[2,145],115:[2,145],123:[2,145],125:[2,145],126:[2,145],129:[2,145],130:[2,145],131:[2,145],132:[2,145],133:[2,145],134:[2,145]},{8:179,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],46:[2,139],51:[2,139],54:[2,139],69:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],101:[2,139],102:[2,139],103:[2,139],107:[2,139],115:[2,139],123:[2,139],125:[2,139],126:[2,139],129:[2,139],130:[2,139],131:[2,139],132:[2,139],133:[2,139],134:[2,139]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],46:[2,144],51:[2,144],54:[2,144],69:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{79:180,82:[1,103]},{1:[2,63],6:[2,63],25:[2,63],26:[2,63],37:[2,63],46:[2,63],51:[2,63],54:[2,63],63:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63],71:[2,63],75:[2,63],77:[2,63],81:[2,63],82:[2,63],83:[2,63],88:[2,63],90:[2,63],99:[2,63],101:[2,63],102:[2,63],103:[2,63],107:[2,63],115:[2,63],123:[2,63],125:[2,63],126:[2,63],127:[2,63],128:[2,63],129:[2,63],130:[2,63],131:[2,63],132:[2,63],133:[2,63],134:[2,63],135:[2,63]},{82:[2,103]},{27:181,28:[1,70]},{27:182,28:[1,70]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],27:183,28:[1,70],37:[2,77],46:[2,77],51:[2,77],54:[2,77],63:[2,77],64:[2,77],65:[2,77],67:[2,77],69:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],37:[2,78],46:[2,78],51:[2,78],54:[2,78],63:[2,78],64:[2,78],65:[2,78],67:[2,78],69:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{8:185,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],54:[1,189],55:47,56:48,58:36,60:25,61:26,62:27,68:184,72:186,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],89:187,90:[1,188],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{66:190,67:[1,96],70:[1,97],71:[1,98]},{66:191,67:[1,96],70:[1,97],71:[1,98]},{79:192,82:[1,103]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],37:[2,64],46:[2,64],51:[2,64],54:[2,64],63:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{8:193,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,194],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],46:[2,101],51:[2,101],54:[2,101],63:[2,101],64:[2,101],65:[2,101],67:[2,101],69:[2,101],70:[2,101],71:[2,101],75:[2,101],81:[2,101],82:[2,101],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{46:[1,198],51:[1,199]},{46:[2,52],51:[2,52]},{37:[1,201],46:[2,54],51:[2,54],54:[1,200]},{37:[2,57],46:[2,57],51:[2,57],54:[2,57]},{37:[2,58],46:[2,58],51:[2,58],54:[2,58]},{37:[2,59],46:[2,59],51:[2,59],54:[2,59]},{37:[2,60],46:[2,60],51:[2,60],54:[2,60]},{27:146,28:[1,70]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:142,85:[1,55],86:[1,56],87:[1,54],88:[1,141],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],46:[2,46],51:[2,46],54:[2,46],69:[2,46],75:[2,46],83:[2,46],88:[2,46],90:[2,46],99:[2,46],101:[2,46],102:[2,46],103:[2,46],107:[2,46],115:[2,46],123:[2,46],125:[2,46],126:[2,46],129:[2,46],130:[2,46],131:[2,46],132:[2,46],133:[2,46],134:[2,46]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],46:[2,177],51:[2,177],54:[2,177],69:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:84,101:[2,177],102:[2,177],103:[2,177],106:85,107:[2,177],108:66,115:[2,177],123:[2,177],125:[2,177],126:[2,177],129:[1,75],130:[2,177],131:[2,177],132:[2,177],133:[2,177],134:[2,177]},{100:87,101:[1,62],103:[1,63],106:88,107:[1,65],108:66,123:[1,86]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],46:[2,178],51:[2,178],54:[2,178],69:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:84,101:[2,178],102:[2,178],103:[2,178],106:85,107:[2,178],108:66,115:[2,178],123:[2,178],125:[2,178],126:[2,178],129:[1,75],130:[2,178],131:[2,178],132:[2,178],133:[2,178],134:[2,178]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],46:[2,179],51:[2,179],54:[2,179],69:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:84,101:[2,179],102:[2,179],103:[2,179],106:85,107:[2,179],108:66,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,75],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],46:[2,180],51:[2,180],54:[2,180],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,180],70:[2,66],71:[2,66],75:[2,180],81:[2,66],82:[2,66],83:[2,180],88:[2,180],90:[2,180],99:[2,180],101:[2,180],102:[2,180],103:[2,180],107:[2,180],115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[2,180],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:89,81:[1,91],82:[2,102]},{59:100,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],70:[1,97],71:[1,98],78:99,81:[1,91],82:[2,102]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],46:[2,69],51:[2,69],54:[2,69],63:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],46:[2,181],51:[2,181],54:[2,181],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,181],70:[2,66],71:[2,66],75:[2,181],81:[2,66],82:[2,66],83:[2,181],88:[2,181],90:[2,181],99:[2,181],101:[2,181],102:[2,181],103:[2,181],107:[2,181],115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[2,181],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],46:[2,182],51:[2,182],54:[2,182],69:[2,182],75:[2,182],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],46:[2,183],51:[2,183],54:[2,183],69:[2,183],75:[2,183],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{8:202,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,203],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,126],6:[2,126],25:[2,126],26:[2,126],46:[2,126],51:[2,126],54:[2,126],69:[2,126],75:[2,126],83:[2,126],88:[2,126],90:[2,126],94:207,95:[1,208],96:[1,209],99:[2,126],101:[2,126],102:[2,126],103:[2,126],107:[2,126],115:[2,126],123:[2,126],125:[2,126],126:[2,126],129:[2,126],130:[2,126],131:[2,126],132:[2,126],133:[2,126],134:[2,126]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],46:[2,138],51:[2,138],54:[2,138],69:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],101:[2,138],102:[2,138],103:[2,138],107:[2,138],115:[2,138],123:[2,138],125:[2,138],126:[2,138],129:[2,138],130:[2,138],131:[2,138],132:[2,138],133:[2,138],134:[2,138]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],46:[2,146],51:[2,146],54:[2,146],69:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{25:[1,210],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{117:211,119:212,120:[1,213]},{1:[2,91],6:[2,91],25:[2,91],26:[2,91],46:[2,91],51:[2,91],54:[2,91],69:[2,91],75:[2,91],83:[2,91],88:[2,91],90:[2,91],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{14:214,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,94],5:216,6:[2,94],25:[1,5],26:[2,94],46:[2,94],51:[2,94],54:[2,94],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,94],70:[2,66],71:[2,66],75:[2,94],77:[1,217],81:[2,66],82:[2,66],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,42],6:[2,42],26:[2,42],99:[2,42],100:84,101:[2,42],103:[2,42],106:85,107:[2,42],108:66,123:[2,42],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,131],6:[2,131],26:[2,131],99:[2,131],100:84,101:[2,131],103:[2,131],106:85,107:[2,131],108:66,123:[2,131],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,71],99:[1,218]},{4:219,7:4,8:6,9:7,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,122],25:[2,122],51:[2,122],54:[1,221],88:[2,122],89:220,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],37:[2,109],46:[2,109],51:[2,109],54:[2,109],63:[2,109],64:[2,109],65:[2,109],67:[2,109],69:[2,109],70:[2,109],71:[2,109],75:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],113:[2,109],114:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109]},{6:[2,49],25:[2,49],50:222,51:[1,223],88:[2,49]},{6:[2,117],25:[2,117],26:[2,117],51:[2,117],83:[2,117],88:[2,117]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:224,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,123],25:[2,123],26:[2,123],51:[2,123],83:[2,123],88:[2,123]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],37:[2,108],40:[2,108],46:[2,108],51:[2,108],54:[2,108],63:[2,108],64:[2,108],65:[2,108],67:[2,108],69:[2,108],70:[2,108],71:[2,108],75:[2,108],77:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],127:[2,108],128:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108],135:[2,108]},{5:225,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],46:[2,134],51:[2,134],54:[2,134],69:[2,134],75:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],100:84,101:[1,62],102:[1,226],103:[1,63],106:85,107:[1,65],108:66,115:[2,134],123:[2,134],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],46:[2,136],51:[2,136],54:[2,136],69:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:84,101:[1,62],102:[1,227],103:[1,63],106:85,107:[1,65],108:66,115:[2,136],123:[2,136],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],46:[2,142],51:[2,142],54:[2,142],69:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],46:[2,143],51:[2,143],54:[2,143],69:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],100:84,101:[1,62],102:[2,143],103:[1,63],106:85,107:[1,65],108:66,115:[2,143],123:[2,143],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],46:[2,147],51:[2,147],54:[2,147],69:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{113:[2,149],114:[2,149]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],110:228,112:155},{51:[1,229],113:[2,154],114:[2,154]},{51:[2,151],113:[2,151],114:[2,151]},{51:[2,152],113:[2,152],114:[2,152]},{51:[2,153],113:[2,153],114:[2,153]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],46:[2,148],51:[2,148],54:[2,148],69:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{8:230,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:231,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],50:232,51:[1,233],75:[2,49]},{6:[2,86],25:[2,86],26:[2,86],51:[2,86],75:[2,86]},{6:[2,35],25:[2,35],26:[2,35],40:[1,234],51:[2,35],75:[2,35]},{6:[2,38],25:[2,38],26:[2,38],51:[2,38],75:[2,38]},{6:[2,39],25:[2,39],26:[2,39],40:[2,39],51:[2,39],75:[2,39]},{6:[2,40],25:[2,40],26:[2,40],40:[2,40],51:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],40:[2,41],51:[2,41],75:[2,41]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],46:[2,25],51:[2,25],54:[2,25],69:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],46:[2,185],51:[2,185],54:[2,185],69:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],100:84,101:[2,185],102:[2,185],103:[2,185],106:85,107:[2,185],108:66,115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[1,75],130:[1,78],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],46:[2,186],51:[2,186],54:[2,186],69:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],100:84,101:[2,186],102:[2,186],103:[2,186],106:85,107:[2,186],108:66,115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[1,75],130:[1,78],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],46:[2,187],51:[2,187],54:[2,187],69:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:84,101:[2,187],102:[2,187],103:[2,187],106:85,107:[2,187],108:66,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,75],130:[2,187],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],46:[2,188],51:[2,188],54:[2,188],69:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:84,101:[2,188],102:[2,188],103:[2,188],106:85,107:[2,188],108:66,115:[2,188],123:[2,188],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],46:[2,189],51:[2,189],54:[2,189],69:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:84,101:[2,189],102:[2,189],103:[2,189],106:85,107:[2,189],108:66,115:[2,189],123:[2,189],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,189],133:[2,189],134:[1,82]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],46:[2,190],51:[2,190],54:[2,190],69:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:84,101:[2,190],102:[2,190],103:[2,190],106:85,107:[2,190],108:66,115:[2,190],123:[2,190],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[2,190],134:[1,82]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],46:[2,191],51:[2,191],54:[2,191],69:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:84,101:[2,191],102:[2,191],103:[2,191],106:85,107:[2,191],108:66,115:[2,191],123:[2,191],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[2,191],133:[2,191],134:[2,191]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],46:[2,176],51:[2,176],54:[2,176],69:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],100:84,101:[1,62],102:[2,176],103:[1,63],106:85,107:[1,65],108:66,115:[2,176],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],46:[2,175],51:[2,175],54:[2,175],69:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],100:84,101:[1,62],102:[2,175],103:[1,63],106:85,107:[1,65],108:66,115:[2,175],123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],46:[2,98],51:[2,98],54:[2,98],63:[2,98],64:[2,98],65:[2,98],67:[2,98],69:[2,98],70:[2,98],71:[2,98],75:[2,98],81:[2,98],82:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],37:[2,74],46:[2,74],51:[2,74],54:[2,74],63:[2,74],64:[2,74],65:[2,74],67:[2,74],69:[2,74],70:[2,74],71:[2,74],75:[2,74],77:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],127:[2,74],128:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],37:[2,75],46:[2,75],51:[2,75],54:[2,75],63:[2,75],64:[2,75],65:[2,75],67:[2,75],69:[2,75],70:[2,75],71:[2,75],75:[2,75],77:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],127:[2,75],128:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],37:[2,76],46:[2,76],51:[2,76],54:[2,76],63:[2,76],64:[2,76],65:[2,76],67:[2,76],69:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{69:[1,235]},{54:[1,189],69:[2,82],89:236,90:[1,188],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{69:[2,83]},{8:237,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:[2,111],28:[2,111],30:[2,111],31:[2,111],33:[2,111],34:[2,111],35:[2,111],42:[2,111],43:[2,111],44:[2,111],48:[2,111],49:[2,111],69:[2,111],73:[2,111],76:[2,111],80:[2,111],85:[2,111],86:[2,111],87:[2,111],93:[2,111],97:[2,111],98:[2,111],101:[2,111],103:[2,111],105:[2,111],107:[2,111],116:[2,111],122:[2,111],124:[2,111],125:[2,111],126:[2,111],127:[2,111],128:[2,111]},{13:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],69:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],37:[2,80],46:[2,80],51:[2,80],54:[2,80],63:[2,80],64:[2,80],65:[2,80],67:[2,80],69:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],37:[2,81],46:[2,81],51:[2,81],54:[2,81],63:[2,81],64:[2,81],65:[2,81],67:[2,81],69:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],46:[2,99],51:[2,99],54:[2,99],63:[2,99],64:[2,99],65:[2,99],67:[2,99],69:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],46:[2,33],51:[2,33],54:[2,33],69:[2,33],75:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],100:84,101:[2,33],102:[2,33],103:[2,33],106:85,107:[2,33],108:66,115:[2,33],123:[2,33],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:238,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],46:[2,104],51:[2,104],54:[2,104],63:[2,104],64:[2,104],65:[2,104],67:[2,104],69:[2,104],70:[2,104],71:[2,104],75:[2,104],81:[2,104],82:[2,104],83:[2,104],88:[2,104],90:[2,104],99:[2,104],101:[2,104],102:[2,104],103:[2,104],107:[2,104],115:[2,104],123:[2,104],125:[2,104],126:[2,104],129:[2,104],130:[2,104],131:[2,104],132:[2,104],133:[2,104],134:[2,104]},{6:[2,49],25:[2,49],50:239,51:[1,223],83:[2,49]},{6:[2,122],25:[2,122],26:[2,122],51:[2,122],54:[1,240],83:[2,122],88:[2,122],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{47:241,48:[1,57],49:[1,58]},{27:107,28:[1,70],41:108,52:242,53:106,55:109,56:110,73:[1,67],86:[1,111],87:[1,112]},{46:[2,55],51:[2,55]},{8:243,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],46:[2,192],51:[2,192],54:[2,192],69:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:84,101:[2,192],102:[2,192],103:[2,192],106:85,107:[2,192],108:66,115:[2,192],123:[2,192],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:244,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],46:[2,194],51:[2,194],54:[2,194],69:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:84,101:[2,194],102:[2,194],103:[2,194],106:85,107:[2,194],108:66,115:[2,194],123:[2,194],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],46:[2,174],51:[2,174],54:[2,174],69:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{8:245,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,127],6:[2,127],25:[2,127],26:[2,127],46:[2,127],51:[2,127],54:[2,127],69:[2,127],75:[2,127],83:[2,127],88:[2,127],90:[2,127],95:[1,246],99:[2,127],101:[2,127],102:[2,127],103:[2,127],107:[2,127],115:[2,127],123:[2,127],125:[2,127],126:[2,127],129:[2,127],130:[2,127],131:[2,127],132:[2,127],133:[2,127],134:[2,127]},{5:247,25:[1,5]},{27:248,28:[1,70]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,167],118:[2,167],120:[2,167]},{8:254,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],92:253,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,92],5:255,6:[2,92],25:[1,5],26:[2,92],46:[2,92],51:[2,92],54:[2,92],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,92],70:[1,97],71:[1,98],75:[2,92],78:89,81:[1,91],82:[2,102],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],46:[2,66],51:[2,66],54:[2,66],63:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66],71:[2,66],75:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66]},{1:[2,95],6:[2,95],25:[2,95],26:[2,95],46:[2,95],51:[2,95],54:[2,95],69:[2,95],75:[2,95],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{14:256,15:120,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:121,41:60,55:47,56:48,58:215,60:25,61:26,62:27,73:[1,67],80:[1,28],85:[1,55],86:[1,56],87:[1,54],98:[1,53]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],46:[2,132],51:[2,132],54:[2,132],63:[2,132],64:[2,132],65:[2,132],67:[2,132],69:[2,132],70:[2,132],71:[2,132],75:[2,132],81:[2,132],82:[2,132],83:[2,132],88:[2,132],90:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{6:[1,71],26:[1,257]},{8:258,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,61],13:[2,112],25:[2,61],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],42:[2,112],43:[2,112],44:[2,112],48:[2,112],49:[2,112],51:[2,61],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],88:[2,61],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,50],8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[2,50],26:[2,50],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],83:[2,50],85:[1,55],86:[1,56],87:[1,54],88:[2,50],91:262,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,49],25:[2,49],26:[2,49],50:263,51:[1,223]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],46:[2,171],51:[2,171],54:[2,171],69:[2,171],75:[2,171],83:[2,171],88:[2,171],90:[2,171],99:[2,171],101:[2,171],102:[2,171],103:[2,171],107:[2,171],115:[2,171],118:[2,171],123:[2,171],125:[2,171],126:[2,171],129:[2,171],130:[2,171],131:[2,171],132:[2,171],133:[2,171],134:[2,171]},{8:264,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,150],114:[2,150]},{27:156,28:[1,70],55:157,56:158,73:[1,67],87:[1,112],112:266},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],46:[2,156],51:[2,156],54:[2,156],69:[2,156],75:[2,156],83:[2,156],88:[2,156],90:[2,156],99:[2,156],100:84,101:[2,156],102:[1,267],103:[2,156],106:85,107:[2,156],108:66,115:[1,268],123:[2,156],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],46:[2,157],51:[2,157],54:[2,157],69:[2,157],75:[2,157],83:[2,157],88:[2,157],90:[2,157],99:[2,157],100:84,101:[2,157],102:[1,269],103:[2,157],106:85,107:[2,157],108:66,115:[2,157],123:[2,157],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,50],12:165,25:[2,50],26:[2,50],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:273,39:164,41:168,43:[1,46],75:[2,50],86:[1,111]},{8:274,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,275],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],37:[2,79],46:[2,79],51:[2,79],54:[2,79],63:[2,79],64:[2,79],65:[2,79],67:[2,79],69:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{8:276,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,69:[2,115],73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,116],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,277],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,61],25:[2,61],26:[2,61],51:[2,61],83:[2,61],88:[2,61]},{5:279,25:[1,5]},{46:[2,53],51:[2,53]},{46:[2,56],51:[2,56],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,280],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:281,25:[1,5],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{5:282,25:[1,5]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],46:[2,128],51:[2,128],54:[2,128],69:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],46:[2,165],51:[2,165],54:[2,165],69:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:286,25:[1,5]},{26:[2,168],118:[2,168],120:[2,168]},{5:287,25:[1,5],51:[1,288]},{25:[2,124],51:[2,124],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,93],6:[2,93],25:[2,93],26:[2,93],46:[2,93],51:[2,93],54:[2,93],69:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],101:[2,93],102:[2,93],103:[2,93],107:[2,93],115:[2,93],123:[2,93],125:[2,93],126:[2,93],129:[2,93],130:[2,93],131:[2,93],132:[2,93],133:[2,93],134:[2,93]},{1:[2,96],5:289,6:[2,96],25:[1,5],26:[2,96],46:[2,96],51:[2,96],54:[2,96],59:90,63:[1,92],64:[1,93],65:[1,94],66:95,67:[1,96],69:[2,96],70:[1,97],71:[1,98],75:[2,96],78:89,81:[1,91],82:[2,102],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{99:[1,290]},{88:[1,291],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],37:[2,110],46:[2,110],51:[2,110],54:[2,110],63:[2,110],64:[2,110],65:[2,110],67:[2,110],69:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],91:292,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,25:[1,144],27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,57:145,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],84:293,85:[1,55],86:[1,56],87:[1,54],91:143,93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,118],25:[2,118],26:[2,118],51:[2,118],83:[2,118],88:[2,118]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],46:[2,135],51:[2,135],54:[2,135],69:[2,135],75:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],100:84,101:[1,62],102:[2,135],103:[1,63],106:85,107:[1,65],108:66,115:[2,135],123:[2,135],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],46:[2,137],51:[2,137],54:[2,137],69:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:84,101:[1,62],102:[2,137],103:[1,63],106:85,107:[1,65],108:66,115:[2,137],123:[2,137],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{113:[2,155],114:[2,155]},{8:295,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],37:[2,84],46:[2,84],51:[2,84],54:[2,84],63:[2,84],64:[2,84],65:[2,84],67:[2,84],69:[2,84],70:[2,84],71:[2,84],75:[2,84],81:[2,84],82:[2,84],83:[2,84],88:[2,84],90:[2,84],99:[2,84],101:[2,84],102:[2,84],103:[2,84],107:[2,84],113:[2,84],114:[2,84],115:[2,84],123:[2,84],125:[2,84],126:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84]},{12:165,27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:298,39:164,41:168,43:[1,46],86:[1,111]},{6:[2,85],12:165,25:[2,85],26:[2,85],27:166,28:[1,70],29:167,30:[1,68],31:[1,69],38:163,39:164,41:168,43:[1,46],51:[2,85],74:299,86:[1,111]},{6:[2,87],25:[2,87],26:[2,87],51:[2,87],75:[2,87]},{6:[2,36],25:[2,36],26:[2,36],51:[2,36],75:[2,36],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{8:300,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{69:[2,114],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],46:[2,34],51:[2,34],54:[2,34],69:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],101:[2,34],102:[2,34],103:[2,34],107:[2,34],115:[2,34],123:[2,34],125:[2,34],126:[2,34],129:[2,34],130:[2,34],131:[2,34],132:[2,34],133:[2,34],134:[2,34]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],46:[2,105],51:[2,105],54:[2,105],63:[2,105],64:[2,105],65:[2,105],67:[2,105],69:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{1:[2,45],6:[2,45],25:[2,45],26:[2,45],46:[2,45],51:[2,45],54:[2,45],69:[2,45],75:[2,45],83:[2,45],88:[2,45],90:[2,45],99:[2,45],101:[2,45],102:[2,45],103:[2,45],107:[2,45],115:[2,45],123:[2,45],125:[2,45],126:[2,45],129:[2,45],130:[2,45],131:[2,45],132:[2,45],133:[2,45],134:[2,45]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],46:[2,193],51:[2,193],54:[2,193],69:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],101:[2,193],102:[2,193],103:[2,193],107:[2,193],115:[2,193],123:[2,193],125:[2,193],126:[2,193],129:[2,193],130:[2,193],131:[2,193],132:[2,193],133:[2,193],134:[2,193]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],46:[2,172],51:[2,172],54:[2,172],69:[2,172],75:[2,172],83:[2,172],88:[2,172],90:[2,172],99:[2,172],101:[2,172],102:[2,172],103:[2,172],107:[2,172],115:[2,172],118:[2,172],123:[2,172],125:[2,172],126:[2,172],129:[2,172],130:[2,172],131:[2,172],132:[2,172],133:[2,172],134:[2,172]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],46:[2,129],51:[2,129],54:[2,129],69:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],46:[2,130],51:[2,130],54:[2,130],69:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],95:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],46:[2,163],51:[2,163],54:[2,163],69:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],101:[2,163],102:[2,163],103:[2,163],107:[2,163],115:[2,163],123:[2,163],125:[2,163],126:[2,163],129:[2,163],130:[2,163],131:[2,163],132:[2,163],133:[2,163],134:[2,163]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,169],118:[2,169],120:[2,169]},{8:304,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],46:[2,97],51:[2,97],54:[2,97],69:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],101:[2,97],102:[2,97],103:[2,97],107:[2,97],115:[2,97],123:[2,97],125:[2,97],126:[2,97],129:[2,97],130:[2,97],131:[2,97],132:[2,97],133:[2,97],134:[2,97]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],46:[2,133],51:[2,133],54:[2,133],63:[2,133],64:[2,133],65:[2,133],67:[2,133],69:[2,133],70:[2,133],71:[2,133],75:[2,133],81:[2,133],82:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],101:[2,133],102:[2,133],103:[2,133],107:[2,133],115:[2,133],123:[2,133],125:[2,133],126:[2,133],129:[2,133],130:[2,133],131:[2,133],132:[2,133],133:[2,133],134:[2,133]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],46:[2,113],51:[2,113],54:[2,113],63:[2,113],64:[2,113],65:[2,113],67:[2,113],69:[2,113],70:[2,113],71:[2,113],75:[2,113],81:[2,113],82:[2,113],83:[2,113],88:[2,113],90:[2,113],99:[2,113],101:[2,113],102:[2,113],103:[2,113],107:[2,113],115:[2,113],123:[2,113],125:[2,113],126:[2,113],129:[2,113],130:[2,113],131:[2,113],132:[2,113],133:[2,113],134:[2,113]},{6:[2,119],25:[2,119],26:[2,119],51:[2,119],83:[2,119],88:[2,119]},{6:[2,49],25:[2,49],26:[2,49],50:305,51:[1,223]},{6:[2,120],25:[2,120],26:[2,120],51:[2,120],83:[2,120],88:[2,120]},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],46:[2,158],51:[2,158],54:[2,158],69:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:84,101:[2,158],102:[2,158],103:[2,158],106:85,107:[2,158],108:66,115:[1,306],123:[2,158],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],46:[2,160],51:[2,160],54:[2,160],69:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:84,101:[2,160],102:[1,307],103:[2,160],106:85,107:[2,160],108:66,115:[2,160],123:[2,160],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],46:[2,159],51:[2,159],54:[2,159],69:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:84,101:[2,159],102:[2,159],103:[2,159],106:85,107:[2,159],108:66,115:[2,159],123:[2,159],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,88],25:[2,88],26:[2,88],51:[2,88],75:[2,88]},{6:[2,49],25:[2,49],26:[2,49],50:308,51:[1,233]},{26:[1,309],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{26:[1,310]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],46:[2,166],51:[2,166],54:[2,166],69:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{26:[2,170],118:[2,170],120:[2,170]},{25:[2,125],51:[2,125],100:84,101:[1,62],103:[1,63],106:85,107:[1,65],108:66,123:[1,83],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:19,11:20,12:21,13:[1,22],14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:59,28:[1,70],29:49,30:[1,68],31:[1,69],32:24,33:[1,50],34:[1,51],35:[1,52],36:23,41:60,42:[1,44],43:[1,46],44:[1,29],47:30,48:[1,57],49:[1,58],55:47,56:48,58:36,60:25,61:26,62:27,73:[1,67],76:[1,43],80:[1,28],85:[1,55],86:[1,56],87:[1,54],93:[1,38],97:[1,45],98:[1,53],100:39,101:[1,62],103:[1,63],104:40,105:[1,64],106:41,107:[1,65],108:66,116:[1,42],121:37,122:[1,61],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,37],25:[2,37],26:[2,37],51:[2,37],75:[2,37]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],46:[2,164],51:[2,164],54:[2,164],69:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],101:[2,164],102:[2,164],103:[2,164],107:[2,164],115:[2,164],123:[2,164],125:[2,164],126:[2,164],129:[2,164],130:[2,164],131:[2,164],132:[2,164],133:[2,164],134:[2,164]},{6:[2,121],25:[2,121],26:[2,121],51:[2,121],83:[2,121],88:[2,121]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],46:[2,161],51:[2,161],54:[2,161],69:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:84,101:[2,161],102:[2,161],103:[2,161],106:85,107:[2,161],108:66,115:[2,161],123:[2,161],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],46:[2,162],51:[2,162],54:[2,162],69:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:84,101:[2,162],102:[2,162],103:[2,162],106:85,107:[2,162],108:66,115:[2,162],123:[2,162],125:[1,77],126:[1,76],129:[1,75],130:[1,78],131:[1,79],132:[1,80],133:[1,81],134:[1,82]},{6:[2,89],25:[2,89],26:[2,89],51:[2,89],75:[2,89]}],defaultActions:{57:[2,47],58:[2,48],72:[2,3],91:[2,103],186:[2,83]},parseError:function(a,b){throw new Error(a)},parse:function h(a){function o(){var a;a=b.lexer.lex()||1,typeof a!="number"&&(a=b.symbols_[a]||a);return a}function n(a){c.length=c.length-2*a,d.length=d.length-a,e.length=e.length-a}var b=this,c=[0],d=[null],e=[],f=this.table,g="",h=0,i=0,j=0,k=2,l=1;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var m=this.lexer.yylloc;e.push(m),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var p,q,r,s,t,u,v={},w,x,y,z;for(;;){r=c[c.length-1],this.defaultActions[r]?s=this.defaultActions[r]:(p==null&&(p=o()),s=f[r]&&f[r][p]);if(typeof s=="undefined"||!s.length||!s[0]){if(!j){z=[];for(w in f[r])this.terminals_[w]&&w>2&&z.push("'"+this.terminals_[w]+"'");var A="";this.lexer.showPosition?A="Parse error on line "+(h+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+z.join(", "):A="Parse error on line "+(h+1)+": Unexpected "+(p==1?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(A,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:m,expected:z})}if(j==3){if(p==l)throw new Error(A||"Parsing halted.");i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,p=o()}for(;;){if(k.toString()in f[r])break;if(r==0)throw new Error(A||"Parsing halted.");n(1),r=c[c.length-1]}q=p,p=k,r=c[c.length-1],s=f[r]&&f[r][k],j=3}if(s[0]instanceof Array&&s.length>1)throw new Error("Parse Error: multiple actions possible at state: "+r+", token: "+p);switch(s[0]){case 1:c.push(p),d.push(this.lexer.yytext),e.push(this.lexer.yylloc),c.push(s[1]),p=null,q?(p=q,q=null):(i=this.lexer.yyleng,g=this.lexer.yytext,h=this.lexer.yylineno,m=this.lexer.yylloc,j>0&&j--);break;case 2:x=this.productions_[s[1]][1],v.$=d[d.length-x],v._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},u=this.performAction.call(v,g,i,h,this.yy,s[1],d,e);if(typeof u!="undefined")return u;x&&(c=c.slice(0,-1*x*2),d=d.slice(0,-1*x),e=e.slice(0,-1*x)),c.push(this.productions_[s[1]][0]),d.push(v.$),e.push(v._$),y=f[c[c.length-2]][c[c.length-1]],c.push(y);break;case 3:return!0}}return!0}};c.exports=d}),define("ace/mode/coffee/nodes",["require","exports","module","ace/mode/coffee/scope","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,ba,bb,bc,bd,be,bf,bg,bh,bi,bj=Object.prototype.hasOwnProperty,bk=function(a,b){function d(){this.constructor=a}for(var c in b)bj.call(b,c)&&(a[c]=b[c]);d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype;return a},bl=function(a,b){return function(){return a.apply(b,arguments)}},bm=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b1&&a.level>=x?"("+b+")":b},a.prototype.compileRoot=function(a){var b;a.indent=this.tab=a.bare?"":R,a.scope=new N(null,this,null),a.level=A,b=this.compileWithDeclarations(a);return a.bare?b:"(function() {\n"+b+"\n}).call(this);\n"},a.prototype.compileWithDeclarations=function(a){var b,c,d,e,f,g,h,i,j,k;c=g="",k=this.expressions;for(f=0,j=k.length;f=v?"(void 0)":"void 0":this.value.reserved?'"'+this.value+'"':this.value;return this.isStatement()?""+this.tab+b+";":b},a.prototype.toString=function(){return' "'+this.value+'"'};return a}(),b.Return=L=function(){function a(a){a&&!a.unwrap().isUndefined&&(this.expression=a)}bk(a,g),a.prototype.children=["expression"],a.prototype.isStatement=Y,a.prototype.makeReturn=S,a.prototype.jumps=S,a.prototype.compile=function(b,c){var d,e;d=(e=this.expression)!=null?e.makeReturn():void 0;return!d||d instanceof a?a.__super__.compile.call(this,b,c):d.compile(b,c)},a.prototype.compileNode=function(a){return this.tab+("return"+(this.expression?" "+this.expression.compile(a,z):"")+";")};return a}(),b.Value=W=function(){function a(b,c,d){if(!c&&b instanceof a)return b;this.base=b,this.properties=c||[],d&&(this[d]=!0);return this}bk(a,g),a.prototype.children=["base","properties"],a.prototype.push=function(a){this.properties.push(a);return this},a.prototype.hasProperties=function(){return!!this.properties.length},a.prototype.isArray=function(){return!this.properties.length&&this.base instanceof e},a.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},a.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},a.prototype.isSimpleNumber=function(){return this.base instanceof B&&M.test(this.base.value)},a.prototype.isAtomic=function(){var a,b,c,d;d=this.properties.concat(this.base);for(b=0,c=d.length;b"+this.equals],h=l[0],e=l[1],c=this.stepNum?c=+this.stepNum>0?""+h+" "+this.toVar:""+e+" "+this.toVar:g?(m=[+this.fromNum,+this.toNum],d=m[0],j=m[1],m,c=d<=j?""+h+" "+j:""+e+" "+j):(b=""+this.fromVar+" <= "+this.toVar,c=""+b+" ? "+h+" "+this.toVar+" : "+e+" "+this.toVar),i=this.stepVar?""+f+" += "+this.stepVar:g?d<=j?""+f+"++":""+f+"--":""+b+" ? "+f+"++ : "+f+"--";return""+k+"; "+c+"; "+i},a.prototype.compileArray=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(this.fromNum&&this.toNum&&Math.abs(this.fromNum-this.toNum)<=20){h=function(){n=[];for(var a=l=+this.fromNum,b=+this.toNum;l<=b?a<=b:a>=b;l<=b?a++:a--)n.push(a);return n}.apply(this,arguments),this.exclusive&&h.pop();return"["+h.join(", ")+"]"}e=this.tab+R,d=a.scope.freeVariable("i"),i=a.scope.freeVariable("results"),g="\n"+e+i+" = [];",this.fromNum&&this.toNum?(a.index=d,b=this.compileNode(a)):(j=""+d+" = "+this.from+(this.to!==this.toVar?", "+this.to:""),c=""+this.fromVar+" <= "+this.toVar,b="var "+j+"; "+c+" ? "+d+" <"+this.equals+" "+this.toVar+" : "+d+" >"+this.equals+" "+this.toVar+"; "+c+" ? "+d+"++ : "+d+"--"),f="{ "+i+".push("+d+"); }\n"+e+"return "+i+";\n"+a.indent;return"(function() {"+g+"\n"+e+"for ("+b+")"+f+"}).apply(this, arguments)"};return a}(),b.Slice=O=function(){function a(b){this.range=b,a.__super__.constructor.call(this)}bk(a,g),a.prototype.children=["range"],a.prototype.compileNode=function(a){var b,c,d,e,f,g;g=this.range,e=g.to,c=g.from,d=c&&c.compile(a,z)||"0",b=e&&e.compile(a,z),e&&(!!this.range.exclusive||+b!==-1)&&(f=", "+(this.range.exclusive?b:M.test(b)?(+b+1).toString():"("+b+" + 1) || 9e9"));return".slice("+d+(f||"")+")"};return a}(),b.Obj=F=function(){function a(a,b){this.generated=b!=null?b:!1,this.objects=this.properties=a||[]}bk(a,g),a.prototype.children=["properties"],a.prototype.compileNode=function(a){var b,c,d,e,g,h,i,j,k,l,n;k=this.properties;if(!k.length)return this.front?"({})":"{}";if(this.generated)for(l=0,n=k.length;l=0?"[\n"+a.indent+b+"\n"+this.tab+"]":"["+b+"]"},a.prototype.assigns=function(a){var b,c,d,e;e=this.objects;for(c=0,d=e.length;c=y?"("+f+")":f}i=this.variable.isObject();if(!r||m!==1||(k=l[0])instanceof P){v=t.compile(b,x),e=[],p=!1;if(!q.test(v)||this.variable.assigns(v))e.push(""+(n=b.scope.freeVariable("ref"))+" = "+v),v=n;for(g=0,w=l.length;g=0&&(b.isExistentialEquals=!0);return(new G(this.context.slice(0,-1),c,new a(d,this.value,"="))).compile(b)},a.prototype.compileSplice=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;k=this.variable.properties.pop().range,d=k.from,h=k.to,c=k.exclusive,g=this.variable.compile(a),l=(d!=null?d.cache(a,y):void 0)||["0","0"],e=l[0],f=l[1],h?(d!=null?d.isSimpleNumber():void 0)&&h.isSimpleNumber()?(h=+h.compile(a)- +f,c||(h+=1)):(h=h.compile(a)+" - "+f,c||(h+=" + 1")):h="9e9",m=this.value.cache(a,x),i=m[0],j=m[1],b="[].splice.apply("+g+", ["+e+", "+h+"].concat("+i+")), "+j;return a.level>A?"("+b+")":b};return a}(),b.Code=l=function(){function a(a,b,c){this.params=a||[],this.body=b||new h,this.bound=c==="boundfunc",this.bound&&(this.context="this")}bk(a,g),a.prototype.children=["params","body"],a.prototype.isStatement=function(){return!!this.ctor},a.prototype.jumps=E,a.prototype.compileNode=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,t,u,w,x,y,z,A,C,D;a.scope=new N(a.scope,this.body,this),a.scope.shared=$(a,"sharedScope"),a.indent+=R,delete a.bare,o=[],c=[],z=this.params;for(q=0,u=z.length;q=v?"("+b+")":b},a.prototype.traverseChildren=function(b,c){if(b)return a.__super__.traverseChildren.call(this,b,c)};return a}(),b.Param=H=function(){function a(a,b,c){this.name=a,this.value=b,this.splat=c}bk(a,g),a.prototype.children=["name","value"],a.prototype.compile=function(a){return this.name.compile(a,x)},a.prototype.asReference=function(a){var b;if(this.reference)return this.reference;b=this.name,b["this"]?(b=b.properties[0].name,b.value.reserved&&(b=new B("_"+b.value))):b.isComplex()&&(b=new B(a.scope.freeVariable("arg"))),b=new W(b),this.splat&&(b=new P(b));return this.reference=b},a.prototype.isComplex=function(){return this.name.isComplex()};return a}(),b.Splat=P=function(){function a(a){this.name=a.compile?a:new B(a)}bk(a,g),a.prototype.children=["name"],a.prototype.isAssignable=Y,a.prototype.assigns=function(a){return this.name.assigns(a)},a.prototype.compile=function(a){return this.index!=null?this.compileParam(a):this.name.compile(a)},a.compileSplattedArray=function(b,c,d){var e,f,g,h,i,j,k;i=-1;while((j=c[++i])&&!(j instanceof a))continue;if(i>=c.length)return"";if(c.length===1){g=c[0].compile(b,x);return d?g:""+bh("slice")+".call("+g+")"}e=c.slice(i);for(h=0,k=e.length;hA||this.returns)d=a.scope.freeVariable("results"),e=""+this.tab+d+" = [];\n",b&&(b=J.wrap(d,b));this.guard&&(b=h.wrap([new s(this.guard,b)])),b="\n"+b.compile(a,A)+"\n"+this.tab}c=e+this.tab+("while ("+this.condition.compile(a,z)+") {"+b+"}"),this.returns&&(c+="\n"+this.tab+"return "+d+";");return c};return a}(),b.Op=G=function(){function c(b,c,d,e){var f;if(b==="in")return new t(c,d);if(b==="do"){f=new i(c,c.params||[]),f["do"]=!0;return f}if(b==="new"){if(c instanceof i&&!c["do"])return c.newInstance();if(c instanceof l&&c.bound||c["do"])c=new I(c)}this.operator=a[b]||b,this.first=c,this.second=d,this.flip=!!e;return this}var a,b;bk(c,g),a={"==":"===","!=":"!==",of:"in"},b={"!==":"===","===":"!=="},c.prototype.children=["first","second"],c.prototype.isSimpleNumber=E,c.prototype.isUnary=function(){return!this.second},c.prototype.isComplex=function(){var a;return!this.isUnary()||(a=this.operator)!=="+"&&a!=="-"||this.first.isComplex()},c.prototype.isChainable=function(){var a;return(a=this.operator)==="<"||a===">"||a===">="||a==="<="||a==="==="||a==="!=="},c.prototype.invert=function(){var a,d,e,f,g;if(this.isChainable()&&this.first.isChainable()){a=!0,d=this;while(d&&d.operator)a&&(a=d.operator in b),d=d.first;if(!a)return(new I(this)).invert();d=this;while(d&&d.operator)d.invert=!d.invert,d.operator=b[d.operator],d=d.first;return this}if(f=b[this.operator]){this.operator=f,this.first.unwrap()instanceof c&&this.first.invert();return this}return this.second?(new I(this)).invert():this.operator==="!"&&(e=this.first.unwrap())instanceof c&&((g=e.operator)==="!"||g==="in"||g==="instanceof")?e:new c("!",this)},c.prototype.unfoldSoak=function(a){var b;return((b=this.operator)==="++"||b==="--"||b==="delete")&&bg(a,this,"first")},c.prototype.compileNode=function(a){var b;if(this.isUnary())return this.compileUnary(a);if(this.isChainable()&&this.first.isChainable())return this.compileChain(a);if(this.operator==="?")return this.compileExistence(a);this.first.front=this.front,b=this.first.compile(a,y)+" "+this.operator+" "+this.second.compile(a,y);return a.level<=y?b:"("+b+")"},c.prototype.compileChain=function(a){var b,c,d,e;e=this.first.second.cache(a),this.first.second=e[0],d=e[1],c=this.first.compile(a,y),b=""+c+" "+(this.invert?"&&":"||")+" "+d.compile(a)+" "+this.operator+" "+this.second.compile(a,y);return"("+b+")"},c.prototype.compileExistence=function(a){var b,c;this.first.isComplex()?(c=new B(a.scope.freeVariable("ref")),b=new I(new f(c,this.first))):(b=this.first,c=b);return(new s(new n(b),c,{type:"if"})).addElse(this.second).compile(a)},c.prototype.compileUnary=function(a){var b,d;d=[b=this.operator],(b==="new"||b==="typeof"||b==="delete"||(b==="+"||b==="-")&&this.first instanceof c&&this.first.operator===b)&&d.push(" "),b==="new"&&this.first.isStatement(a)&&(this.first=new I(this.first)),d.push(this.first.compile(a,y)),this.flip&&d.reverse();return d.join("")},c.prototype.toString=function(a){return c.__super__.toString.call(this,a,this.constructor.name+" "+this.operator)};return c}(),b.In=t=function(){function a(a,b){this.object=a,this.array=b}bk(a,g),a.prototype.children=["object","array"],a.prototype.invert=D,a.prototype.compileNode=function(a){var b,c,d,e,f;if(this.array instanceof W&&this.array.isArray()){f=this.array.base.objects;for(d=0,e=f.length;d= 0");if(d===c)return b;b=d+", "+b;return a.level=w?"("+d+")":d},a.prototype.unfoldSoak=function(){return this.soak&&this};return a}(),J={wrap:function(a,b){return b.isEmpty()||bc(b.expressions).jumps()?b:b.push(new i(new W(new B(a),[new d(new B("push"))]),[b.pop()]))}},k={wrap:function(a,b,c){var e,f,g,j,k;if(a.jumps())return a;g=new l([],h.wrap([a])),e=[];if((j=a.contains(this.literalArgs))||a.contains(this.literalThis))k=new B(j?"apply":"call"),e=[new B("this")],j&&e.push(new B("arguments")),g=new W(g,[new d(k)]);g.noReturn=c,f=new i(g,e);return b?h.wrap([f]):f},literalArgs:function(a){return a instanceof B&&a.value==="arguments"&&!a.asKey},literalThis:function(a){return a instanceof B&&a.value==="this"&&!a.asKey||a instanceof l&&a.bound}},bg=function(a,b,c){var d;if(!!(d=b[c].unfoldSoak(a))){b[c]=d.body,d.body=new W(b);return d}},V={"extends":"function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}",bind:"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }",indexOf:"Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}",hasProp:"Object.prototype.hasOwnProperty",slice:"Array.prototype.slice"},A=1,z=2,x=3,w=4,y=5,v=6,R=" ",q=/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/,M=/^[+-]?\d+$/,C=/^(?:([$A-Za-z_][$\w\x7f-\uffff]*)\.prototype\.)?([$A-Za-z_][$\w\x7f-\uffff]*)$/,r=/^['"]/,bh=function(a){var b;b="__"+a,N.root.assign(b,V[a]);return b},be=function(a,b){return a.replace(/\n/g,"$&"+b)}}),define("ace/mode/coffee/scope",["require","exports","module","ace/mode/coffee/helpers"],function(a,b,c){var d,e,f,g;g=a("ace/mode/coffee/helpers"),e=g.extend,f=g.last,b.Scope=d=function(){function a(b,c,d){this.parent=b,this.expressions=c,this.method=d,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(a.root=this)}a.root=null,a.prototype.add=function(a,b,c){var d;return this.shared&&!c?this.parent.add(a,b,c):typeof (d=this.positions[a])=="number"?this.variables[d].type=b:this.positions[a]=this.variables.push({name:a,type:b})-1},a.prototype.find=function(a,b){if(this.check(a,b))return!0;this.add(a,"var");return!1},a.prototype.parameter=function(a){if(!this.shared||!this.parent.check(a,!0))return this.add(a,"param")},a.prototype.check=function(a,b){var c,d;c=!!this.type(a);return c||b?c:(d=this.parent)!=null?!!d.check(a):!!void 0},a.prototype.temporary=function(a,b){return a.length>1?"_"+a+(b>1?b:""):"_"+(b+parseInt(a,36)).toString(36).replace(/\d/g,"a")},a.prototype.type=function(a){var b,c,d,e;e=this.variables;for(c=0,d=e.length;c hint.end) { - hint.distance = cursor - hint.end; - } - else { - hint.distance = 0; - } - }, this); - } - // Sort - hints.sort(function(hint1, hint2) { - // Compare first based on distance from cursor - if (cursor !== undefined) { - var diff = hint1.distance - hint2.distance; - if (diff != 0) { - return diff; - } - } - // otherwise go with hint severity - return hint2.status - hint1.status; - }); - // tidy-up - if (cursor !== undefined) { - hints.forEach(function(hint) { - delete hint.distance; - }, this); - } - return hints; -}; -exports.Hint = Hint; - -/** - * A Hint that arose as a result of a Conversion - */ -function ConversionHint(conversion, arg) { - this.status = conversion.status; - this.message = conversion.message; - if (arg) { - this.start = arg.start; - this.end = arg.end; - } - else { - this.start = 0; - this.end = 0; - } - this.predictions = conversion.predictions; -}; -oop.inherits(ConversionHint, Hint); - - -/** - * We record where in the input string an argument comes so we can report errors - * against those string positions. - * We publish a 'change' event when-ever the text changes - * @param emitter Arguments use something else to pass on change events. - * Currently this will be the creating Requisition. This prevents dependency - * loops and prevents us from needing to merge listener lists. - * @param text The string (trimmed) that contains the argument - * @param start The position of the text in the original input string - * @param end See start - * @param prefix Knowledge of quotation marks and whitespace used prior to the - * text in the input string allows us to re-generate the original input from - * the arguments. - * @param suffix Any quotation marks and whitespace used after the text. - * Whitespace is normally placed in the prefix to the succeeding argument, but - * can be used here when this is the last argument. - * @constructor - */ -function Argument(emitter, text, start, end, prefix, suffix) { - this.emitter = emitter; - this.setText(text); - this.start = start; - this.end = end; - this.prefix = prefix; - this.suffix = suffix; -} -Argument.prototype = { - /** - * Return the result of merging these arguments. - * TODO: What happens when we're merging arguments for the single string - * case and some of the arguments are in quotation marks? - */ - merge: function(following) { - if (following.emitter != this.emitter) { - throw new Error('Can\'t merge Arguments from different EventEmitters'); - } - return new Argument( - this.emitter, - this.text + this.suffix + following.prefix + following.text, - this.start, following.end, - this.prefix, - following.suffix); - }, - - /** - * See notes on events in Assignment. We might need to hook changes here - * into a CliRequisition so they appear of the command line. - */ - setText: function(text) { - if (text == null) { - throw new Error('Illegal text for Argument: ' + text); - } - var ev = { argument: this, oldText: this.text, text: text }; - this.text = text; - this.emitter._dispatchEvent('argumentChange', ev); - }, - - /** - * Helper when we're putting arguments back together - */ - toString: function() { - // TODO: There is a bug here - we should re-escape escaped characters - // But can we do that reliably? - return this.prefix + this.text + this.suffix; - } -}; - -/** - * Merge an array of arguments into a single argument. - * All Arguments in the array are expected to have the same emitter - */ -Argument.merge = function(argArray, start, end) { - start = (start === undefined) ? 0 : start; - end = (end === undefined) ? argArray.length : end; - - var joined; - for (var i = start; i < end; i++) { - var arg = argArray[i]; - if (!joined) { - joined = arg; - } - else { - joined = joined.merge(arg); - } - } - return joined; -}; - -/** - * We sometimes need a way to say 'this error occurs where ever the cursor is' - */ -Argument.AT_CURSOR = -1; - - -/** - * A link between a parameter and the data for that parameter. - * The data for the parameter is available as in the preferred type and as - * an Argument for the CLI. - *

                                                                            We also record validity information where applicable. - *

                                                                            For values, null and undefined have distinct definitions. null means - * that a value has been provided, undefined means that it has not. - * Thus, null is a valid default value, and common because it identifies an - * parameter that is optional. undefined means there is no value from - * the command line. - * @constructor - */ -function Assignment(param, requisition) { - this.param = param; - this.requisition = requisition; - this.setValue(param.defaultValue); -}; -Assignment.prototype = { - /** - * The parameter that we are assigning to - * @readonly - */ - param: undefined, - - /** - * Report on the status of the last parse() conversion. - * @see types.Conversion - */ - conversion: undefined, - - /** - * The current value in a type as specified by param.type - */ - value: undefined, - - /** - * The string version of the current value - */ - arg: undefined, - - /** - * The current value (i.e. not the string representation) - * Use setValue() to mutate - */ - value: undefined, - setValue: function(value) { - if (this.value === value) { - return; - } - - if (value === undefined) { - this.value = this.param.defaultValue; - this.conversion = this.param.getDefault ? - this.param.getDefault() : - this.param.type.getDefault(); - this.arg = undefined; - } else { - this.value = value; - this.conversion = undefined; - var text = (value == null) ? '' : this.param.type.stringify(value); - if (this.arg) { - this.arg.setText(text); - } - } - - this.requisition._assignmentChanged(this); - }, - - /** - * The textual representation of the current value - * Use setValue() to mutate - */ - arg: undefined, - setArgument: function(arg) { - if (this.arg === arg) { - return; - } - this.arg = arg; - this.conversion = this.param.type.parse(arg.text); - this.conversion.arg = arg; // TODO: make this automatic? - this.value = this.conversion.value; - this.requisition._assignmentChanged(this); - }, - - /** - * Create a list of the hints associated with this parameter assignment. - * Generally there will be only one hint generated because we're currently - * only displaying one hint at a time, ordering by distance from cursor - * and severity. Since distance from cursor will be the same for all hints - * from this assignment all but the most severe will ever be used. It might - * make sense with more experience to alter this to function to be getHint() - */ - getHint: function() { - // Allow the parameter to provide documentation - if (this.param.getCustomHint && this.value && this.arg) { - var hint = this.param.getCustomHint(this.value, this.arg); - if (hint) { - return hint; - } - } - - // If there is no argument, use the cursor position - var message = '' + this.param.name + ': '; - if (this.param.description) { - // TODO: This should be a short description - do we need to trim? - message += this.param.description.trim(); - - // Ensure the help text ends with '. ' - if (message.charAt(message.length - 1) !== '.') { - message += '.'; - } - if (message.charAt(message.length - 1) !== ' ') { - message += ' '; - } - } - var status = Status.VALID; - var start = this.arg ? this.arg.start : Argument.AT_CURSOR; - var end = this.arg ? this.arg.end : Argument.AT_CURSOR; - var predictions; - - // Non-valid conversions will have useful information to pass on - if (this.conversion) { - status = this.conversion.status; - if (this.conversion.message) { - message += this.conversion.message; - } - predictions = this.conversion.predictions; - } - - // Hint if the param is required, but not provided - var argProvided = this.arg && this.arg.text !== ''; - var dataProvided = this.value !== undefined || argProvided; - if (this.param.defaultValue === undefined && !dataProvided) { - status = Status.INVALID; - message += 'Required<\strong>'; - } - - return new Hint(status, message, start, end, predictions); - }, - - /** - * Basically setValue(conversion.predictions[0]) done in a safe - * way. - */ - complete: function() { - if (this.conversion && this.conversion.predictions && - this.conversion.predictions.length > 0) { - this.setValue(this.conversion.predictions[0]); - } - }, - - /** - * If the cursor is at 'position', do we have sufficient data to start - * displaying the next hint. This is both complex and important. - * For example, if the user has just typed:

                                                                              - *
                                                                            • 'set tabstop ' then they clearly want to know about the valid - * values for the tabstop setting, so the hint is based on the next - * parameter. - *
                                                                            • 'set tabstop' (without trailing space) - they will probably still - * want to know about the valid values for the tabstop setting because - * there is no confusion about the setting in question. - *
                                                                            • 'set tabsto' they've not finished typing a setting name so the hint - * should be based on the current parameter. - *
                                                                            • 'set tabstop' (when there is an additional tabstopstyle setting) we - * can't make assumptions about the setting - we're not finished. - *
                                                                            - *

                                                                            Note that the input for 2 and 4 is identical, only the configuration - * has changed, so hint display is environmental. - * - *

                                                                            This function works out if the cursor is before the end of this - * assignment (assuming that we've asked the same thing of the previous - * assignment) and then attempts to work out if we should use the hint from - * the next assignment even though technically the cursor is still inside - * this one due to the rules above. - */ - isPositionCaptured: function(position) { - if (!this.arg) { - return false; - } - - // Note we don't check if position >= this.arg.start because that's - // implied by the fact that we're asking the assignments in turn, and - // we want to avoid thing falling between the cracks, but we do need - // to check that the argument does have a position - if (this.arg.start === -1) { - return false; - } - - // We're clearly done if the position is past the end of the text - if (position > this.arg.end) { - return false; - } - - // If we're AT the end, the position is captured if either the status - // is not valid or if there are other valid options including current - if (position === this.arg.end) { - return this.conversion.status !== Status.VALID || - this.conversion.predictions.length !== 0; - } - - // Otherwise we're clearly inside - return true; - }, - - /** - * Replace the current value with the lower value if such a concept - * exists. - */ - decrement: function() { - var replacement = this.param.type.decrement(this.value); - if (replacement != null) { - this.setValue(replacement); - } - }, - - /** - * Replace the current value with the higher value if such a concept - * exists. - */ - increment: function() { - var replacement = this.param.type.increment(this.value); - if (replacement != null) { - this.setValue(replacement); - } - }, - - /** - * Helper when we're rebuilding command lines. - */ - toString: function() { - return this.arg ? this.arg.toString() : ''; - } -}; -exports.Assignment = Assignment; - - -/** - * This is a special parameter to reflect the command itself. - */ -var commandParam = { - name: '__command', - type: 'command', - description: 'The command to execute', - - /** - * Provide some documentation for a command. - */ - getCustomHint: function(command, arg) { - var docs = []; - docs.push(' > '); - docs.push(command.name); - if (command.params && command.params.length > 0) { - command.params.forEach(function(param) { - if (param.defaultValue === undefined) { - docs.push(' [' + param.name + ']'); - } - else { - docs.push(' [' + param.name + ']'); - } - }, this); - } - docs.push('
                                                                            '); - - docs.push(command.description ? command.description : '(No description)'); - docs.push('
                                                                            '); - - if (command.params && command.params.length > 0) { - docs.push('

                                                                              '); - command.params.forEach(function(param) { - docs.push('
                                                                            • '); - docs.push('' + param.name + ': '); - docs.push(param.description ? param.description : '(No description)'); - if (param.defaultValue === undefined) { - docs.push(' [Required]'); - } - else if (param.defaultValue === null) { - docs.push(' [Optional]'); - } - else { - docs.push(' [Default: ' + param.defaultValue + ']'); - } - docs.push('
                                                                            • '); - }, this); - docs.push('
                                                                            '); - } - - return new Hint(Status.VALID, docs.join(''), arg); - } -}; - -/** - * A Requisition collects the information needed to execute a command. - * There is no point in a requisition for parameter-less commands because there - * is no information to collect. A Requisition is a collection of assignments - * of values to parameters, each handled by an instance of Assignment. - * CliRequisition adds functions for parsing input from a command line to this - * class. - *

                                                                            Events

                                                                            - * We publish the following events:
                                                                              - *
                                                                            • argumentChange: The text of some argument has changed. It is likely that - * any UI component displaying this argument will need to be updated. (Note that - * this event is actually published by the Argument itself - see the docs for - * Argument for more details) - * The event object looks like: { argument: A, oldText: B, text: B } - *
                                                                            • commandChange: The command has changed. It is likely that a UI - * structure will need updating to match the parameters of the new command. - * The event object looks like { command: A } - * @constructor - */ -function Requisition(env) { - this.env = env; - this.commandAssignment = new Assignment(commandParam, this); -} - -Requisition.prototype = { - /** - * The command that we are about to execute. - * @see setCommandConversion() - * @readonly - */ - commandAssignment: undefined, - - /** - * The count of assignments. Excludes the commandAssignment - * @readonly - */ - assignmentCount: undefined, - - /** - * The object that stores of Assignment objects that we are filling out. - * The Assignment objects are stored under their param.name for named - * lookup. Note: We make use of the property of Javascript objects that - * they are not just hashmaps, but linked-list hashmaps which iterate in - * insertion order. - * Excludes the commandAssignment. - */ - _assignments: undefined, - - /** - * The store of hints generated by the assignments. We are trying to prevent - * the UI from needing to access this in broad form, but instead use - * methods that query part of this structure. - */ - _hints: undefined, - - /** - * When the command changes, we need to keep a bunch of stuff in sync - */ - _assignmentChanged: function(assignment) { - // This is all about re-creating Assignments - if (assignment.param.name !== '__command') { - return; - } - - this._assignments = {}; - - if (assignment.value) { - assignment.value.params.forEach(function(param) { - this._assignments[param.name] = new Assignment(param, this); - }, this); - } - - this.assignmentCount = Object.keys(this._assignments).length; - this._dispatchEvent('commandChange', { command: assignment.value }); - }, - - /** - * Assignments have an order, so we need to store them in an array. - * But we also need named access ... - */ - getAssignment: function(nameOrNumber) { - var name = (typeof nameOrNumber === 'string') ? - nameOrNumber : - Object.keys(this._assignments)[nameOrNumber]; - return this._assignments[name]; - }, - - /** - * Where parameter name == assignment names - they are the same. - */ - getParameterNames: function() { - return Object.keys(this._assignments); - }, - - /** - * A *shallow* clone of the assignments. - * This is useful for systems that wish to go over all the assignments - * finding values one way or another and wish to trim an array as they go. - */ - cloneAssignments: function() { - return Object.keys(this._assignments).map(function(name) { - return this._assignments[name]; - }, this); - }, - - /** - * Collect the statuses from the Assignments. - * The hints returned are sorted by severity - */ - _updateHints: function() { - // TODO: work out when to clear this out for the plain Requisition case - // this._hints = []; - this.getAssignments(true).forEach(function(assignment) { - this._hints.push(assignment.getHint()); - }, this); - Hint.sort(this._hints); - - // We would like to put some initial help here, but for anyone but - // a complete novice a 'type help' message is very annoying, so we - // need to find a way to only display this message once, or for - // until the user click a 'close' button or similar - // TODO: Add special case for '' input - }, - - /** - * Returns the most severe status - */ - getWorstHint: function() { - return this._hints[0]; - }, - - /** - * Extract the names and values of all the assignments, and return as - * an object. - */ - getArgsObject: function() { - var args = {}; - this.getAssignments().forEach(function(assignment) { - args[assignment.param.name] = assignment.value; - }, this); - return args; - }, - - /** - * Access the arguments as an array. - * @param includeCommand By default only the parameter arguments are - * returned unless (includeCommand === true), in which case the list is - * prepended with commandAssignment.arg - */ - getAssignments: function(includeCommand) { - var args = []; - if (includeCommand === true) { - args.push(this.commandAssignment); - } - Object.keys(this._assignments).forEach(function(name) { - args.push(this.getAssignment(name)); - }, this); - return args; - }, - - /** - * Reset all the assignments to their default values - */ - setDefaultValues: function() { - this.getAssignments().forEach(function(assignment) { - assignment.setValue(undefined); - }, this); - }, - - /** - * Helper to call canon.exec - */ - exec: function() { - canon.exec(this.commandAssignment.value, - this.env, - "cli", - this.getArgsObject(), - this.toCanonicalString()); - }, - - /** - * Extract a canonical version of the input - */ - toCanonicalString: function() { - var line = []; - line.push(this.commandAssignment.value.name); - Object.keys(this._assignments).forEach(function(name) { - var assignment = this._assignments[name]; - var type = assignment.param.type; - // TODO: This will cause problems if there is a non-default value - // after a default value. Also we need to decide when to use - // named parameters in place of positional params. Both can wait. - if (assignment.value !== assignment.param.defaultValue) { - line.push(' '); - line.push(type.stringify(assignment.value)); - } - }, this); - return line.join(''); - } -}; -oop.implement(Requisition.prototype, EventEmitter); -exports.Requisition = Requisition; - - -/** - * An object used during command line parsing to hold the various intermediate - * data steps. - *

                                                                              The 'output' of the update is held in 2 objects: input.hints which is an - * array of hints to display to the user. In the future this will become a - * single value. - *

                                                                              The other output value is input.requisition which gives access to an - * args object for use in executing the final command. - * - *

                                                                              The majority of the functions in this class are called in sequence by the - * constructor. Their task is to add to hints fill out the requisition. - *

                                                                              The general sequence is:

                                                                                - *
                                                                              • _tokenize(): convert _typed into _parts - *
                                                                              • _split(): convert _parts into _command and _unparsedArgs - *
                                                                              • _assign(): convert _unparsedArgs into requisition - *
                                                                              - * - * @param typed {string} The instruction as typed by the user so far - * @param options {object} A list of optional named parameters. Can be any of: - * flags: Flags for us to check against the predicates specified with the - * commands. Defaulted to keyboard.buildFlags({ }); - * if not specified. - * @constructor - */ -function CliRequisition(env, options) { - Requisition.call(this, env); - - if (options && options.flags) { - /** - * TODO: We were using a default of keyboard.buildFlags({ }); - * This allowed us to have commands that only existed in certain contexts - * - i.e. Javascript specific commands. - */ - this.flags = options.flags; - } -} -oop.inherits(CliRequisition, Requisition); -(function() { - /** - * Called by the UI when ever the user interacts with a command line input - * @param input A structure that details the state of the input field. - * It should look something like: { typed:a, cursor: { start:b, end:c } } - * Where a is the contents of the input field, and b and c are the start - * and end of the cursor/selection respectively. - */ - CliRequisition.prototype.update = function(input) { - this.input = input; - this._hints = []; - - var args = this._tokenize(input.typed); - this._split(args); - - if (this.commandAssignment.value) { - this._assign(args); - } - - this._updateHints(); - }; - - /** - * Return an array of Status scores so we can create a marked up - * version of the command line input. - */ - CliRequisition.prototype.getInputStatusMarkup = function() { - // 'scores' is an array which tells us what chars are errors - // Initialize with everything VALID - var scores = this.toString().split('').map(function(ch) { - return Status.VALID; - }); - // For all chars in all hints, check and upgrade the score - this._hints.forEach(function(hint) { - for (var i = hint.start; i <= hint.end; i++) { - if (hint.status > scores[i]) { - scores[i] = hint.status; - } - } - }, this); - return scores; - }; - - /** - * Reconstitute the input from the args - */ - CliRequisition.prototype.toString = function() { - return this.getAssignments(true).map(function(assignment) { - return assignment.toString(); - }, this).join(''); - }; - - var superUpdateHints = CliRequisition.prototype._updateHints; - /** - * Marks up hints in a number of ways: - * - Makes INCOMPLETE hints that are not near the cursor INVALID since - * they can't be completed by typing - * - Finds the most severe hint, and annotates the array with it - * - Finds the hint to display, and also annotates the array with it - * TODO: I'm wondering if array annotation is evil and we should replace - * this with an object. Need to find out more. - */ - CliRequisition.prototype._updateHints = function() { - superUpdateHints.call(this); - - // Not knowing about cursor positioning, the requisition and assignments - // can't know this, but anything they mark as INCOMPLETE is actually - // INVALID unless the cursor is actually inside that argument. - var c = this.input.cursor; - this._hints.forEach(function(hint) { - var startInHint = c.start >= hint.start && c.start <= hint.end; - var endInHint = c.end >= hint.start && c.end <= hint.end; - var inHint = startInHint || endInHint; - if (!inHint && hint.status === Status.INCOMPLETE) { - hint.status = Status.INVALID; - } - }, this); - - Hint.sort(this._hints); - }; - - /** - * Accessor for the hints array. - * While we could just use the hints property, using getHints() is - * preferred for symmetry with Requisition where it needs a function due to - * lack of an atomic update system. - */ - CliRequisition.prototype.getHints = function() { - return this._hints; - }; - - /** - * Look through the arguments attached to our assignments for the assignment - * at the given position. - */ - CliRequisition.prototype.getAssignmentAt = function(position) { - var assignments = this.getAssignments(true); - for (var i = 0; i < assignments.length; i++) { - var assignment = assignments[i]; - if (!assignment.arg) { - // There is no argument in this assignment, we've fallen off - // the end of the obvious answers - it must be this one. - return assignment; - } - if (assignment.isPositionCaptured(position)) { - return assignment; - } - } - - return assignment; - }; - - /** - * Split up the input taking into account ' and " - */ - CliRequisition.prototype._tokenize = function(typed) { - // For blank input, place a dummy empty argument into the list - if (typed == null || typed.length === 0) { - return [ new Argument(this, '', 0, 0, '', '') ]; - } - - var OUTSIDE = 1; // The last character was whitespace - var IN_SIMPLE = 2; // The last character was part of a parameter - var IN_SINGLE_Q = 3; // We're inside a single quote: ' - var IN_DOUBLE_Q = 4; // We're inside double quotes: " - - var mode = OUTSIDE; - - // First we un-escape. This list was taken from: - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Unicode - // We are generally converting to their real values except for \', \" - // and '\ ' which we are converting to unicode private characters so we - // can distinguish them from ', " and ' ', which have special meaning. - // They need swapping back post-split - see unescape2() - typed = typed - .replace(/\\\\/g, '\\') - .replace(/\\b/g, '\b') - .replace(/\\f/g, '\f') - .replace(/\\n/g, '\n') - .replace(/\\r/g, '\r') - .replace(/\\t/g, '\t') - .replace(/\\v/g, '\v') - .replace(/\\n/g, '\n') - .replace(/\\r/g, '\r') - .replace(/\\ /g, '\uF000') - .replace(/\\'/g, '\uF001') - .replace(/\\"/g, '\uF002'); - - function unescape2(str) { - return str - .replace(/\uF000/g, ' ') - .replace(/\uF001/g, '\'') - .replace(/\uF002/g, '"'); - } - - var i = 0; - var start = 0; // Where did this section start? - var prefix = ''; - var args = []; - - while (true) { - if (i >= typed.length) { - // There is nothing else to read - tidy up - if (mode !== OUTSIDE) { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, start, i, prefix, '')); - } - else { - if (i !== start) { - // There's a bunch of whitespace at the end of the - // command add it to the last argument's suffix, - // creating an empty argument if needed. - var extra = typed.substring(start, i); - var lastArg = args[args.length - 1]; - if (!lastArg) { - lastArg = new Argument(this, '', i, i, extra, ''); - args.push(lastArg); - } - else { - lastArg.suffix += extra; - } - } - } - break; - } - - var c = typed[i]; - switch (mode) { - case OUTSIDE: - if (c === '\'') { - prefix = typed.substring(start, i + 1); - mode = IN_SINGLE_Q; - start = i + 1; - } - else if (c === '"') { - prefix = typed.substring(start, i + 1); - mode = IN_DOUBLE_Q; - start = i + 1; - } - else if (/ /.test(c)) { - // Still whitespace, do nothing - } - else { - prefix = typed.substring(start, i); - mode = IN_SIMPLE; - start = i; - } - break; - - case IN_SIMPLE: - // There is an edge case of xx'xx which we are assuming to - // be a single parameter (and same with ") - if (c === ' ') { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, - start, i, prefix, '')); - mode = OUTSIDE; - start = i; - prefix = ''; - } - break; - - case IN_SINGLE_Q: - if (c === '\'') { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, - start - 1, i + 1, prefix, c)); - mode = OUTSIDE; - start = i + 1; - prefix = ''; - } - break; - - case IN_DOUBLE_Q: - if (c === '"') { - var str = unescape2(typed.substring(start, i)); - args.push(new Argument(this, str, - start - 1, i + 1, prefix, c)); - mode = OUTSIDE; - start = i + 1; - prefix = ''; - } - break; - } - - i++; - } - - return args; - }; - - /** - * Looks in the canon for a command extension that matches what has been - * typed at the command line. - */ - CliRequisition.prototype._split = function(args) { - var argsUsed = 1; - var arg; - - while (argsUsed <= args.length) { - var arg = Argument.merge(args, 0, argsUsed); - this.commandAssignment.setArgument(arg); - - if (!this.commandAssignment.value) { - // Not found. break with value == null - break; - } - - /* - // Previously we needed a way to hide commands depending context. - // We have not resurrected that feature yet. - if (!keyboard.flagsMatch(command.predicates, this.flags)) { - // If the predicates say 'no match' then go LA LA LA - command = null; - break; - } - */ - - if (this.commandAssignment.value.exec) { - // Valid command, break with command valid - for (var i = 0; i < argsUsed; i++) { - args.shift(); - } - break; - } - - argsUsed++; - } - }; - - /** - * Work out which arguments are applicable to which parameters. - *

                                                                              This takes #_command.params and #_unparsedArgs and creates a map of - * param names to 'assignment' objects, which have the following properties: - *

                                                                                - *
                                                                              • param - The matching parameter. - *
                                                                              • index - Zero based index into where the match came from on the input - *
                                                                              • value - The matching input - *
                                                                              - */ - CliRequisition.prototype._assign = function(args) { - if (args.length === 0) { - this.setDefaultValues(); - return; - } - - // Create an error if the command does not take parameters, but we have - // been given them ... - if (this.assignmentCount === 0) { - // TODO: previously we were doing some extra work to avoid this if - // we determined that we had args that were all whitespace, but - // probably given our tighter tokenize() this won't be an issue? - this._hints.push(new Hint(Status.INVALID, - this.commandAssignment.value.name + - ' does not take any parameters', - Argument.merge(args))); - return; - } - - // Special case: if there is only 1 parameter, and that's of type - // text we put all the params into the first param - if (this.assignmentCount === 1) { - var assignment = this.getAssignment(0); - if (assignment.param.type.name === 'text') { - assignment.setArgument(Argument.merge(args)); - return; - } - } - - var assignments = this.cloneAssignments(); - var names = this.getParameterNames(); - - // Extract all the named parameters - var used = []; - assignments.forEach(function(assignment) { - var namedArgText = '--' + assignment.name; - - var i = 0; - while (true) { - var arg = args[i]; - if (namedArgText !== arg.text) { - i++; - if (i >= args.length) { - break; - } - continue; - } - - // boolean parameters don't have values, default to false - if (assignment.param.type.name === 'boolean') { - assignment.setValue(true); - } - else { - if (i + 1 < args.length) { - // Missing value portion of this named param - this._hints.push(new Hint(Status.INCOMPLETE, - 'Missing value for: ' + namedArgText, - args[i])); - } - else { - args.splice(i + 1, 1); - assignment.setArgument(args[i + 1]); - } - } - - lang.arrayRemove(names, assignment.name); - args.splice(i, 1); - // We don't need to i++ if we splice - } - }, this); - - // What's left are positional parameters assign in order - names.forEach(function(name) { - var assignment = this.getAssignment(name); - if (args.length === 0) { - // No more values - assignment.setValue(undefined); // i.e. default - } - else { - var arg = args[0]; - args.splice(0, 1); - assignment.setArgument(arg); - } - }, this); - - if (args.length > 0) { - var remaining = Argument.merge(args); - this._hints.push(new Hint(Status.INVALID, - 'Input \'' + remaining.text + '\' makes no sense.', - remaining)); - } - }; - -})(); -exports.CliRequisition = CliRequisition; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/ui/settings', ['require', 'exports', 'module' , 'pilot/types', 'pilot/types/basic'], function(require, exports, module) { - - -var types = require("pilot/types"); -var SelectionType = require('pilot/types/basic').SelectionType; - -var direction = new SelectionType({ - name: 'direction', - data: [ 'above', 'below' ] -}); - -var hintDirectionSetting = { - name: "hintDirection", - description: "Are hints shown above or below the command line?", - type: "direction", - defaultValue: "above" -}; - -var outputDirectionSetting = { - name: "outputDirection", - description: "Is the output window shown above or below the command line?", - type: "direction", - defaultValue: "above" -}; - -var outputHeightSetting = { - name: "outputHeight", - description: "What height should the output panel be?", - type: "number", - defaultValue: 300 -}; - -exports.startup = function(data, reason) { - types.registerType(direction); - data.env.settings.addSetting(hintDirectionSetting); - data.env.settings.addSetting(outputDirectionSetting); - data.env.settings.addSetting(outputHeightSetting); -}; - -exports.shutdown = function(data, reason) { - types.unregisterType(direction); - data.env.settings.removeSetting(hintDirectionSetting); - data.env.settings.removeSetting(outputDirectionSetting); - data.env.settings.removeSetting(outputHeightSetting); -}; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/ui/cli_view', ['require', 'exports', 'module' , 'text!cockpit/ui/cli_view.css', 'pilot/event', 'pilot/dom', 'pilot/keys', 'pilot/canon', 'pilot/types', 'cockpit/cli', 'cockpit/ui/request_view'], function(require, exports, module) { - - -var editorCss = require("text!cockpit/ui/cli_view.css"); -var event = require("pilot/event"); -var dom = require("pilot/dom"); - -dom.importCssString(editorCss); - -var event = require("pilot/event"); -var keys = require("pilot/keys"); -var canon = require("pilot/canon"); -var Status = require('pilot/types').Status; - -var CliRequisition = require('cockpit/cli').CliRequisition; -var Hint = require('cockpit/cli').Hint; -var RequestView = require('cockpit/ui/request_view').RequestView; - -var NO_HINT = new Hint(Status.VALID, '', 0, 0); - -/** - * On startup we need to: - * 1. Add 3 sets of elements to the DOM for: - * - command line output - * - input hints - * - completion - * 2. Attach a set of events so the command line works - */ -exports.startup = function(data, reason) { - var cli = new CliRequisition(data.env); - var cliView = new CliView(cli, data.env); - data.env.cli = cli; -}; - -/** - * A class to handle the simplest UI implementation - */ -function CliView(cli, env) { - cli.cliView = this; - this.cli = cli; - this.doc = document; - this.win = dom.getParentWindow(this.doc); - this.env = env; - - // TODO: we should have a better way to specify command lines??? - this.element = this.doc.getElementById('cockpitInput'); - if (!this.element) { - // console.log('No element with an id of cockpit. Bailing on cli'); - return; - } - - this.settings = env.settings; - this.hintDirection = this.settings.getSetting('hintDirection'); - this.outputDirection = this.settings.getSetting('outputDirection'); - this.outputHeight = this.settings.getSetting('outputHeight'); - - // If the requisition tells us something has changed, we use this to know - // if we should ignore it - this.isUpdating = false; - - this.createElements(); - this.update(); -} -CliView.prototype = { - /** - * Create divs for completion, hints and output - */ - createElements: function() { - var input = this.element; - - this.element.spellcheck = false; - - this.output = this.doc.getElementById('cockpitOutput'); - this.popupOutput = (this.output == null); - if (!this.output) { - this.output = this.doc.createElement('div'); - this.output.id = 'cockpitOutput'; - this.output.className = 'cptOutput'; - input.parentNode.insertBefore(this.output, input.nextSibling); - - var setMaxOutputHeight = function() { - this.output.style.maxHeight = this.outputHeight.get() + 'px'; - }.bind(this); - this.outputHeight.addEventListener('change', setMaxOutputHeight); - setMaxOutputHeight(); - } - - this.completer = this.doc.createElement('div'); - this.completer.className = 'cptCompletion VALID'; - - this.completer.style.color = dom.computedStyle(input, "color"); - this.completer.style.fontSize = dom.computedStyle(input, "fontSize"); - this.completer.style.fontFamily = dom.computedStyle(input, "fontFamily"); - this.completer.style.fontWeight = dom.computedStyle(input, "fontWeight"); - this.completer.style.fontStyle = dom.computedStyle(input, "fontStyle"); - input.parentNode.insertBefore(this.completer, input.nextSibling); - - // Transfer background styling to the completer. - this.completer.style.backgroundColor = input.style.backgroundColor; - input.style.backgroundColor = 'transparent'; - - this.hinter = this.doc.createElement('div'); - this.hinter.className = 'cptHints'; - input.parentNode.insertBefore(this.hinter, input.nextSibling); - - var resizer = this.resizer.bind(this); - event.addListener(this.win, 'resize', resizer); - this.hintDirection.addEventListener('change', resizer); - this.outputDirection.addEventListener('change', resizer); - resizer(); - - canon.addEventListener('output', function(ev) { - new RequestView(ev.request, this); - }.bind(this)); - event.addCommandKeyListener(input, this.onCommandKey.bind(this)); - event.addListener(input, 'keyup', this.onKeyUp.bind(this)); - - // cursor position affects hint severity. TODO: shortcuts for speed - event.addListener(input, 'mouseup', function(ev) { - this.isUpdating = true; - this.update(); - this.isUpdating = false; - }.bind(this)); - - this.cli.addEventListener('argumentChange', this.onArgChange.bind(this)); - - event.addListener(input, "focus", function() { - dom.addCssClass(this.output, "cptFocusPopup"); - dom.addCssClass(this.hinter, "cptFocusPopup"); - }.bind(this)); - - function hideOutput() { - dom.removeCssClass(this.output, "cptFocusPopup"); - dom.removeCssClass(this.hinter, "cptFocusPopup"); - }; - event.addListener(input, "blur", hideOutput.bind(this)); - hideOutput.call(this); - }, - - /** - * We need to see the output of the latest command entered - */ - scrollOutputToBottom: function() { - // Certain browsers have a bug such that scrollHeight is too small - // when content does not fill the client area of the element - var scrollHeight = Math.max(this.output.scrollHeight, this.output.clientHeight); - this.output.scrollTop = scrollHeight - this.output.clientHeight; - }, - - /** - * To be called on window resize or any time we want to align the elements - * with the input box. - */ - resizer: function() { - var rect = this.element.getClientRects()[0]; - - this.completer.style.top = rect.top + 'px'; - var height = rect.bottom - rect.top; - this.completer.style.height = height + 'px'; - this.completer.style.lineHeight = height + 'px'; - this.completer.style.left = rect.left + 'px'; - var width = rect.right - rect.left; - this.completer.style.width = width + 'px'; - - if (this.hintDirection.get() === 'below') { - this.hinter.style.top = rect.bottom + 'px'; - this.hinter.style.bottom = 'auto'; - } - else { - this.hinter.style.top = 'auto'; - this.hinter.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; - } - this.hinter.style.left = (rect.left + 30) + 'px'; - this.hinter.style.maxWidth = (width - 110) + 'px'; - - if (this.popupOutput) { - if (this.outputDirection.get() === 'below') { - this.output.style.top = rect.bottom + 'px'; - this.output.style.bottom = 'auto'; - } - else { - this.output.style.top = 'auto'; - this.output.style.bottom = (this.doc.documentElement.clientHeight - rect.top) + 'px'; - } - this.output.style.left = rect.left + 'px'; - this.output.style.width = (width - 80) + 'px'; - } - }, - - /** - * Ensure that TAB isn't handled by the browser - */ -onCommandKey: function(ev, hashId, keyCode) { - var stopEvent; - if (keyCode === keys.TAB || - keyCode === keys.UP || - keyCode === keys.DOWN) { - stopEvent = true; - } else if (hashId != 0 || keyCode != 0) { - stopEvent = canon.execKeyCommand(this.env, 'cli', hashId, keyCode); - } - stopEvent && event.stopEvent(ev); - }, - - /** - * The main keyboard processing loop - */ - onKeyUp: function(ev) { - var handled; - /* - var handled = keyboardManager.processKeyEvent(ev, this, { - isCommandLine: true, isKeyUp: true - }); - */ - - // RETURN does a special exec/highlight thing - if (ev.keyCode === keys.RETURN) { - var worst = this.cli.getWorstHint(); - // Deny RETURN unless the command might work - if (worst.status === Status.VALID) { - this.cli.exec(); - this.element.value = ''; - } - else { - // If we've denied RETURN because the command was not VALID, - // select the part of the command line that is causing problems - // TODO: if there are 2 errors are we picking the right one? - dom.setSelectionStart(this.element, worst.start); - dom.setSelectionEnd(this.element, worst.end); - } - } - - this.update(); - - // Special actions which delegate to the assignment - var current = this.cli.getAssignmentAt(dom.getSelectionStart(this.element)); - if (current) { - // TAB does a special complete thing - if (ev.keyCode === keys.TAB) { - current.complete(); - this.update(); - } - - // UP/DOWN look for some history - if (ev.keyCode === keys.UP) { - current.increment(); - this.update(); - } - if (ev.keyCode === keys.DOWN) { - current.decrement(); - this.update(); - } - } - - return handled; - }, - - /** - * Actually parse the input and make sure we're all up to date - */ - update: function() { - this.isUpdating = true; - var input = { - typed: this.element.value, - cursor: { - start: dom.getSelectionStart(this.element), - end: dom.getSelectionEnd(this.element.selectionEnd) - } - }; - this.cli.update(input); - - var display = this.cli.getAssignmentAt(input.cursor.start).getHint(); - - // 1. Update the completer with prompt/error marker/TAB info - dom.removeCssClass(this.completer, Status.VALID.toString()); - dom.removeCssClass(this.completer, Status.INCOMPLETE.toString()); - dom.removeCssClass(this.completer, Status.INVALID.toString()); - - var completion = '> '; - if (this.element.value.length > 0) { - var scores = this.cli.getInputStatusMarkup(); - completion += this.markupStatusScore(scores); - } - - // Display the "-> prediction" at the end of the completer - if (this.element.value.length > 0 && - display.predictions && display.predictions.length > 0) { - var tab = display.predictions[0]; - completion += '  ⇥ ' + (tab.name ? tab.name : tab); - } - this.completer.innerHTML = completion; - dom.addCssClass(this.completer, this.cli.getWorstHint().status.toString()); - - // 2. Update the hint element - var hint = ''; - if (this.element.value.length !== 0) { - hint += display.message; - if (display.predictions && display.predictions.length > 0) { - hint += ': [ '; - display.predictions.forEach(function(prediction) { - hint += (prediction.name ? prediction.name : prediction); - hint += ' | '; - }, this); - hint = hint.replace(/\| $/, ']'); - } - } - - this.hinter.innerHTML = hint; - if (hint.length === 0) { - dom.addCssClass(this.hinter, 'cptNoPopup'); - } - else { - dom.removeCssClass(this.hinter, 'cptNoPopup'); - } - - this.isUpdating = false; - }, - - /** - * Markup an array of Status values with spans - */ - markupStatusScore: function(scores) { - var completion = ''; - // Create mark-up - var i = 0; - var lastStatus = -1; - while (true) { - if (lastStatus !== scores[i]) { - completion += ''; - lastStatus = scores[i]; - } - completion += this.element.value[i]; - i++; - if (i === this.element.value.length) { - completion += ''; - break; - } - if (lastStatus !== scores[i]) { - completion += ''; - } - } - - return completion; - }, - - /** - * Update the input element to reflect the changed argument - */ - onArgChange: function(ev) { - if (this.isUpdating) { - return; - } - - var prefix = this.element.value.substring(0, ev.argument.start); - var suffix = this.element.value.substring(ev.argument.end); - var insert = typeof ev.text === 'string' ? ev.text : ev.text.name; - this.element.value = prefix + insert + suffix; - // Fix the cursor. - var insertEnd = (prefix + insert).length; - this.element.selectionStart = insertEnd; - this.element.selectionEnd = insertEnd; - } -}; -exports.CliView = CliView; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/ui/request_view', ['require', 'exports', 'module' , 'pilot/dom', 'pilot/event', 'text!cockpit/ui/request_view.html', 'pilot/domtemplate', 'text!cockpit/ui/request_view.css'], function(require, exports, module) { - -var dom = require("pilot/dom"); -var event = require("pilot/event"); -var requestViewHtml = require("text!cockpit/ui/request_view.html"); -var Templater = require("pilot/domtemplate").Templater; - -var requestViewCss = require("text!cockpit/ui/request_view.css"); -dom.importCssString(requestViewCss); - -/** - * Pull the HTML into the DOM, but don't add it to the document - */ -var templates = document.createElement('div'); -templates.innerHTML = requestViewHtml; -var row = templates.querySelector('.cptRow'); - -/** - * Work out the path for images. - * TODO: This should probably live in some utility area somewhere - */ -function imageUrl(path) { - var dataUrl; - try { - dataUrl = require('text!cockpit/ui/' + path); - } catch (e) { } - if (dataUrl) { - return dataUrl; - } - - var filename = module.id.split('/').pop() + '.js'; - var imagePath; - - if (module.uri.substr(-filename.length) !== filename) { - console.error('Can\'t work out path from module.uri/module.id'); - return path; - } - - if (module.uri) { - var end = module.uri.length - filename.length - 1; - return module.uri.substr(0, end) + "/" + path; - } - - return filename + path; -} - - -/** - * Adds a row to the CLI output display - */ -function RequestView(request, cliView) { - this.request = request; - this.cliView = cliView; - this.imageUrl = imageUrl; - - // Elements attached to this by the templater. For info only - this.rowin = null; - this.rowout = null; - this.output = null; - this.hide = null; - this.show = null; - this.duration = null; - this.throb = null; - - new Templater().processNode(row.cloneNode(true), this); - - this.cliView.output.appendChild(this.rowin); - this.cliView.output.appendChild(this.rowout); - - this.request.addEventListener('output', this.onRequestChange.bind(this)); -}; - -RequestView.prototype = { - /** - * A single click on an invocation line in the console copies the command to - * the command line - */ - copyToInput: function() { - this.cliView.element.value = this.request.typed; - }, - - /** - * A double click on an invocation line in the console executes the command - */ - executeRequest: function(ev) { - this.cliView.cli.update({ - typed: this.request.typed, - cursor: { start:0, end:0 } - }); - this.cliView.cli.exec(); - }, - - hideOutput: function(ev) { - this.output.style.display = 'none'; - dom.addCssClass(this.hide, 'cmd_hidden'); - dom.removeCssClass(this.show, 'cmd_hidden'); - - event.stopPropagation(ev); - }, - - showOutput: function(ev) { - this.output.style.display = 'block'; - dom.removeCssClass(this.hide, 'cmd_hidden'); - dom.addCssClass(this.show, 'cmd_hidden'); - - event.stopPropagation(ev); - }, - - remove: function(ev) { - this.cliView.output.removeChild(this.rowin); - this.cliView.output.removeChild(this.rowout); - event.stopPropagation(ev); - }, - - onRequestChange: function(ev) { - this.duration.innerHTML = this.request.duration ? - 'completed in ' + (this.request.duration / 1000) + ' sec ' : - ''; - - this.output.innerHTML = ''; - this.request.outputs.forEach(function(output) { - var node; - if (typeof output == 'string') { - node = document.createElement('p'); - node.innerHTML = output; - } else { - node = output; - } - this.output.appendChild(node); - }, this); - this.cliView.scrollOutputToBottom(); - - dom.setCssClass(this.output, 'cmd_error', this.request.error); - - this.throb.style.display = this.request.completed ? 'none' : 'block'; - } -}; -exports.RequestView = RequestView; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is DomTemplate. - * - * The Initial Developer of the Original Code is Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Joe Walker (jwalker@mozilla.com) (original author) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('pilot/domtemplate', ['require', 'exports', 'module' ], function(require, exports, module) { - - -// WARNING: do not 'use_strict' without reading the notes in envEval; - -/** - * A templater that allows one to quickly template DOM nodes. - */ -function Templater() { - this.scope = []; -}; - -/** - * Recursive function to walk the tree processing the attributes as it goes. - * @param node the node to process. If you pass a string in instead of a DOM - * element, it is assumed to be an id for use with document.getElementById() - * @param data the data to use for node processing. - */ -Templater.prototype.processNode = function(node, data) { - if (typeof node === 'string') { - node = document.getElementById(node); - } - if (data === null || data === undefined) { - data = {}; - } - this.scope.push(node.nodeName + (node.id ? '#' + node.id : '')); - try { - // Process attributes - if (node.attributes && node.attributes.length) { - // We need to handle 'foreach' and 'if' first because they might stop - // some types of processing from happening, and foreach must come first - // because it defines new data on which 'if' might depend. - if (node.hasAttribute('foreach')) { - this.processForEach(node, data); - return; - } - if (node.hasAttribute('if')) { - if (!this.processIf(node, data)) { - return; - } - } - // Only make the node available once we know it's not going away - data.__element = node; - // It's good to clean up the attributes when we've processed them, - // but if we do it straight away, we mess up the array index - var attrs = Array.prototype.slice.call(node.attributes); - for (var i = 0; i < attrs.length; i++) { - var value = attrs[i].value; - var name = attrs[i].name; - this.scope.push(name); - try { - if (name === 'save') { - // Save attributes are a setter using the node - value = this.stripBraces(value); - this.property(value, data, node); - node.removeAttribute('save'); - } else if (name.substring(0, 2) === 'on') { - // Event registration relies on property doing a bind - value = this.stripBraces(value); - var func = this.property(value, data); - if (typeof func !== 'function') { - this.handleError('Expected ' + value + - ' to resolve to a function, but got ' + typeof func); - } - node.removeAttribute(name); - var capture = node.hasAttribute('capture' + name.substring(2)); - node.addEventListener(name.substring(2), func, capture); - if (capture) { - node.removeAttribute('capture' + name.substring(2)); - } - } else { - // Replace references in all other attributes - var self = this; - var newValue = value.replace(/\$\{[^}]*\}/g, function(path) { - return self.envEval(path.slice(2, -1), data, value); - }); - // Remove '_' prefix of attribute names so the DOM won't try - // to use them before we've processed the template - if (name.charAt(0) === '_') { - node.removeAttribute(name); - node.setAttribute(name.substring(1), newValue); - } else if (value !== newValue) { - attrs[i].value = newValue; - } - } - } finally { - this.scope.pop(); - } - } - } - - // Loop through our children calling processNode. First clone them, so the - // set of nodes that we visit will be unaffected by additions or removals. - var childNodes = Array.prototype.slice.call(node.childNodes); - for (var j = 0; j < childNodes.length; j++) { - this.processNode(childNodes[j], data); - } - - if (node.nodeType === Node.TEXT_NODE) { - this.processTextNode(node, data); - } - } finally { - this.scope.pop(); - } -}; - -/** - * Handle - * @param node An element with an 'if' attribute - * @param data The data to use with envEval - * @returns true if processing should continue, false otherwise - */ -Templater.prototype.processIf = function(node, data) { - this.scope.push('if'); - try { - var originalValue = node.getAttribute('if'); - var value = this.stripBraces(originalValue); - var recurse = true; - try { - var reply = this.envEval(value, data, originalValue); - recurse = !!reply; - } catch (ex) { - this.handleError('Error with \'' + value + '\'', ex); - recurse = false; - } - if (!recurse) { - node.parentNode.removeChild(node); - } - node.removeAttribute('if'); - return recurse; - } finally { - this.scope.pop(); - } -}; - -/** - * Handle and the special case of - * - * @param node An element with a 'foreach' attribute - * @param data The data to use with envEval - */ -Templater.prototype.processForEach = function(node, data) { - this.scope.push('foreach'); - try { - var originalValue = node.getAttribute('foreach'); - var value = originalValue; - - var paramName = 'param'; - if (value.charAt(0) === '$') { - // No custom loop variable name. Use the default: 'param' - value = this.stripBraces(value); - } else { - // Extract the loop variable name from 'NAME in ${ARRAY}' - var nameArr = value.split(' in '); - paramName = nameArr[0].trim(); - value = this.stripBraces(nameArr[1].trim()); - } - node.removeAttribute('foreach'); - try { - var self = this; - // Process a single iteration of a loop - var processSingle = function(member, clone, ref) { - ref.parentNode.insertBefore(clone, ref); - data[paramName] = member; - self.processNode(clone, data); - delete data[paramName]; - }; - - // processSingle is no good for nodes where we want to work on - // the childNodes rather than the node itself - var processAll = function(scope, member) { - self.scope.push(scope); - try { - if (node.nodeName === 'LOOP') { - for (var i = 0; i < node.childNodes.length; i++) { - var clone = node.childNodes[i].cloneNode(true); - processSingle(member, clone, node); - } - } else { - var clone = node.cloneNode(true); - clone.removeAttribute('foreach'); - processSingle(member, clone, node); - } - } finally { - self.scope.pop(); - } - }; - - var reply = this.envEval(value, data, originalValue); - if (Array.isArray(reply)) { - reply.forEach(function(data, i) { - processAll('' + i, data); - }, this); - } else { - for (var param in reply) { - if (reply.hasOwnProperty(param)) { - processAll(param, param); - } - } - } - node.parentNode.removeChild(node); - } catch (ex) { - this.handleError('Error with \'' + value + '\'', ex); - } - } finally { - this.scope.pop(); - } -}; - -/** - * Take a text node and replace it with another text node with the ${...} - * sections parsed out. We replace the node by altering node.parentNode but - * we could probably use a DOM Text API to achieve the same thing. - * @param node The Text node to work on - * @param data The data to use in calls to envEval - */ -Templater.prototype.processTextNode = function(node, data) { - // Replace references in other attributes - var value = node.data; - // We can't use the string.replace() with function trick (see generic - // attribute processing in processNode()) because we need to support - // functions that return DOM nodes, so we can't have the conversion to a - // string. - // Instead we process the string as an array of parts. In order to split - // the string up, we first replace '${' with '\uF001$' and '}' with '\uF002' - // We can then split using \uF001 or \uF002 to get an array of strings - // where scripts are prefixed with $. - // \uF001 and \uF002 are just unicode chars reserved for private use. - value = value.replace(/\$\{([^}]*)\}/g, '\uF001$$$1\uF002'); - var parts = value.split(/\uF001|\uF002/); - if (parts.length > 1) { - parts.forEach(function(part) { - if (part === null || part === undefined || part === '') { - return; - } - if (part.charAt(0) === '$') { - part = this.envEval(part.slice(1), data, node.data); - } - // It looks like this was done a few lines above but see envEval - if (part === null) { - part = "null"; - } - if (part === undefined) { - part = "undefined"; - } - // if (isDOMElement(part)) { ... } - if (typeof part.cloneNode !== 'function') { - part = node.ownerDocument.createTextNode(part.toString()); - } - node.parentNode.insertBefore(part, node); - }, this); - node.parentNode.removeChild(node); - } -}; - -/** - * Warn of string does not begin '${' and end '}' - * @param str the string to check. - * @return The string stripped of ${ and }, or untouched if it does not match - */ -Templater.prototype.stripBraces = function(str) { - if (!str.match(/\$\{.*\}/g)) { - this.handleError('Expected ' + str + ' to match ${...}'); - return str; - } - return str.slice(2, -1); -}; - -/** - * Combined getter and setter that works with a path through some data set. - * For example: - *
                                                                                - *
                                                                              • property('a.b', { a: { b: 99 }}); // returns 99 - *
                                                                              • property('a', { a: { b: 99 }}); // returns { b: 99 } - *
                                                                              • property('a', { a: { b: 99 }}, 42); // returns 99 and alters the - * input data to be { a: { b: 42 }} - *
                                                                              - * @param path An array of strings indicating the path through the data, or - * a string to be cut into an array using split('.') - * @param data An object to look in for the path argument - * @param newValue (optional) If defined, this value will replace the - * original value for the data at the path specified. - * @return The value pointed to by path before any - * newValue is applied. - */ -Templater.prototype.property = function(path, data, newValue) { - this.scope.push(path); - try { - if (typeof path === 'string') { - path = path.split('.'); - } - var value = data[path[0]]; - if (path.length === 1) { - if (newValue !== undefined) { - data[path[0]] = newValue; - } - if (typeof value === 'function') { - return function() { - return value.apply(data, arguments); - }; - } - return value; - } - if (!value) { - this.handleError('Can\'t find path=' + path); - return null; - } - return this.property(path.slice(1), value, newValue); - } finally { - this.scope.pop(); - } -}; - -/** - * Like eval, but that creates a context of the variables in env in - * which the script is evaluated. - * WARNING: This script uses 'with' which is generally regarded to be evil. - * The alternative is to create a Function at runtime that takes X parameters - * according to the X keys in the env object, and then call that function using - * the values in the env object. This is likely to be slow, but workable. - * @param script The string to be evaluated. - * @param env The environment in which to eval the script. - * @param context Optional debugging string in case of failure - * @return The return value of the script, or the error message if the script - * execution failed. - */ -Templater.prototype.envEval = function(script, env, context) { - with (env) { - try { - this.scope.push(context); - return eval(script); - } catch (ex) { - this.handleError('Template error evaluating \'' + script + '\'', ex); - return script; - } finally { - this.scope.pop(); - } - } -}; - -/** - * A generic way of reporting errors, for easy overloading in different - * environments. - * @param message the error message to report. - * @param ex optional associated exception. - */ -Templater.prototype.handleError = function(message, ex) { - this.logError(message); - this.logError('In: ' + this.scope.join(' > ')); - if (ex) { - this.logError(ex); - } -}; - - -/** - * A generic way of reporting errors, for easy overloading in different - * environments. - * @param message the error message to report. - */ -Templater.prototype.logError = function(message) { - window.console && window.console.log && console.log(message); -}; - -exports.Templater = Templater; - - -}); -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Skywriter. - * - * The Initial Developer of the Original Code is - * Mozilla. - * Portions created by the Initial Developer are Copyright (C) 2009 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Skywriter Team (skywriter@mozilla.com) - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -define('cockpit/commands/basic', ['require', 'exports', 'module' , 'pilot/canon'], function(require, exports, module) { - - -var canon = require('pilot/canon'); - -/** - * '!' command - */ -var bangCommandSpec = { - name: 'sh', - description: 'Execute a system command (requires server support)', - params: [ - { - name: 'command', - type: 'text', - description: 'The string to send to the os shell.' - } - ], - exec: function(env, args, request) { - var req = new XMLHttpRequest(); - req.open('GET', '/exec?args=' + args.command, true); - req.onreadystatechange = function(ev) { - if (req.readyState == 4) { - if (req.status == 200) { - request.done('
                                                                              ' + req.responseText + '
                                                                              '); - } - } - }; - req.send(null); - } -}; - -var canon = require('pilot/canon'); - -exports.startup = function(data, reason) { - canon.addCommand(bangCommandSpec); -}; - -exports.shutdown = function(data, reason) { - canon.removeCommand(bangCommandSpec); -}; - - -}); -define("text!cockpit/ui/cli_view.css", [], "" + - "#cockpitInput { padding-left: 16px; }" + - "" + - ".cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }" + - "" + - ".cptCompletion { padding: 0; position: absolute; z-index: -1000; }" + - ".cptCompletion.VALID { background: #FFF; }" + - ".cptCompletion.INCOMPLETE { background: #DDD; }" + - ".cptCompletion.INVALID { background: #DDD; }" + - ".cptCompletion span { color: #FFF; }" + - ".cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }" + - ".cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }" + - "span.cptPrompt { color: #66F; font-weight: bold; }" + - "" + - "" + - ".cptHints {" + - " color: #000;" + - " position: absolute;" + - " border: 1px solid rgba(230, 230, 230, 0.8);" + - " background: rgba(250, 250, 250, 0.8);" + - " -moz-border-radius-topleft: 10px;" + - " -moz-border-radius-topright: 10px;" + - " border-top-left-radius: 10px; border-top-right-radius: 10px;" + - " z-index: 1000;" + - " padding: 8px;" + - " display: none;" + - "}" + - "" + - ".cptFocusPopup { display: block; }" + - ".cptFocusPopup.cptNoPopup { display: none; }" + - "" + - ".cptHints ul { margin: 0; padding: 0 15px; }" + - "" + - ".cptGt { font-weight: bold; font-size: 120%; }" + - ""); - -define("text!cockpit/ui/request_view.css", [], "" + - ".cptRowIn {" + - " display: box; display: -moz-box; display: -webkit-box;" + - " box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;" + - " box-align: center; -moz-box-align: center; -webkit-box-align: center;" + - " color: #333;" + - " background-color: #EEE;" + - " width: 100%;" + - " font-family: consolas, courier, monospace;" + - "}" + - ".cptRowIn > * { padding-left: 2px; padding-right: 2px; }" + - ".cptRowIn > img { cursor: pointer; }" + - ".cptHover { display: none; }" + - ".cptRowIn:hover > .cptHover { display: block; }" + - ".cptRowIn:hover > .cptHover.cptHidden { display: none; }" + - ".cptOutTyped {" + - " box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;" + - " font-weight: bold; color: #000; font-size: 120%;" + - "}" + - ".cptRowOutput { padding-left: 10px; line-height: 1.2em; }" + - ".cptRowOutput strong," + - ".cptRowOutput b," + - ".cptRowOutput th," + - ".cptRowOutput h1," + - ".cptRowOutput h2," + - ".cptRowOutput h3 { color: #000; }" + - ".cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }" + - ".cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }" + - ".cptRowOutput input[type=password]," + - ".cptRowOutput input[type=text]," + - ".cptRowOutput textarea {" + - " color: #000; font-size: 120%;" + - " background: transparent; padding: 3px;" + - " border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;" + - "}" + - ".cptRowOutput table," + - ".cptRowOutput td," + - ".cptRowOutput th { border: 0; padding: 0 2px; }" + - ".cptRowOutput .right { text-align: right; }" + - ""); - -define("text!cockpit/ui/request_view.html", [], "" + - "
                                                                              " + - " " + - "
                                                                              " + - "" + - " " + - "
                                                                              >
                                                                              " + - "
                                                                              ${request.typed}
                                                                              " + - "" + - " " + - "
                                                                              " + - " \"Hide" + - " \"Show" + - " \"Remove" + - "" + - "
                                                                              " + - "" + - " " + - "
                                                                              " + - "
                                                                              " + - " " + - "
                                                                              " + - "
                                                                              " + - ""); - -define("text!cockpit/ui/images/closer.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj9JREFUeNp0ks+LUlEUx7/vV1o8Z8wUx3IEHcQmiBiQlomjRNCiZpEuEqF/oEUwq/6EhvoHggmRcJUQBM1CRJAW0aLIaGQimZJxJsWxyV/P9/R1zzWlFl04vPvOPZ9z7rnnK5imidmKRCIq+zxgdoPZ1T/ut8xeM3tcKpW6s1hhBkaj0Qj7bDebTX+324WmadxvsVigqipcLleN/d4rFoulORiLxTZY8ItOp8MBCpYkiYPj8Xjus9vtlORWoVB4KcTjcQc732dLpSRXvCZaAws6Q4WDdqsO52kNH+oCRFGEz+f7ydwBKRgMPmTXi49GI1x2D/DsznesB06ws2eDbI7w9HYN6bVjvGss4KAjwDAMq81mM2SW5Wa/3weBbz42UL9uYnVpiO2Nr9ANHSGXib2Wgm9tCYIggGKJEVkvlwgi5/FQRmTLxO6hgJVzI1x0T/fJrBtHJxPeL6tI/fsZLA6ot8lkQi8HRVbw94gkWYI5MaHrOjcCGSNRxZosy9y5cErDzn0Dqx7gcwO8WtBp4PndI35GMYqiUMUvBL5yOBz8yRfFNpbPmqgcCFh/IuHa1nR/YXGM8+oUpFhihEQiwcdRLpfVRqOBtWXWq34Gra6AXq8Hp2piZcmKT4cKnE4nwuHwdByVSmWQz+d32WCTlHG/qaHHREN9kgi0sYQfv0R4PB4EAgESQDKXy72fSy6VSnHJVatVf71eR7vd5n66mtfrRSgU4pLLZrOlf7RKK51Ok8g3/yPyR5lMZi7y3wIMAME4EigHWgKnAAAAAElFTkSuQmCC"); - -define("text!cockpit/ui/images/dot_clear.gif", [], "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7"); - -define("text!cockpit/ui/images/minus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4xMrIJw5EAAAHcSURBVCjPhZIxSxtxGMZ/976XhJA/RA5EAyJcFksnp64hjUPBoXRyCYLQTyD0UxScu0nFwalCQSgFCVk7dXAwUAiBDA2RO4W7yN1x9+9gcyhU+pteHt4H3pfncay1LOl0OgY4BN4Ar/7KP4BvwNFwOIyWu87S2O12O8DxfD73oygiSRIAarUaxhhWV1fHwMFgMBiWxl6v9y6Koi+3t7ckSUKtVkNVAcjzvNRWVlYwxry9vLz86uzs7HjAZDKZGGstjUaDfxHHMSLC5ubmHdB2VfVwNpuZ5clxHPMcRVFwc3PTXFtbO3RFZHexWJCmabnweAaoVqvlv4vFAhHZdVX1ZZqmOI5DURR8fz/lxbp9Yrz+7bD72SfPcwBU1XdF5N5aWy2KgqIoeBzPEnWVLMseYnAcRERdVR27rrsdxzGqyutP6898+GBsNBqo6i9XVS88z9sOggAR4X94noeqXoiIHPm+H9XrdYIgIAxDwjAkTVPCMESzBy3LMprNJr7v34nIkV5dXd2fn59fG2P2siwjSRIqlQrWWlSVJFcqlQqtVot2u40xZu/s7OxnWbl+v98BjkejkT+dTgmCoDxtY2ODra2tMXBweno6fNJVgP39fQN8eKbkH09OTsqS/wHFRdHPfTSfjwAAAABJRU5ErkJggg=="); - -define("text!cockpit/ui/images/pinaction.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAClklEQVQ4EX1TXUhUQRQ+Z3Zmd+9uN1q2P3UpZaEwcikKekkqLKggKHJ96MHe9DmLkCDa9U198Id8kErICmIlRAN96UdE6QdBW/tBA5Uic7E0zN297L17p5mb1zYjD3eYc+d83zlnON8g5xzWNUSEdUBkHTJasRWySPP7fw3hfwkk2GoNsc0vOaJRHo1GV/GiMctkTIJRFlpZli8opK+htmf83gXeG63oteOtra0u25e7TYJIJELb26vYCACTgUe1lXV86BTn745l+MsyHqs53S/Aq4VEUa9Y6ko14eYY4u3AyM3HYwdKU35DZyblGR2+qq6W0X2Nnh07xynnVYpHORx/E1/GvvqaAZUayjMjdM2f/Lgr5E+fV93zR4u3zKCLughsZqKwAzAxaz6dPY6JgjLUF+eSP5OpjmAw2E8DvldHSvJMKPg08aRor1tc4BuALu6mOwGWdQC3mKIqRsC8mKd8wYfD78/earzSYzdMDW9QgKb0Is8CBY1mQXOiaXAHEpMDE5XTJqIq4EiyxUqKlpfkF0pyV1OTAoFAhmTmyCCoDsZNZvIkUjELQpipo0sQqYZAswZHwsEEE10M0pq2SSZY9HqNcDicJcNTpBvQJz40UbSOTh1B8bDpuY0w9Hb3kkn9lPAlBLfhfD39XTtX/blFJqiqrjbkTi63Hbofj2uL4GMsmzFgbDJ/vmMgv/lB4syJ0oXO7d3j++vio6GFsYmD6cHJreWc3/jRVVHhsOYvM8iZ36mtjPDBk/xDZE8CoHlbrlAssbTxDdDJvdb536L7I6S7Vy++6Gi4Xi9BsUthJRaLOYSPz4XALKI4j4iObd/e5UtDKUjZzYyYRyGAJv01Zj8kC5cbs5WY83hQnv0DzCXl+r8APElkq0RU6oMAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/pinin.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABZ0lEQVQ4Ea2TPUsDQRCGZ89Eo4FACkULEQs1CH4Uamfjn7GxEYJFIFXgChFsbPwzNnZioREkaiHBQtEiEEiMRm/dZ8OEGAxR4sBxx877Pju7M2estTJIxLrNuVwuMxQEx0ZkzcFHyRtjXt02559RtB2GYanTYzoryOfz+6l4Nbszf2niwffKmpGRo9sVW22mDgqFwp5C2gDMm+P32a3JB1N+n5JifUGeP9JeNxGryPLYjcwMP8rJ07Q9fZltQzyAstOJ2vVu5sKc1ZZkRBrOcKeb+HexPidvkpCN5JUcllZtpZFc5DgBWc5M2eysZuMuofMBSA4NWjx4PUCsXefMlI0QY3ewRg4NWi4ZTQsgrjYXema+e4VqtEMK6KXvu+4B9Bklt90vVKMeD2BI6DOt4rZ/Gk7WyKFBi4fNPIAJY0joM61SCCZ9tI1o0OIB8D+DBIkYaJRbCBH9mZgNt+bb++ufSSF/eX8BYcDeAzuQJVUAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/pinout.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyUlEQVQ4EW1TXUgUURQ+Z3ZmnVV3QV2xJbVSEIowQbAfLQx8McLoYX2qjB58MRSkP3vZppceYhGxgrZaIughlYpE7CHFWiiKyj9II0qxWmwlNh1Xtp2f27mz7GDlZX7uuXO+73zfuXeQMQYIgAyALppgyBtse32stsw86txkHhATn+FbfPfzxnPB+vR3RMJYuTwW6bbB4a6WS5O3Yu2VlXIesDiAamiQNKVlVXfx5I0GJ7DY7p0/+erU4dgeMJIA31WNxZmAgibOreXDqF55sY4SFUURqbi+nkjgwTyAbHhLX8yOLsSM2QRA3JRAAgd4RGPbVhkKEp8qeJ7PFyW3fw++YHtC7CkaD0amqyqihSwlMQQ0wa07IjPVI/vbexreIUrVaQV2D4RMQ/o7m12Mdfx4H3PfB9FNzTR1U2cO0Bi45aV6xNvFBNaoIAfbSiwLlqi9/hR/R3Nrhua+Oqi9TEKiB02C7YXz+Pba4MTDrpbLiMAxNgmXb+HpwVkZdoIrkn9isW7nRw/TZYaagZArAWyhfqsSDL/c9aTx7JUjGZCtYExRqCzAwGblwr6aFQ84nTo6qZ7XCeCVQNckE/KSWolvoQnxeoFFgIh8G/nA+kBAxxuQO5m9eFrwLIGJHgcyM63VFMhRSgNVyJr7og8y1vbTQpH8DIEVgxuYuexw0QECIalq5FYgEmpkgoFYltU/lnrqDz5osirSFpF7lrHAFKSWHYfEs+mY/82UnAStyMlW8sUPsVIciTZgz3jV1ebg0CEOpgPF22s1z1YQYKSXPJ1hbAhR8T26WdLhkuVfAzPR+YO1Ox5n58SmCcF6e3uzAoHA77RkevJdWH/3+f2O9TGf3w3fWQ2Hw5F/13mcsWAT+vv6DK4kFApJ/d3d1k+kJtbCrmxXHS3n8ER6b3CQbAqaEHVra6sGxcXW4SovLx+empxapS//FfwD9kpMJjMMBBAAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/pins.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAQCAYAAABQrvyxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGYklEQVRIDbVWe0yURxCf/R735o6DO0FBe0RFsaL4iLXGIKa2SY3P6JGa2GpjlJjUV9NosbU++tYUbEnaQIrVaKJBG7WiNFQFUWO1UUEsVg2CAgoeHHLewcH32O58cBdQsX9Y5+7LfrszOzO/2ZnZj1BKgTBiIwVGVvKd49OVVYunDlXn6wdBKh+ogXrv+DOz1melIb+3LM5fNv2XPYE5EHY+L3PJljN5zavHpJjsQNsA/JJEgyC2+WTjy3b0GfoJW8O4aoHtDwiHQrj5lw1LLyyb1bp5zAjJTus9klrVpdD6TqH2ngVO+0dsRJnp06cLIYU4fx7NnRI3bu7UIYOeJ/McnuY88q3k62gc0S4Dgf5qhICQtIXS2lqD7BhSduPk3YfyzXaANhBBJDxYdUqCywB2qS4RdyUuSkTF/VJxcbH5j8N7/75RuFrN3Zh8OS8zqf5m4UpPeenOyP42dbtBeuvVnCdkK1e4PfPouX03mo9se+c33M8wqDk5Ofqed8REUTicQhbySUxp9u3KlMSHTtrFU6Kyn03lz15PPpW25vsZeYSIKyiVURcqeZJOH9lTNZLfnxRjU/uwrjbEUBWsapcSO2Hq4k0VfZg9EzxdDNCEjDxgNqRDme9umz/btwlsHRIEePHgAf73RdnHZ6LTuIUBN7OBQ+c1Fdnp6cZ1BQUdeRuWZi97o3ktDQQkVeFFzqJARd1A5a0Vr7ta6Kp6TZjtZ+NTIOoKF6qDrL7e0QQIUCiqMMKk8Z1Q/SCSKvzocf2B6NEN0SQn/kTO6fKJ0zqjZUlQBSpJ0GjR77w0aoc1Pr6S5/kVJrNpakV5hR+LWKN4t7sLX+p0rx2vqSta64olIulUKUgCSXLWE1R4KPPSj+5vhm2hdDOG+CkQBmhhyyKq6SaFYWTn5bB3QJRNz54AuXKn8TJjhu0Wbv+wNEKQjVhnmKopjo4FxXmetCRnC4F7BhCiCUepqAepRh0TM/gjjzOOSK2NgWZPc05qampRWJHb7dbOffep2ednzLzgczlbrQA6gHYF9BYDh9GY+FjddMweHMscmMuep07gXlMQoqw9ALoYu5MJsak9QmJA2IvAgVmoCRciooyPujJtNCv1uHt3TmK9gegFKrG9kh6oXwZiIEAtBIjORGKNTWR/WeW8XVkbjuJepLAyloM8LmTN//njKZPbraATZaLjCHEww9Ei4FFiPg6Ja5gT6gxYgLgnRDHRQwJXbz2GOw0d4A3K4GXlUtMahJjYVxiYbrwOmxIS10bFnIBOSi6Tl9Jgs0zbOEX18wyEwgLPMrxD1Y4aCK8kmTpgYcpAF27Mzs42Hjx4kA8BICUlJfKArR7LcEvTB1xEC9AoEw9OPagWkVU/D1oesmK6U911zEczMVe01oZjiMggg6ux2Qk379qh4rYKet4GjrhhwEteBgBrH8BssoXEtbHzPpSBRRSpqlNpgAiUoxzHKxLRszoVuggIisxaDQWZqkQvQjAoax3NbDbLLGuUEABNGedXqSyLRupXgDT5JfAGZNLio9B0X8Uiwk4w77MDc1D4yejjWtykPS3DX01UDCY/GPQcVDe0QYT0CIxGFvUorfvBxZsRfVrUuWruMBAb/lXCUofoFNZfzGJtowXOX0vwUSFK4BgyMKm6P6s9wQUZld+jrYyMDC0iIQDaJdG4IyZQfL3RfbFcCBIlRgc+u3CjaTApuZ9KsANgG8PNzHlWWD3tCxd6kafNNiFp5HAalAkkJ0SCV2H3CgOD9Nc/FqrXuyb0Eocvfhq171p5eyuJ1omKJEP5rQGe/FOOnXtq335z8YmvYo9cHb2t8spIb3lVSseZW46FlGY/Sk9P50P2w20UlWJUkUHIushfc5PXGAzCo0PlD2pnpCYfCXga3lu+fPlevEhWrVrFyrN/Orfv87FOW9tlqb2Kc9pV8DzioMk3UNUbXM+8B/ATBr8C8CKdvGXWGD/9sqm3dkxtzA4McMjHMB8D2ftheYXo+qzt3pXvz8/PP/vk+v8537V+yYW87Zu+RZ1ZbrexoKAA/SBpaWn4+aL5w5zGk+/jW59JiMkESW5urpiVlWXENRb1H/Yf2I9txIxz5IdkX3TsraukpsbQjz6090yb4XsAvQoRE0YvJdamtIIbOnRoUVlZ2ftsLVQzIdEXHntsaZdimssVfCpFui109+BnWPsXaWLI/zactygAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/plus.png", [], "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAAZiS0dEANIA0gDS7KbF4AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kFGw4yFTwuJTkAAAH7SURBVCjPdZKxa1NRFMZ/956XZMgFyyMlCZRA4hBx6lBcQ00GoYi4tEstFPwLAs7iLDi7FWuHThaUggihBDI5OWRoQAmBQFISQgvvpbwX3rsOaR4K+o2H8zvfOZxPWWtZqVarGaAJPAEe3ZW/A1+Bd+1221v1qhW4vb1dA44mk0nZ8zyCIAAgk8lgjGF9fb0PHF5cXLQTsF6vP/c879P19TVBEJDJZBARAKIoSmpra2sYY561Wq3PqtFouMBgMBgYay3ZbJZ/yfd9tNaUSqUboOKISPPq6sqsVvZ9H4AvL34B8PTj/QSO45jpdHovn883Ha31znw+JwzDpCEMQx4UloM8zyOdTif3zudztNY7jog8DMMQpRRxHPPt5TCBAEZvxlyOFTsfykRRBICIlB2t9a21Nh3HMXEc8+d7VhJHWCwWyzcohdZaHBHpO46z6fs+IsLj94XECaD4unCHL8FsNouI/HRE5Nx13c3ZbIbWOnG5HKtl+53TSq7rIiLnand31wUGnU7HjEYjlFLJZN/3yRnL1FMYY8jlcmxtbd0AFel2u7dnZ2eXxpi9xWJBEASkUimstYgIQSSkUimKxSKVSgVjzN7p6emPJHL7+/s14KjX65WHwyGz2SxZbWNjg2q12gcOT05O2n9lFeDg4MAAr/4T8rfHx8dJyH8DvvbYGzKvWukAAAAASUVORK5CYII="); - -define("text!cockpit/ui/images/throbber.gif", [], "data:image/gif;base64,R0lGODlh3AATAPQAAP///wAAAL6+vqamppycnLi4uLKyssjIyNjY2MTExNTU1Nzc3ODg4OTk5LCwsLy8vOjo6Ozs7MrKyvLy8vT09M7Ozvb29sbGxtDQ0O7u7tbW1sLCwqqqqvj4+KCgoJaWliH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFg8PwKIMHnLF63N2438f0mv1I2O8buXjvaOPtaHx7fn96goR4hmuId4qDdX95c4+RG4GCBoyAjpmQhZN0YGYFXitdZBIVGAoKoq4CG6Qaswi1CBtkcG6ytrYJubq8vbfAcMK9v7q7D8O1ycrHvsW6zcTKsczNz8HZw9vG3cjTsMIYqQgDLAQGCQoLDA0QCwUHqfYSFw/xEPz88/X38Onr14+Bp4ADCco7eC8hQYMAEe57yNCew4IVBU7EGNDiRn8Z831cGLHhSIgdE/9chIeBgDoB7gjaWUWTlYAFE3LqzDCTlc9WOHfm7PkTqNCh54rePDqB6M+lR536hCpUqs2gVZM+xbrTqtGoWqdy1emValeXKwgcWABB5y1acFNZmEvXwoJ2cGfJrTv3bl69Ffj2xZt3L1+/fw3XRVw4sGDGcR0fJhxZsF3KtBTThZxZ8mLMgC3fRatCLYMIFCzwLEprg84OsDus/tvqdezZf13Hvr2B9Szdu2X3pg18N+68xXn7rh1c+PLksI/Dhe6cuO3ow3NfV92bdArTqC2Ebc3A8vjf5QWf15Bg7Nz17c2fj69+fnq+8N2Lty+fuP78/eV2X13neIcCeBRwxorbZrAxAJoCDHbgoG8RTshahQ9iSKEEzUmYIYfNWViUhheCGJyIP5E4oom7WWjgCeBBAJNv1DVV01MZdJhhjdkplWNzO/5oXI846njjVEIqR2OS2B1pE5PVscajkxhMycqLJgxQCwT40PjfAV4GqNSXYdZXJn5gSkmmmmJu1aZYb14V51do+pTOCmA00AqVB4hG5IJ9PvYnhIFOxmdqhpaI6GeHCtpooisuutmg+Eg62KOMKuqoTaXgicQWoIYq6qiklmoqFV0UoeqqrLbq6quwxirrrLTWauutJ4QAACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAXHx/EoCzboAcdhcLDdgwJ6nua03YZ8PMFPoBMca215eg98G36IgYNvDgOGh4lqjHd7fXOTjYV9nItvhJaIfYF4jXuIf4CCbHmOBZySdoOtj5eja59wBmYFXitdHhwSFRgKxhobBgUPAmdoyxoI0tPJaM5+u9PaCQZzZ9gP2tPcdM7L4tLVznPn6OQb18nh6NV0fu3i5OvP8/nd1qjwaasHcIPAcf/gBSyAAMMwBANYEAhWYQGDBhAyLihwYJiEjx8fYMxIcsGDAxVA/yYIOZIkBAaGPIK8INJlRpgrPeasaRPmx5QgJfB0abLjz50tSeIM+pFmUo0nQQIV+vRlTJUSnNq0KlXCSq09ozIFexEBAYkeNiwgOaEtn2LFpGEQsKCtXbcSjOmVlqDuhAx3+eg1Jo3u37sZBA9GoMAw4MB5FyMwfLht4sh7G/utPGHlYAV8Nz9OnOBz4c2VFWem/Pivar0aKCP2LFn2XwhnVxBwsPbuBAQbEGiIFg1BggoWkidva5z4cL7IlStfkED48OIYoiufYIH68+cKPkqfnsB58ePjmZd3Dj199/XE20tv6/27XO3S6z9nPCz9BP3FISDefL/Bt192/uWmAv8BFzAQAQUWWFaaBgqA11hbHWTIXWIVXifNhRlq6FqF1sm1QQYhdiAhbNEYc2KKK1pXnAIvhrjhBh0KxxiINlqQAY4UXjdcjSJyeAx2G2BYJJD7NZQkjCPKuCORKnbAIXsuKhlhBxEomAIBBzgIYXIfHfmhAAyMR2ZkHk62gJoWlNlhi33ZJZ2cQiKTJoG05Wjcm3xith9dcOK5X51tLRenoHTuud2iMnaolp3KGXrdBo7eKYF5p/mXgJcogClmcgzAR5gCKymXYqlCgmacdhp2UCqL96mq4nuDBTmgBasaCFp4sHaQHHUsGvNRiiGyep1exyIra2mS7dprrtA5++z/Z8ZKYGuGsy6GqgTIDvupRGE+6CO0x3xI5Y2mOTkBjD4ySeGU79o44mcaSEClhglgsKyJ9S5ZTGY0Bnzrj+3SiKK9Rh5zjAALCywZBk/ayCWO3hYM5Y8Dn6qxxRFsgAGoJwwgDQRtYXAAragyQOmaLKNZKGaEuUlpyiub+ad/KtPqpntypvvnzR30DBtjMhNodK6Eqrl0zU0/GjTUgG43wdN6Ra2pAhGtAAZGE5Ta8TH6wknd2IytNKaiZ+Or79oR/tcvthIcAPe7DGAs9Edwk6r3qWoTaNzY2fb9HuHh2S343Hs1VIHhYtOt+Hh551rh24vP5YvXSGzh+eeghy76GuikU9FFEainrvrqrLfu+uuwxy777LTXfkIIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BAWHB2l4CDZo9IDjcBja7UEhTV+3DXi3PJFA8xMcbHiDBgMPG31pgHBvg4Z9iYiBjYx7kWocb26OD398mI2EhoiegJlud4UFiZ5sm6Kdn2mBr5t7pJ9rlG0cHg5gXitdaxwFGArIGgoaGwYCZ3QFDwjU1AoIzdCQzdPV1c0bZ9vS3tUJBmjQaGXl1OB0feze1+faiBvk8wjnimn55e/o4OtWjp+4NPIKogsXjaA3g/fiGZBQAcEAFgQGOChgYEEDCCBBLihwQILJkxIe/3wMKfJBSQkJYJpUyRIkgwcVUJq8QLPmTYoyY6ZcyfJmTp08iYZc8MBkhZgxk9aEcPOlzp5FmwI9KdWn1qASurJkClRoWKwhq6IUqpJBAwQEMBYroAHkhLt3+RyzhgCDgAV48Wbgg+waAnoLMgTOm6DwQ8CLBzdGdvjw38V5JTg2lzhyTMeUEwBWHPgzZc4TSOM1bZia6LuqJxCmnOxv7NSsl1mGHHiw5tOuIWeAEHcFATwJME/ApgFBc3MVLEgPvE+Ddb4JokufPmFBAuvPXWu3MIF89wTOmxvOvp179evQtwf2nr6aApPyzVd3jn089e/8xdfeXe/xdZ9/d1ngHf98lbHH3V0LMrgPgsWpcFwBEFBgHmyNXWeYAgLc1UF5sG2wTHjIhNjBiIKZCN81GGyQwYq9uajeMiBOQGOLJ1KjTI40kmfBYNfc2NcGIpI4pI0vyrhjiT1WFqOOLEIZnjVOVpmajYfBiCSNLGbA5YdOkjdihSkQwIEEEWg4nQUmvYhYe+bFKaFodN5lp3rKvJYfnBKAJ+gGDMi3mmbwWYfng7IheuWihu5p32XcSWdSj+stkF95dp64jJ+RBipocHkCCp6PCiRQ6INookCAAwy0yd2CtNET3Yo7RvihBjFZAOaKDHT43DL4BQnsZMo8xx6uI1oQrHXXhHZrB28G62n/YSYxi+uzP2IrgbbHbiaer7hCiOxDFWhrbmGnLVuus5NFexhFuHLX6gkEECorlLpZo0CWJG4pLjIACykmBsp0eSSVeC15TDJeUhlkowlL+SWLNJpW2WEF87urXzNWSZ6JOEb7b8g1brZMjCg3ezBtWKKc4MvyEtwybPeaMAA1ECRoAQYHYLpbeYYCLfQ+mtL5c9CnfQpYpUtHOSejEgT9ogZ/GSqd0f2m+LR5WzOtHqlQX1pYwpC+WbXKqSYtpJ5Mt4a01lGzS3akF60AxkcTaLgAyRBPWCoDgHfJqwRuBuzdw/1ml3iCwTIeLUWJN0v4McMe7uasCTxseNWPSxc5RbvIgD7geZLbGrqCG3jepUmbbze63Y6fvjiOylbwOITPfIHEFsAHL/zwxBdvPBVdFKH88sw37/zz0Ecv/fTUV2/99SeEAAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2cw8BQEm3T6yHEYHHD4oKCuD9qGvNsxT6QTgAkcHHmFeX11fm17hXwPG35qgnhxbwMPkXaLhgZ9gWp3bpyegX4DcG+inY+Qn6eclpiZkHh6epetgLSUcBxlD2csXXdvBQrHGgoaGhsGaIkFDwjTCArTzX+QadHU3c1ofpHc3dcGG89/4+TYktvS1NYI7OHu3fEJ5tpqBu/k+HX7+nXDB06SuoHm0KXhR65cQT8P3FRAMIAFgVMPwDCAwLHjggIHJIgceeFBg44eC/+ITCCBZYKSJ1FCWPBgpE2YMmc+qNCypwScMmnaXAkUJYOaFVyKLOqx5tCXJnMelcBzJNSYKIX2ZPkzqsyjPLku9Zr1QciVErYxaICAgEUOBRJIgzChbt0MLOPFwyBggV27eCUcmxZvg9+/dfPGo5bg8N/Ag61ZM4w4seDF1fpWhizZmoa+GSortgcaMWd/fkP/HY0MgWbTipVV++wY8GhvqSG4XUEgoYTKE+Qh0OCvggULiBckWEZ4Ggbjx5HXVc58IPQJ0idQJ66XanTpFraTe348+XLizRNcz658eHMN3rNPT+C+G/nodqk3t6a+fN3j+u0Xn3nVTQPfdRPspkL/b+dEIN8EeMm2GAYbTNABdrbJ1hyFFv5lQYTodSZABhc+loCEyhxTYYkZopdMMiNeiBxyIFajV4wYHpfBBspUl8yKHu6ooV5APsZjQxyyeNeJ3N1IYod38cgdPBUid6GCKfRWgAYU4IccSyHew8B3doGJHmMLkGkZcynKk2Z50Ym0zJzLbDCmfBbI6eIyCdyJmJmoqZmnBAXy9+Z/yOlZDZpwYihnj7IZpuYEevrYJ5mJEuqiof4l+NYDEXQpXQcMnNjZNDx1oGqJ4S2nF3EsqWrhqqVWl6JIslpAK5MaIqDeqjJq56qN1aTaQaPbHTPYr8Be6Gsyyh6Da7OkmmqP/7GyztdrNVQBm5+pgw3X7aoYKhfZosb6hyUKBHCgQKij1rghkOAJuZg1SeYIIY+nIpDvf/sqm4yNG5CY64f87qdAwSXKGqFkhPH1ZHb2EgYtw3bpKGVkPz5pJAav+gukjB1UHE/HLNJobWcSX8jiuicMMBFd2OmKwQFs2tjXpDfnPE1j30V3c7iRHlrzBD2HONzODyZtsQJMI4r0AUNaE3XNHQw95c9GC001MpIxDacFQ+ulTNTZlU3O1eWVHa6vb/pnQUUrgHHSBKIuwG+bCPyEqbAg25gMVV1iOB/IGh5YOKLKIQ6xBAcUHmzjIcIqgajZ+Ro42DcvXl7j0U4WOUd+2IGu7DWjI1pt4DYq8BPm0entuGSQY/4tBi9Ss0HqfwngBQtHbCH88MQXb/zxyFfRRRHMN+/889BHL/301Fdv/fXYZ39CCAAh+QQJCgAAACwAAAAA3AATAAAF/yAgjmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgECAaEpHLJbDqf0Kh0Sq1ar9isdjoQtAQFh2fAKXsKm7R6Q+Y43vABep0mGwwOPH7w2CT+gHZ3d3lyagl+CQNvg4yGh36LcHoGfHR/ZYOElQ9/a4ocmoRygIiRk5p8pYmZjXePaYBujHoOqp5qZHBlHAUFXitddg8PBg8KGsgayxvGkAkFDwgICtPTzX2mftHW3QnOpojG3dbYkNjk1waxsdDS1N7ga9zw1t/aifTk35fu6Qj3numL14fOuHTNECHqU4DDgQEsCCwidiHBAwYQMmpcUOCAhI8gJVzUuLGThAQnP/9abEAyI4MCIVOKZNnyJUqUJxNcGNlywYOQgHZirGkSJ8gHNEky+AkS58qWEJYC/bMzacmbQHkqNdlUJ1KoSz2i9COhmQYCEXtVrCBgwYS3cCf8qTcNQ9u4cFFOq2bPLV65Cf7dxZthbjW+CgbjnWtNgWPFcAsHdoxgWWK/iyV045sAc2S96SDn1exYw17REwpLQEYt2eW/qtPZRQAB7QoC61RW+GsBwYZ/CXb/XRCYLsAKFizEtUAc+G7lcZsjroscOvTmsoUvx15PwccJ0N8yL17N9PG/E7jv9S4hOV7pdIPDdZ+ePDzv2qMXn2b5+wTbKuAWnF3oZbABZY0lVmD/ApQd9thybxno2GGuCVDggaUpoyBsB1bGGgIYbJCBcuFJiOAyGohIInQSmmdeiBnMF2GHfNUlIoc1rncjYRjW6NgGf3VQGILWwNjBfxEZcAFbC7gHXQcfUYOYdwzQNxo5yUhQZXhvRYlMeVSuSOJHKJa5AQMQThBlZWZ6Bp4Fa1qzTAJbijcBlJrtxeaZ4lnnpZwpukWieGQmYx5ATXIplwTL8DdNZ07CtWYybNIJF4Ap4NZHe0920AEDk035kafieQrqXofK5ympn5JHKYjPrfoWcR8WWQGp4Ul32KPVgXdnqxM6OKqspjIYrGPDrlrsZtRIcOuR86nHFwbPvmes/6PH4frrqbvySh+mKGhaAARPzjjdhCramdoGGOhp44i+zogBkSDuWC5KlE4r4pHJkarXrj++Raq5iLmWLlxHBteavjG+6amJrUkJJI4Ro5sBv9AaOK+jAau77sbH7nspCwNIYIACffL7J4JtWQnen421nNzMcB6AqpRa9klonmBSiR4GNi+cJZpvwgX0ejj71W9yR+eIgaVvQgf0l/A8nWjUFhwtZYWC4hVnkZ3p/PJqNQ5NnwUQrQCGBBBMQIGTtL7abK+5JjAv1fi9bS0GLlJHgdjEgYzzARTwC1fgEWdJuKKBZzj331Y23qB3i9v5aY/rSUC4w7PaLeWXmr9NszMFoN79eeiM232o33EJAIzaSGwh++y012777bhT0UURvPfu++/ABy/88MQXb/zxyCd/QggAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEBY5nwCk7xIWNer0hO95wziC9Ttg5b4ND/+Y87IBqZAaEe29zGwmJigmDfHoGiImTjXiQhJEPdYyWhXwDmpuVmHwOoHZqjI6kZ3+MqhyemJKAdo6Ge3OKbEd4ZRwFBV4rc4MPrgYPChrMzAgbyZSJBcoI1tfQoYsJydfe2amT3d7W0OGp1OTl0YtqyQrq0Lt11PDk3KGoG+nxBpvTD9QhwCctm0BzbOyMIwdOUwEDEgawIOCB2oMLgB4wgMCx44IHBySIHClBY0ePfyT/JCB5weRJCAwejFw58kGDlzBTqqTZcuPLmCIBiWx58+VHmiRLFj0JVCVLl0xl7qSZwCbOo0lFWv0pdefQrVFDJtr5gMBEYBgxqBWwYILbtxPsqMPAFu7blfa81bUbN4HAvXAzyLWnoDBguHIRFF6m4LBbwQngMYPXuC3fldbyPrMcGLM3w5wRS1iWWUNlvnElKDZtz/EEwaqvYahQoexEfyILi4RrYYKFZwJ3810QWZ2ECrx9Ew+O3K6F5Yq9zXbb+y30a7olJJ+wnLC16W97Py+uwdtx1NcLWzs/3G9e07stVPc9kHJ0BcLtQp+c3ewKAgYkUAFpCaAmmHqKLSYA/18WHEiZPRhsQF1nlLFWmIR8ZbDBYs0YZuCGpGXWmG92aWiPMwhEOOEEHXRwIALlwXjhio+BeE15IzpnInaLbZBBhhti9x2GbnVQo2Y9ZuCfCgBeMCB+DJDIolt4iVhOaNSJdCOBUfIlkmkyMpPAAvKJ59aXzTQzJo0WoJnmQF36Jp6W1qC4gWW9GZladCiyJd+KnsHImgRRVjfnaDEKuiZvbcYWo5htzefbl5LFWNeSKQAo1QXasdhiiwwUl2B21H3aQaghXnPcp1NagCqYslXAqnV+zYWcpNwVp9l5eepJnHqL4SdBi56CGlmw2Zn6aaiZjZqfb8Y2m+Cz1O0n3f+tnvrGbF6kToApCgAWoNWPeh754JA0vmajiAr4iOuOW7abQXVGNriBWoRdOK8FxNqLwX3oluubhv8yluRbegqGb536ykesuoXhyJqPQJIGbLvQhkcwjKs1zBvBwSZIsbcsDCCBAAf4ya+UEhyQoIiEJtfoZ7oxUOafE2BwgMWMqUydfC1LVtiArk0QtGkWEopzlqM9aJrKHfw5c6wKjFkmXDrbhwFockodtMGFLWpXy9JdiXN1ZDNszV4WSLQCGBKoQYHUyonqrHa4ErewAgMmcAAF7f2baIoVzC2p3gUvJtLcvIWqloy6/R04mIpLwDhciI8qLOB5yud44pHPLbA83hFDWPjNbuk9KnySN57Av+TMBvgEAgzzNhJb5K777rz37vvvVHRRxPDEF2/88cgnr/zyzDfv/PPQnxACACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIUCwcMpO84OT2HDbm8GHLQjnn6wE3g83SA3DB55G3llfHxnfnZ4gglvew6Gf4ySgmYGlpCJknochWiId3kJcZZyDn93i6KPl4eniopwq6SIoZKxhpenbhtHZRxhXisDopwPgHkGDxrLGgjLG8mC0gkFDwjX2AgJ0bXJ2djbgNJsAtbfCNB2oOnn6MmKbeXt226K1fMGi6j359D69ua+QZskjd+3cOvY9XNgp4ABCQNYEDBl7EIeCQkeMIDAseOCBwckiBSZ4ILGjh4B/40kaXIjSggMHmBcifHky5gYE6zM2OAlzGM6Z5rs+fIjTZ0tfcYMSlLCUJ8fL47kCVXmTjwPiKJkUCDnyqc3CxzQmYeAxAEGLGJYiwCDgAUT4sqdgOebArdw507IUNfuW71xdZ7DC5iuhGsKErf9CxhPYgUaEhPWyzfBMgUIJDPW6zhb5M1y+R5GjFkBaLmCM0dOfHqvztXYJnMejaFCBQlmVxAYsEGkYnQV4lqYMNyCtnYSggNekAC58uJxmTufW5w55mwKkg+nLp105uTC53a/nhg88fMTmDfDVl65Xum/IZt/3/zaag3a5W63nll1dvfiWbaaZLmpQIABCVQA2f9lAhTG112PQWYadXE9+FtmEwKWwQYQJrZagxomsOCAGVImInsSbpCBhhwug6KKcXXQQYUcYuDMggrASFmNzjjzzIrh7cUhhhHqONeGpSEW2QYxHsmjhxpgUGAKB16g4IIbMNCkXMlhaJ8GWVJo2I3NyKclYF1GxgyYDEAnXHJrMpNAm/rFBSczPiYAlwXF8ZnmesvoOdyMbx7m4o0S5LWdn4bex2Z4xYmEzaEb5EUcnxbA+WWglqIn6aHPTInCgVbdlZyMqMrIQHMRSiaBBakS1903p04w434n0loBoQFOt1yu2YAnY68RXiNsqh2s2qqxuyKb7Imtmgcrqsp6h8D/fMSpapldx55nwayK/SfqCQd2hcFdAgDp5GMvqhvakF4mZuS710WGIYy30khekRkMu92GNu6bo7r/ttjqwLaua5+HOdrKq5Cl3dcwi+xKiLBwwwom4b0E6xvuYyqOa8IAEghwQAV45VvovpkxBl2mo0W7AKbCZXoAhgMmWnOkEqx2JX5nUufbgJHpXCfMOGu2QAd8eitpW1eaNrNeMGN27mNz0swziYnpSbXN19gYtstzfXrdYjNHtAIYGFVwwAEvR1dfxdjKxVzAP0twAAW/ir2w3nzTd3W4yQWO3t0DfleB4XYnEHCEhffdKgaA29p0eo4fHLng9qoG+OVyXz0gMeWGY7qq3xhiRIEAwayNxBawxy777LTXbjsVXRSh++689+7778AHL/zwxBdv/PEnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLD4BlwHGg0ubBpuzdm9Dk9eCTu+MTZkDb4PXYbeIIcHHxqf4F3gnqGY2kOdQmCjHCGfpCSjHhmh2N+knmEkJmKg3uHfgaaeY2qn6t2i4t7sKAPbwIJD2VhXisDCQZgDrKDBQ8aGgjKyhvDlJMJyAjV1gjCunkP1NfVwpRtk93e2ZVt5NfCk27jD97f0LPP7/Dr4pTp1veLgvrx7AL+Q/BM25uBegoYkDCABYFhEobhkUBRwoMGEDJqXPDgQMUEFC9c1LjxQUUJICX/iMRIEgIDkycrjmzJMSXFlDNJvkwJsmdOjQwKfDz5M+PLoSGLQqgZU6XSoB/voHxawGbFlS2XGktAwKEADB0xiEWAodqGBRPSqp1wx5qCamDRrp2Qoa3bagLkzrULF4GCvHPTglRAmKxZvWsHayBcliDitHUlvGWM97FgCdYWVw4c2e/kw4HZJlCwmDBhwHPrjraGYTHqtaoxVKggoesKAgd2SX5rbUMFCxOAC8cGDwHFwBYWJCgu4XfwtcqZV0grPHj0u2SnqwU+IXph3rK5b1fOu7Bx5+K7L6/2/Xhg8uyXnQ8dvfRiDe7TwyfNuzlybKYpgIFtKhAgwEKkKcOf/wChZbBBgMucRh1so5XH3wbI1WXafRJy9iCErmX4IWHNaIAhZ6uxBxeGHXQA24P3yYfBBhmgSBozESpwongWOBhggn/N1aKG8a1YY2oVAklgCgQUUwGJ8iXAgItrWUARbwpqIOWEal0ZoYJbzmWlZCWSlsAC6VkwZonNbMAAl5cpg+NiZwpnJ0Xylegmlc+tWY1mjnGnZnB4QukMA9UJRxGOf5r4ppqDjjmnfKilh2ejGiyJAgF1XNmYbC2GmhZ5AcJVgajcXecNqM9Rx8B6bingnlotviqdkB3YCg+rtOaapFsUhSrsq6axJ6sEwoZK7I/HWpCsr57FBxJ1w8LqV/81zbkoXK3LfVeNpic0KRQG4NHoIW/XEmZuaiN6tti62/moWbk18uhjqerWS6GFpe2YVotskVssWfBOAHACrZHoWcGQwQhlvmsdXBZ/F9YLMF2jzUuYBP4a7CLCnoEHrgkDSCDAARUILAGaVVqAwQHR8pZXomm9/ONhgjrbgc2lyYxmpIRK9uSNjrXs8gEbTrYyl2ryTJmsLCdKkWzFQl1lWlOXGmifal6p9VnbQfpyY2SZyXKVV7JmZkMrgIFSyrIeUJ2r7YKnXdivUg1kAgdQ8B7IzJjGsd9zKSdwyBL03WpwDGxwuOASEP5vriO2F3nLjQdIrpaRDxqcBdgIHGA74pKrZXiR2ZWuZt49m+o3pKMC3p4Av7SNxBa456777rz37jsVXRQh/PDEF2/88cgnr/zyzDfv/PMnhAAAIfkECQoAAAAsAAAAANwAEwAABf8gII5kaZ5oqq5s675wLM90bd94ru987//AoHBIBAgGhKRyyWw6n9CodEqtWq/YrHY6ELQEhYLDUPAMHGi0weEpbN7wI8cxTzsGj4R+n+DUxwaBeBt7hH1/gYIPhox+Y3Z3iwmGk36BkIN8egOIl3h8hBuOkAaZhQlna4BrpnyWa4mleZOFjrGKcXoFA2ReKwMJBgISDw6abwUPGggazc0bBqG0G8kI1tcIwZp51djW2nC03d7BjG8J49jl4cgP3t/RetLp1+vT6O7v5fKhAvnk0UKFogeP3zmCCIoZkDCABQFhChQYuKBHgkUJkxpA2MhxQYEDFhNcvPBAI8eNCx7/gMQYckPJkxsZPLhIM8FLmDJrYiRp8mTKkCwT8IQJwSPQkENhpgQpEunNkzlpWkwKdSbGihKocowqVSvKWQkIOBSgQOYFDBgQpI0oYMGEt3AzTLKm4BqGtnDjirxW95vbvG/nWlub8G9euRsiqqWLF/AEkRoiprX2wLDeDQgkW9PQGLDgyNc665WguK8C0XAnRY6oGPUEuRLsgk5g+a3cCxUqSBC7gsCBBXcVq6swwULx4hayvctGPK8FCwsSLE9A3Hje6NOrHzeOnW695sffRi/9HfDz7sIVSNB+XXrmugo0rHcM3X388o6jr44ceb51uNjF1xcC8zk3wXiS8aYC/wESaLABBs7ch0ECjr2WAGvLsLZBeHqVFl9kGxooV0T81TVhBo6NiOEyJ4p4IYnNRBQiYCN6x4wCG3ZAY2If8jXjYRcyk2FmG/5nXAY8wqhWAii+1YGOSGLoY4VRfqiAgikwmIeS1gjAgHkWYLQZf9m49V9gDWYWY5nmTYCRM2TS5pxxb8IZGV5nhplmhJyZadxzbrpnZ2d/6rnZgHIid5xIMDaDgJfbLdrgMkKW+Rygz1kEZz1mehabkBpgiQIByVikwGTqVfDkk2/Vxxqiqur4X3fksHccre8xlxerDLiHjQIVUAgXr77yFeyuOvYqXGbMrbrqBMqaFpFFzhL7qv9i1FX7ZLR0LUNdcc4e6Cus263KbV+inkAAHhJg0BeITR6WmHcaxhvXg/AJiKO9R77ILF1FwmVdAu6WBu+ZFua72mkZWMfqBElKu0G8rFZ5n4ATp5jkmvsOq+Nj7u63ZMMPv4bveyYy6fDH+C6brgnACHBABQUrkGirz2FwAHnM4Mmhzq9yijOrOi/MKabH6VwBiYwZdukEQAvILKTWXVq0ZvH5/CfUM7M29Zetthp1eht0eqkFYw8IKXKA6mzXfTeH7fZg9zW0AhgY0TwthUa6Ch9dBeIsbsFrYkRBfgTfiG0FhwMWnbsoq3cABUYOnu/ejU/A6uNeT8u4wMb1WnBCyJJTLjjnr8o3OeJrUcpc5oCiPqAEkz8tXuLkPeDL3Uhs4fvvwAcv/PDEU9FFEcgnr/zyzDfv/PPQRy/99NRXf0IIACH5BAkKAAAALAAAAADcABMAAAX/ICCOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSAQIBoSkcslsOp/QqHRKrVqv2Kx2OhC0BIWCw/AoDziOtCHt8BQ28PjmzK57Hom8fo42+P8DeAkbeYQcfX9+gYOFg4d1bIGEjQmPbICClI9/YwaLjHAJdJeKmZOViGtpn3qOqZineoeJgG8CeWUbBV4rAwkGAhIVGL97hGACGsrKCAgbBoTRhLvN1c3PepnU1s2/oZO6AtzdBoPf4eMI3tIJyOnF0YwFD+nY8e3z7+Xfefnj9uz8cVsXCh89axgk7BrAggAwBQsYIChwQILFixIeNIDAseOCBwcSXMy2sSPHjxJE/6a0eEGjSY4MQGK86PIlypUJEmYsaTKmyJ8JW/Ls6HMkzaEn8YwMWtPkx4pGd76E4DMPRqFTY860OGhogwYagBFoKEABA46DEGBAoEBB0AUT4sqdIFKBNbcC4M6dkEEk22oYFOTdG9fvWrtsBxM23MytYL17666t9phwXwlum2lIDHmuSA2IGyuOLOHv38qLMbdFjHruZbWgRXeOe1nC2BUEDiyAMMHZuwoTLAQX3nvDOAUW5Vogru434d4JnAsnPmFB9NBshQXfa9104+Rxl8e13rZxN+CEydtVsFkd+vDjE7C/q52wOvb4s7+faz025frbxefWbSoQIAEDEUCwgf9j7bUlwHN9ZVaegxDK1xYzFMJH24L5saXABhlYxiEzHoKoIV8LYqAMaw9aZqFmJUK4YHuNfRjiXhmk+NcyJgaIolvM8BhiBx3IleN8lH1IWAcRgkZgCgYiaBGJojGgHHFTgtagAFYSZhF7/qnTpY+faVlNAnqJN0EHWa6ozAZjBtgmmBokwMB01LW5jAZwbqfmlNips4B4eOqJgDJ2+imXRZpthuigeC6XZTWIxilXmRo8iYKBCwiWmWkJVEAkfB0w8KI1IvlIpKnOkVpqdB5+h96o8d3lFnijrgprjbfGRSt0lH0nAZG5vsprWxYRW6Suq4UWqrLEsspWg8Io6yv/q6EhK0Fw0GLbjKYn5CZYBYht1laPrnEY67kyrhYbuyceiR28Pso7bYwiXjihjWsWuWF5p/H765HmNoiur3RJsGKNG/jq748XMrwmjhwCfO6QD9v7LQsDxPTAMKsFpthyJCdkmgYiw0VdXF/Om9dyv7YMWGXTLYpZg5wNR11C78oW3p8HSGgul4qyrJppgllJHJZHn0Y0yUwDXCXUNquFZNLKyYXBAVZvxtAKYIQEsmPgDacr0tltO1y/DMwYpkgUpJfTasLGzd3cdCN3gN3UWRcY3epIEPevfq+3njBxq/kqBoGBduvea8f393zICS63ivRBTqgFpgaWZEIUULdcK+frIfAAL2AjscXqrLfu+uuwx05FF0XUbvvtuOeu++689+7778AHL/wJIQAAOwAAAAAAAAAAAA=="); - - }, '@VERSION@' ,{skinnable:false, requires:['aui-ace-editor-base']}); AUI.add('aui-ace-editor-worker-javascript', function(A) { -function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b,c){arguments.length==2?c=b:arguments.length==1&&(c=a,a=require.id);a.indexOf("text/")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},b=c(require,a.exports,a);b&&(a.exports=b);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",["require","exports","module"],function(a,b,c){if(!Function.prototype.bind){var d=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!="function"||typeof b.call!="function")return new TypeError;var c=d.call(arguments),e=function f(){if(this instanceof f){var a=Object.create(b.prototype);b.apply(a,c.concat(d.call(arguments)));return a}return b.call.apply(b,c.concat(d.call(arguments)))};e.length=typeof b=="function"?Math.max(b.length-c.length,0):0;return e}}var e=Function.prototype.call,f=Array.prototype,g=Object.prototype,h=e.bind(g.hasOwnProperty),i,j,k,l,m;if(m=h(g,"__defineGetter__"))i=e.bind(g.__defineGetter__),j=e.bind(g.__defineSetter__),k=e.bind(g.__lookupGetter__),l=e.bind(g.__lookupSetter__);Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=+this.length;for(var d=0;d=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                              "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                              Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                              "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                              "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                              Implied global: "+n.join(", ")+"

                                                                              ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                              Unused variable: "+n.join(", ")+"

                                                                              ")}b.json&&m.push("

                                                                              JSON: bad.

                                                                              "),m.push("
                                                                              ")}if(!a){m.push("
                                                                              "),b.urls&&o("URLs
                                                                              ",b.urls,"
                                                                              "),b.json&&!f?m.push("

                                                                              JSON: good.

                                                                              "):b.globals?m.push("
                                                                              Global "+b.globals.sort().join(", ")+"
                                                                              "):m.push("
                                                                              No new global variables introduced.
                                                                              ");for(h=0;h
                                                                              "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                              "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                              /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                              "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                              ")}m.push("
                                                                              ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c=2)var d=arguments[1];else do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0);for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length;if(!b)return-1;var c=arguments[1]||0;if(c>=b)return-1;c<0&&(c+=b);for(;c=0;c--){if(!h(this,c))continue;if(a===this[c])return c}return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype});if(!Object.getOwnPropertyDescriptor){var n="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(a,b){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError(n+a);if(!h(a,b))return undefined;var c,d,e;c={enumerable:!0,configurable:!0};if(m){var f=a.__proto__;a.__proto__=g;var d=k(a,b),e=l(a,b);a.__proto__=f;if(d||e){d&&(descriptor.get=d),e&&(descriptor.set=e);return descriptor}}descriptor.value=a[b];return descriptor}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(a){return Object.keys(a)}),Object.create||(Object.create=function(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");var d=function(){};d.prototype=a,c=new d,c.__proto__=a}typeof b!="undefined"&&Object.defineProperties(c,b);return c});if(!Object.defineProperty){var o="Property description must be an object: ",p="Object.defineProperty called on non-object: ",q="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(a,b,c){if(typeof a!="object"&&typeof a!="function")throw new TypeError(p+a);if(typeof a!="object"||a===null)throw new TypeError(o+c);if(h(c,"value"))if(m&&(k(a,b)||l(a,b))){var d=a.__proto__;a.__proto__=g,delete a[b],a[b]=c.value,a.prototype}else a[b]=c.value;else{if(!m)throw new TypeError(q);h(c,"get")&&i(a,b,c.get),h(c,"set")&&j(a,b,c.set)}return a}}Object.defineProperties||(Object.defineProperties=function(a,b){for(var c in b)h(b,c)&&Object.defineProperty(a,c,b[c]);return a}),Object.seal||(Object.seal=function(a){return a}),Object.freeze||(Object.freeze=function(a){return a});try{Object.freeze(function(){})}catch(r){Object.freeze=function(a){return function b(b){return typeof b=="function"?b:a(b)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(a){return a}),Object.isSealed||(Object.isSealed=function(a){return!1}),Object.isFrozen||(Object.isFrozen=function(a){return!1}),Object.isExtensible||(Object.isExtensible=function(a){return!0});if(!Object.keys){var s=!0,t=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=t.length;for(var v in{toString:null})s=!1;Object.keys=function W(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var W=[];for(var b in a)h(a,b)&&W.push(b);if(s)for(var c=0,d=u;c=7?new a(c,d,e,f,g,h,i):j>=6?new a(c,d,e,f,g,h):j>=5?new a(c,d,e,f,g):j>=4?new a(c,d,e,f):j>=3?new a(c,d,e):j>=2?new a(c,d):j>=1?new a(c):new a;k.constructor=b;return k}return a.apply(this,arguments)},c=new RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$");for(var d in a)b[d]=a[d];b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function e(b){var d=c.exec(b);if(d){d.shift();var e=d[0]===undefined;for(var f=0;f<10;f++){if(f===7)continue;d[f]=+(d[f]||(f<3?1:0)),f===1&&d[f]--}if(e)return((d[3]*60+d[4])*60+d[5])*1e3+d[6];var g=(d[8]*60+d[9])*60*1e3;d[6]==="-"&&(g=-g);return a.UTC.apply(this,d.slice(0,7))+g}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var w=/^\s\s*/,x=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(w,"").replace(x,"")}}}),define("pilot/regexp",["require","exports","module"],function(a,b,c){function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--;return!!b})}),define("pilot/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!!c&&!!c.length){var b=b||{};b.type=a;for(var d=0;d=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||""));return a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;b=this.compare(c.row,c.column);if(b==1){b=this.compare(d.row,d.column);return b==1?2:b==0?1:0}if(b==-1)return-2;b=this.compare(d.row,d.column);return b==-1?-1:b==1?42:0},this.containsRange=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)||this.isStart(a,b)?!1:!0;return!1},this.insideStart=function(a,b){if(this.compare(a,b)==0)return this.isEnd(a,b)?!1:!0;return!1},this.insideEnd=function(a,b){if(this.compare(a,b)==0)return this.isStart(a,b)?!1:!0;return!1},this.compare=function(a,b){if(!this.isMultiLine()&&a===this.start.row)return bthis.end.column?1:0;return athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.rowthis.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0);return c}}).call(f.prototype)}),define("pilot/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(i=0,l=a.length;ip)p+=A.indent;!a&&!bQ()&&!f&&A.strict&&j["(context)"]["(global)"]&&be('Missing "use strict" statement.'),c=bR(),L=f,p-=A.indent,bt()}bm("}",h),p=e}else a?((!b||A.curly)&&be("Expected '{a}' and instead saw '{b}'.",x,"{",x.value),z=!0,c=[bP()],z=!1):bg("Expected '{a}' and instead saw '{b}'.",x,"{",x.value);j["(verb)"]=null,G=g,o=d,a&&A.noempty&&(!c||c.length===0)&&be("Empty block.");return c}function bR(a){var b=[],c,d;while(!x.reach&&x.id!=="(end)")x.id===";"?(be("Unnecessary semicolon."),bm(";")):b.push(bP());return b}function bQ(){if(x.value==="use strict"){L&&be('Unnecessary "use strict".'),bm(),bm(";"),L=!0,A.newcap=!0,A.undef=!0;return!0}return!1}function bP(a){var b=p,c,d=G,e=x;if(e.id===";")be("Unnecessary semicolon.",e),bm(";");else{e.identifier&&!e.reserved&&bl().id===":"&&(bm(),bm(":"),G=Object.create(d),bj(e.value,"label"),x.labelled||be("Label '{a}' on {b} statement.",x,e.value,x.value),Z.test(e.value+":")&&be("Label '{a}' looks like a javascript url.",e,e.value),x.label=e.value,e=x),a||bt(),c=bn(0,!0),e.block||(!A.expr&&(!c||!c.exps)?be("Expected an assignment or function call and instead saw an expression.",O):A.nonew&&c.id==="("&&c.left.id==="new"&&be("Do not use 'new' for side effects."),x.id!==";"?!A.asi&&(!A.lastsemic||x.id!="}"||x.line!=O.line)&&bf("Missing semicolon.",O.line,O.from+O.value.length):(bo(O,x),bm(";"),br(O,x))),p=b,G=d;return c}}function bO(a){var b=0,c;if(x.id===";"&&!z)for(;;){c=bl(b);if(c.reach)return;if(c.id!=="(endline)"){if(c.id==="function"){be("Inner functions should be listed at the top of the outer function.",c);break}be("Unreachable '{a}' after '{b}'.",c,c.value,a);break}b+=1}}function bN(a){var b=bM(a);if(b)return b;O.id==="function"&&x.id==="("?be("Missing name in function declaration."):bg("Expected an identifier and instead saw '{a}'.",x,x.value)}function bM(a){if(x.identifier){bm(),O.reserved&&!A.es5&&(!a||O.value!="undefined")&&be("Expected an identifier and instead saw '{a}' (a reserved word).",O,O.id);return O.value}}function bL(a,b){var c=bw(a,150);c.led=function(a){A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&be("Bad operand.",this),this.left=a;return this};return c}function bK(a){bw(a,20).exps=!0;return bF(a,function(a,b){A.bitwise&&be("Unexpected use of '{a}'.",b,b.id),br(D,O),br(O,x);if(a){if(a.id==="."||a.id==="["||a.identifier&&!a.reserved){bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment, and instead saw a function invocation.",O);return b}bg("Bad assignment.",b)},20)}function bJ(a,b,c){var d=bw(a,c);bA(d),d.led=typeof b=="function"?b:function(a){A.bitwise&&be("Unexpected use of '{a}'.",this,this.id),this.left=a,this.right=bn(c);return this};return d}function bI(a,b){bw(a,20).exps=!0;return bF(a,function(a,b){var c;b.left=a,B[a.value]===!1&&G[a.value]["(global)"]===!0?be("Read only.",a):a["function"]&&be("'{a}' is a function.",a,a.value);if(a){if(a.id==="."||a.id==="["){(!a.left||a.left.value==="arguments")&&be("Bad assignment.",b),b.right=bn(19);return b}if(a.identifier&&!a.reserved){j[a.value]==="exception"&&be("Do not assign to the exception parameter.",a),b.right=bn(19);return b}a===M["function"]&&be("Expected an identifier in an assignment and instead saw a function invocation.",O)}bg("Bad assignment.",b)},20)}function bH(a){return a&&(a.type==="(number)"&&+a.value===0||a.type==="(string)"&&a.value===""||a.type==="null"&&!A.eqnull||a.type==="true"||a.type==="false"||a.type==="undefined")}function bG(a,b){var c=bw(a,100);c.led=function(a){bs(D,O),br(O,x);var c=bn(100);a&&a.id==="NaN"||c&&c.id==="NaN"?be("Use the isNaN function to compare with NaN.",this):b&&b.apply(this,[a,c]),a.id==="!"&&be("Confusing use of '{a}'.",a,"!"),c.id==="!"&&be("Confusing use of '{a}'.",a,"!"),this.left=a,this.right=c;return this};return c}function bF(a,b,c,d){var e=bw(a,c);bA(e),e.led=function(a){d||(bs(D,O),br(O,x));if(typeof b=="function")return b(a,this);this.left=a,this.right=bn(c);return this};return e}function bE(a,b){return bD(a,function(){typeof b=="function"&&b(this);return this})}function bD(a,b){var c=bC(a,b);c.identifier=c.reserved=!0;return c}function bC(a,b){var c=bx(a);c.type=a,c.nud=b;return c}function bB(a,b){var c=bw(a,150);bA(c),c.nud=typeof b=="function"?b:function(){this.right=bn(150),this.arity="unary";if(this.id==="++"||this.id==="--")A.plusplus?be("Unexpected use of '{a}'.",this,this.id):(!this.right.identifier||this.right.reserved)&&this.right.id!=="."&&this.right.id!=="["&&be("Bad operand.",this);return this};return c}function bA(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bz(a,b){var c=by(a,b);c.block=!0;return c}function by(a,b){var c=bx(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bx(a){return bw(a,0)}function bw(a,b){var c=M[a];if(!c||typeof c!="object")M[a]=c={id:a,lbp:b,value:a};return c}function bv(){O.line!==x.line?A.laxbreak||be("Bad line breaking before '{a}'.",O,x.id):O.character!==x.from&&A.white&&be("Unexpected space after '{a}'.",x,O.value),bm(","),br(O,x)}function bu(a){a=a||O,a.line!==x.line&&be("Line breaking error '{a}'.",a,a.value)}function bt(a){var b;A.white&&x.id!=="(end)"&&(b=p+(a||0),x.from!==b&&be("Expected '{a}' to have an indentation at {b} instead at {c}.",x,x.value,b,x.from))}function bs(a,b){a=a||O,b=b||x,!A.laxbreak&&a.line!==b.line?be("Bad line breaking before '{a}'.",b,b.id):A.white&&(a=a||O,b=b||x,a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function br(a,b){A.white&&(a=a||O,b=b||x,a.line===b.line&&a.character===b.from&&be("Missing space after '{a}'.",x,a.value))}function bq(a,b){a=a||O,b=b||x,A.white&&!a.comment&&a.line===b.line&&bo(a,b)}function bp(a,b){a=a||O,b=b||x,A.white&&(a.character!==b.from||a.line!==b.line)&&be("Unexpected space before '{a}'.",b,b.value)}function bo(a,b){a=a||O,b=b||x,A.white&&a.character!==b.from&&a.line===b.line&&be("Unexpected space after '{a}'.",b,a.value)}function bn(b,c){var d,e=!1;x.id==="(end)"&&bg("Unexpected early end of program.",O),bm(),c&&(a="anonymous",j["(verb)"]=O.value);if(c===!0&&O.fud)d=O.fud();else{if(O.nud)d=O.nud();else{if(x.type==="(number)"&&O.id==="."){be("A leading decimal point can be confused with a dot: '.{a}'.",O,x.value),bm();return O}bg("Expected an identifier and instead saw '{a}'.",O,O.id)}while(b=A.maxerr&&bd("Too many errors.",i,h);return j}function bd(a,b,c){var d=Math.floor(b/s.length*100);throw{name:"JSHintError",line:b,character:c,message:a+" ("+d+"% scanned)."}}function bc(){A.couch&&bb(B,f),A.rhino&&bb(B,F),A.prototypejs&&bb(B,E),A.node&&bb(B,y),A.devel&&bb(B,g),A.dojo&&bb(B,h),A.browser&&bb(B,e),A.jquery&&bb(B,r),A.mootools&&bb(B,w),A.wsh&&bb(B,R),A.globalstrict&&A.strict!==!1&&(A.strict=!0)}function bb(a,b){var c;for(c in b)ba(b,c)&&(a[c]=b[c])}function ba(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function _(){}"use strict";var a,b={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},c={asi:!0,bitwise:!0,boss:!0,browser:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,evil:!0,expr:!0,forin:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,latedef:!0,laxbreak:!0,loopfunc:!0,mootools:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nomen:!0,onevar:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,scripturl:!0,shadow:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,white:!0,wsh:!0},e={ArrayBuffer:!1,ArrayBufferView:!1,addEventListener:!1,applicationCache:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},f={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1},g={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},h={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},i={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},j,k=["closure","exception","global","label","outer","unused","var"],l,m,n,o,p,q,r={$:!1,jQuery:!1},s,t,u,v,w={$:!1,$$:!1,Assets:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},x,y={__filename:!1,__dirname:!1,exports:!1,Buffer:!1,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1},z,A,B,C,D,E={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},F={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},G,H,I,J={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},K={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},L,M={},N,O,P,Q,R={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0},S,T,U,V,W,X,Y,Z,$;(function(){S=/@cc|<\/?|script|\]\s*\]|<\s*!|</i,T=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,U=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jshint|jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,V=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,W=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,X=/\*\/|\/\*/,Y=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,Z=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,$=/^\s*\/\*\s*falls\sthrough\s*\*\/\s*$/})(),typeof Array.isArray!="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!="function"&&(Object.create=function(a){_.prototype=a;return new _}),typeof Object.keys!="function"&&(Object.keys=function(a){var b=[],c;for(c in a)ba(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&").replace(//g,">")}),typeof String.prototype.isAlpha!="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d=="string"||typeof d=="number"?d:b})}),typeof String.prototype.name!="function"&&(String.prototype.name=function(){return Y.test(this)?this:V.test(this)?'"'+this.replace(W,function(a){var b=i[a];return b?b:"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"':'"'+this+'"'});var bi=function(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&ba(M,e)?g=M[e]||M["(error)"]:g=M[d],g=Object.create(g),(d==="(string)"||d==="(range)")&&!A.scripturl&&Z.test(e)&&bf("Script URL.",c,b),d==="(identifier)"&&(g.identifier=!0,e==="__proto__"&&!A.proto?bf("The '{a}' property is deprecated.",c,b,e):e==="__iterator__"&&!A.iterator?bf("'{a}' is only available in JavaScript 1.7.",c,b,e):A.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&bf("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),g.value=e,g.line=c,g.character=a,g.from=b,f=g.id,f!=="(endline)"&&(C=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return"));return g}function e(){var b,e;if(c>=s.length)return!1;a=1,d=s[c],c+=1,b=d.search(/ \t/),b>=0&&bf("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,N),b=d.search(T),b>=0&&bf("Unsafe character.",c,b),A.maxlen&&A.maxlen=32&&e<=126&&e!==34&&e!==92&&e!==39&&bf("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";q&&g!=='"'&&bf("Strings must use doublequote.",c,a),i=0;for(;;){while(i>=d.length)i=0,e()||bh("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;bf("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h==="\\"){i+=1,a+=1,h=d.charAt(i);switch(h){case"\\":case'"':case"/":break;case"'":q&&bf("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":q&&bf("Avoid \\v.",c,a),h=" ";break;case"x":q&&bf("Avoid \\x-.",c,a),k(2);break;default:bf("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function s(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,r;for(;;){if(!d)return f(e()?"(endline)":"(end)","");r=s(U);if(!r){r="",h="";while(d&&d<"!")d=d.substr(1);d&&bh("Unexpected '{a}'.",c,a,d.substr(0,1))}else{if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",r);if(h.isDigit()){isFinite(Number(r))||bf("Bad number '{a}'.",c,a,r),d.substr(0,1).isAlpha()&&bf("Missing space after '{a}'.",c,a,r),h==="0"&&(j=r.substr(1,1),j.isDigit()?O.id!=="."&&bf("Don't use extra leading zeros '{a}'.",c,a,r):q&&(j==="x"||j==="X")&&bf("Avoid 0x-. '{a}'.",c,a,r)),r.substr(r.length-1)==="."&&bf("A trailing decimal point can be confused with a dot '{a}'.",c,a,r);return f("(number)",r)}switch(r){case'"':case"'":return t(r);case"//":H&&bf("Unexpected comment.",c,a),d="",O.comment=!0;break;case"/*":H&&bf("Unexpected comment.",c,a);for(;;){m=d.search(X);if(m>=0)break;e()||bh("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bh("Nested comment.",c,a),d=d.substr(m+2),O.comment=!0;break;case"/*members":case"/*member":case"/*jshint":case"/*jslint":case"/*global":case"*/":return{value:r,type:"special",line:c,character:a,from:b};case"":break;case"/":O.id==="/="&&bh("A regular expression literal can be confused with '/='.",c,b);if(C){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bh("Unclosed regular expression.",c,b);return;case"/":k>0&&bf("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bh("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:bf("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?bf("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&bf("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,A.regexp?bf("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bh("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(bf("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":bf("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(bf("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":!p&&!A.regexdash&&bf("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?bf("Unexpected control character in regular expression.",c,b+n):h==="<"&&bf("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":bf("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":p=!0;break;default:p=!0}}while(h);break;case".":A.regexp&&bf("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":bf("Unescaped '{a}'.",c,b+n,h)}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&bf("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?bf("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&bf("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",r);case"#":return f("(punctuator)",r);default:return f("(punctuator)",r)}}}}}}();bC("(number)",function(){return this}),bC("(string)",function(){return this}),M["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var b=this.value,c=G[b],d;typeof c=="function"?c=undefined:typeof c=="boolean"&&(d=j,j=l[0],bj(b,"var"),c=j,j=d);if(j===c)switch(j[b]){case"unused":j[b]="var";break;case"unction":j[b]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":be("'{a}' is a statement label.",O,b)}else if(j["(global)"])a!="typeof"&&a!="delete"&&A.undef&&typeof B[b]!="boolean"&&be("'{a}' is not defined.",O,b),bU(O);else switch(j[b]){case"closure":case"function":case"var":case"unused":be("'{a}' used out of scope.",O,b);break;case"label":be("'{a}' is a statement label.",O,b);break;case"outer":case"global":break;default:if(c===!0)j[b]=!0;else if(c===null)be("'{a}' is not allowed.",O,b),bU(O);else if(typeof c!="object")a!="typeof"&&a!="delete"&&A.undef?be("'{a}' is not defined.",O,b):j[b]=!0,bU(O);else switch(c[b]){case"function":case"unction":this["function"]=!0,c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"var":case"unused":c[b]="closure",j[b]=c["(global)"]?"global":"outer";break;case"closure":case"parameter":j[b]=c["(global)"]?"global":"outer";break;case"label":be("'{a}' is a statement label.",O,b)}}return this},led:function(){bg("Expected an operator and instead saw '{a}'.",x,x.value)}},bC("(regexp)",function(){return this}),bx("(endline)"),bx("(begin)"),bx("(end)").reach=!0,bx(""),bx("(error)").reach=!0,bx("}").reach=!0,bx(")"),bx("]"),bx('"').reach=!0,bx("'").reach=!0,bx(";"),bx(":").reach=!0,bx(","),bx("#"),bx("@"),bD("else"),bD("case").reach=!0,bD("catch"),bD("default").reach=!0,bD("finally"),bE("arguments",function(a){L&&j["(global)"]&&be("Strict violation.",a)}),bE("eval"),bE("false"),bE("Infinity"),bE("NaN"),bE("null"),bE("this",function(a){L&&(j["(statement)"]&&j["(name)"].charAt(0)>"Z"||j["(global)"])&&be("Strict violation.",a)}),bE("true"),bE("undefined"),bI("=","assign",20),bI("+=","assignadd",20),bI("-=","assignsub",20),bI("*=","assignmult",20),bI("/=","assigndiv",20).nud=function(){bg("A regular expression literal can be confused with '/='.")},bI("%=","assignmod",20),bK("&=","assignbitand",20),bK("|=","assignbitor",20),bK("^=","assignbitxor",20),bK("<<=","assignshiftleft",20),bK(">>=","assignshiftright",20),bK(">>>=","assignshiftrightunsigned",20),bF("?",function(a,b){b.left=a,b.right=bn(10),bm(":"),b["else"]=bn(10);return b},30),bF("||","or",40),bF("&&","and",50),bJ("|","bitor",70),bJ("^","bitxor",80),bJ("&","bitand",90),bG("==",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"===","=="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"===",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"===",b.value);return this}),bG("==="),bG("!=",function(a,b){var c=A.eqnull&&(a.value=="null"||b.value=="null");!c&&A.eqeqeq?be("Expected '{a}' and instead saw '{b}'.",this,"!==","!="):bH(a)?be("Use '{a}' to compare with '{b}'.",this,"!==",a.value):bH(b)&&be("Use '{a}' to compare with '{b}'.",this,"!==",b.value);return this}),bG("!=="),bG("<"),bG(">"),bG("<="),bG(">="),bJ("<<","shiftleft",120),bJ(">>","shiftright",120),bJ(">>>","shiftrightunsigned",120),bF("in","in",120),bF("instanceof","instanceof",120),bF("+",function(a,b){var c=bn(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.character=c.character,!A.scripturl&&Z.test(a.value)&&be("JavaScript URL.",a);return a}b.left=a,b.right=c;return b},130),bB("+","num"),bB("+++",function(){be("Confusing pluses."),this.right=bn(150),this.arity="unary";return this}),bF("+++",function(a){be("Confusing pluses."),this.left=a,this.right=bn(130);return this},130),bF("-","sub",130),bB("-","neg"),bB("---",function(){be("Confusing minuses."),this.right=bn(150),this.arity="unary";return this}),bF("---",function(a){be("Confusing minuses."),this.left=a,this.right=bn(130);return this},130),bF("*","mult",140),bF("/","div",140),bF("%","mod",140),bL("++","postinc"),bB("++","preinc"),M["++"].exps=!0,bL("--","postdec"),bB("--","predec"),M["--"].exps=!0,bB("delete",function(){var a=bn(0);(!a||a.id!=="."&&a.id!=="[")&&be("Variables should not be deleted."),this.first=a;return this}).exps=!0,bB("~",function(){A.bitwise&&be("Unexpected '{a}'.",this,"~"),bn(150);return this}),bB("!",function(){this.right=bn(150),this.arity="unary",b[this.right.id]===!0&&be("Confusing use of '{a}'.",this,"!");return this}),bB("typeof","typeof"),bB("new",function(){var a=bn(155),b;if(a&&a.id!=="function")if(a.identifier){a["new"]=!0;switch(a.value){case"Object":be("Use the object literal notation {}.",O);break;case"Number":case"String":case"Boolean":case"Math":case"JSON":be("Do not use {a} as a constructor.",O,a.value);break;case"Function":A.evil||be("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),A.newcap&&(b<"A"||b>"Z")&&be("A constructor name should start with an uppercase letter.",O))}}else a.id!=="."&&a.id!=="["&&a.id!=="("&&be("Bad constructor.",O);else A.supernew||be("Weird construction. Delete 'new'.",this);bo(O,x),x.id!=="("&&!A.supernew&&be("Missing '()' invoking a constructor."),this.first=a;return this}),M["new"].exps=!0,bB("void").exps=!0,bF(".",function(a,b){bo(D,O),bp();var c=bN();typeof c=="string"&&bT(c),b.left=a,b.right=c,A.noarg&&a&&a.value==="arguments"&&(c==="callee"||c==="caller")?be("Avoid arguments.{a}.",a,c):!A.evil&&a&&a.value==="document"&&(c==="write"||c==="writeln")&&be("document.write can be a form of eval.",a),!A.evil&&(c==="eval"||c==="execScript")&&be("eval is evil.");return b},160,!0),bF("(",function(a,b){D.id!=="}"&&D.id!==")"&&bp(D,O),bq(),A.immed&&!a.immed&&a.id==="function"&&be("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=0,d=[];a&&a.type==="(identifier)"&&a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?be("Math is not a function.",a):A.newcap&&be("Missing 'new' prefix when invoking a constructor.",a));if(x.id!==")")for(;;){d[d.length]=bn(10),c+=1;if(x.id!==",")break;bv()}bm(")"),bq(D,O),typeof a=="object"&&(a.value==="parseInt"&&c===1&&be("Missing radix parameter.",a),A.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?be("eval is evil.",a):d[0]&&d[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&be("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&be("Bad invocation.",a)),b.left=a;return b},155,!0).exps=!0,bB("(",function(){bq(),x.id==="function"&&(x.immed=!0);var a=bn(0);bm(")",this),bq(D,O),A.immed&&a.id==="function"&&(x.id==="("?be("Move the invocation into the parens that contain the function.",x):be("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bF("[",function(a,b){bp(D,O),bq();var c=bn(0),d;c&&c.type==="(string)"&&(!A.evil&&(c.value==="eval"||c.value==="execScript")&&be("eval is evil.",b),bT(c.value),!A.sub&&Y.test(c.value)&&(d=M[c.value],(!d||!d.reserved)&&be("['{a}'] is better written in dot notation.",c,c.value))),bm("]",b),bq(D,O),b.left=a,b.right=c;return b},160,!0),bB("[",function(){var a=O.line!==x.line;this.first=[],a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));while(x.id!=="(end)"){while(x.id===",")be("Extra comma."),bm(",");if(x.id==="]")break;a&&O.line!==x.line&&bt(),this.first.push(bn(10));if(x.id!==",")break;bv();if(x.id==="]"&&!A.es5){be("Extra comma.",O);break}}a&&(p-=A.indent,bt()),bm("]",this);return this},160),function(a){a.nud=function(){var a,b,c,d,e,f={},g;a=O.line!==x.line,a&&(p+=A.indent,x.from===p+A.indent&&(p+=A.indent));for(;;){if(x.id==="}")break;a&&bt();if(x.value==="get"&&bl().id!==":")bm("get"),A.es5||bg("get/set are ES5 features."),c=bV(),c||bg("Missing property name."),g=x,bo(O,x),b=bX(),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.",g),e=b["(params)"],e&&be("Unexpected parameter '{a}' in get {b} function.",g,e[0],c),bo(O,x),bm(","),bt(),bm("set"),d=bV(),c!==d&&bg("Expected {a} and instead saw {b}.",O,c,d),g=x,bo(O,x),b=bX(),e=b["(params)"],(!e||e.length!==1||e[0]!=="value")&&be("Expected (value) in set {a} function.",g,c);else{c=bV();if(typeof c!="string")break;bm(":"),br(O,x),bn(10)}f[c]===!0&&be("Duplicate member '{a}'.",x,c),f[c]=!0,bT(c);if(x.id===",")bv(),x.id===","?be("Extra comma.",O):x.id==="}"&&!A.es5&&be("Extra comma.",O);else break}a&&(p-=A.indent,bt()),bm("}",this);return this},a.fud=function(){bg("Expected to see a statement and instead saw a block.",O)}}(bx("{"));var bY=by("var",function(a){var b,c,d;j["(onevar)"]&&A.onevar?be("Too many var statements."):j["(global)"]||(j["(onevar)"]=!0),this.first=[];for(;;){br(O,x),b=bN(),j["(global)"]&&B[b]===!1&&be("Redefinition of '{a}'.",O,b),bj(b,"unused");if(a)break;c=O,this.first.push(O),x.id==="="&&(br(O,x),bm("="),br(O,x),x.id==="undefined"&&be("It is not necessary to initialize '{a}' to 'undefined'.",O,b),bl(0).id==="="&&x.identifier&&bg("Variable {a} was not declared correctly.",x,x.value),d=bn(0),c.first=d);if(x.id!==",")break;bv()}return this});bY.exps=!0,bz("function",function(){o&&be("Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",O);var a=bN();bo(O,x),bj(a,"unction"),bX(a,!0),x.id==="("&&x.line===O.line&&bg("Function declarations are not invocable. Wrap the whole function invocation in parens.");return this}),bB("function",function(){var a=bM();a?bo(O,x):br(O,x),bX(a),!A.loopfunc&&j["(loopage)"]&&be("Don't make functions within a loop.");return this}),bz("if",function(){var a=x;bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),x.id==="else"&&(br(O,x),bm("else"),x.id==="if"||x.id==="switch"?bP(!0):bS(!0,!0));return this}),bz("try",function(){var a,b,c;bS(!1),x.id==="catch"&&(bm("catch"),br(O,x),bm("("),c=G,G=Object.create(c),b=x.value,x.type!=="(identifier)"?be("Expected an identifier and instead saw '{a}'.",x,b):bj(b,"exception"),bm(),bm(")"),bS(!1),a=!0,G=c);if(x.id==="finally")bm("finally"),bS(!1);else{a||bg("Expected '{a}' and instead saw '{b}'.",x,"catch",x.value);return this}}),bz("while",function(){var a=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,a),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,bD("with"),bz("switch",function(){var a=x,b=!1;j["(breakage)"]+=1,bm("("),br(this,a),bq(),this.condition=bn(20),bm(")",a),bq(D,O),br(O,x),a=x,bm("{"),br(O,x),p+=A.indent,this.cases=[];for(;;)switch(x.id){case"case":switch(j["(verb)"]){case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'case'.",O)}bt(-A.indent),bm("case"),this.cases.push(bn(20)),b=!0,bm(":"),j["(verb)"]="case";break;case"default":switch(j["(verb)"]){case"break":case"continue":case"return":case"throw":break;default:$.test(s[x.line-2])||be("Expected a 'break' statement before 'default'.",O)}bt(-A.indent),bm("default"),b=!0,bm(":");break;case"}":p-=A.indent,bt(),bm("}",a),(this.cases.length===1||this.condition.id==="true"||this.condition.id==="false")&&be("This 'switch' should be an 'if'.",this),j["(breakage)"]-=1,j["(verb)"]=undefined;return;case"(end)":bg("Missing '{a}'.",x,"}");return;default:if(b)switch(O.id){case",":bg("Each value should have its own case label.");return;case":":bR();break;default:bg("Missing ':' on a case clause.",O)}else bg("Expected '{a}' and instead saw '{b}'.",x,"case",x.value)}}).labelled=!0,by("debugger",function(){A.debug||be("All 'debugger' statements should be removed.");return this}).exps=!0,function(){var a=by("do",function(){j["(breakage)"]+=1,j["(loopage)"]+=1,this.first=bS(!0),bm("while");var a=x;br(O,a),bm("("),bq(),bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20)),bm(")",a),bq(D,O),j["(breakage)"]-=1,j["(loopage)"]-=1;return this});a.labelled=!0,a.exps=!0}(),bz("for",function(){var a,b=x;j["(breakage)"]+=1,j["(loopage)"]+=1,bm("("),br(this,b),bq();if(bl(x.id==="var"?1:0).id==="in"){if(x.id==="var")bm("var"),bY.fud.call(bY,!0);else{switch(j[x.value]){case"unused":j[x.value]="var";break;case"var":break;default:be("Bad for in variable '{a}'.",x,x.value)}bm()}bm("in"),bn(20),bm(")",b),a=bS(!0,!0),A.forin&&(a.length>1||typeof a[0]!="object"||a[0].value!=="if")&&be("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}if(x.id!==";")if(x.id==="var")bm("var"),bY.fud.call(bY);else for(;;){bn(0,"for");if(x.id!==",")break;bv()}bu(O),bm(";"),x.id!==";"&&(bn(20),x.id==="="&&(A.boss||be("Expected a conditional expression and instead saw an assignment."),bm("="),bn(20))),bu(O),bm(";"),x.id===";"&&bg("Expected '{a}' and instead saw '{b}'.",x,")",";");if(x.id!==")")for(;;){bn(0,"for");if(x.id!==",")break;bv()}bm(")",b),bq(D,O),bS(!0,!0),j["(breakage)"]-=1,j["(loopage)"]-=1;return this}).labelled=!0,by("break",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"&&O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()),bO("break");return this}).exps=!0,by("continue",function(){var a=x.value;j["(breakage)"]===0&&be("Unexpected '{a}'.",x,this.value),bu(this),x.id!==";"?O.line===x.line&&(j[a]!=="label"?be("'{a}' is not a statement label.",x,a):G[a]!==j&&be("'{a}' is out of scope.",x,a),this.first=x,bm()):j["(loopage)"]||be("Unexpected '{a}'.",x,this.value),bO("continue");return this}).exps=!0,by("return",function(){bu(this),x.id==="(regexp)"&&be("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),x.id!==";"&&!x.reach&&(br(O,x),this.first=bn(20)),bO("return");return this}).exps=!0,by("throw",function(){bu(this),br(O,x),this.first=bn(20),bO("throw");return this}).exps=!0,bD("class"),bD("const"),bD("enum"),bD("export"),bD("extends"),bD("import"),bD("super"),bD("let"),bD("yield"),bD("implements"),bD("interface"),bD("package"),bD("private"),bD("protected"),bD("public"),bD("static");var b$=function(a,b,c){var e,f,g;d.errors=[],B=Object.create(J),bb(B,c||{});if(b){e=b.predef;if(e)if(Array.isArray(e))for(f=0;f0&&(a.implieds=d),P.length>0&&(a.urls=P),c=Object.keys(G),c.length>0&&(a.globals=c);for(f=1;f0&&(a.unused=j),h=[];for(i in u)if(typeof u[i]=="number"){a.member=u;break}return a},b$.report=function(a){function o(a,b){var c,d,e;if(b){m.push("
                                                                              "+a+" "),b=b.sort();for(d=0;d")}}var b=b$.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("
                                                                              Error:");if(b.errors)for(h=0;hProblem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"

                                                                              "+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"

                                                                              "));if(b.implieds){n=[];for(h=0;h"+b.implieds[h].name+" "+b.implieds[h].line+"";m.push("

                                                                              Implied global: "+n.join(", ")+"

                                                                              ")}if(b.unused){n=[];for(h=0;h"+b.unused[h].name+" "+b.unused[h].line+" "+b.unused[h]["function"]+"";m.push("

                                                                              Unused variable: "+n.join(", ")+"

                                                                              ")}b.json&&m.push("

                                                                              JSON: bad.

                                                                              "),m.push("
                                                                              ")}if(!a){m.push("
                                                                              "),b.urls&&o("URLs
                                                                              ",b.urls,"
                                                                              "),b.json&&!f?m.push("

                                                                              JSON: good.

                                                                              "):b.globals?m.push("
                                                                              Global "+b.globals.sort().join(", ")+"
                                                                              "):m.push("
                                                                              No new global variables introduced.
                                                                              ");for(h=0;h
                                                                              "+g.line+"-"+g.last+" "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")
                                                                              "),o("Unused",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="
                                                                              /*members ",j=10;for(h=0;h72&&(m.push(k+"
                                                                              "),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l=""+l+""),h*/
                                                                              ")}m.push("
                                                                              ")}}return m.join("")},b$.jshint=b$,b$.edition="2011-04-16";return b$}();typeof b=="object"&&b&&(b.JSHINT=d)}),define("ace/narcissus/jsparse",["require","exports","module","ace/narcissus/jslex","ace/narcissus/jsdefs"],function(require,exports,module){function parseMultiline(a,b){var c="";for(;;){b&&putstr(b);var d=readline();if(d===null)return null;if(d.match(/^[\s]*\.end[\s]*$/))break;c+="\n"+d}var e=new lexer.Tokenizer(c,"stdin",a.value),f=Script(e,!1,!1);a.value=e.lineno;return f}function parseStdin(a,b,c,d){if(a.match(/^[\s]*\.begin[\s]*$/)){++b.value;return parseMultiline(b,c)}d(a.trim())&&(a="");for(;;)try{var e=new lexer.Tokenizer(a,"stdin",b.value),f=Script(e,!1,!1);b.value=e.lineno;return f}catch(g){if(!e.unexpectedEOF)throw g;var h;do{c&&putstr(c),h=readline();if(!h)throw g}while(d(h.trim()));a+="\n"+h}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){var h=a.blockComments;switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),d.blockComments=h,c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),e.push(IdentifierName(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0),a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno&&(a.match(INCREMENT)||a.match(DECREMENT))&&(d=new Node(a,{postfix:!0}),d.push(c),c=d)}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;c.blockComment=a.lastBlockComment();switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=d.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),e.blockComments=n,a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(),m=b.update({inForLoopInit:!0}),f=null,(j=a.peek(!0))!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{m.inForLoopInit=!1,e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek(!0)===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(!0),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case DO:e=new Node(a,{isLoop:!0}),e.blockComments=n,e.body=Statement(a,b.pushTarget(e).nest()),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),e.blockComments=n,l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.label?e.target=l.labeledTargets.find(function(a){return a.labels.has(e.label)}):j===CONTINUE?e.target=l.defaultLoopTarget:e.target=l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.blockComments=n,e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.blockComments=n,e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest());return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.blockComments=n,e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.blockComments=n,e.statement=Statement(a,b.pushLabel(d).nest()),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.blockComments=n,e.expression=Expression(a,b),e.end=e.expression.end}e.blockComments=n,MagicalSemicolon(a);return e}function Module(a){var b=a.body.exports,c=a.body.modDefns,d=new StringMap;b.forEach(function(a,b){var e=b.node;if(e.type===MODULE)d.set(a,e);else if(!b.isDefinition&&e.type===IDENTIFIER&&c.has(e.value)){var f=c.get(e.value);d.set(a,f)}}),this.node=a,this.exports=b,this.exportedModules=d}function registerExport(a,b){function c(b,c){if(a.has(b))throw new SyntaxError("multiple exports of "+b);a.set(b,c)}switch(b.type){case MODULE:case FUNCTION:c(b.name,new Export(b,!0));break;case VAR:for(var d=0;d=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;return{parse:parse,parseStdin:parseStdin,Node:Node,SyntheticNode:SyntheticNode,DECLARED_FORM:DECLARED_FORM,EXPRESSED_FORM:EXPRESSED_FORM,STATEMENT_FORM:STATEMENT_FORM,Tokenizer:lexer.Tokenizer,FunctionDefinition:FunctionDefinition,Module:Module,Export:Export}}),define("ace/narcissus/jslex",["require","exports","module","ace/narcissus/jsdefs"],function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1,this.blackList=blackLists[Narcissus.options.version],this.blockComments=null}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);const blackLists={160:{},185:{},harmony:{}};blackLists[160][LET]=!0,blackLists[160][MODULE]=!0,blackLists[160][YIELD]=!0,blackLists[185][MODULE]=!0;var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a>="0"&&a<="7"){do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else this.cursor--,this.lexExponent(),b.value=0},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d>="0"&&d<="9"){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}else b.type=DOT,b.assignOp=null,b.value="."},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;if(input.length<=this.cursor)throw this.newSyntaxError("Unterminated string literal");while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=a;while((a=this.getValidIdentifierChar(!1))!==null)c+=a;b.type=definitions.keywords[c]||IDENTIFIER,b.type in this.blackList&&(b.type=IDENTIFIER),b.value=c},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor>=c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=this.getValidIdentifierChar(!0),e=d===null?c[this.cursor++]:null;if(d!==null)this.lexIdent(d);else if(a&&e==="/")this.lexRegExp(e);else if(e in opTokens)this.lexOp(e);else if(e===".")this.lexDot(e);else if(e>="1"&&e<="9")this.lexNumber(e);else if(e==="0")this.lexZeroNumber(e);else if(e==='"'||e==="'")this.lexString(e);else{if(!this.scanNewlines||e!=="\n"&&e!=="\r")throw this.newSyntaxError("Illegal token");e==="\r"&&c[this.cursor]==="\n"&&this.cursor++,b.type=NEWLINE,b.value="\n",this.lineno++}b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){a=(this.filename?this.filename+":":"")+this.lineno+": "+a;var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b},getValidIdentifierChar:function(a){var b=this.source;if(this.cursor>=b.length)return null;var c=b[this.cursor];if(c==="\\"&&b[this.cursor+1]==="u"){try{c=String.fromCharCode(parseInt(b.substring(this.cursor+2,this.cursor+6),16))}catch(d){return null}this.cursor+=5}if(c<=""){if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c==="$"||c==="_"||!a&&c>="0"&&c<="9"){this.cursor++;return c}return null}var e={};e["x"+c]=!0,e[c]=!0;var f=!1;try{f=Function("x","return (x."+(a?"":"x")+c+");")(e)===!0}catch(d){}f&&this.cursor++;return f?c:null}};return{Tokenizer:Tokenizer}}),define("ace/narcissus/jsdefs",["require","exports","module"],function(require,exports,module){function Stack(a){this.elts=a||null}function searchMap(a,b,c,d){var e=a.array;for(var f=0,g=e.length;f=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","export","false","finally","for","function","if","import","in","instanceof","let","module","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],statementStartTokens=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],whitespaceChars=["\t"," ","\f"," "," ",""," ","᠎"," "," "," "," "," "," "," "," "," "," "," "," "," "," "],whitespace={};for(var i=0;i>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},keywords={"__proto__":null},tokenIds={},consts=Narcissus.hostSupportsEvalConst?"const ":"var ";for(var i=0,j=tokens.length;i0&&(consts+=", ");var t=tokens[i],name;/^[a-z]/.test(t)?(name=t.toUpperCase(),keywords[t]=i):name=/^\W/.test(t)?opTypeNames[t]:t,consts+=name+" = "+i,tokenIds[name]=i,tokens[t]=i}consts+=";";var isStatementStartCode={"__proto__":null};for(i=0,j=statementStartTokens.length;i>",">>>","+","-","*","/","%"];for(i=0,j=assignOps.length;i0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                              ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index 482fb402b54..c3181cde3d6 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -12,16 +12,16 @@ alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -36,7 +36,7 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -63,9 +63,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -852,4 +852,4 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index 8cb55c72387..f2e17149961 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,7 +10,7 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ }};b.Queue=t;YUI.Env._loaderQueue=YUI.Env._loaderQueue||new t();var m="__",p=Object.prototype.hasOwnProperty,l=b.Lang.isObject;b.cached=function(x,v,w){v||(v={});return function(y){var z=arguments.length>1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit-uncompressed":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},skinnable:false,use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"]},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{requires:["classnamemanager"],skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; -}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; +}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                              ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); +Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); diff --git a/build/aui/aui.js b/build/aui/aui.js index 0a18f1efa5d..b3a37cc19a0 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4726,16 +4726,16 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -4750,7 +4750,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -4777,9 +4777,9 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -5566,4 +5566,4 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); From 68242381e97cfa528eedf4c9ee6bd39b811cc0a7 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Thu, 18 Aug 2011 12:05:34 -0700 Subject: [PATCH 110/132] AUI-493 - Allow debounce to accept string fn and context arguments like A.bind/rbind --- build/aui-debounce/aui-debounce-debug.js | 12 ++++++++++++ build/aui-debounce/aui-debounce-min.js | 2 +- build/aui-debounce/aui-debounce.js | 12 ++++++++++++ src/aui-debounce/js/aui-debounce.js | 12 ++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/build/aui-debounce/aui-debounce-debug.js b/build/aui-debounce/aui-debounce-debug.js index 5cf43fef268..5c10d44b129 100644 --- a/build/aui-debounce/aui-debounce-debug.js +++ b/build/aui-debounce/aui-debounce-debug.js @@ -3,6 +3,7 @@ var Lang = A.Lang; var AArray = A.Array; var isArray = Lang.isArray; +var isString = Lang.isString; var isUndefined = Lang.isUndefined; var DEFAULT_ARGS = []; @@ -15,6 +16,10 @@ A.debounce = function(fn, delay, context, args) { var id; var tempArgs; + if (isString(fn) && context) { + fn = A.bind(fn, context); + } + delay = delay || 0; args = toArray(arguments, DEFAULT_ARGS, 3); @@ -61,6 +66,12 @@ A.debounce = function(fn, delay, context, args) { } }; + var setDelay = function(delay) { + cancelFn(); + + delay = delay || 0; + }; + var wrapped = function() { var currentArgs = arguments.length ? arguments : args; @@ -69,6 +80,7 @@ A.debounce = function(fn, delay, context, args) { wrapped.cancel = cancelFn; wrapped.delay = delayFn; + wrapped.setDelay = setDelay; return wrapped; }; diff --git a/build/aui-debounce/aui-debounce-min.js b/build/aui-debounce/aui-debounce-min.js index 8070bd055ce..e72cbbda46a 100644 --- a/build/aui-debounce/aui-debounce-min.js +++ b/build/aui-debounce/aui-debounce-min.js @@ -1 +1 @@ -AUI.add("aui-debounce",function(a){var g=a.Lang;var f=a.Array;var c=g.isArray;var d=g.isUndefined;var b=[];var e=function(i,k,j,h){return !d(i)?f(i,j||0,(h!==false)):k;};a.debounce=function(q,l,j,n){var h;var p;l=l||0;n=e(arguments,b,3);var k=function(){clearInterval(h);h=null;};var i=function(){k();var s=q.apply(j,p||n||b);p=null;return s;};var m=function(u,s,v,t){o.cancel();u=!d(u)?u:l;q=t||q;j=v||j;if(s!=n){p=e(s,b,0,false).concat(n);}if(u>0){h=setInterval(i,u);}else{return i();}};var r=function(){if(h){k();}};var o=function(){var s=arguments.length?arguments:n;return o.delay(l,s,j||this);};o.cancel=r;o.delay=m;return o;};},"@VERSION@",{skinnable:false}); \ No newline at end of file +AUI.add("aui-debounce",function(b){var h=b.Lang;var g=b.Array;var d=h.isArray;var a=h.isString;var e=h.isUndefined;var c=[];var f=function(j,l,k,i){return !e(j)?g(j,k||0,(i!==false)):l;};b.debounce=function(r,m,k,o){var i;var q;if(a(r)&&k){r=b.bind(r,k);}m=m||0;o=f(arguments,c,3);var l=function(){clearInterval(i);i=null;};var j=function(){l();var u=r.apply(k,q||o||c);q=null;return u;};var n=function(w,u,x,v){p.cancel();w=!e(w)?w:m;r=v||r;k=x||k;if(u!=o){q=f(u,c,0,false).concat(o);}if(w>0){i=setInterval(j,w);}else{return j();}};var s=function(){if(i){l();}};var t=function(u){s();u=u||0;};var p=function(){var u=arguments.length?arguments:o;return p.delay(m,u,k||this);};p.cancel=s;p.delay=n;p.setDelay=t;return p;};},"@VERSION@",{skinnable:false}); \ No newline at end of file diff --git a/build/aui-debounce/aui-debounce.js b/build/aui-debounce/aui-debounce.js index 5cf43fef268..5c10d44b129 100644 --- a/build/aui-debounce/aui-debounce.js +++ b/build/aui-debounce/aui-debounce.js @@ -3,6 +3,7 @@ var Lang = A.Lang; var AArray = A.Array; var isArray = Lang.isArray; +var isString = Lang.isString; var isUndefined = Lang.isUndefined; var DEFAULT_ARGS = []; @@ -15,6 +16,10 @@ A.debounce = function(fn, delay, context, args) { var id; var tempArgs; + if (isString(fn) && context) { + fn = A.bind(fn, context); + } + delay = delay || 0; args = toArray(arguments, DEFAULT_ARGS, 3); @@ -61,6 +66,12 @@ A.debounce = function(fn, delay, context, args) { } }; + var setDelay = function(delay) { + cancelFn(); + + delay = delay || 0; + }; + var wrapped = function() { var currentArgs = arguments.length ? arguments : args; @@ -69,6 +80,7 @@ A.debounce = function(fn, delay, context, args) { wrapped.cancel = cancelFn; wrapped.delay = delayFn; + wrapped.setDelay = setDelay; return wrapped; }; diff --git a/src/aui-debounce/js/aui-debounce.js b/src/aui-debounce/js/aui-debounce.js index 8a34fa032a5..396d285f70f 100644 --- a/src/aui-debounce/js/aui-debounce.js +++ b/src/aui-debounce/js/aui-debounce.js @@ -2,6 +2,7 @@ var Lang = A.Lang; var AArray = A.Array; var isArray = Lang.isArray; +var isString = Lang.isString; var isUndefined = Lang.isUndefined; var DEFAULT_ARGS = []; @@ -14,6 +15,10 @@ A.debounce = function(fn, delay, context, args) { var id; var tempArgs; + if (isString(fn) && context) { + fn = A.bind(fn, context); + } + delay = delay || 0; args = toArray(arguments, DEFAULT_ARGS, 3); @@ -60,6 +65,12 @@ A.debounce = function(fn, delay, context, args) { } }; + var setDelay = function(delay) { + cancelFn(); + + delay = delay || 0; + }; + var wrapped = function() { var currentArgs = arguments.length ? arguments : args; @@ -68,6 +79,7 @@ A.debounce = function(fn, delay, context, args) { wrapped.cancel = cancelFn; wrapped.delay = delayFn; + wrapped.setDelay = setDelay; return wrapped; }; \ No newline at end of file From 63a651a2a8145ce64dec0571873f0671ee371426 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Fri, 19 Aug 2011 11:57:00 -0700 Subject: [PATCH 111/132] AUI-494 - A.setInterval doesn't loop at the proper intervals --- build/aui-task-manager/aui-task-manager-debug.js | 6 ++++-- build/aui-task-manager/aui-task-manager-min.js | 2 +- build/aui-task-manager/aui-task-manager.js | 6 ++++-- src/aui-task-manager/js/aui-task-manager.js | 6 ++++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/build/aui-task-manager/aui-task-manager-debug.js b/build/aui-task-manager/aui-task-manager-debug.js index 22c44978777..95dfef495c6 100644 --- a/build/aui-task-manager/aui-task-manager-debug.js +++ b/build/aui-task-manager/aui-task-manager-debug.js @@ -101,7 +101,7 @@ var TaskManager = { _decrementNextRunTime: function(task) { var instance = TaskManager; - return task.next -= now() - task.lastRunTime; + return task.next = task.timeout - (now() - task.lastRunTime); }, _getNearestInterval: function(num) { @@ -151,11 +151,13 @@ var TaskManager = { var interval = instance._INTERVAL; var tasks = instance._TASKS; + var halfInterval = interval / 2; + for (var start = now(); i < length && now() - start < 50; i++) { var taskId = pendingTasks[i]; var task = tasks[taskId]; - if (task && instance._decrementNextRunTime(task) < interval / 2) { + if (task && instance._decrementNextRunTime(task) < halfInterval) { instance.run(task); if (instance.isRepeatable(task)) { diff --git a/build/aui-task-manager/aui-task-manager-min.js b/build/aui-task-manager/aui-task-manager-min.js index 672be922c1c..773594ca31a 100644 --- a/build/aui-task-manager/aui-task-manager-min.js +++ b/build/aui-task-manager/aui-task-manager-min.js @@ -1 +1 @@ -AUI.add("aui-task-manager",function(b){var e=b.Lang,c=e.now,f=b.Object.isEmpty,d=b.Array;var a={clearInterval:function(h){var g=a;g.unregister(true,h);},clearTimeout:function(h){var g=a;g.unregister(false,h);},intervalTime:function(h){var g=this;if(arguments.length){g._INTERVAL=h;}return g._INTERVAL;},isRepeatable:function(h){var g=a;return h.repeats;},setTimeout:function(k,i,j){var g=a;var h=d(arguments,3,true);return g.register(false,k,i,j,h);},setInterval:function(k,i,j){var g=a;var h=d(arguments,3,true);return g.register(true,k,i,j,h);},register:function(h,l,j,k,i){var g=a;var m=(++b.Env._uidx);i=i||[];i.unshift(l,k);g._TASKS[m]=g._create(h,g._getNearestInterval(j),b.rbind.apply(b,i));g._lazyInit();return m;},run:function(h){var g=this;h.lastRunTime=c();return h.fn();},unregister:function(h,k){var g=a;var j=g._TASKS;var i=j[k];g._lazyDestroy();return i&&i.repeats===h&&delete j[k];},_create:function(h,i,j){var g=a;return{fn:j,lastRunTime:c(),next:i,repeats:h,timeout:i};},_decrementNextRunTime:function(h){var g=a;return h.next-=c()-h.lastRunTime;},_getNearestInterval:function(i){var g=a;var h=g._INTERVAL;var k=i%h;var j;if(k Date: Fri, 19 Aug 2011 16:16:56 -0300 Subject: [PATCH 112/132] AUI-452 Missing files --- src/aui-form/js/aui-form-base.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/aui-form/js/aui-form-base.js b/src/aui-form/js/aui-form-base.js index 2f635587ada..57f868f2162 100644 --- a/src/aui-form/js/aui-form-base.js +++ b/src/aui-form/js/aui-form-base.js @@ -2,6 +2,8 @@ var Lang = A.Lang, getClassName = A.getClassName, + _serialize = A.IO.prototype._serialize, + NAME = 'form', CSS_FORM = getClassName(NAME), @@ -41,7 +43,7 @@ var Form = A.Component.create( getter: function(value) { var instance = this; - var values = A.io._serialize(instance.get('contentBox').getDOM()); + var values = _serialize(instance.get('contentBox').getDOM()); return A.QueryString.parse(values); }, From 6aae020ff9d4293ea3ca743b031a404110a08c1e Mon Sep 17 00:00:00 2001 From: "bruno.basto" Date: Fri, 19 Aug 2011 16:17:08 -0300 Subject: [PATCH 113/132] AUI-452 Build files --- build/aui-form-builder/aui-form-builder-base-min.js | 2 +- build/aui-form-builder/aui-form-builder-field-min.js | 10 +++++----- build/aui-form-builder/aui-form-builder-min.js | 12 ++++++------ build/aui-form/aui-form-base-debug.js | 4 +++- build/aui-form/aui-form-base-min.js | 2 +- build/aui-form/aui-form-base.js | 4 +++- build/aui-form/aui-form-debug.js | 6 ++++-- build/aui-form/aui-form-min.js | 4 ++-- build/aui-form/aui-form.js | 6 ++++-- 9 files changed, 29 insertions(+), 21 deletions(-) diff --git a/build/aui-form-builder/aui-form-builder-base-min.js b/build/aui-form-builder/aui-form-builder-base-min.js index dfea1dad70e..a05c492638a 100644 --- a/build/aui-form-builder/aui-form-builder-base-min.js +++ b/build/aui-form-builder/aui-form-builder-base-min.js @@ -1,4 +1,4 @@ AUI.add("aui-form-builder-base",function(p){var k=p.Lang,n=k.isArray,o=k.isString,m=k.isObject,w=k.isValue,t=function(A){return(A instanceof p.Node);},s=function(A){return(A instanceof p.NodeList);},c=function(A){return(A instanceof p.FormBuilder);},q=function(A){return(A instanceof p.FormBuilderField);},e=p.DD.DDM,i="active",x="acceptChildren",r="autoSelectFields",z="availableFields",y="append",B="boundingBox",g="builder",d="button",j="buttons",l="buttonsNode",h="children",b="clonable-portal-layout",v="cloneNode",f=", ";COMPONENT="component",CONTENT="content",CONTENT_BOX="contentBox",CONTAINER="container",DELETE="delete",DD="dd",DEFAULT="default",DEFAULT_MESSAGE="defaultMessage",DEFAULT_MESSAGE_NODE="defaultMessageNode",DOT=".",DUPLICATE="duplicate",DRAG="drag",DRAGGING="dragging",DRAG_CONTAINER="dragContainer",DRAG_CONTAINER_NODE="dragContainerNode",DRAG_NODES_LIST="dragNodesList",DRAG_PORTAL_LAYOUT="dragPortalLayout",DROP="drop",DROP_CONTAINER="dropContainer",DROP_CONTAINER_NODE="dropContainerNode",DROP_PORTAL_LAYOUT="dropPortalLayout",DROP_NODE="dropNode",DROP_ZONE_NODE="dropZoneNode",EDIT="edit",EMPTY_SELECTION="emptySelection",EMPTY_STR="",ENABLE_EDITING="enableEditing",FIELD="field",FIELDS="fields",KEY="key",FIRST="first",FIRST_CHILD="firstChild",FIXED="fixed",FOCUSED="focused",FORM="form",FORM_BUILDER="formBuilder",FORM_LAYOUT="form-layout",ID="id",ICON="icon",INACTIVE="inactive",INDEX="index",INPUT="input",ITEMS="items",LABEL="label",LABEL_NODE="labelNode",LAST="last",LAST_CHILD="lastChild",LIST="list",MESSAGE="message",NAME="name",NESTED_LIST="nestedList",NODE="node",OVER="over",PARENT="parent",PARENT_NODE="parentNode",PLACEHOLDER="placeholder",PLACE_AFTER="placeAfter",PLACE_BEFORE="placeBefore",PREPEND="prepend",HELPER="helper",HIDDEN="hidden",READ_ONLY_ATTRIBUTES="readOnlyAttributes",RENDER="render",SAVE="save",SELECTED="selected",SETTINGS="settings",SETTINGS_FORM_NODE="settingsFormNode",SETTINGS_BUTTONS_NODE="settingsButtonsNode",SRC_NODE="srcNode",SPACE=" ",STATE="state",STRINGS="strings",TABS="tabs",TABS_NODE="tabsNode",TABS_CONTENT_NODE="tabsContentNode",TABS_LIST_NODE="tabsListNode",TABVIEW="tabview",TARGET="target",TEMPLATE_NODE="templateNode",TEXT="text",TYPE="type",UNIQUE="unique",VALUE="value",VALUES="values",ZONE="zone",REGION="region",WIDGET="widget",getCN=p.getClassName,CSS_BUTTON_INPUT=getCN(d,INPUT),CSS_COMPONENT=getCN(COMPONENT),CSS_DD_DRAGGING=getCN(DD,DRAGGING),CSS_HELPER_HIDDEN=getCN(HELPER,HIDDEN),CSS_FORM_BUILDER_BUTTON_DELETE=getCN(FORM,g,d,DELETE),CSS_FORM_BUILDER_BUTTON_DUPLICATE=getCN(FORM,g,d,DUPLICATE),CSS_FORM_BUILDER_BUTTON_EDIT=getCN(FORM,g,d,EDIT),CSS_FORM_BUILDER_BUTTON_SAVE=getCN(FORM,g,d,SAVE),CSS_FORM_BUILDER_DEFAULT_MESSAGE=getCN(FORM,g,DEFAULT,MESSAGE),CSS_FORM_BUILDER_DRAG_CONTAINER=getCN(FORM,g,DRAG,CONTAINER),CSS_FORM_BUILDER_DRAG_NODE=getCN(FORM,g,DRAG,NODE),CSS_FORM_BUILDER_DROP_ACTIVE=getCN(FORM,g,DROP,i),CSS_FORM_BUILDER_DROP_CONTAINER=getCN(FORM,g,DROP,CONTAINER),CSS_FORM_BUILDER_DROP_NODE=getCN(FORM,g,DROP,NODE),CSS_FORM_BUILDER_DROP_ZONE=getCN(FORM,g,DROP,ZONE),CSS_FORM_BUILDER_FIELD=getCN(FORM,g,FIELD),CSS_FORM_BUILDER_FIELD_BUTTONS=getCN(FORM,g,FIELD,j),CSS_FORM_BUILDER_FIELD_CONTENT=getCN(FORM,g,FIELD,CONTENT),CSS_FORM_BUILDER_FIELD_HIDDEN=getCN(FORM,g,FIELD,HIDDEN),CSS_FORM_BUILDER_FIELD_ICON=getCN(FORM,g,FIELD,ICON),CSS_FORM_BUILDER_FIELD_ICON_TEXT=getCN(FORM,g,FIELD,ICON,TEXT),CSS_FORM_BUILDER_FIELD_OVER=getCN(FORM,g,FIELD,OVER),CSS_FORM_BUILDER_FIELD_SELECTED=getCN(FORM,g,FIELD,SELECTED),CSS_FORM_BUILDER_HELPER=getCN(FORM,g,HELPER),CSS_FORM_BUILDER_ICON=getCN(FORM,g,ICON),CSS_FORM_BUILDER_INACTIVE=getCN(FORM,g,INACTIVE),CSS_FORM_BUILDER_LABEL=getCN(FORM,g,LABEL),CSS_FORM_BUILDER_PLACEHOLDER=getCN(FORM,g,PLACEHOLDER),CSS_FORM_BUILDER_SETTINGS=getCN(FORM,g,SETTINGS),CSS_FORM_BUILDER_SETTINGS_BUTTONS=getCN(FORM,g,SETTINGS,j),CSS_FORM_BUILDER_TABS_CONTAINER=getCN(FORM,g,TABS,CONTAINER),CSS_TABVIEW_CONTENT=getCN(TABVIEW,CONTENT),CSS_TABVIEW_LIST=getCN(TABVIEW,LIST),CSS_ICON=getCN(ICON),CSS_WIDGET=getCN(WIDGET),TPL_DEFAULT_MESSAGE='
                                                                            • ',TPL_DRAG_CONTAINER='
                                                                                ',TPL_DRAG_NODE='
                                                                              • '+''+'{label}'+"
                                                                              • ",TPL_DROP_CONTAINER='
                                                                                  ',TPL_FIELD_BOUNDING_BOX='
                                                                                • ',TPL_HELPER='
                                                                                  ',TPL_PLACEHOLDER='
                                                                                • ',TPL_TABS='
                                                                                  ',TPL_TABS_CONTENT='
                                                                                  ',TPL_TABS_LIST='
                                                                                    ',TPL_SETTINGS='',TPL_SETTINGS_BUTTONS='
                                                                                    '+''+''+''+""+""+''+''+''+""+""+"
                                                                                    ",TAB_INDEX_DRAG=0,TAB_INDEX_SETTINGS=1,DEFAULT_ICON_CLASS=[CSS_FORM_BUILDER_FIELD_ICON,CSS_FORM_BUILDER_FIELD_ICON_TEXT].join(SPACE),INVALID_CLONE_ATTRS=[B,CONTENT_BOX,SRC_NODE,FIELDS,ID,SELECTED,TEMPLATE_NODE,LABEL_NODE,NAME],INVALID_DBCLICK_TARGETS="button,input,label,select,textarea";var a=function(){};a.ATTRS={fields:{value:[],setter:"_setFields",getter:function(A){return A||[];},validator:n}};p.mix(a.prototype,{addField:function(D){var C=this; var A=C.get(FIELDS);A=C._removeFromParent(D);A.push(D);C.set(FIELDS,A);},addFields:function(C){var A=this;p.Array.each(A._normalizeFields(C),p.bind(A.addField,A));},contains:function(F,D){var C=this;var A=C.get(FIELDS);if(F===undefined){return false;}if(D){var E=C.get(B);return E.contains(F.get(B));}return(C.indexOf(F)>-1);},eachField:function(F,D){var C=this;var A=C.get(FIELDS);for(var E=0;E0)){return false;}else{if(D.fixed===true){return false;}}A=C._removeFromParent(D);D.removeTarget(C);C.set(FIELDS,A);},removeFields:function(C){var A=this;p.Array.each(A._normalizeFields(C),p.bind(A.removeField,A));},_getFormBuilder:function(){return(this.get(FORM_BUILDER)||this);},_getRenderedField:function(C,E){var A=this;var D=A._getFormBuilder();if(!q(E)){E=D._renderField(A,C,E);}E.addTarget(D);E.set(PARENT,A);return E;},_normalizeFields:function(C){var A=this;var D=[];var F=A._getFormBuilder();var G=F.get(z);var E=F.uniqueFields;C=p.Array(C);p.Array.each(C,function(J,I){J=A._getRenderedField(I,J);var H=J.get(KEY);var K=J.get(UNIQUE);if(K&&!E.containsKey(H)){E.add(H,J);}if(K&&E.contains(J)){D.push(J);}else{if(K&&!E.contains(J)){J.destroy();}else{D.push(J);}}});return D;},_removeFromParent:function(E){var C=this;var A=C.get(FIELDS);if(q(E)){var D=E.get(PARENT);if(D&&D!=C){D._removeFromParent(E);}else{if(C.contains(E)){p.Array.removeItem(A,E);}}}return A;},_setFields:function(C){var A=this;return A._normalizeFields(C);}});p.FormBuilderFieldSupport=a;var u=p.Component.create({NAME:FORM_BUILDER,ATTRS:{autoSelectFields:{value:false},availableFields:{lazyAdd:false,value:[],validator:n,setter:function(A){p.each(A,function(D,C){D.key=D.key||C;});return A;}},enableEditing:{value:true},nestedList:{setter:function(D){var A=this;var C=p.merge({dd:{plugins:[{cfg:{horizontal:false,scrollDelay:30},fn:p.Plugin.DDWinScroll}]},dropCondition:function(F){var G=false;var E=F.drop.get(NODE);var H=E.getData(FIELD);if(H&&H.get(x)){G=true;}return G;},dropOn:DOT+CSS_FORM_BUILDER_DROP_ZONE,placeholder:p.Node.create(TPL_PLACEHOLDER),sortCondition:function(F){var E=A.get(DROP_CONTAINER_NODE);return E.contains(F.drop.get(NODE));}},D);return C;},value:{}},strings:{value:{button:"Button",defaultMessage:"Drop a field here",emptySelection:"No field selected",large:"Large",medium:"Medium",reset:"Reset",small:"Small",submit:"Submit",type:"Type"}},defaultMessageNode:{valueFn:function(){return p.Node.create(TPL_DEFAULT_MESSAGE);}},dragContainerNode:{valueFn:function(){return p.Node.create(TPL_DRAG_CONTAINER);}},dragNodesList:{setter:function(A){p.each(A,function(D,C){D.setData(INDEX,C);});},valueFn:"_valueDragNodesList"},dropContainerNode:{valueFn:function(){return p.Node.create(TPL_DROP_CONTAINER);}},settingsButtonsNode:{valueFn:function(){return p.Node.create(TPL_SETTINGS_BUTTONS);}},settingsFormNode:{valueFn:function(){return p.Node.create(TPL_SETTINGS);}},tabsNode:{valueFn:function(){return p.Node.create(TPL_TABS);}},tabsContentNode:{valueFn:function(){return p.Node.create(TPL_TABS_CONTENT);}},tabsListNode:{valueFn:function(){return p.Node.create(TPL_TABS_LIST);}}},AUGMENTS:[p.FormBuilderFieldSupport],HTML_PARSER:{defaultMessageNode:DOT+CSS_FORM_BUILDER_DEFAULT_MESSAGE,dragContainerNode:DOT+CSS_FORM_BUILDER_DRAG_CONTAINER,dragNodesList:function(C){var A=C.all(DOT+CSS_FORM_BUILDER_DRAG_NODE);return(A.size()<=0)?null:A;},dropContainerNode:DOT+CSS_FORM_BUILDER_DROP_CONTAINER,settingsFormNode:FORM+DOT+CSS_FORM_BUILDER_SETTINGS,settingsButtonsNode:DOT+CSS_FORM_BUILDER_SETTINGS_BUTTONS,tabsNode:DOT+CSS_FORM_BUILDER_TABS_CONTAINER,tabsContentNode:DOT+CSS_TABVIEW_CONTENT,tabsListNode:DOT+CSS_TABVIEW_LIST},EXTENDS:p.Widget,prototype:{initializer:function(){var A=this;A.boundingBox=A.get(B);A.dragContainerNode=A.get(DRAG_CONTAINER_NODE);A.dragNodesList=A.get(DRAG_NODES_LIST);A.dropContainerNode=A.get(DROP_CONTAINER_NODE);A.settingsButtonsNode=A.get(SETTINGS_BUTTONS_NODE);A.settingsFormNode=A.get(SETTINGS_FORM_NODE);A.tabsNode=A.get(TABS_NODE);A.tabsContentNode=A.get(TABS_CONTENT_NODE);A.tabsListNode=A.get(TABS_LIST_NODE);A._dragNestedList=new p.NestedList(A.get(NESTED_LIST));A._dropNestedList=new p.NestedList(A.get(NESTED_LIST));A._tabs=new p.TabView({boundingBox:A.tabsNode,contentNode:A.tabsContentNode,listNode:A.tabsListNode});if(!A.tabsContentNode.inDoc()){A._tabs.set(ITEMS,[{label:"Add a field",contentNode:A.dragContainerNode},{label:"Field settings",content:A.settingsFormNode}]);}},renderUI:function(){var A=this;A.dragNodesList.appendTo(A.dragContainerNode);A._tabs.render();},bindUI:function(){var A=this;var D=A.boundingBox;var C=A.dropContainerNode;var E=A.settingsButtonsNode;A._dragNestedList.on("drag:end",p.bind(A._onDragEndDragNestedList,A));A._dragNestedList.on("drag:start",p.bind(A._onDragStartDragNestedList,A));A._dropNestedList.on("drag:end",p.bind(A._onDragEndDropNestedList,A));A._tabs.after("activeTabChange",p.bind(A._afterActiveTabChange,A));A.uniqueFields.after("add",p.bind(A._afterUniqueFieldsAdd,A));A.uniqueFields.after("remove",p.bind(A._afterUniqueFieldsRemove,A));C.delegate("click",p.bind(A._onClickFieldDelete,A),DOT+CSS_FORM_BUILDER_BUTTON_DELETE);C.delegate("click",p.bind(A._onClickFieldDuplicate,A),DOT+CSS_FORM_BUILDER_BUTTON_DUPLICATE);C.delegate("click",p.bind(A._onClickFieldEdit,A),DOT+CSS_FORM_BUILDER_BUTTON_EDIT);C.delegate("dblclick",p.bind(A._onDbClickField,A),DOT+CSS_FORM_BUILDER_FIELD);C.delegate("mouseenter",p.bind(A._onMouseEnterField,A),DOT+CSS_FORM_BUILDER_FIELD); C.delegate("mouseleave",p.bind(A._onMouseLeaveField,A),DOT+CSS_FORM_BUILDER_FIELD);E.delegate("click",p.bind(A._onClickSettingsButton,A),DOT+CSS_BUTTON_INPUT);A.after("*:fieldsChange",p.bind(A._afterFieldsChange,A));A.after("*:selectedChange",p.bind(A._afterSelectedChange,A));},syncUI:function(){var A=this;A.syncFieldsUI();A._syncDefaultMessage();A._syncUniqueFields();A._syncNestedList();},uniqueFields:new p.DataSet(),appendFields:function(C,D){var A=this;D.setContent(EMPTY_STR);p.each(C,function(F){var E=F.get(FIELDS);D.append(F.get(B));A.appendFields(E,F.get(DROP_ZONE_NODE));});},duplicateField:function(F){var A=this;var E=F.get(PARENT);var C=E.indexOf(F);var D=A._cloneField(F,true);E.insertField(++C,D);},selectField:function(D){var A=this;D.set(SELECTED,true);var C=A.settingsFormNode.one(INPUT);if(C){C.focus();C.select();}A._tabs.selectTab(TAB_INDEX_SETTINGS);},syncFieldsUI:function(E){var C=this;var A=C.get(FIELDS);var D=C.get(DROP_CONTAINER_NODE);if(E&&q(E.target)){var F=E.target;A=F.get(FIELDS);D=F.get(DROP_ZONE_NODE);}C.appendFields(A,D);},_afterActiveTabChange:function(G){var C=this;var F=C.selectedField;var D=C.get(SETTINGS_FORM_NODE);var E=C.get(SETTINGS_BUTTONS_NODE);var A=C.get(STRINGS);var H=C.contains(F,true);if(!H){D.setContent(A[EMPTY_SELECTION]);}E.toggleClass(CSS_HELPER_HIDDEN,!H);},_afterFieldsChange:function(){var A=this;A.syncUI();},_afterSelectedChange:function(D){var A=this;var E=D.target;var C=A.selectedField;A._syncSelectedFieldUI(E);if(E.get(SELECTED)){A.selectedField=E;if(C&&C!=E){C.set(SELECTED,false);}E.renderSettings();}},_afterUniqueFieldsAdd:function(D){var A=this;var C=D.attrName;var E=A._getDragNodeByKey(C);E.addClass(CSS_FORM_BUILDER_INACTIVE);E.unselectable();},_afterUniqueFieldsRemove:function(D){var A=this;var C=D.attrName;var E=A._getDragNodeByKey(C);E.removeClass(CSS_FORM_BUILDER_INACTIVE);E.selectable();},_cloneField:function(G,C){var A=this;var F=G.get(TYPE);var D={};p.each(G.getAttrs(),function(I,H){if(p.Array.indexOf(INVALID_CLONE_ATTRS,H)===-1&&!t(I)){D[H]=I;}});if(C){var E=[];p.each(G.get(FIELDS),function(H){E.push(A._cloneField(H,C));});D[FIELDS]=E;}D[TYPE]=F;return D;},_dropField:function(D){var J=this;var E=D.get(PARENT_NODE);var A=E.all("> "+DOT+CSS_FORM_BUILDER_FIELD);var H=D.getData(FIELD);var C=J.get(DEFAULT_MESSAGE_NODE);if(C.inDoc()){C.remove();}var I=J._getFieldParentByNode(D);var F=A.indexOf(D);if(!H){var G=J.get(z);H=G[D.getData(INDEX)];D.remove();}I.insertField(F,H);return I.getField(F);},_getDragNodeByKey:function(D){var A=this;var F=A.get(DRAG_NODES_LIST);var E=A.get(z);for(var C=0;C0){D.insert(E,G);}else{D.append(E);}F=p.merge(F,{boundingBox:E,key:F.key,formBuilder:C,render:true,after:{render:function(){E.removeClass(CSS_HELPER_HIDDEN);}}});if(F.disabled===undefined){F.disabled=!C.get(ENABLE_EDITING);}return C._getFieldInstance(F);},_syncDefaultMessage:function(){var C=this;if(!C.dropContainerNode.hasChildNodes()){var A=C.get(STRINGS);var D=C.get(DEFAULT_MESSAGE_NODE);D.setContent(A[DEFAULT_MESSAGE]);C.dropContainerNode.append(D);}},_syncNestedList:function(){var A=this;var D=A.get(z);var C=A.uniqueFields;A._syncNodes(); -A.dragNodes.each(function(F,E){var G=D[E];if(!C.containsKey(G.key)){A._dragNestedList.add(F);}});A._dropNestedList.addAll(A.dropNodes);},_syncNodes:function(){var A=this;var D=A.dragContainerNode;var C=A.dropContainerNode;A.dragNodes=D.all(DOT+CSS_FORM_BUILDER_FIELD);A.dropNodes=C.all([DOT+CSS_FORM_BUILDER_FIELD,DOT+CSS_FORM_BUILDER_DEFAULT_MESSAGE].join(f));},_syncSelectedFieldUI:function(F){var C=this;var E=F.get(SELECTED);var A=F.get(B);var D=C.selectedField;A.toggleClass(CSS_FORM_BUILDER_FIELD_SELECTED,E);if(!E&&F.contains(D)){E=true;}C._toggleFieldButtonsNode(F,E);},_syncUniqueFields:function(){var C=this;var E=C.get(z);var A=C.get(FIELDS);var D=C.uniqueFields;D.each(function(G,F){if(!C.contains(G,true)){D.remove(G);}});p.each(E,function(H,F){if(H.unique){var G=H.key;C.eachField(function(J){if(J.get(KEY)==G){var I=p.merge(C._cloneField(J,false),H);J.set(FIXED,I.fixed);J.set(READ_ONLY_ATTRIBUTES,I.readOnlyAttributes);J.set(UNIQUE,true);E[F]=I;D.add(G,J);}},true);}});},_toggleFieldButtonsNode:function(C,D){var A=this;var E=C.get(l);if(E){E.toggleClass(CSS_HELPER_HIDDEN,!D);}},_valueDragNodesList:function(){var A=this;var D=A.get(z);var C=[];p.each(D,function(F,E,G){C.push(p.substitute(TPL_DRAG_NODE,{icon:F.iconClass||DEFAULT_ICON_CLASS,label:F.label,key:F.key||E,type:F.type,unique:F.unique}));});return p.NodeList.create(C.join(EMPTY_STR));}}});p.FormBuilder=u;p.FormBuilder.types={};},"@VERSION@",{requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"],skinnable:true}); \ No newline at end of file +A.dragNodes.each(function(F,E){var G=D[E];if(!C.containsKey(G.key)){A._dragNestedList.add(F);}});A._dropNestedList.addAll(A.dropNodes);},_syncNodes:function(){var A=this;var D=A.dragContainerNode;var C=A.dropContainerNode;A.dragNodes=D.all(DOT+CSS_FORM_BUILDER_FIELD);A.dropNodes=C.all([DOT+CSS_FORM_BUILDER_FIELD,DOT+CSS_FORM_BUILDER_DEFAULT_MESSAGE].join(f));},_syncSelectedFieldUI:function(F){var C=this;var E=F.get(SELECTED);var A=F.get(B);var D=C.selectedField;A.toggleClass(CSS_FORM_BUILDER_FIELD_SELECTED,E);if(!E&&F.contains(D)){E=true;}C._toggleFieldButtonsNode(F,E);},_syncUniqueFields:function(){var C=this;var E=C.get(z);var A=C.get(FIELDS);var D=C.uniqueFields;D.each(function(G,F){if(!C.contains(G,true)){D.remove(G);}});p.each(E,function(H,F){if(H.unique){var G=H.key;C.eachField(function(J){if(J.get(KEY)==G){var I=p.merge(C._cloneField(J,false),H);J.set(FIXED,I.fixed);J.set(READ_ONLY_ATTRIBUTES,I.readOnlyAttributes);J.set(UNIQUE,true);E[F]=I;D.add(G,J);}},true);}});},_toggleFieldButtonsNode:function(C,D){var A=this;var E=C.get(l);if(E){E.toggleClass(CSS_HELPER_HIDDEN,!D);}},_valueDragNodesList:function(){var A=this;var D=A.get(z);var C=[];p.each(D,function(F,E,G){C.push(p.substitute(TPL_DRAG_NODE,{icon:F.iconClass||DEFAULT_ICON_CLASS,label:F.entryLabel||F.label,key:F.key||E,type:F.type,unique:F.unique}));});return p.NodeList.create(C.join(EMPTY_STR));}}});p.FormBuilder=u;p.FormBuilder.types={};},"@VERSION@",{requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-form-builder/aui-form-builder-field-min.js b/build/aui-form-builder/aui-form-builder-field-min.js index c8459675358..675787e4823 100644 --- a/build/aui-form-builder/aui-form-builder-field-min.js +++ b/build/aui-form-builder/aui-form-builder-field-min.js @@ -1,5 +1,5 @@ -AUI.add("aui-form-builder-field",function(b5){var bW=b5.Lang,aW=bW.isArray,bS=bW.isString,h="acceptChildren",e="bodyContent",aQ="boundingBox",ce="builder",cl="button",I="buttons",x="buttonsNode",aG="checkbox",J="checked",o="children",ch="clearfix",aR="close",aS="component",cq="contentBox",aK="container",cx="dataType",ci="default",aX="delete",bH="disabled",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",b6="dropNode",bq="dropZone",a2="dropZoneNode",aE="duplicate",Q="edit",bI="",bp="field",g="fields",a8="fixed",bN="for",q="form",be="formBuilder",aF="form-builder-field",s="help",n="helper",au="hidden",r="icon",cg="id",ai="label",b1="labelNode",bC="lightbulb",bg="metadata",aB="name",cy="node",b="panel",ba="portalLayout",aN="predefinedValue",bs="proxy",cd="readOnlyAttributes",ao="required",a7="requiredFlagNode",bG="state",bn="select",aZ="settings",ar="settingsFormNode",W="showLabel",av="size",X=" ",bR="string",bY="strings",ac="templateNode",bK="text",aq="textarea",u="tip",bv="tipIconNode",Y="type",aD="unique",bT="zone",bj="widget",z=b5.getClassName,bm=z(aS),aJ=z(bp,ai),p=z(n,ch),ae=z(n,au),bP=z(bG,ci),d=z(bp),bt=z(bp,bK),B=z(q,ce,cl),bL=z(q,ce,cl,aX),a4=z(q,ce,cl,aE),U=z(q,ce,cl,Q),a3=z(q,ce,az,cy),am=z(q,ce,az,bT),cw=z(q,ce,r),j=z(q,ce,r,aX),w=z(q,ce,r,aE),ak=z(q,ce,r,Q),E=z(q,ce,r,u),bM=z(q,ce,bp),bz=z(q,ce,bp,I),br=z(q,ce,a8),cv=z(q,ce,ao),bF=z(q,ce,aD),G=z(bj),b3='
                                                                                  • ',a='
                                                                                    '+''+'
                                                                                    '+"
                                                                                    "+''+'
                                                                                    '+"
                                                                                    "+''+'
                                                                                    '+"
                                                                                    "+"
                                                                                    ",C='
                                                                                    ',ab='
                                                                                      ',aj='',a6='',ay='*',cu="

                                                                                      ",bk='';var t=b5.Component.create({NAME:aF,ATTRS:{acceptChildren:{value:true},dataType:{value:bR},disabled:{value:false},fixed:{value:false},formBuilder:{value:undefined},id:{value:bI},icon:{value:bI},key:{value:bI},label:{value:bI},localizationMap:{value:{}},name:{valueFn:function(){var A=this;return A.get(Y)+(++b5.Env._uidx);}},parent:{value:null},predefinedValue:{value:bI},readOnlyAttributes:{value:[],validator:aW},required:{setter:b5.DataType.Boolean.parse,value:false},selected:{setter:b5.DataType.Boolean.parse,value:false},showLabel:{setter:b5.DataType.Boolean.parse,value:true},template:{value:bI},tip:{value:bI},type:{value:bI},unique:{setter:b5.DataType.Boolean.parse,value:false},buttonsNode:{valueFn:function(){return b5.Node.create(a);}},dropZoneNode:{valueFn:function(){return b5.Node.create(ab);}},labelNode:{valueFn:function(){return b5.Node.create(a6);}},requiredFlagNode:{valueFn:function(){return b5.Node.create(ay);}},templateNode:{valueFn:"getNode"},tipIconNode:{valueFn:function(){return b5.Node.create(bk);}}},AUGMENTS:[b5.FormBuilderFieldSupport],UI_ATTRS:[h,bH,a8,ai,aB,aN,ao,W,u,aD],HTML_PARSER:{buttonsNode:bO+bz,dropZoneNode:bO+am,labelNode:ai+bO+aJ,requiredFlagNode:bO+cv,tipIconNode:bO+E},prototype:{BOUNDING_TEMPLATE:b3,initializer:function(){var A=this;A.get(aQ).setData(bp,A);A.toolTip=new b5.Tooltip({trigger:A.get(bv),hideDelay:100});},bindUI:function(){var A=this;},renderUI:function(){var A=this;var cC=A.get(aQ);var cF=A.get(x);var L=A.get(cq);var cB=A.get(b1);var cE=A.get(a7);var cD=A.get(ac);var cA=A.get(bv);L.addClass(p);cC.prepend(cF);L.append(cB);L.append(cE);L.append(cA);L.append(cD);A.toolTip.render();},settingsNodesMap:{},saveSettings:function(){var A=this;var L=A.get(be);var cA=L.get(ar);b5.Array.each(b5.io._serialize(cA._node).split("&"),function(cC){var cB=cC.split("=");A.set(cB[0],decodeURIComponent(cB[1]));});},renderSettings:function(){var cI=this;var cE=cI.get(be);var A=cE.get(ar);var cJ=cE.get(bY);var cB=cI.settingsNodesMap;if(!cI.fieldSettingsNode){cI.fieldSettingsNode=b5.Node.create(C);var cG=b5.Node.create(C);var cC=b5.Node.create(aj);var L=b5.Node.create(a6);var cH=b5.Node.create(cu);L.setContent(cJ[Y]);cH.setContent(cI.get(cx)||cI.get(Y));cC.append(L);cC.append(cH);cC.appendTo(cG);cI._renderSettingsFields([{type:"text",name:ai,labelText:"Label",value:cI.get(ai)},{type:"checkbox",name:W,labelText:"Show label",labelAlign:"left",value:cI.get(W)},{type:"text",name:aB,labelText:"Name",value:cI.get(aB)},{type:"checkbox",name:ao,labelText:"Required",labelAlign:"left",value:ao},{type:"text",name:aN,labelText:"Default value",value:cI.get(aN)},{type:"textarea",name:u,labelText:"Tip",value:cI.get(u)}],cG);var cD=cB.labelSettingNode;cD.on({input:b5.bind(cI._onLabelInput,cI)});var cF=cB.showLabelSettingNode;cF.set(J,cI.get(W));cF.on({change:b5.bind(cI._onSettingsFieldChange,cI)});var cA=cB.requiredSettingNode;cA.set(J,cI.get(ao));cA.on({change:b5.bind(cI._onSettingsFieldChange,cI)});cI.propertiesPanel=new b5.Panel({bodyContent:cG,collapsible:true,title:"Properties"}).render();cI.fieldSettingsNode.append(cI.propertiesPanel.get(aQ));}A.setContent(cI.fieldSettingsNode);},getHTML:function(){},getNode:function(){},_onLabelInput:function(L){var A=this;var cB=L.target;var cA=cB.val();A.set(ai,cA);},_onSettingsFieldChange:function(L){var A=this;var cB=L.target;var cA=cB.val();if(cB.get(Y)===aG){cA=cB.get(J);}A.set(cB.get(aB),cA);},_renderSettingsFields:function(L,cB){var A=this;var cA=A.get(cd);b5.each(L,function(cD){var cE;if(b5.Array.indexOf(cA,cD.name)>-1){cD.disabled=true;}if(cD.type===bn){cE=new b5.Select(cD);}else{if(cD.type===aq){cE=new b5.Textarea(cD);}else{cE=new b5.Field(cD);}}cE.render(cB);var cC=cE.get(cy);if(cD.type===aG){cC.set(J,cD.value);}A.settingsNodesMap[cD.name+"SettingNode"]=cC;});},_uiSetAcceptChildren:function(cC){var A=this;var L=A.get(aQ);var cB=A.get(a2); -var cA=L.one(bO+am);if(cC&&!cA){L.append(cB);}else{if(!cC&&cA){cA.remove();}else{if(cC&&cA){A.set(a2,cA);}}}},_uiSetDisabled:function(cA){var A=this;var L=A.get(ac);if(cA){L.setAttribute(bH,cA);}else{L.removeAttribute(bH);}},_uiSetFixed:function(cA){var A=this;var cB=A.get(x);var L=cB.one(bO+bL);L.toggleClass(ae,cA);},_uiSetLabel:function(cA){var A=this;var L=A.get(b1);L.setContent(cA);},_uiSetName:function(cA){var A=this;var L=A.get(ac);L.set(aB,cA);},_uiSetPredefinedValue:function(cA){var A=this;var L=A.get(ac);L.val(cA);},_uiSetRequired:function(cA){var A=this;var L=A.get(a7);L.toggleClass(ae,!cA);},_uiSetShowLabel:function(cA){var A=this;var L=A.get(b1);L.toggleClass(ae,!cA);},_uiSetTip:function(cA){var A=this;var L=A.get(bv);L.toggleClass(ae,!cA);A.toolTip.set(e,cA);},_uiSetUnique:function(cA){var A=this;var L=A.get(aQ);var cB=A.get(x);L.toggleClass(bF,cA);cB.one(bO+a4).toggleClass(ae,cA);}}});b5.FormBuilderField=t;b5.FormBuilder.types["field"]=b5.FormBuilderField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},a9=b5.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aQ="boundingBox",cl="button",cj="buttonType",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",bU="form-builder-button-field",cg="id",r="icon",a0="input",ai="label",aB="name",cy="node",R="option",ad="options",ba="portalLayout",aN="predefinedValue",bs="proxy",bQ="reset",bf="selected",bX="selectedIndex",ax="submit",X=" ",bY="strings",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bJ='',cz=[ax,bQ,cl];var b7=b5.Component.create({NAME:bU,ATTRS:{acceptChildren:{value:false,readOnly:true},buttonType:{value:ax,validator:function(A){return b5.Array(cz).indexOf(A.toLowerCase())>-1;}},predefinedValue:{value:a9(ax)},showLabel:{value:false},template:{valueFn:function(){return bJ;}}},UI_ATTRS:b5.FormBuilderField.UI_ATTRS.concat([cj]),CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cB=A.get(ai);var cA=A.get(aB);var L=A.get(cj);var cD=A.get(aN);return b5.substitute(cC,{id:cE,label:cB,name:cA,type:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cG=this;var cD=cG.get(be);var A=cD.get(ar);var cC=cG.get(cj);var cH=cD.get(bY);var cB=cG.settingsNodesMap;b5.FormBuilderButtonField.superclass.renderSettings.apply(cG,arguments);if(!cG._renderedButtonSettings){cG._renderedButtonSettings=true;var L=cG.propertiesPanel.get(e);var cF=[];b5.each(cz,function(cI){cF.push({labelText:cH[cI],value:cI});});cG._renderSettingsFields([{labelText:"Button type",name:cj,options:cF,type:"select"}],L.item(0));var cE=cB["buttonTypeSettingNode"];cE.on({change:b5.bind(cG._onButtonTypeChange,cG)});var cA=b5.Array(cz).indexOf(cC);cE.all(R).item(cA).set(bf,true);}},_onButtonTypeChange:function(L){var A=this;var cA=L.target;A.set(cj,cA.get(m));},_uiSetButtonType:function(cA){var A=this;var L=A.get(ac);L.setAttribute(Y,cA);}}});b5.FormBuilderButtonField=b7;b5.FormBuilder.types["button"]=b5.FormBuilderButtonField;var bW=b5.Lang,aW=bW.isArray,aY=bW.isBoolean,aA=bW.isNumber,bS=bW.isString,aU="boolean",aQ="boundingBox",e="bodyContent",aG="checkbox",J="checked",aw="choice",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",cn="form-builder-checkbox-field",cg="id",r="icon",bi="inline",ai="label",c="labels",aB="name",cy="node",S="parentNode",ba="portalLayout",aN="predefinedValue",bs="proxy",av="size",X=" ",aH="template",ac="templateNode",m="value",z=b5.getClassName,d=z(bp),an=z(bp,aG),b2=z(bp,aw),bM=z(aF),co=z(aF,aG),b8=z(aF,cy),bP=z(bG,ci),bZ=z(bp,c,bi),b3='
                                                                                    • ',aT='';var aa=b5.Component.create({NAME:cn,ATTRS:{dataType:{value:aU},predefinedValue:{setter:b5.DataType.Boolean.parse,value:false},template:{valueFn:function(){return aT;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{BOUNDING_TEMPLATE:b3,bindUI:function(){var A=this;b5.FormBuilderCheckBoxField.superclass.bindUI.apply(A,arguments);var L=A.get(ac);L.on({"change":b5.bind(A._onValueChange,A)});},renderUI:function(){var A=this;var L=A.get(cq);var cB=A.get(ac);var cA=A.get(b1);b5.FormBuilderCheckBoxField.superclass.renderUI.apply(A,arguments);cA.insert(cB,cA,"before");},getHTML:function(){var A=this;var cB=A.get(aH);var cC=A.get(J);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cD=A.get(aN);return b5.substitute(cB,{checked:cC?'checked="checked"':bI,id:cE,label:cA,name:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var A=this;var L=A.get(be);var cB=L.get(ar);var cC=A.settingsNodesMap;b5.FormBuilderCheckBoxField.superclass.renderSettings.apply(A,arguments);if(!A._renderedCheckboxSettings){A._renderedCheckboxSettings=true;cC.predefinedValueSettingNode.get(S).remove();var cA=A.propertiesPanel.get(e);A._renderSettingsFields([{type:"checkbox",name:aN,labelText:"Checked",labelAlign:"left"}],cA.item(0));var cD=cC.predefinedValueSettingNode;cD.on({change:b5.bind(A._onValueChange,A)});cD.set(J,A.get(aN));}},_onValueChange:function(L){var A=this;var cA=L.target;A.set(aN,cA.get(J));},_uiSetPredefinedValue:function(cC){var A=this;var L=A.get(ac);var cA=A.settingsNodesMap; -var cB=cA.predefinedValueSettingNode;if(cB){cB.set(J,cC);}L.set(J,cC);}}});b5.FormBuilderCheckBoxField=aa;b5.FormBuilder.types["checkbox"]=b5.FormBuilderCheckBoxField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},aQ="boundingBox",cq="contentBox",aK="container",cx="dataType",bO=".",az="drop",bI="",bp="field",g="fields",aF="form-builder-field",F="form-builder-fieldset-field",cg="id",r="icon",ai="label",aB="name",cy="node",aN="predefinedValue",X=" ",bY="strings",aH="template",ac="templateNode",bK="text",Y="type",m="value",bT="zone",z=b5.getClassName,bM=z(aF),b8=z(aF,cy),am=z(q,ce,az,bT),aM='
                                                                                      ',k='';var y=b5.Component.create({NAME:F,ATTRS:{acceptChildren:{value:true,readOnly:true},dataType:{value:undefined},template:{valueFn:function(){return aM;}},labelNode:{valueFn:function(){return b5.Node.create(k);}},templateNode:{valueFn:"getNode"}},UI_ATTRS:[h,ai,W],CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{CONTENT_TEMPLATE:aM,renderUI:function(){var A=this;var cB=A.get(aQ);var cD=A.get(x);var L=A.get(cq);var cA=A.get(b1);var cC=A.get(ac);if(!cB.contains(cD)){cB.prepend(cD);}if(!L.contains(cA)){L.append(cA);}},getHTML:function(){var A=this;var L=A.get(aH);var cA=A.get(cg);return b5.substitute(L,{id:cA});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cH=this;var cD=cH.get(be);var A=cD.get(ar);var cI=cD.get(bY);var cA=cH.settingsNodesMap;if(!cH._renderedFieldsetSettings){cH._renderedFieldsetSettings=true;cH.fieldSettingsNode=b5.Node.create(C);var cF=b5.Node.create(C);var cB=b5.Node.create(aj);var L=b5.Node.create(a6);var cG=b5.Node.create(cu);L.setContent(cI[Y]);cG.setContent(cH.get(cx)||cH.get(Y));cB.append(L);cB.append(cG);cB.appendTo(cF);cH._renderSettingsFields([{type:"text",name:ai,labelText:"Label",value:cH.get(ai)},{type:"checkbox",name:W,labelText:"Show label",labelAlign:"left",value:cH.get(W)}],cF);var cC=cA["labelSettingNode"];cC.on({input:b5.bind(cH._onLabelInput,cH)});var cE=cA["showLabelSettingNode"];cE.set(J,cH.get(W));cE.on({change:b5.bind(cH._onSettingsFieldChange,cH)});cH.propertiesPanel=new b5.Panel({bodyContent:cF,collapsible:true,title:"Properties"}).render();cH.fieldSettingsNode.append(cH.propertiesPanel.get(aQ));}A.setContent(cH.fieldSettingsNode);},_uiSetAcceptChildren:function(cC){var A=this;var L=A.get(cq);var cB=A.get(a2);var cA=L.one(bO+am);if(cC&&!cA){L.append(cB);}else{if(!cC&&cA){cA.remove();}else{if(cC&&cA){A.set(a2,cA);}}}}}});b5.FormBuilderFieldsetField=y;b5.FormBuilder.types["fieldset"]=b5.FormBuilderFieldsetField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},aQ="boundingBox",cq="contentBox",aK="container",cx="dataType",bO=".",bI="",bp="field",g="fields",aF="form-builder-field",cp="form-builder-file-upload-field",cg="id",r="icon",ai="label",aB="name",cy="node",aN="predefinedValue",X=" ",bY="strings",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bB='';var K=b5.Component.create({NAME:cp,ATTRS:{template:{valueFn:function(){return bB;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cB=A.get(av);var cD=A.get(aN);return b5.substitute(cC,{id:cE,label:cA,name:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cI=this;var cE=cI.get(be);var A=cE.get(ar);var cJ=cE.get(bY);var cB=cI.settingsNodesMap;if(!cI._renderedFileUploadSettings){cI._renderedFileUploadSettings=true;cI.fieldSettingsNode=b5.Node.create(C);var cG=b5.Node.create(C);var cC=b5.Node.create(aj);var L=b5.Node.create(a6);var cH=b5.Node.create(cu);L.setContent(cJ[Y]);cH.setContent(cI.get(cx)||cI.get(Y));cC.append(L);cC.append(cH);cC.appendTo(cG);cI._renderSettingsFields([{type:"text",name:ai,labelText:"Label",value:cI.get(ai)},{type:"checkbox",name:W,labelText:"Show label",labelAlign:"left",value:cI.get(W)},{type:"text",name:aB,labelText:"Name",value:cI.get(aB)},{type:"checkbox",name:ao,labelText:"Required",labelAlign:"left",value:cI.get(ao)},{type:"textarea",name:u,labelText:"Tip",value:cI.get(u)}],cG);var cD=cB.labelSettingNode;cD.on({input:b5.bind(cI._onLabelInput,cI)});var cF=cB.showLabelSettingNode;cF.set(J,cI.get(W));cF.on({change:b5.bind(cI._onSettingsFieldChange,cI)});var cA=cB.requiredSettingNode;cA.set(J,cI.get(ao));cA.on({change:b5.bind(cI._onSettingsFieldChange,cI)});cI.propertiesPanel=new b5.Panel({bodyContent:cG,collapsible:true,title:"Properties"}).render();cI.fieldSettingsNode.append(cI.propertiesPanel.get(aQ));}A.setContent(cI.fieldSettingsNode);}}});b5.FormBuilderFileUploadField=K;b5.FormBuilder.types["fileupload"]=b5.FormBuilderFileUploadField;var cf=b5.Lang,cr=b5.Array,aW=cf.isArray,aA=cf.isNumber,bS=cf.isString,bE=cf.sub,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},a9=b5.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),T="add",bV="addNode",aQ="boundingBox",cl="button",cj="buttonType",cq="contentBox",aK="container",ci="default",at="defaultLabel",cs="defaultOptions",D="defaultValue",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bp="field",g="fields",aF="form-builder-field",M="form-builder-multiple-choice-field",r="icon",cg="id",a0="input",ah="item",ai="label",ck="multiple",aB="name",cy="node",R="option",bA="optionTemplate",ad="options",aN="predefinedValue",bs="proxy",ct="remove",bQ="reset",ax="submit",X=" ",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),l=z(bp,ad,T),cb=z(bp,ad,ah),ca=z(bp,ad,ah,a0),aO=z(bp,ad,ah,a0,ai),af=z(bp,ad,ah,a0,m),bb=z(bp,ad,ah,ct),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),P="",ap='
                                                                                      '+''+''+' '+"
                                                                                      "; -TPL_ADD='Add an option',ENTER="ENTER";var bl=b5.Component.create({NAME:ad,ATTRS:{allowClear:{value:false},defaultLabel:{value:P},defaultValue:{value:P},disabled:{validator:aY,value:false},options:{getter:"_getOptions",validator:aW,value:[]},addNode:{valueFn:function(){return b5.Node.create(TPL_ADD);}}},HTML_PARSER:{addNode:bO+l},UI_ATTRS:[ad,bH],EXTENDS:b5.Widget,prototype:{renderUI:function(){var A=this;var L=A.get(aQ);var cA=A.get(bV);if(!cA.inDoc()){L.append(cA);}},bindUI:function(){var A=this;var L=A.get(aQ);var cA=A.get(bV);cA.on("click",b5.bind(A._onClickAdd,A));L.delegate("click",b5.bind(A._onClickOptionRemove,A),bO+bb);L.delegate("keypress",b5.bind(A._onKeyPressOption,A),bO+ca);},add:function(cA){var A=this;var L=A.get(ad);L.push(cA);A.set(ad,L);},clear:function(){var A=this;if(A.get(ALLOW_CLEAR)){A.set(ad,[]);}},remove:function(cA){var A=this;var L=A.get(cq);var cB=A._getOptionNode(cA);if(!A.get(bH)){if(cB){cB.remove();}A.items=L.all(bO+cb);}},_addNewOption:function(){var L=this;var cC=null;if(!L.get(bH)){var cA=L.get(cq);var cB=bE(ap,{label:L.get(at),value:L.get(D)});cC=b5.Node.create(cB);cA.append(cC);var A=cC.one(a0);A.focus();A.select();L.items=cA.all(bO+cb);}return cC;},_getOptionNode:function(L){var A=this;return A.items.item(L);},_getOptions:function(cA){var A=this;var L=[];if(A.items){b5.each(A.items,function(cD,cB,cG){var cF=cD.one(bO+aO);var cE=cD.one(bO+af);var cC=cA[cB]||{};cC.label=cF.val();cC.value=cE.val();L.push(cC);});}else{L=cA;}return L;},_indexOfTarget:function(cA){var A=this;var L=cA.ancestor(bO+cb);return A.items.indexOf(L);},_onClickAdd:function(L){var A=this;A._addNewOption();},_onClickOptionRemove:function(cB){var A=this;var cA=A.get(ad);var L=A._indexOfTarget(cB.target);A.remove(L);},_onKeyPressOption:function(cC){var A=this;var cB=A.get(ad);var cD=cC.currentTarget;var L=A.items;if(cC.isKey(ENTER)){var cA=A._indexOfTarget(cD);var cE=cD.hasClass(af);if((cA==L.size()-1)&&cE){A._addNewOption();}}},_uiSetDisabled:function(cB){var A=this;var cA=A.get(bV);var L=A.get(aQ);cA.toggleClass(ae,cB);L.all(bO+bb).toggleClass(ae,cB);if(cB){L.all(a0).setAttribute(bH,cB);}else{L.all(a0).removeAttribute(bH);}},_uiSetOptions:function(cB){var A=this;var cA=A.get(cq);var L=[];cr.each(cB,function(cD,cC,cE){L.push(bE(ap,cD));});cA.setContent(L.join(P));A.items=cA.all(bO+cb);}}});var f=b5.Component.create({NAME:M,ATTRS:{acceptChildren:{value:false,readOnly:true},options:{value:[{label:"option 1",value:"value 1"},{label:"option 2",value:"value 2"},{label:"option 3",value:"value 3"}]},optionTemplate:{value:''}},UI_ATTRS:[h,aN,ai,aB,ad,W],CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{getNode:function(){var A=this;return b5.FormBuilderMultipleChoiceField.superclass.getNode.apply(A,arguments);},renderSettings:function(){var A=this;var L=A.get(cd);b5.FormBuilderMultipleChoiceField.superclass.renderSettings.apply(A,arguments);if(!A._renderedMultipleChoiceSettings){A._renderedMultipleChoiceSettings=true;var cB=b5.Node.create(C);A.optionsPanel=new b5.Panel({bodyContent:cB,collapsible:true,title:"Options"}).render();var cA=b5.Array.indexOf(L,ad)>-1;A.options=new bl({disabled:cA,options:A.get(ad)}).render(cB);A.fieldSettingsNode.append(A.optionsPanel.get(aQ));}},saveSettings:function(){var A=this;b5.FormBuilderMultipleChoiceField.superclass.saveSettings.apply(A,arguments);A.set(ad,A.options.get(ad));},_uiSetOptions:function(cC){var A=this;var cB=A.get(ac);var cA=A.get(bA);var L=[];cr.each(cC,function(cE,cD,cF){L.push(bE(cA,cE));});cB.setContent(L.join(P));}}});b5.FormBuilderMultipleChoiceField=f;b5.FormBuilder.types["multiple-choice"]=b5.FormBuilderMultipleChoiceField;var bW=b5.Lang,aW=bW.isArray,aY=bW.isBoolean,aA=bW.isNumber,bS=bW.isString,aQ="boundingBox",e="bodyContent",J="checked",aw="choice",cq="contentBox",aK="container",bO=".",bI="",bp="field",g="fields",aF="form-builder-field",bc="form-builder-radio-field",cg="id",r="icon",bi="inline",ai="label",c="labels",aB="name",cy="node",H="optionsContainerNode",aN="predefinedValue",V="radio",av="size",X=" ",aH="template",ac="templateNode",m="value",z=b5.getClassName,d=z(bp),b2=z(bp,aw),bM=z(aF),aP=z(aF,V),b8=z(aF,cy),b9=z(aF,ad,aK),bP=z(bG,ci),bZ=z(bp,c,bi),b3='
                                                                                    • ',Z='
                                                                                      ',aV='',cc='';var i=b5.Component.create({NAME:bc,ATTRS:{name:{value:V},optionTemplate:{value:aV},template:{valueFn:function(){return aV;}},optionsContainerNode:{valueFn:function(){return b5.Node.create(Z);}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{optionsContainerNode:bO+b9,templateNode:bO+b8},EXTENDS:b5.FormBuilderMultipleChoiceField,prototype:{BOUNDING_TEMPLATE:b3,renderUI:function(){var A=this;var L=A.get(cq);var cA=A.get(H);b5.FormBuilderRadioField.superclass.renderUI.apply(A,arguments);L.append(cA);},getNode:function(){var A=this;return b5.Node.create(cc);},_onFieldChange:function(L){var A=this;var cA=L.target;A.set(aN,cA.val());},_uiSetDisabled:function(cA){var A=this;var L=A.get(H);L.all(a0).each(function(cB){if(cA){cB.setAttribute(bH,cA);}else{cB.removeAttribute(bH);}});},_uiSetOptions:function(cC){var A=this;var L=A.get(cq);var cB=A.get(H);var cA=A.get(ac);cB.empty();b5.each(cC,function(cF){var cE=new b5.Field({type:V,disabled:A.get(bH),name:A.get(aB),labelText:cF.label,labelAlign:"left",value:cF.value}).render(cB);var cD=cE.get(cy);if(cF.value==A.get(aN)){cD.set(J,true);}if(A.get(bH)){cD.setAttribute(bH,cC);}else{cD.removeAttribute(bH);}cD.on({change:b5.bind(A._onFieldChange,A)});});},_uiSetPredefinedValue:function(cC){var A=this;var L=A.get(be);var cA=L.get(ar);var cB=cA.one("input[name=predefinedValue]");if(cB){cB.val(cC);}}}});b5.FormBuilderRadioField=i;b5.FormBuilder.types["radio"]=b5.FormBuilderRadioField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node); -},a5=function(A){return(A instanceof b5.NodeList);},a9=b5.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aQ="boundingBox",cl="button",cj="buttonType",cq="contentBox",aK="container",cs="defaultOptions",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",b4="form-builder-select-field",cg="id",r="icon",a0="input",ai="label",ck="multiple",aB="name",cy="node",R="option",ad="options",ba="portalLayout",aN="predefinedValue",bs="proxy",bQ="reset",bX="selectedIndex",ax="submit",X=" ",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bD='';var ag=b5.Component.create({NAME:b4,ATTRS:{multiple:{setter:b5.DataType.Boolean.parse,value:false},template:{valueFn:function(){return bD;}},templateNode:{valueFn:"getNode"}},UI_ATTRS:b5.FormBuilderField.UI_ATTRS.concat([ck]),CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderMultipleChoiceField,prototype:{getHTML:function(){var A=this;var cB=A.get(aH);var cD=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cC=A.get(aN);return b5.substitute(cB,{id:cD,label:cA,name:L,value:cC});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var L=this;var cA=L.get(be);var cC=cA.get(ar);var cD=L.settingsNodesMap;b5.FormBuilderSelectField.superclass.renderSettings.apply(L,arguments);if(!L._renderedSelectSettings){L._renderedSelectSettings=true;var cB=L.propertiesPanel.get(e);L._renderSettingsFields([{type:"checkbox",name:ck,labelText:"Multiple",labelAlign:"left"}],cB.item(0));var A=cD["multipleSettingNode"];A.on({change:b5.bind(L._onSettingsFieldChange,L)});A.set(J,L.get(ck));}},_uiSetMultiple:function(cA){var A=this;var L=A.get(ac);if(cA){L.setAttribute(ck,ck);}else{L.removeAttribute(ck);}}}});b5.FormBuilderSelectField=ag;b5.FormBuilder.types["select"]=b5.FormBuilderSelectField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},aQ="boundingBox",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",a1="form-builder-input-field",cg="id",r="icon",a0="input",ai="label",aB="name",cy="node",ba="portalLayout",aN="predefinedValue",bs="proxy",X=" ",aH="template",ac="templateNode",bK="text",m="value",by="width",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bJ='',aI={small:25,medium:50,large:100};var bx=b5.Component.create({NAME:a1,ATTRS:{template:{valueFn:function(){return bJ;}},templateNode:{valueFn:"getNode"},width:{setter:b5.DataType.String.evaluate,value:25}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{bindUI:function(){var A=this;b5.FormBuilderTextField.superclass.bindUI.apply(A,arguments);var L=A.get(ac);L.on({input:b5.bind(A._onValueInput,A)});},getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cD=A.get(aN);var cB=A.get(by);return b5.substitute(cC,{id:cE,label:cA,name:L,value:cD,width:cB});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cG=this;var cF=cG.get(be);var cA=cF.get(ar);var cE=cG.settingsNodesMap;var cH=cF.get(bY);b5.FormBuilderTextField.superclass.renderSettings.apply(cG,arguments);if(!cG._renderedInputSettings){cG._renderedInputSettings=true;var cC=cG.propertiesPanel.get(e);var A=0;var cD=-1;var cB=[];b5.each(aI,function(cK,cJ){if(cK==cG.get(by)){cD=A;}cB.push({labelText:cH[cJ],value:cK});A++;});cG._renderSettingsFields([{labelText:"Width",name:by,options:cB,type:"select",value:cG.get(by)}],cC.item(0));var L=cE["predefinedValueSettingNode"];L.on({input:b5.bind(cG._onValueInput,cG)});var cI=cE["widthSettingNode"];cI.on({change:b5.bind(cG._onWidthChange,cG)});cI.all(R).item(cD).set(bf,true);}},_onValueInput:function(L){var A=this;var cA=L.target;A.set(aN,cA.val());},_onWidthChange:function(L){var A=this;var cA=L.target;A.set(by,cA.val());},_uiSetWidth:function(cA){var A=this;var L=A.get(ac);L.addClass(z("w"+cA));L.removeClass(z("w"+A.prevWidth));A.prevWidth=cA;}}});b5.FormBuilderTextField=bx;b5.FormBuilder.types["text"]=b5.FormBuilderTextField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,aQ="boundingBox",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",cm="form-builder-textarea-field",cg="id",r="icon",ai="label",aB="name",cy="node",ba="portalLayout",aN="predefinedValue",bs="proxy",av="size",X=" ",aH="template",ac="templateNode",bK="text",aq="textarea",m="value",z=b5.getClassName,d=z(bp),bt=z(bp,bK),N=z(bp,aq),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),al='';var aL=b5.Component.create({NAME:cm,ATTRS:{template:{valueFn:function(){return al;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderTextField,prototype:{getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cB=A.get(av);var cD=A.get(aN);return b5.substitute(cC,{id:cE,label:cA,name:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());}}});b5.FormBuilderTextAreaField=aL;b5.FormBuilder.types["textarea"]=b5.FormBuilderTextAreaField;},"@VERSION@",{requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"],skinnable:true}); \ No newline at end of file +AUI.add("aui-form-builder-field",function(b6){var bX=b6.Lang,aX=bX.isArray,bT=bX.isString,I=b6.IO.prototype._serialize,h="acceptChildren",e="bodyContent",aR="boundingBox",cf="builder",cm="button",J="buttons",x="buttonsNode",aH="checkbox",K="checked",o="children",ci="clearfix",aS="close",aT="component",cr="contentBox",aL="container",cy="dataType",cj="default",aY="delete",bI="disabled",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",b7="dropNode",br="dropZone",a3="dropZoneNode",aF="duplicate",R="edit",bJ="",bq="field",g="fields",a9="fixed",bO="for",q="form",bf="formBuilder",aG="form-builder-field",s="help",n="helper",av="hidden",r="icon",ch="id",aj="label",b2="labelNode",bD="lightbulb",bh="metadata",aC="name",cz="node",b="panel",bb="portalLayout",aO="predefinedValue",bt="proxy",ce="readOnlyAttributes",ap="required",a8="requiredFlagNode",bH="state",bo="select",a0="settings",at="settingsFormNode",X="showLabel",aw="size",Y=" ",bS="string",bZ="strings",ad="templateNode",bL="text",ar="textarea",u="tip",bw="tipIconNode",Z="type",aE="unique",bU="zone",bk="widget",z=b6.getClassName,bn=z(aT),aK=z(bq,aj),p=z(n,ci),af=z(n,av),bQ=z(bH,cj),d=z(bq),bu=z(bq,bL),B=z(q,cf,cm),bM=z(q,cf,cm,aY),a5=z(q,cf,cm,aF),V=z(q,cf,cm,R),a4=z(q,cf,aA,cz),an=z(q,cf,aA,bU),cx=z(q,cf,r),j=z(q,cf,r,aY),w=z(q,cf,r,aF),al=z(q,cf,r,R),E=z(q,cf,r,u),bN=z(q,cf,bq),bA=z(q,cf,bq,J),bs=z(q,cf,a9),cw=z(q,cf,ap),bG=z(q,cf,aE),G=z(bk),b4='
                                                                                    • ',a='
                                                                                      '+''+'
                                                                                      '+"
                                                                                      "+''+'
                                                                                      '+"
                                                                                      "+''+'
                                                                                      '+"
                                                                                      "+"
                                                                                      ",C='
                                                                                      ',ac='
                                                                                        ',ak='',a7='',az='*',cv="

                                                                                        ",bl='';var t=b6.Component.create({NAME:aG,ATTRS:{acceptChildren:{value:true},dataType:{value:bS},disabled:{value:false},fixed:{value:false},formBuilder:{value:undefined},id:{value:bJ},icon:{value:bJ},key:{value:bJ},label:{value:bJ},localizationMap:{value:{}},name:{valueFn:function(){var A=this;return A.get(Z)+(++b6.Env._uidx);}},parent:{value:null},predefinedValue:{value:bJ},readOnlyAttributes:{value:[],validator:aX},required:{setter:b6.DataType.Boolean.parse,value:false},selected:{setter:b6.DataType.Boolean.parse,value:false},showLabel:{setter:b6.DataType.Boolean.parse,value:true},template:{value:bJ},tip:{value:bJ},type:{value:bJ},unique:{setter:b6.DataType.Boolean.parse,value:false},buttonsNode:{valueFn:function(){return b6.Node.create(a);}},dropZoneNode:{valueFn:function(){return b6.Node.create(ac);}},labelNode:{valueFn:function(){return b6.Node.create(a7);}},requiredFlagNode:{valueFn:function(){return b6.Node.create(az);}},templateNode:{valueFn:"getNode"},tipIconNode:{valueFn:function(){return b6.Node.create(bl);}}},AUGMENTS:[b6.FormBuilderFieldSupport],UI_ATTRS:[h,bI,a9,aj,aC,aO,ap,X,u,aE],HTML_PARSER:{buttonsNode:bP+bA,dropZoneNode:bP+an,labelNode:aj+bP+aK,requiredFlagNode:bP+cw,tipIconNode:bP+E},prototype:{BOUNDING_TEMPLATE:b4,initializer:function(){var A=this;A.get(aR).setData(bq,A);A.toolTip=new b6.Tooltip({trigger:A.get(bw),hideDelay:100});},bindUI:function(){var A=this;},renderUI:function(){var A=this;var cD=A.get(aR);var cG=A.get(x);var L=A.get(cr);var cC=A.get(b2);var cF=A.get(a8);var cE=A.get(ad);var cB=A.get(bw);L.addClass(p);cD.prepend(cG);L.append(cC);L.append(cF);L.append(cB);L.append(cE);A.toolTip.render();},settingsNodesMap:{},saveSettings:function(){var A=this;var L=A.get(bf);var cB=L.get(at);b6.Array.each(I(cB._node).split("&"),function(cD){var cC=cD.split("=");A.set(cC[0],decodeURIComponent(cC[1]));});},renderSettings:function(){var cJ=this;var cF=cJ.get(bf);var A=cF.get(at);var cK=cF.get(bZ);var cC=cJ.settingsNodesMap;if(!cJ.fieldSettingsNode){cJ.fieldSettingsNode=b6.Node.create(C);var cH=b6.Node.create(C);var cD=b6.Node.create(ak);var L=b6.Node.create(a7);var cI=b6.Node.create(cv);L.setContent(cK[Z]);cI.setContent(cJ.get(cy)||cJ.get(Z));cD.append(L);cD.append(cI);cD.appendTo(cH);cJ._renderSettingsFields([{type:"text",name:aj,labelText:"Label",value:cJ.get(aj)},{type:"checkbox",name:X,labelText:"Show label",labelAlign:"left",value:cJ.get(X)},{type:"text",name:aC,labelText:"Name",value:cJ.get(aC)},{type:"checkbox",name:ap,labelText:"Required",labelAlign:"left",value:ap},{type:"text",name:aO,labelText:"Default value",value:cJ.get(aO)},{type:"textarea",name:u,labelText:"Tip",value:cJ.get(u)}],cH);var cE=cC.labelSettingNode;cE.on({input:b6.bind(cJ._onLabelInput,cJ)});var cG=cC.showLabelSettingNode;cG.set(K,cJ.get(X));cG.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});var cB=cC.requiredSettingNode;cB.set(K,cJ.get(ap));cB.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});cJ.propertiesPanel=new b6.Panel({bodyContent:cH,collapsible:true,title:"Properties"}).render();cJ.fieldSettingsNode.append(cJ.propertiesPanel.get(aR));}A.setContent(cJ.fieldSettingsNode);},getHTML:function(){},getNode:function(){},_onLabelInput:function(L){var A=this;var cC=L.target;var cB=cC.val();A.set(aj,cB);},_onSettingsFieldChange:function(L){var A=this;var cC=L.target;var cB=cC.val();if(cC.get(Z)===aH){cB=cC.get(K);}A.set(cC.get(aC),cB);},_renderSettingsFields:function(L,cC){var A=this;var cB=A.get(ce);b6.each(L,function(cE){var cF;if(b6.Array.indexOf(cB,cE.name)>-1){cE.disabled=true;}if(cE.type===bo){cF=new b6.Select(cE);}else{if(cE.type===ar){cF=new b6.Textarea(cE);}else{cF=new b6.Field(cE);}}cF.render(cC);var cD=cF.get(cz);if(cE.type===aH){cD.set(K,cE.value);}A.settingsNodesMap[cE.name+"SettingNode"]=cD;});},_uiSetAcceptChildren:function(cD){var A=this;var L=A.get(aR);var cC=A.get(a3); +var cB=L.one(bP+an);if(cD&&!cB){L.append(cC);}else{if(!cD&&cB){cB.remove();}else{if(cD&&cB){A.set(a3,cB);}}}},_uiSetDisabled:function(cB){var A=this;var L=A.get(ad);if(cB){L.setAttribute(bI,cB);}else{L.removeAttribute(bI);}},_uiSetFixed:function(cB){var A=this;var cC=A.get(x);var L=cC.one(bP+bM);L.toggleClass(af,cB);},_uiSetLabel:function(cB){var A=this;var L=A.get(b2);L.setContent(cB);},_uiSetName:function(cB){var A=this;var L=A.get(ad);L.set(aC,cB);},_uiSetPredefinedValue:function(cB){var A=this;var L=A.get(ad);L.val(cB);},_uiSetRequired:function(cB){var A=this;var L=A.get(a8);L.toggleClass(af,!cB);},_uiSetShowLabel:function(cB){var A=this;var L=A.get(b2);L.toggleClass(af,!cB);},_uiSetTip:function(cB){var A=this;var L=A.get(bw);L.toggleClass(af,!cB);A.toolTip.set(e,cB);},_uiSetUnique:function(cB){var A=this;var L=A.get(aR);var cC=A.get(x);L.toggleClass(bG,cB);cC.one(bP+a5).toggleClass(af,cB);}}});b6.FormBuilderField=t;b6.FormBuilder.types["field"]=b6.FormBuilderField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},ba=b6.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aR="boundingBox",cm="button",ck="buttonType",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",bV="form-builder-button-field",ch="id",r="icon",a1="input",aj="label",aC="name",cz="node",T="option",ae="options",bb="portalLayout",aO="predefinedValue",bt="proxy",bR="reset",bg="selected",bY="selectedIndex",ay="submit",Y=" ",bZ="strings",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bK='',cA=[ay,bR,cm];var b8=b6.Component.create({NAME:bV,ATTRS:{acceptChildren:{value:false,readOnly:true},buttonType:{value:ay,validator:function(A){return b6.Array(cA).indexOf(A.toLowerCase())>-1;}},predefinedValue:{value:ba(ay)},showLabel:{value:false},template:{valueFn:function(){return bK;}}},UI_ATTRS:b6.FormBuilderField.UI_ATTRS.concat([ck]),CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cC=A.get(aj);var cB=A.get(aC);var L=A.get(ck);var cE=A.get(aO);return b6.substitute(cD,{id:cF,label:cC,name:cB,type:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cH=this;var cE=cH.get(bf);var A=cE.get(at);var cD=cH.get(ck);var cI=cE.get(bZ);var cC=cH.settingsNodesMap;b6.FormBuilderButtonField.superclass.renderSettings.apply(cH,arguments);if(!cH._renderedButtonSettings){cH._renderedButtonSettings=true;var L=cH.propertiesPanel.get(e);var cG=[];b6.each(cA,function(cJ){cG.push({labelText:cI[cJ],value:cJ});});cH._renderSettingsFields([{labelText:"Button type",name:ck,options:cG,type:"select"}],L.item(0));var cF=cC["buttonTypeSettingNode"];cF.on({change:b6.bind(cH._onButtonTypeChange,cH)});var cB=b6.Array(cA).indexOf(cD);cF.all(T).item(cB).set(bg,true);}},_onButtonTypeChange:function(L){var A=this;var cB=L.target;A.set(ck,cB.get(m));},_uiSetButtonType:function(cB){var A=this;var L=A.get(ad);L.setAttribute(Z,cB);}}});b6.FormBuilderButtonField=b8;b6.FormBuilder.types["button"]=b6.FormBuilderButtonField;var bX=b6.Lang,aX=bX.isArray,aZ=bX.isBoolean,aB=bX.isNumber,bT=bX.isString,aV="boolean",aR="boundingBox",e="bodyContent",aH="checkbox",K="checked",ax="choice",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",co="form-builder-checkbox-field",ch="id",r="icon",bj="inline",aj="label",c="labels",aC="name",cz="node",S="parentNode",bb="portalLayout",aO="predefinedValue",bt="proxy",aw="size",Y=" ",aI="template",ad="templateNode",m="value",z=b6.getClassName,d=z(bq),ao=z(bq,aH),b3=z(bq,ax),bN=z(aG),cp=z(aG,aH),b9=z(aG,cz),bQ=z(bH,cj),b0=z(bq,c,bj),b4='
                                                                                      • ',aU='';var ab=b6.Component.create({NAME:co,ATTRS:{dataType:{value:aV},predefinedValue:{setter:b6.DataType.Boolean.parse,value:false},template:{valueFn:function(){return aU;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{BOUNDING_TEMPLATE:b4,bindUI:function(){var A=this;b6.FormBuilderCheckBoxField.superclass.bindUI.apply(A,arguments);var L=A.get(ad);L.on({"change":b6.bind(A._onValueChange,A)});},renderUI:function(){var A=this;var L=A.get(cr);var cC=A.get(ad);var cB=A.get(b2);b6.FormBuilderCheckBoxField.superclass.renderUI.apply(A,arguments);cB.insert(cC,cB,"before");},getHTML:function(){var A=this;var cC=A.get(aI);var cD=A.get(K);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cE=A.get(aO);return b6.substitute(cC,{checked:cD?'checked="checked"':bJ,id:cF,label:cB,name:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var A=this;var L=A.get(bf);var cC=L.get(at);var cD=A.settingsNodesMap;b6.FormBuilderCheckBoxField.superclass.renderSettings.apply(A,arguments);if(!A._renderedCheckboxSettings){A._renderedCheckboxSettings=true;cD.predefinedValueSettingNode.get(S).remove();var cB=A.propertiesPanel.get(e);A._renderSettingsFields([{type:"checkbox",name:aO,labelText:"Checked",labelAlign:"left"}],cB.item(0));var cE=cD.predefinedValueSettingNode;cE.on({change:b6.bind(A._onValueChange,A)});cE.set(K,A.get(aO));}},_onValueChange:function(L){var A=this;var cB=L.target;A.set(aO,cB.get(K));},_uiSetPredefinedValue:function(cD){var A=this;var L=A.get(ad);var cB=A.settingsNodesMap; +var cC=cB.predefinedValueSettingNode;if(cC){cC.set(K,cD);}L.set(K,cD);}}});b6.FormBuilderCheckBoxField=ab;b6.FormBuilder.types["checkbox"]=b6.FormBuilderCheckBoxField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},aR="boundingBox",cr="contentBox",aL="container",cy="dataType",bP=".",aA="drop",bJ="",bq="field",g="fields",aG="form-builder-field",F="form-builder-fieldset-field",ch="id",r="icon",aj="label",aC="name",cz="node",aO="predefinedValue",Y=" ",bZ="strings",aI="template",ad="templateNode",bL="text",Z="type",m="value",bU="zone",z=b6.getClassName,bN=z(aG),b9=z(aG,cz),an=z(q,cf,aA,bU),aN='
                                                                                        ',k='';var y=b6.Component.create({NAME:F,ATTRS:{acceptChildren:{value:true,readOnly:true},dataType:{value:undefined},template:{valueFn:function(){return aN;}},labelNode:{valueFn:function(){return b6.Node.create(k);}},templateNode:{valueFn:"getNode"}},UI_ATTRS:[h,aj,X],CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{CONTENT_TEMPLATE:aN,renderUI:function(){var A=this;var cC=A.get(aR);var cE=A.get(x);var L=A.get(cr);var cB=A.get(b2);var cD=A.get(ad);if(!cC.contains(cE)){cC.prepend(cE);}if(!L.contains(cB)){L.append(cB);}},getHTML:function(){var A=this;var L=A.get(aI);var cB=A.get(ch);return b6.substitute(L,{id:cB});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cI=this;var cE=cI.get(bf);var A=cE.get(at);var cJ=cE.get(bZ);var cB=cI.settingsNodesMap;if(!cI._renderedFieldsetSettings){cI._renderedFieldsetSettings=true;cI.fieldSettingsNode=b6.Node.create(C);var cG=b6.Node.create(C);var cC=b6.Node.create(ak);var L=b6.Node.create(a7);var cH=b6.Node.create(cv);L.setContent(cJ[Z]);cH.setContent(cI.get(cy)||cI.get(Z));cC.append(L);cC.append(cH);cC.appendTo(cG);cI._renderSettingsFields([{type:"text",name:aj,labelText:"Label",value:cI.get(aj)},{type:"checkbox",name:X,labelText:"Show label",labelAlign:"left",value:cI.get(X)}],cG);var cD=cB["labelSettingNode"];cD.on({input:b6.bind(cI._onLabelInput,cI)});var cF=cB["showLabelSettingNode"];cF.set(K,cI.get(X));cF.on({change:b6.bind(cI._onSettingsFieldChange,cI)});cI.propertiesPanel=new b6.Panel({bodyContent:cG,collapsible:true,title:"Properties"}).render();cI.fieldSettingsNode.append(cI.propertiesPanel.get(aR));}A.setContent(cI.fieldSettingsNode);},_uiSetAcceptChildren:function(cD){var A=this;var L=A.get(cr);var cC=A.get(a3);var cB=L.one(bP+an);if(cD&&!cB){L.append(cC);}else{if(!cD&&cB){cB.remove();}else{if(cD&&cB){A.set(a3,cB);}}}}}});b6.FormBuilderFieldsetField=y;b6.FormBuilder.types["fieldset"]=b6.FormBuilderFieldsetField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},aR="boundingBox",cr="contentBox",aL="container",cy="dataType",bP=".",bJ="",bq="field",g="fields",aG="form-builder-field",cq="form-builder-file-upload-field",ch="id",r="icon",aj="label",aC="name",cz="node",aO="predefinedValue",Y=" ",bZ="strings",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bC='';var M=b6.Component.create({NAME:cq,ATTRS:{template:{valueFn:function(){return bC;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cC=A.get(aw);var cE=A.get(aO);return b6.substitute(cD,{id:cF,label:cB,name:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cJ=this;var cF=cJ.get(bf);var A=cF.get(at);var cK=cF.get(bZ);var cC=cJ.settingsNodesMap;if(!cJ._renderedFileUploadSettings){cJ._renderedFileUploadSettings=true;cJ.fieldSettingsNode=b6.Node.create(C);var cH=b6.Node.create(C);var cD=b6.Node.create(ak);var L=b6.Node.create(a7);var cI=b6.Node.create(cv);L.setContent(cK[Z]);cI.setContent(cJ.get(cy)||cJ.get(Z));cD.append(L);cD.append(cI);cD.appendTo(cH);cJ._renderSettingsFields([{type:"text",name:aj,labelText:"Label",value:cJ.get(aj)},{type:"checkbox",name:X,labelText:"Show label",labelAlign:"left",value:cJ.get(X)},{type:"text",name:aC,labelText:"Name",value:cJ.get(aC)},{type:"checkbox",name:ap,labelText:"Required",labelAlign:"left",value:cJ.get(ap)},{type:"textarea",name:u,labelText:"Tip",value:cJ.get(u)}],cH);var cE=cC.labelSettingNode;cE.on({input:b6.bind(cJ._onLabelInput,cJ)});var cG=cC.showLabelSettingNode;cG.set(K,cJ.get(X));cG.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});var cB=cC.requiredSettingNode;cB.set(K,cJ.get(ap));cB.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});cJ.propertiesPanel=new b6.Panel({bodyContent:cH,collapsible:true,title:"Properties"}).render();cJ.fieldSettingsNode.append(cJ.propertiesPanel.get(aR));}A.setContent(cJ.fieldSettingsNode);}}});b6.FormBuilderFileUploadField=M;b6.FormBuilder.types["fileupload"]=b6.FormBuilderFileUploadField;var cg=b6.Lang,cs=b6.Array,aX=cg.isArray,aB=cg.isNumber,bT=cg.isString,bF=cg.sub,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},ba=b6.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),U="add",bW="addNode",aR="boundingBox",cm="button",ck="buttonType",cr="contentBox",aL="container",cj="default",au="defaultLabel",ct="defaultOptions",D="defaultValue",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bq="field",g="fields",aG="form-builder-field",N="form-builder-multiple-choice-field",r="icon",ch="id",a1="input",ai="item",aj="label",cl="multiple",aC="name",cz="node",T="option",bB="optionTemplate",ae="options",aO="predefinedValue",bt="proxy",cu="remove",bR="reset",ay="submit",Y=" ",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),l=z(bq,ae,U),cc=z(bq,ae,ai),cb=z(bq,ae,ai,a1),aP=z(bq,ae,ai,a1,aj),ag=z(bq,ae,ai,a1,m),bc=z(bq,ae,ai,cu),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),Q="",aq='
                                                                                        '+''+''+' '+"
                                                                                        "; +TPL_ADD='Add an option',ENTER="ENTER";var bm=b6.Component.create({NAME:ae,ATTRS:{allowClear:{value:false},defaultLabel:{value:Q},defaultValue:{value:Q},disabled:{validator:aZ,value:false},options:{getter:"_getOptions",validator:aX,value:[]},addNode:{valueFn:function(){return b6.Node.create(TPL_ADD);}}},HTML_PARSER:{addNode:bP+l},UI_ATTRS:[ae,bI],EXTENDS:b6.Widget,prototype:{renderUI:function(){var A=this;var L=A.get(aR);var cB=A.get(bW);if(!cB.inDoc()){L.append(cB);}},bindUI:function(){var A=this;var L=A.get(aR);var cB=A.get(bW);cB.on("click",b6.bind(A._onClickAdd,A));L.delegate("click",b6.bind(A._onClickOptionRemove,A),bP+bc);L.delegate("keypress",b6.bind(A._onKeyPressOption,A),bP+cb);},add:function(cB){var A=this;var L=A.get(ae);L.push(cB);A.set(ae,L);},clear:function(){var A=this;if(A.get(ALLOW_CLEAR)){A.set(ae,[]);}},remove:function(cB){var A=this;var L=A.get(cr);var cC=A._getOptionNode(cB);if(!A.get(bI)){if(cC){cC.remove();}A.items=L.all(bP+cc);}},_addNewOption:function(){var L=this;var cD=null;if(!L.get(bI)){var cB=L.get(cr);var cC=bF(aq,{label:L.get(au),value:L.get(D)});cD=b6.Node.create(cC);cB.append(cD);var A=cD.one(a1);A.focus();A.select();L.items=cB.all(bP+cc);}return cD;},_getOptionNode:function(L){var A=this;return A.items.item(L);},_getOptions:function(cB){var A=this;var L=[];if(A.items){b6.each(A.items,function(cE,cC,cH){var cG=cE.one(bP+aP);var cF=cE.one(bP+ag);var cD=cB[cC]||{};cD.label=cG.val();cD.value=cF.val();L.push(cD);});}else{L=cB;}return L;},_indexOfTarget:function(cB){var A=this;var L=cB.ancestor(bP+cc);return A.items.indexOf(L);},_onClickAdd:function(L){var A=this;A._addNewOption();},_onClickOptionRemove:function(cC){var A=this;var cB=A.get(ae);var L=A._indexOfTarget(cC.target);A.remove(L);},_onKeyPressOption:function(cD){var A=this;var cC=A.get(ae);var cE=cD.currentTarget;var L=A.items;if(cD.isKey(ENTER)){var cB=A._indexOfTarget(cE);var cF=cE.hasClass(ag);if((cB==L.size()-1)&&cF){A._addNewOption();}}},_uiSetDisabled:function(cC){var A=this;var cB=A.get(bW);var L=A.get(aR);cB.toggleClass(af,cC);L.all(bP+bc).toggleClass(af,cC);if(cC){L.all(a1).setAttribute(bI,cC);}else{L.all(a1).removeAttribute(bI);}},_uiSetOptions:function(cC){var A=this;var cB=A.get(cr);var L=[];cs.each(cC,function(cE,cD,cF){L.push(bF(aq,cE));});cB.setContent(L.join(Q));A.items=cB.all(bP+cc);}}});var f=b6.Component.create({NAME:N,ATTRS:{acceptChildren:{value:false,readOnly:true},options:{value:[{label:"option 1",value:"value 1"},{label:"option 2",value:"value 2"},{label:"option 3",value:"value 3"}]},optionTemplate:{value:''}},UI_ATTRS:[h,aO,aj,aC,ae,X],CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{getNode:function(){var A=this;return b6.FormBuilderMultipleChoiceField.superclass.getNode.apply(A,arguments);},renderSettings:function(){var A=this;var L=A.get(ce);b6.FormBuilderMultipleChoiceField.superclass.renderSettings.apply(A,arguments);if(!A._renderedMultipleChoiceSettings){A._renderedMultipleChoiceSettings=true;var cC=b6.Node.create(C);A.optionsPanel=new b6.Panel({bodyContent:cC,collapsible:true,title:"Options"}).render();var cB=b6.Array.indexOf(L,ae)>-1;A.options=new bm({disabled:cB,options:A.get(ae)}).render(cC);A.fieldSettingsNode.append(A.optionsPanel.get(aR));}},saveSettings:function(){var A=this;b6.FormBuilderMultipleChoiceField.superclass.saveSettings.apply(A,arguments);A.set(ae,A.options.get(ae));},_uiSetOptions:function(cD){var A=this;var cC=A.get(ad);var cB=A.get(bB);var L=[];cs.each(cD,function(cF,cE,cG){L.push(bF(cB,cF));});cC.setContent(L.join(Q));}}});b6.FormBuilderMultipleChoiceField=f;b6.FormBuilder.types["multiple-choice"]=b6.FormBuilderMultipleChoiceField;var bX=b6.Lang,aX=bX.isArray,aZ=bX.isBoolean,aB=bX.isNumber,bT=bX.isString,aR="boundingBox",e="bodyContent",K="checked",ax="choice",cr="contentBox",aL="container",bP=".",bJ="",bq="field",g="fields",aG="form-builder-field",bd="form-builder-radio-field",ch="id",r="icon",bj="inline",aj="label",c="labels",aC="name",cz="node",H="optionsContainerNode",aO="predefinedValue",W="radio",aw="size",Y=" ",aI="template",ad="templateNode",m="value",z=b6.getClassName,d=z(bq),b3=z(bq,ax),bN=z(aG),aQ=z(aG,W),b9=z(aG,cz),ca=z(aG,ae,aL),bQ=z(bH,cj),b0=z(bq,c,bj),b4='
                                                                                      • ',aa='
                                                                                        ',aW='',cd='';var i=b6.Component.create({NAME:bd,ATTRS:{name:{value:W},optionTemplate:{value:aW},template:{valueFn:function(){return aW;}},optionsContainerNode:{valueFn:function(){return b6.Node.create(aa);}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{optionsContainerNode:bP+ca,templateNode:bP+b9},EXTENDS:b6.FormBuilderMultipleChoiceField,prototype:{BOUNDING_TEMPLATE:b4,renderUI:function(){var A=this;var L=A.get(cr);var cB=A.get(H);b6.FormBuilderRadioField.superclass.renderUI.apply(A,arguments);L.append(cB);},getNode:function(){var A=this;return b6.Node.create(cd);},_onFieldChange:function(L){var A=this;var cB=L.target;A.set(aO,cB.val());},_uiSetDisabled:function(cB){var A=this;var L=A.get(H);L.all(a1).each(function(cC){if(cB){cC.setAttribute(bI,cB);}else{cC.removeAttribute(bI);}});},_uiSetOptions:function(cD){var A=this;var L=A.get(cr);var cC=A.get(H);var cB=A.get(ad);cC.empty();b6.each(cD,function(cG){var cF=new b6.Field({type:W,disabled:A.get(bI),name:A.get(aC),labelText:cG.label,labelAlign:"left",value:cG.value}).render(cC);var cE=cF.get(cz);if(cG.value==A.get(aO)){cE.set(K,true);}if(A.get(bI)){cE.setAttribute(bI,cD);}else{cE.removeAttribute(bI);}cE.on({change:b6.bind(A._onFieldChange,A)});});},_uiSetPredefinedValue:function(cD){var A=this;var L=A.get(bf);var cB=L.get(at);var cC=cB.one("input[name=predefinedValue]");if(cC){cC.val(cD);}}}});b6.FormBuilderRadioField=i;b6.FormBuilder.types["radio"]=b6.FormBuilderRadioField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node); +},a6=function(A){return(A instanceof b6.NodeList);},ba=b6.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aR="boundingBox",cm="button",ck="buttonType",cr="contentBox",aL="container",ct="defaultOptions",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",b5="form-builder-select-field",ch="id",r="icon",a1="input",aj="label",cl="multiple",aC="name",cz="node",T="option",ae="options",bb="portalLayout",aO="predefinedValue",bt="proxy",bR="reset",bY="selectedIndex",ay="submit",Y=" ",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bE='';var ah=b6.Component.create({NAME:b5,ATTRS:{multiple:{setter:b6.DataType.Boolean.parse,value:false},template:{valueFn:function(){return bE;}},templateNode:{valueFn:"getNode"}},UI_ATTRS:b6.FormBuilderField.UI_ATTRS.concat([cl]),CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderMultipleChoiceField,prototype:{getHTML:function(){var A=this;var cC=A.get(aI);var cE=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cD=A.get(aO);return b6.substitute(cC,{id:cE,label:cB,name:L,value:cD});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var L=this;var cB=L.get(bf);var cD=cB.get(at);var cE=L.settingsNodesMap;b6.FormBuilderSelectField.superclass.renderSettings.apply(L,arguments);if(!L._renderedSelectSettings){L._renderedSelectSettings=true;var cC=L.propertiesPanel.get(e);L._renderSettingsFields([{type:"checkbox",name:cl,labelText:"Multiple",labelAlign:"left"}],cC.item(0));var A=cE["multipleSettingNode"];A.on({change:b6.bind(L._onSettingsFieldChange,L)});A.set(K,L.get(cl));}},_uiSetMultiple:function(cB){var A=this;var L=A.get(ad);if(cB){L.setAttribute(cl,cl);}else{L.removeAttribute(cl);}}}});b6.FormBuilderSelectField=ah;b6.FormBuilder.types["select"]=b6.FormBuilderSelectField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},aR="boundingBox",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",a2="form-builder-input-field",ch="id",r="icon",a1="input",aj="label",aC="name",cz="node",bb="portalLayout",aO="predefinedValue",bt="proxy",Y=" ",aI="template",ad="templateNode",bL="text",m="value",bz="width",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bK='',aJ={small:25,medium:50,large:100};var by=b6.Component.create({NAME:a2,ATTRS:{template:{valueFn:function(){return bK;}},templateNode:{valueFn:"getNode"},width:{setter:b6.DataType.String.evaluate,value:25}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{bindUI:function(){var A=this;b6.FormBuilderTextField.superclass.bindUI.apply(A,arguments);var L=A.get(ad);L.on({input:b6.bind(A._onValueInput,A)});},getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cE=A.get(aO);var cC=A.get(bz);return b6.substitute(cD,{id:cF,label:cB,name:L,value:cE,width:cC});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cH=this;var cG=cH.get(bf);var cB=cG.get(at);var cF=cH.settingsNodesMap;var cI=cG.get(bZ);b6.FormBuilderTextField.superclass.renderSettings.apply(cH,arguments);if(!cH._renderedInputSettings){cH._renderedInputSettings=true;var cD=cH.propertiesPanel.get(e);var A=0;var cE=-1;var cC=[];b6.each(aJ,function(cL,cK){if(cL==cH.get(bz)){cE=A;}cC.push({labelText:cI[cK],value:cL});A++;});cH._renderSettingsFields([{labelText:"Width",name:bz,options:cC,type:"select",value:cH.get(bz)}],cD.item(0));var L=cF["predefinedValueSettingNode"];L.on({input:b6.bind(cH._onValueInput,cH)});var cJ=cF["widthSettingNode"];cJ.on({change:b6.bind(cH._onWidthChange,cH)});cJ.all(T).item(cE).set(bg,true);}},_onValueInput:function(L){var A=this;var cB=L.target;A.set(aO,cB.val());},_onWidthChange:function(L){var A=this;var cB=L.target;A.set(bz,cB.val());},_uiSetWidth:function(cB){var A=this;var L=A.get(ad);L.addClass(z("w"+cB));L.removeClass(z("w"+A.prevWidth));A.prevWidth=cB;}}});b6.FormBuilderTextField=by;b6.FormBuilder.types["text"]=b6.FormBuilderTextField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,aR="boundingBox",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",cn="form-builder-textarea-field",ch="id",r="icon",aj="label",aC="name",cz="node",bb="portalLayout",aO="predefinedValue",bt="proxy",aw="size",Y=" ",aI="template",ad="templateNode",bL="text",ar="textarea",m="value",z=b6.getClassName,d=z(bq),bu=z(bq,bL),O=z(bq,ar),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),am='';var aM=b6.Component.create({NAME:cn,ATTRS:{template:{valueFn:function(){return am;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderTextField,prototype:{getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cC=A.get(aw);var cE=A.get(aO);return b6.substitute(cD,{id:cF,label:cB,name:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());}}});b6.FormBuilderTextAreaField=aM;b6.FormBuilder.types["textarea"]=b6.FormBuilderTextAreaField;},"@VERSION@",{requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-form-builder/aui-form-builder-min.js b/build/aui-form-builder/aui-form-builder-min.js index 750e5d47113..6567ea9743c 100644 --- a/build/aui-form-builder/aui-form-builder-min.js +++ b/build/aui-form-builder/aui-form-builder-min.js @@ -1,9 +1,9 @@ AUI.add("aui-form-builder-base",function(p){var k=p.Lang,n=k.isArray,o=k.isString,m=k.isObject,w=k.isValue,t=function(A){return(A instanceof p.Node);},s=function(A){return(A instanceof p.NodeList);},c=function(A){return(A instanceof p.FormBuilder);},q=function(A){return(A instanceof p.FormBuilderField);},e=p.DD.DDM,i="active",x="acceptChildren",r="autoSelectFields",z="availableFields",y="append",B="boundingBox",g="builder",d="button",j="buttons",l="buttonsNode",h="children",b="clonable-portal-layout",v="cloneNode",f=", ";COMPONENT="component",CONTENT="content",CONTENT_BOX="contentBox",CONTAINER="container",DELETE="delete",DD="dd",DEFAULT="default",DEFAULT_MESSAGE="defaultMessage",DEFAULT_MESSAGE_NODE="defaultMessageNode",DOT=".",DUPLICATE="duplicate",DRAG="drag",DRAGGING="dragging",DRAG_CONTAINER="dragContainer",DRAG_CONTAINER_NODE="dragContainerNode",DRAG_NODES_LIST="dragNodesList",DRAG_PORTAL_LAYOUT="dragPortalLayout",DROP="drop",DROP_CONTAINER="dropContainer",DROP_CONTAINER_NODE="dropContainerNode",DROP_PORTAL_LAYOUT="dropPortalLayout",DROP_NODE="dropNode",DROP_ZONE_NODE="dropZoneNode",EDIT="edit",EMPTY_SELECTION="emptySelection",EMPTY_STR="",ENABLE_EDITING="enableEditing",FIELD="field",FIELDS="fields",KEY="key",FIRST="first",FIRST_CHILD="firstChild",FIXED="fixed",FOCUSED="focused",FORM="form",FORM_BUILDER="formBuilder",FORM_LAYOUT="form-layout",ID="id",ICON="icon",INACTIVE="inactive",INDEX="index",INPUT="input",ITEMS="items",LABEL="label",LABEL_NODE="labelNode",LAST="last",LAST_CHILD="lastChild",LIST="list",MESSAGE="message",NAME="name",NESTED_LIST="nestedList",NODE="node",OVER="over",PARENT="parent",PARENT_NODE="parentNode",PLACEHOLDER="placeholder",PLACE_AFTER="placeAfter",PLACE_BEFORE="placeBefore",PREPEND="prepend",HELPER="helper",HIDDEN="hidden",READ_ONLY_ATTRIBUTES="readOnlyAttributes",RENDER="render",SAVE="save",SELECTED="selected",SETTINGS="settings",SETTINGS_FORM_NODE="settingsFormNode",SETTINGS_BUTTONS_NODE="settingsButtonsNode",SRC_NODE="srcNode",SPACE=" ",STATE="state",STRINGS="strings",TABS="tabs",TABS_NODE="tabsNode",TABS_CONTENT_NODE="tabsContentNode",TABS_LIST_NODE="tabsListNode",TABVIEW="tabview",TARGET="target",TEMPLATE_NODE="templateNode",TEXT="text",TYPE="type",UNIQUE="unique",VALUE="value",VALUES="values",ZONE="zone",REGION="region",WIDGET="widget",getCN=p.getClassName,CSS_BUTTON_INPUT=getCN(d,INPUT),CSS_COMPONENT=getCN(COMPONENT),CSS_DD_DRAGGING=getCN(DD,DRAGGING),CSS_HELPER_HIDDEN=getCN(HELPER,HIDDEN),CSS_FORM_BUILDER_BUTTON_DELETE=getCN(FORM,g,d,DELETE),CSS_FORM_BUILDER_BUTTON_DUPLICATE=getCN(FORM,g,d,DUPLICATE),CSS_FORM_BUILDER_BUTTON_EDIT=getCN(FORM,g,d,EDIT),CSS_FORM_BUILDER_BUTTON_SAVE=getCN(FORM,g,d,SAVE),CSS_FORM_BUILDER_DEFAULT_MESSAGE=getCN(FORM,g,DEFAULT,MESSAGE),CSS_FORM_BUILDER_DRAG_CONTAINER=getCN(FORM,g,DRAG,CONTAINER),CSS_FORM_BUILDER_DRAG_NODE=getCN(FORM,g,DRAG,NODE),CSS_FORM_BUILDER_DROP_ACTIVE=getCN(FORM,g,DROP,i),CSS_FORM_BUILDER_DROP_CONTAINER=getCN(FORM,g,DROP,CONTAINER),CSS_FORM_BUILDER_DROP_NODE=getCN(FORM,g,DROP,NODE),CSS_FORM_BUILDER_DROP_ZONE=getCN(FORM,g,DROP,ZONE),CSS_FORM_BUILDER_FIELD=getCN(FORM,g,FIELD),CSS_FORM_BUILDER_FIELD_BUTTONS=getCN(FORM,g,FIELD,j),CSS_FORM_BUILDER_FIELD_CONTENT=getCN(FORM,g,FIELD,CONTENT),CSS_FORM_BUILDER_FIELD_HIDDEN=getCN(FORM,g,FIELD,HIDDEN),CSS_FORM_BUILDER_FIELD_ICON=getCN(FORM,g,FIELD,ICON),CSS_FORM_BUILDER_FIELD_ICON_TEXT=getCN(FORM,g,FIELD,ICON,TEXT),CSS_FORM_BUILDER_FIELD_OVER=getCN(FORM,g,FIELD,OVER),CSS_FORM_BUILDER_FIELD_SELECTED=getCN(FORM,g,FIELD,SELECTED),CSS_FORM_BUILDER_HELPER=getCN(FORM,g,HELPER),CSS_FORM_BUILDER_ICON=getCN(FORM,g,ICON),CSS_FORM_BUILDER_INACTIVE=getCN(FORM,g,INACTIVE),CSS_FORM_BUILDER_LABEL=getCN(FORM,g,LABEL),CSS_FORM_BUILDER_PLACEHOLDER=getCN(FORM,g,PLACEHOLDER),CSS_FORM_BUILDER_SETTINGS=getCN(FORM,g,SETTINGS),CSS_FORM_BUILDER_SETTINGS_BUTTONS=getCN(FORM,g,SETTINGS,j),CSS_FORM_BUILDER_TABS_CONTAINER=getCN(FORM,g,TABS,CONTAINER),CSS_TABVIEW_CONTENT=getCN(TABVIEW,CONTENT),CSS_TABVIEW_LIST=getCN(TABVIEW,LIST),CSS_ICON=getCN(ICON),CSS_WIDGET=getCN(WIDGET),TPL_DEFAULT_MESSAGE='
                                                                                      • ',TPL_DRAG_CONTAINER='
                                                                                          ',TPL_DRAG_NODE='
                                                                                        • '+''+'{label}'+"
                                                                                        • ",TPL_DROP_CONTAINER='
                                                                                            ',TPL_FIELD_BOUNDING_BOX='
                                                                                          • ',TPL_HELPER='
                                                                                            ',TPL_PLACEHOLDER='
                                                                                          • ',TPL_TABS='
                                                                                            ',TPL_TABS_CONTENT='
                                                                                            ',TPL_TABS_LIST='
                                                                                              ',TPL_SETTINGS='
                                                                                              ',TPL_SETTINGS_BUTTONS='
                                                                                              '+''+''+''+""+""+''+''+''+""+""+"
                                                                                              ",TAB_INDEX_DRAG=0,TAB_INDEX_SETTINGS=1,DEFAULT_ICON_CLASS=[CSS_FORM_BUILDER_FIELD_ICON,CSS_FORM_BUILDER_FIELD_ICON_TEXT].join(SPACE),INVALID_CLONE_ATTRS=[B,CONTENT_BOX,SRC_NODE,FIELDS,ID,SELECTED,TEMPLATE_NODE,LABEL_NODE,NAME],INVALID_DBCLICK_TARGETS="button,input,label,select,textarea";var a=function(){};a.ATTRS={fields:{value:[],setter:"_setFields",getter:function(A){return A||[];},validator:n}};p.mix(a.prototype,{addField:function(D){var C=this; var A=C.get(FIELDS);A=C._removeFromParent(D);A.push(D);C.set(FIELDS,A);},addFields:function(C){var A=this;p.Array.each(A._normalizeFields(C),p.bind(A.addField,A));},contains:function(F,D){var C=this;var A=C.get(FIELDS);if(F===undefined){return false;}if(D){var E=C.get(B);return E.contains(F.get(B));}return(C.indexOf(F)>-1);},eachField:function(F,D){var C=this;var A=C.get(FIELDS);for(var E=0;E0)){return false;}else{if(D.fixed===true){return false;}}A=C._removeFromParent(D);D.removeTarget(C);C.set(FIELDS,A);},removeFields:function(C){var A=this;p.Array.each(A._normalizeFields(C),p.bind(A.removeField,A));},_getFormBuilder:function(){return(this.get(FORM_BUILDER)||this);},_getRenderedField:function(C,E){var A=this;var D=A._getFormBuilder();if(!q(E)){E=D._renderField(A,C,E);}E.addTarget(D);E.set(PARENT,A);return E;},_normalizeFields:function(C){var A=this;var D=[];var F=A._getFormBuilder();var G=F.get(z);var E=F.uniqueFields;C=p.Array(C);p.Array.each(C,function(J,I){J=A._getRenderedField(I,J);var H=J.get(KEY);var K=J.get(UNIQUE);if(K&&!E.containsKey(H)){E.add(H,J);}if(K&&E.contains(J)){D.push(J);}else{if(K&&!E.contains(J)){J.destroy();}else{D.push(J);}}});return D;},_removeFromParent:function(E){var C=this;var A=C.get(FIELDS);if(q(E)){var D=E.get(PARENT);if(D&&D!=C){D._removeFromParent(E);}else{if(C.contains(E)){p.Array.removeItem(A,E);}}}return A;},_setFields:function(C){var A=this;return A._normalizeFields(C);}});p.FormBuilderFieldSupport=a;var u=p.Component.create({NAME:FORM_BUILDER,ATTRS:{autoSelectFields:{value:false},availableFields:{lazyAdd:false,value:[],validator:n,setter:function(A){p.each(A,function(D,C){D.key=D.key||C;});return A;}},enableEditing:{value:true},nestedList:{setter:function(D){var A=this;var C=p.merge({dd:{plugins:[{cfg:{horizontal:false,scrollDelay:30},fn:p.Plugin.DDWinScroll}]},dropCondition:function(F){var G=false;var E=F.drop.get(NODE);var H=E.getData(FIELD);if(H&&H.get(x)){G=true;}return G;},dropOn:DOT+CSS_FORM_BUILDER_DROP_ZONE,placeholder:p.Node.create(TPL_PLACEHOLDER),sortCondition:function(F){var E=A.get(DROP_CONTAINER_NODE);return E.contains(F.drop.get(NODE));}},D);return C;},value:{}},strings:{value:{button:"Button",defaultMessage:"Drop a field here",emptySelection:"No field selected",large:"Large",medium:"Medium",reset:"Reset",small:"Small",submit:"Submit",type:"Type"}},defaultMessageNode:{valueFn:function(){return p.Node.create(TPL_DEFAULT_MESSAGE);}},dragContainerNode:{valueFn:function(){return p.Node.create(TPL_DRAG_CONTAINER);}},dragNodesList:{setter:function(A){p.each(A,function(D,C){D.setData(INDEX,C);});},valueFn:"_valueDragNodesList"},dropContainerNode:{valueFn:function(){return p.Node.create(TPL_DROP_CONTAINER);}},settingsButtonsNode:{valueFn:function(){return p.Node.create(TPL_SETTINGS_BUTTONS);}},settingsFormNode:{valueFn:function(){return p.Node.create(TPL_SETTINGS);}},tabsNode:{valueFn:function(){return p.Node.create(TPL_TABS);}},tabsContentNode:{valueFn:function(){return p.Node.create(TPL_TABS_CONTENT);}},tabsListNode:{valueFn:function(){return p.Node.create(TPL_TABS_LIST);}}},AUGMENTS:[p.FormBuilderFieldSupport],HTML_PARSER:{defaultMessageNode:DOT+CSS_FORM_BUILDER_DEFAULT_MESSAGE,dragContainerNode:DOT+CSS_FORM_BUILDER_DRAG_CONTAINER,dragNodesList:function(C){var A=C.all(DOT+CSS_FORM_BUILDER_DRAG_NODE);return(A.size()<=0)?null:A;},dropContainerNode:DOT+CSS_FORM_BUILDER_DROP_CONTAINER,settingsFormNode:FORM+DOT+CSS_FORM_BUILDER_SETTINGS,settingsButtonsNode:DOT+CSS_FORM_BUILDER_SETTINGS_BUTTONS,tabsNode:DOT+CSS_FORM_BUILDER_TABS_CONTAINER,tabsContentNode:DOT+CSS_TABVIEW_CONTENT,tabsListNode:DOT+CSS_TABVIEW_LIST},EXTENDS:p.Widget,prototype:{initializer:function(){var A=this;A.boundingBox=A.get(B);A.dragContainerNode=A.get(DRAG_CONTAINER_NODE);A.dragNodesList=A.get(DRAG_NODES_LIST);A.dropContainerNode=A.get(DROP_CONTAINER_NODE);A.settingsButtonsNode=A.get(SETTINGS_BUTTONS_NODE);A.settingsFormNode=A.get(SETTINGS_FORM_NODE);A.tabsNode=A.get(TABS_NODE);A.tabsContentNode=A.get(TABS_CONTENT_NODE);A.tabsListNode=A.get(TABS_LIST_NODE);A._dragNestedList=new p.NestedList(A.get(NESTED_LIST));A._dropNestedList=new p.NestedList(A.get(NESTED_LIST));A._tabs=new p.TabView({boundingBox:A.tabsNode,contentNode:A.tabsContentNode,listNode:A.tabsListNode});if(!A.tabsContentNode.inDoc()){A._tabs.set(ITEMS,[{label:"Add a field",contentNode:A.dragContainerNode},{label:"Field settings",content:A.settingsFormNode}]);}},renderUI:function(){var A=this;A.dragNodesList.appendTo(A.dragContainerNode);A._tabs.render();},bindUI:function(){var A=this;var D=A.boundingBox;var C=A.dropContainerNode;var E=A.settingsButtonsNode;A._dragNestedList.on("drag:end",p.bind(A._onDragEndDragNestedList,A));A._dragNestedList.on("drag:start",p.bind(A._onDragStartDragNestedList,A));A._dropNestedList.on("drag:end",p.bind(A._onDragEndDropNestedList,A));A._tabs.after("activeTabChange",p.bind(A._afterActiveTabChange,A));A.uniqueFields.after("add",p.bind(A._afterUniqueFieldsAdd,A));A.uniqueFields.after("remove",p.bind(A._afterUniqueFieldsRemove,A));C.delegate("click",p.bind(A._onClickFieldDelete,A),DOT+CSS_FORM_BUILDER_BUTTON_DELETE);C.delegate("click",p.bind(A._onClickFieldDuplicate,A),DOT+CSS_FORM_BUILDER_BUTTON_DUPLICATE);C.delegate("click",p.bind(A._onClickFieldEdit,A),DOT+CSS_FORM_BUILDER_BUTTON_EDIT);C.delegate("dblclick",p.bind(A._onDbClickField,A),DOT+CSS_FORM_BUILDER_FIELD);C.delegate("mouseenter",p.bind(A._onMouseEnterField,A),DOT+CSS_FORM_BUILDER_FIELD); C.delegate("mouseleave",p.bind(A._onMouseLeaveField,A),DOT+CSS_FORM_BUILDER_FIELD);E.delegate("click",p.bind(A._onClickSettingsButton,A),DOT+CSS_BUTTON_INPUT);A.after("*:fieldsChange",p.bind(A._afterFieldsChange,A));A.after("*:selectedChange",p.bind(A._afterSelectedChange,A));},syncUI:function(){var A=this;A.syncFieldsUI();A._syncDefaultMessage();A._syncUniqueFields();A._syncNestedList();},uniqueFields:new p.DataSet(),appendFields:function(C,D){var A=this;D.setContent(EMPTY_STR);p.each(C,function(F){var E=F.get(FIELDS);D.append(F.get(B));A.appendFields(E,F.get(DROP_ZONE_NODE));});},duplicateField:function(F){var A=this;var E=F.get(PARENT);var C=E.indexOf(F);var D=A._cloneField(F,true);E.insertField(++C,D);},selectField:function(D){var A=this;D.set(SELECTED,true);var C=A.settingsFormNode.one(INPUT);if(C){C.focus();C.select();}A._tabs.selectTab(TAB_INDEX_SETTINGS);},syncFieldsUI:function(E){var C=this;var A=C.get(FIELDS);var D=C.get(DROP_CONTAINER_NODE);if(E&&q(E.target)){var F=E.target;A=F.get(FIELDS);D=F.get(DROP_ZONE_NODE);}C.appendFields(A,D);},_afterActiveTabChange:function(G){var C=this;var F=C.selectedField;var D=C.get(SETTINGS_FORM_NODE);var E=C.get(SETTINGS_BUTTONS_NODE);var A=C.get(STRINGS);var H=C.contains(F,true);if(!H){D.setContent(A[EMPTY_SELECTION]);}E.toggleClass(CSS_HELPER_HIDDEN,!H);},_afterFieldsChange:function(){var A=this;A.syncUI();},_afterSelectedChange:function(D){var A=this;var E=D.target;var C=A.selectedField;A._syncSelectedFieldUI(E);if(E.get(SELECTED)){A.selectedField=E;if(C&&C!=E){C.set(SELECTED,false);}E.renderSettings();}},_afterUniqueFieldsAdd:function(D){var A=this;var C=D.attrName;var E=A._getDragNodeByKey(C);E.addClass(CSS_FORM_BUILDER_INACTIVE);E.unselectable();},_afterUniqueFieldsRemove:function(D){var A=this;var C=D.attrName;var E=A._getDragNodeByKey(C);E.removeClass(CSS_FORM_BUILDER_INACTIVE);E.selectable();},_cloneField:function(G,C){var A=this;var F=G.get(TYPE);var D={};p.each(G.getAttrs(),function(I,H){if(p.Array.indexOf(INVALID_CLONE_ATTRS,H)===-1&&!t(I)){D[H]=I;}});if(C){var E=[];p.each(G.get(FIELDS),function(H){E.push(A._cloneField(H,C));});D[FIELDS]=E;}D[TYPE]=F;return D;},_dropField:function(D){var J=this;var E=D.get(PARENT_NODE);var A=E.all("> "+DOT+CSS_FORM_BUILDER_FIELD);var H=D.getData(FIELD);var C=J.get(DEFAULT_MESSAGE_NODE);if(C.inDoc()){C.remove();}var I=J._getFieldParentByNode(D);var F=A.indexOf(D);if(!H){var G=J.get(z);H=G[D.getData(INDEX)];D.remove();}I.insertField(F,H);return I.getField(F);},_getDragNodeByKey:function(D){var A=this;var F=A.get(DRAG_NODES_LIST);var E=A.get(z);for(var C=0;C0){D.insert(E,G);}else{D.append(E);}F=p.merge(F,{boundingBox:E,key:F.key,formBuilder:C,render:true,after:{render:function(){E.removeClass(CSS_HELPER_HIDDEN);}}});if(F.disabled===undefined){F.disabled=!C.get(ENABLE_EDITING);}return C._getFieldInstance(F);},_syncDefaultMessage:function(){var C=this;if(!C.dropContainerNode.hasChildNodes()){var A=C.get(STRINGS);var D=C.get(DEFAULT_MESSAGE_NODE);D.setContent(A[DEFAULT_MESSAGE]);C.dropContainerNode.append(D);}},_syncNestedList:function(){var A=this;var D=A.get(z);var C=A.uniqueFields;A._syncNodes(); -A.dragNodes.each(function(F,E){var G=D[E];if(!C.containsKey(G.key)){A._dragNestedList.add(F);}});A._dropNestedList.addAll(A.dropNodes);},_syncNodes:function(){var A=this;var D=A.dragContainerNode;var C=A.dropContainerNode;A.dragNodes=D.all(DOT+CSS_FORM_BUILDER_FIELD);A.dropNodes=C.all([DOT+CSS_FORM_BUILDER_FIELD,DOT+CSS_FORM_BUILDER_DEFAULT_MESSAGE].join(f));},_syncSelectedFieldUI:function(F){var C=this;var E=F.get(SELECTED);var A=F.get(B);var D=C.selectedField;A.toggleClass(CSS_FORM_BUILDER_FIELD_SELECTED,E);if(!E&&F.contains(D)){E=true;}C._toggleFieldButtonsNode(F,E);},_syncUniqueFields:function(){var C=this;var E=C.get(z);var A=C.get(FIELDS);var D=C.uniqueFields;D.each(function(G,F){if(!C.contains(G,true)){D.remove(G);}});p.each(E,function(H,F){if(H.unique){var G=H.key;C.eachField(function(J){if(J.get(KEY)==G){var I=p.merge(C._cloneField(J,false),H);J.set(FIXED,I.fixed);J.set(READ_ONLY_ATTRIBUTES,I.readOnlyAttributes);J.set(UNIQUE,true);E[F]=I;D.add(G,J);}},true);}});},_toggleFieldButtonsNode:function(C,D){var A=this;var E=C.get(l);if(E){E.toggleClass(CSS_HELPER_HIDDEN,!D);}},_valueDragNodesList:function(){var A=this;var D=A.get(z);var C=[];p.each(D,function(F,E,G){C.push(p.substitute(TPL_DRAG_NODE,{icon:F.iconClass||DEFAULT_ICON_CLASS,label:F.entryLabel||F.label,key:F.key||E,type:F.type,unique:F.unique}));});return p.NodeList.create(C.join(EMPTY_STR));}}});p.FormBuilder=u;p.FormBuilder.types={};},"@VERSION@",{requires:["aui-base","aui-button-item","aui-nested-list","aui-tabs","substitute"],skinnable:true});AUI.add("aui-form-builder-field",function(b5){var bW=b5.Lang,aW=bW.isArray,bS=bW.isString,h="acceptChildren",e="bodyContent",aQ="boundingBox",ce="builder",cl="button",I="buttons",x="buttonsNode",aG="checkbox",J="checked",o="children",ch="clearfix",aR="close",aS="component",cq="contentBox",aK="container",cx="dataType",ci="default",aX="delete",bH="disabled",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",b6="dropNode",bq="dropZone",a2="dropZoneNode",aE="duplicate",Q="edit",bI="",bp="field",g="fields",a8="fixed",bN="for",q="form",be="formBuilder",aF="form-builder-field",s="help",n="helper",au="hidden",r="icon",cg="id",ai="label",b1="labelNode",bC="lightbulb",bg="metadata",aB="name",cy="node",b="panel",ba="portalLayout",aN="predefinedValue",bs="proxy",cd="readOnlyAttributes",ao="required",a7="requiredFlagNode",bG="state",bn="select",aZ="settings",ar="settingsFormNode",W="showLabel",av="size",X=" ",bR="string",bY="strings",ac="templateNode",bK="text",aq="textarea",u="tip",bv="tipIconNode",Y="type",aD="unique",bT="zone",bj="widget",z=b5.getClassName,bm=z(aS),aJ=z(bp,ai),p=z(n,ch),ae=z(n,au),bP=z(bG,ci),d=z(bp),bt=z(bp,bK),B=z(q,ce,cl),bL=z(q,ce,cl,aX),a4=z(q,ce,cl,aE),U=z(q,ce,cl,Q),a3=z(q,ce,az,cy),am=z(q,ce,az,bT),cw=z(q,ce,r),j=z(q,ce,r,aX),w=z(q,ce,r,aE),ak=z(q,ce,r,Q),E=z(q,ce,r,u),bM=z(q,ce,bp),bz=z(q,ce,bp,I),br=z(q,ce,a8),cv=z(q,ce,ao),bF=z(q,ce,aD),G=z(bj),b3='
                                                                                            • ',a='
                                                                                              '+''+'
                                                                                              '+"
                                                                                              "+''+'
                                                                                              '+"
                                                                                              "+''+'
                                                                                              '+"
                                                                                              "+"
                                                                                              ",C='
                                                                                              ',ab='
                                                                                                ',aj='',a6='',ay='*',cu="

                                                                                                ",bk='';var t=b5.Component.create({NAME:aF,ATTRS:{acceptChildren:{value:true},dataType:{value:bR},disabled:{value:false},fixed:{value:false},formBuilder:{value:undefined},id:{value:bI},icon:{value:bI},key:{value:bI},label:{value:bI},localizationMap:{value:{}},name:{valueFn:function(){var A=this;return A.get(Y)+(++b5.Env._uidx);}},parent:{value:null},predefinedValue:{value:bI},readOnlyAttributes:{value:[],validator:aW},required:{setter:b5.DataType.Boolean.parse,value:false},selected:{setter:b5.DataType.Boolean.parse,value:false},showLabel:{setter:b5.DataType.Boolean.parse,value:true},template:{value:bI},tip:{value:bI},type:{value:bI},unique:{setter:b5.DataType.Boolean.parse,value:false},buttonsNode:{valueFn:function(){return b5.Node.create(a);}},dropZoneNode:{valueFn:function(){return b5.Node.create(ab);}},labelNode:{valueFn:function(){return b5.Node.create(a6);}},requiredFlagNode:{valueFn:function(){return b5.Node.create(ay);}},templateNode:{valueFn:"getNode"},tipIconNode:{valueFn:function(){return b5.Node.create(bk);}}},AUGMENTS:[b5.FormBuilderFieldSupport],UI_ATTRS:[h,bH,a8,ai,aB,aN,ao,W,u,aD],HTML_PARSER:{buttonsNode:bO+bz,dropZoneNode:bO+am,labelNode:ai+bO+aJ,requiredFlagNode:bO+cv,tipIconNode:bO+E},prototype:{BOUNDING_TEMPLATE:b3,initializer:function(){var A=this;A.get(aQ).setData(bp,A);A.toolTip=new b5.Tooltip({trigger:A.get(bv),hideDelay:100});},bindUI:function(){var A=this;},renderUI:function(){var A=this;var cC=A.get(aQ);var cF=A.get(x);var L=A.get(cq);var cB=A.get(b1);var cE=A.get(a7);var cD=A.get(ac);var cA=A.get(bv);L.addClass(p);cC.prepend(cF);L.append(cB);L.append(cE);L.append(cA);L.append(cD);A.toolTip.render();},settingsNodesMap:{},saveSettings:function(){var A=this;var L=A.get(be);var cA=L.get(ar);b5.Array.each(b5.io._serialize(cA._node).split("&"),function(cC){var cB=cC.split("=");A.set(cB[0],decodeURIComponent(cB[1]));});},renderSettings:function(){var cI=this;var cE=cI.get(be);var A=cE.get(ar);var cJ=cE.get(bY);var cB=cI.settingsNodesMap;if(!cI.fieldSettingsNode){cI.fieldSettingsNode=b5.Node.create(C);var cG=b5.Node.create(C);var cC=b5.Node.create(aj);var L=b5.Node.create(a6);var cH=b5.Node.create(cu);L.setContent(cJ[Y]);cH.setContent(cI.get(cx)||cI.get(Y));cC.append(L);cC.append(cH);cC.appendTo(cG);cI._renderSettingsFields([{type:"text",name:ai,labelText:"Label",value:cI.get(ai)},{type:"checkbox",name:W,labelText:"Show label",labelAlign:"left",value:cI.get(W)},{type:"text",name:aB,labelText:"Name",value:cI.get(aB)},{type:"checkbox",name:ao,labelText:"Required",labelAlign:"left",value:ao},{type:"text",name:aN,labelText:"Default value",value:cI.get(aN)},{type:"textarea",name:u,labelText:"Tip",value:cI.get(u)}],cG); -var cD=cB.labelSettingNode;cD.on({input:b5.bind(cI._onLabelInput,cI)});var cF=cB.showLabelSettingNode;cF.set(J,cI.get(W));cF.on({change:b5.bind(cI._onSettingsFieldChange,cI)});var cA=cB.requiredSettingNode;cA.set(J,cI.get(ao));cA.on({change:b5.bind(cI._onSettingsFieldChange,cI)});cI.propertiesPanel=new b5.Panel({bodyContent:cG,collapsible:true,title:"Properties"}).render();cI.fieldSettingsNode.append(cI.propertiesPanel.get(aQ));}A.setContent(cI.fieldSettingsNode);},getHTML:function(){},getNode:function(){},_onLabelInput:function(L){var A=this;var cB=L.target;var cA=cB.val();A.set(ai,cA);},_onSettingsFieldChange:function(L){var A=this;var cB=L.target;var cA=cB.val();if(cB.get(Y)===aG){cA=cB.get(J);}A.set(cB.get(aB),cA);},_renderSettingsFields:function(L,cB){var A=this;var cA=A.get(cd);b5.each(L,function(cD){var cE;if(b5.Array.indexOf(cA,cD.name)>-1){cD.disabled=true;}if(cD.type===bn){cE=new b5.Select(cD);}else{if(cD.type===aq){cE=new b5.Textarea(cD);}else{cE=new b5.Field(cD);}}cE.render(cB);var cC=cE.get(cy);if(cD.type===aG){cC.set(J,cD.value);}A.settingsNodesMap[cD.name+"SettingNode"]=cC;});},_uiSetAcceptChildren:function(cC){var A=this;var L=A.get(aQ);var cB=A.get(a2);var cA=L.one(bO+am);if(cC&&!cA){L.append(cB);}else{if(!cC&&cA){cA.remove();}else{if(cC&&cA){A.set(a2,cA);}}}},_uiSetDisabled:function(cA){var A=this;var L=A.get(ac);if(cA){L.setAttribute(bH,cA);}else{L.removeAttribute(bH);}},_uiSetFixed:function(cA){var A=this;var cB=A.get(x);var L=cB.one(bO+bL);L.toggleClass(ae,cA);},_uiSetLabel:function(cA){var A=this;var L=A.get(b1);L.setContent(cA);},_uiSetName:function(cA){var A=this;var L=A.get(ac);L.set(aB,cA);},_uiSetPredefinedValue:function(cA){var A=this;var L=A.get(ac);L.val(cA);},_uiSetRequired:function(cA){var A=this;var L=A.get(a7);L.toggleClass(ae,!cA);},_uiSetShowLabel:function(cA){var A=this;var L=A.get(b1);L.toggleClass(ae,!cA);},_uiSetTip:function(cA){var A=this;var L=A.get(bv);L.toggleClass(ae,!cA);A.toolTip.set(e,cA);},_uiSetUnique:function(cA){var A=this;var L=A.get(aQ);var cB=A.get(x);L.toggleClass(bF,cA);cB.one(bO+a4).toggleClass(ae,cA);}}});b5.FormBuilderField=t;b5.FormBuilder.types["field"]=b5.FormBuilderField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},a9=b5.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aQ="boundingBox",cl="button",cj="buttonType",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",bU="form-builder-button-field",cg="id",r="icon",a0="input",ai="label",aB="name",cy="node",R="option",ad="options",ba="portalLayout",aN="predefinedValue",bs="proxy",bQ="reset",bf="selected",bX="selectedIndex",ax="submit",X=" ",bY="strings",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bJ='',cz=[ax,bQ,cl];var b7=b5.Component.create({NAME:bU,ATTRS:{acceptChildren:{value:false,readOnly:true},buttonType:{value:ax,validator:function(A){return b5.Array(cz).indexOf(A.toLowerCase())>-1;}},predefinedValue:{value:a9(ax)},showLabel:{value:false},template:{valueFn:function(){return bJ;}}},UI_ATTRS:b5.FormBuilderField.UI_ATTRS.concat([cj]),CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cB=A.get(ai);var cA=A.get(aB);var L=A.get(cj);var cD=A.get(aN);return b5.substitute(cC,{id:cE,label:cB,name:cA,type:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cG=this;var cD=cG.get(be);var A=cD.get(ar);var cC=cG.get(cj);var cH=cD.get(bY);var cB=cG.settingsNodesMap;b5.FormBuilderButtonField.superclass.renderSettings.apply(cG,arguments);if(!cG._renderedButtonSettings){cG._renderedButtonSettings=true;var L=cG.propertiesPanel.get(e);var cF=[];b5.each(cz,function(cI){cF.push({labelText:cH[cI],value:cI});});cG._renderSettingsFields([{labelText:"Button type",name:cj,options:cF,type:"select"}],L.item(0));var cE=cB["buttonTypeSettingNode"];cE.on({change:b5.bind(cG._onButtonTypeChange,cG)});var cA=b5.Array(cz).indexOf(cC);cE.all(R).item(cA).set(bf,true);}},_onButtonTypeChange:function(L){var A=this;var cA=L.target;A.set(cj,cA.get(m));},_uiSetButtonType:function(cA){var A=this;var L=A.get(ac);L.setAttribute(Y,cA);}}});b5.FormBuilderButtonField=b7;b5.FormBuilder.types["button"]=b5.FormBuilderButtonField;var bW=b5.Lang,aW=bW.isArray,aY=bW.isBoolean,aA=bW.isNumber,bS=bW.isString,aU="boolean",aQ="boundingBox",e="bodyContent",aG="checkbox",J="checked",aw="choice",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",cn="form-builder-checkbox-field",cg="id",r="icon",bi="inline",ai="label",c="labels",aB="name",cy="node",S="parentNode",ba="portalLayout",aN="predefinedValue",bs="proxy",av="size",X=" ",aH="template",ac="templateNode",m="value",z=b5.getClassName,d=z(bp),an=z(bp,aG),b2=z(bp,aw),bM=z(aF),co=z(aF,aG),b8=z(aF,cy),bP=z(bG,ci),bZ=z(bp,c,bi),b3='
                                                                                              • ',aT='';var aa=b5.Component.create({NAME:cn,ATTRS:{dataType:{value:aU},predefinedValue:{setter:b5.DataType.Boolean.parse,value:false},template:{valueFn:function(){return aT;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{BOUNDING_TEMPLATE:b3,bindUI:function(){var A=this;b5.FormBuilderCheckBoxField.superclass.bindUI.apply(A,arguments);var L=A.get(ac);L.on({"change":b5.bind(A._onValueChange,A)}); -},renderUI:function(){var A=this;var L=A.get(cq);var cB=A.get(ac);var cA=A.get(b1);b5.FormBuilderCheckBoxField.superclass.renderUI.apply(A,arguments);cA.insert(cB,cA,"before");},getHTML:function(){var A=this;var cB=A.get(aH);var cC=A.get(J);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cD=A.get(aN);return b5.substitute(cB,{checked:cC?'checked="checked"':bI,id:cE,label:cA,name:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var A=this;var L=A.get(be);var cB=L.get(ar);var cC=A.settingsNodesMap;b5.FormBuilderCheckBoxField.superclass.renderSettings.apply(A,arguments);if(!A._renderedCheckboxSettings){A._renderedCheckboxSettings=true;cC.predefinedValueSettingNode.get(S).remove();var cA=A.propertiesPanel.get(e);A._renderSettingsFields([{type:"checkbox",name:aN,labelText:"Checked",labelAlign:"left"}],cA.item(0));var cD=cC.predefinedValueSettingNode;cD.on({change:b5.bind(A._onValueChange,A)});cD.set(J,A.get(aN));}},_onValueChange:function(L){var A=this;var cA=L.target;A.set(aN,cA.get(J));},_uiSetPredefinedValue:function(cC){var A=this;var L=A.get(ac);var cA=A.settingsNodesMap;var cB=cA.predefinedValueSettingNode;if(cB){cB.set(J,cC);}L.set(J,cC);}}});b5.FormBuilderCheckBoxField=aa;b5.FormBuilder.types["checkbox"]=b5.FormBuilderCheckBoxField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},aQ="boundingBox",cq="contentBox",aK="container",cx="dataType",bO=".",az="drop",bI="",bp="field",g="fields",aF="form-builder-field",F="form-builder-fieldset-field",cg="id",r="icon",ai="label",aB="name",cy="node",aN="predefinedValue",X=" ",bY="strings",aH="template",ac="templateNode",bK="text",Y="type",m="value",bT="zone",z=b5.getClassName,bM=z(aF),b8=z(aF,cy),am=z(q,ce,az,bT),aM='
                                                                                                ',k='';var y=b5.Component.create({NAME:F,ATTRS:{acceptChildren:{value:true,readOnly:true},dataType:{value:undefined},template:{valueFn:function(){return aM;}},labelNode:{valueFn:function(){return b5.Node.create(k);}},templateNode:{valueFn:"getNode"}},UI_ATTRS:[h,ai,W],CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{CONTENT_TEMPLATE:aM,renderUI:function(){var A=this;var cB=A.get(aQ);var cD=A.get(x);var L=A.get(cq);var cA=A.get(b1);var cC=A.get(ac);if(!cB.contains(cD)){cB.prepend(cD);}if(!L.contains(cA)){L.append(cA);}},getHTML:function(){var A=this;var L=A.get(aH);var cA=A.get(cg);return b5.substitute(L,{id:cA});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cH=this;var cD=cH.get(be);var A=cD.get(ar);var cI=cD.get(bY);var cA=cH.settingsNodesMap;if(!cH._renderedFieldsetSettings){cH._renderedFieldsetSettings=true;cH.fieldSettingsNode=b5.Node.create(C);var cF=b5.Node.create(C);var cB=b5.Node.create(aj);var L=b5.Node.create(a6);var cG=b5.Node.create(cu);L.setContent(cI[Y]);cG.setContent(cH.get(cx)||cH.get(Y));cB.append(L);cB.append(cG);cB.appendTo(cF);cH._renderSettingsFields([{type:"text",name:ai,labelText:"Label",value:cH.get(ai)},{type:"checkbox",name:W,labelText:"Show label",labelAlign:"left",value:cH.get(W)}],cF);var cC=cA["labelSettingNode"];cC.on({input:b5.bind(cH._onLabelInput,cH)});var cE=cA["showLabelSettingNode"];cE.set(J,cH.get(W));cE.on({change:b5.bind(cH._onSettingsFieldChange,cH)});cH.propertiesPanel=new b5.Panel({bodyContent:cF,collapsible:true,title:"Properties"}).render();cH.fieldSettingsNode.append(cH.propertiesPanel.get(aQ));}A.setContent(cH.fieldSettingsNode);},_uiSetAcceptChildren:function(cC){var A=this;var L=A.get(cq);var cB=A.get(a2);var cA=L.one(bO+am);if(cC&&!cA){L.append(cB);}else{if(!cC&&cA){cA.remove();}else{if(cC&&cA){A.set(a2,cA);}}}}}});b5.FormBuilderFieldsetField=y;b5.FormBuilder.types["fieldset"]=b5.FormBuilderFieldsetField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},aQ="boundingBox",cq="contentBox",aK="container",cx="dataType",bO=".",bI="",bp="field",g="fields",aF="form-builder-field",cp="form-builder-file-upload-field",cg="id",r="icon",ai="label",aB="name",cy="node",aN="predefinedValue",X=" ",bY="strings",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bB='';var K=b5.Component.create({NAME:cp,ATTRS:{template:{valueFn:function(){return bB;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cB=A.get(av);var cD=A.get(aN);return b5.substitute(cC,{id:cE,label:cA,name:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cI=this;var cE=cI.get(be);var A=cE.get(ar);var cJ=cE.get(bY);var cB=cI.settingsNodesMap;if(!cI._renderedFileUploadSettings){cI._renderedFileUploadSettings=true;cI.fieldSettingsNode=b5.Node.create(C);var cG=b5.Node.create(C);var cC=b5.Node.create(aj);var L=b5.Node.create(a6);var cH=b5.Node.create(cu);L.setContent(cJ[Y]);cH.setContent(cI.get(cx)||cI.get(Y));cC.append(L);cC.append(cH);cC.appendTo(cG);cI._renderSettingsFields([{type:"text",name:ai,labelText:"Label",value:cI.get(ai)},{type:"checkbox",name:W,labelText:"Show label",labelAlign:"left",value:cI.get(W)},{type:"text",name:aB,labelText:"Name",value:cI.get(aB)},{type:"checkbox",name:ao,labelText:"Required",labelAlign:"left",value:cI.get(ao)},{type:"textarea",name:u,labelText:"Tip",value:cI.get(u)}],cG);var cD=cB.labelSettingNode;cD.on({input:b5.bind(cI._onLabelInput,cI)});var cF=cB.showLabelSettingNode;cF.set(J,cI.get(W));cF.on({change:b5.bind(cI._onSettingsFieldChange,cI)});var cA=cB.requiredSettingNode;cA.set(J,cI.get(ao)); -cA.on({change:b5.bind(cI._onSettingsFieldChange,cI)});cI.propertiesPanel=new b5.Panel({bodyContent:cG,collapsible:true,title:"Properties"}).render();cI.fieldSettingsNode.append(cI.propertiesPanel.get(aQ));}A.setContent(cI.fieldSettingsNode);}}});b5.FormBuilderFileUploadField=K;b5.FormBuilder.types["fileupload"]=b5.FormBuilderFileUploadField;var cf=b5.Lang,cr=b5.Array,aW=cf.isArray,aA=cf.isNumber,bS=cf.isString,bE=cf.sub,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},a9=b5.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),T="add",bV="addNode",aQ="boundingBox",cl="button",cj="buttonType",cq="contentBox",aK="container",ci="default",at="defaultLabel",cs="defaultOptions",D="defaultValue",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bp="field",g="fields",aF="form-builder-field",M="form-builder-multiple-choice-field",r="icon",cg="id",a0="input",ah="item",ai="label",ck="multiple",aB="name",cy="node",R="option",bA="optionTemplate",ad="options",aN="predefinedValue",bs="proxy",ct="remove",bQ="reset",ax="submit",X=" ",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),l=z(bp,ad,T),cb=z(bp,ad,ah),ca=z(bp,ad,ah,a0),aO=z(bp,ad,ah,a0,ai),af=z(bp,ad,ah,a0,m),bb=z(bp,ad,ah,ct),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),P="",ap='
                                                                                                '+''+''+' '+"
                                                                                                ";TPL_ADD='Add an option',ENTER="ENTER";var bl=b5.Component.create({NAME:ad,ATTRS:{allowClear:{value:false},defaultLabel:{value:P},defaultValue:{value:P},disabled:{validator:aY,value:false},options:{getter:"_getOptions",validator:aW,value:[]},addNode:{valueFn:function(){return b5.Node.create(TPL_ADD);}}},HTML_PARSER:{addNode:bO+l},UI_ATTRS:[ad,bH],EXTENDS:b5.Widget,prototype:{renderUI:function(){var A=this;var L=A.get(aQ);var cA=A.get(bV);if(!cA.inDoc()){L.append(cA);}},bindUI:function(){var A=this;var L=A.get(aQ);var cA=A.get(bV);cA.on("click",b5.bind(A._onClickAdd,A));L.delegate("click",b5.bind(A._onClickOptionRemove,A),bO+bb);L.delegate("keypress",b5.bind(A._onKeyPressOption,A),bO+ca);},add:function(cA){var A=this;var L=A.get(ad);L.push(cA);A.set(ad,L);},clear:function(){var A=this;if(A.get(ALLOW_CLEAR)){A.set(ad,[]);}},remove:function(cA){var A=this;var L=A.get(cq);var cB=A._getOptionNode(cA);if(!A.get(bH)){if(cB){cB.remove();}A.items=L.all(bO+cb);}},_addNewOption:function(){var L=this;var cC=null;if(!L.get(bH)){var cA=L.get(cq);var cB=bE(ap,{label:L.get(at),value:L.get(D)});cC=b5.Node.create(cB);cA.append(cC);var A=cC.one(a0);A.focus();A.select();L.items=cA.all(bO+cb);}return cC;},_getOptionNode:function(L){var A=this;return A.items.item(L);},_getOptions:function(cA){var A=this;var L=[];if(A.items){b5.each(A.items,function(cD,cB,cG){var cF=cD.one(bO+aO);var cE=cD.one(bO+af);var cC=cA[cB]||{};cC.label=cF.val();cC.value=cE.val();L.push(cC);});}else{L=cA;}return L;},_indexOfTarget:function(cA){var A=this;var L=cA.ancestor(bO+cb);return A.items.indexOf(L);},_onClickAdd:function(L){var A=this;A._addNewOption();},_onClickOptionRemove:function(cB){var A=this;var cA=A.get(ad);var L=A._indexOfTarget(cB.target);A.remove(L);},_onKeyPressOption:function(cC){var A=this;var cB=A.get(ad);var cD=cC.currentTarget;var L=A.items;if(cC.isKey(ENTER)){var cA=A._indexOfTarget(cD);var cE=cD.hasClass(af);if((cA==L.size()-1)&&cE){A._addNewOption();}}},_uiSetDisabled:function(cB){var A=this;var cA=A.get(bV);var L=A.get(aQ);cA.toggleClass(ae,cB);L.all(bO+bb).toggleClass(ae,cB);if(cB){L.all(a0).setAttribute(bH,cB);}else{L.all(a0).removeAttribute(bH);}},_uiSetOptions:function(cB){var A=this;var cA=A.get(cq);var L=[];cr.each(cB,function(cD,cC,cE){L.push(bE(ap,cD));});cA.setContent(L.join(P));A.items=cA.all(bO+cb);}}});var f=b5.Component.create({NAME:M,ATTRS:{acceptChildren:{value:false,readOnly:true},options:{value:[{label:"option 1",value:"value 1"},{label:"option 2",value:"value 2"},{label:"option 3",value:"value 3"}]},optionTemplate:{value:''}},UI_ATTRS:[h,aN,ai,aB,ad,W],CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{getNode:function(){var A=this;return b5.FormBuilderMultipleChoiceField.superclass.getNode.apply(A,arguments);},renderSettings:function(){var A=this;var L=A.get(cd);b5.FormBuilderMultipleChoiceField.superclass.renderSettings.apply(A,arguments);if(!A._renderedMultipleChoiceSettings){A._renderedMultipleChoiceSettings=true;var cB=b5.Node.create(C);A.optionsPanel=new b5.Panel({bodyContent:cB,collapsible:true,title:"Options"}).render();var cA=b5.Array.indexOf(L,ad)>-1;A.options=new bl({disabled:cA,options:A.get(ad)}).render(cB);A.fieldSettingsNode.append(A.optionsPanel.get(aQ));}},saveSettings:function(){var A=this;b5.FormBuilderMultipleChoiceField.superclass.saveSettings.apply(A,arguments);A.set(ad,A.options.get(ad));},_uiSetOptions:function(cC){var A=this;var cB=A.get(ac);var cA=A.get(bA);var L=[];cr.each(cC,function(cE,cD,cF){L.push(bE(cA,cE));});cB.setContent(L.join(P));}}});b5.FormBuilderMultipleChoiceField=f;b5.FormBuilder.types["multiple-choice"]=b5.FormBuilderMultipleChoiceField;var bW=b5.Lang,aW=bW.isArray,aY=bW.isBoolean,aA=bW.isNumber,bS=bW.isString,aQ="boundingBox",e="bodyContent",J="checked",aw="choice",cq="contentBox",aK="container",bO=".",bI="",bp="field",g="fields",aF="form-builder-field",bc="form-builder-radio-field",cg="id",r="icon",bi="inline",ai="label",c="labels",aB="name",cy="node",H="optionsContainerNode",aN="predefinedValue",V="radio",av="size",X=" ",aH="template",ac="templateNode",m="value",z=b5.getClassName,d=z(bp),b2=z(bp,aw),bM=z(aF),aP=z(aF,V),b8=z(aF,cy),b9=z(aF,ad,aK),bP=z(bG,ci),bZ=z(bp,c,bi),b3='
                                                                                              • ',Z='
                                                                                                ',aV='',cc=''; -var i=b5.Component.create({NAME:bc,ATTRS:{name:{value:V},optionTemplate:{value:aV},template:{valueFn:function(){return aV;}},optionsContainerNode:{valueFn:function(){return b5.Node.create(Z);}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{optionsContainerNode:bO+b9,templateNode:bO+b8},EXTENDS:b5.FormBuilderMultipleChoiceField,prototype:{BOUNDING_TEMPLATE:b3,renderUI:function(){var A=this;var L=A.get(cq);var cA=A.get(H);b5.FormBuilderRadioField.superclass.renderUI.apply(A,arguments);L.append(cA);},getNode:function(){var A=this;return b5.Node.create(cc);},_onFieldChange:function(L){var A=this;var cA=L.target;A.set(aN,cA.val());},_uiSetDisabled:function(cA){var A=this;var L=A.get(H);L.all(a0).each(function(cB){if(cA){cB.setAttribute(bH,cA);}else{cB.removeAttribute(bH);}});},_uiSetOptions:function(cC){var A=this;var L=A.get(cq);var cB=A.get(H);var cA=A.get(ac);cB.empty();b5.each(cC,function(cF){var cE=new b5.Field({type:V,disabled:A.get(bH),name:A.get(aB),labelText:cF.label,labelAlign:"left",value:cF.value}).render(cB);var cD=cE.get(cy);if(cF.value==A.get(aN)){cD.set(J,true);}if(A.get(bH)){cD.setAttribute(bH,cC);}else{cD.removeAttribute(bH);}cD.on({change:b5.bind(A._onFieldChange,A)});});},_uiSetPredefinedValue:function(cC){var A=this;var L=A.get(be);var cA=L.get(ar);var cB=cA.one("input[name=predefinedValue]");if(cB){cB.val(cC);}}}});b5.FormBuilderRadioField=i;b5.FormBuilder.types["radio"]=b5.FormBuilderRadioField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},a9=b5.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aQ="boundingBox",cl="button",cj="buttonType",cq="contentBox",aK="container",cs="defaultOptions",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",b4="form-builder-select-field",cg="id",r="icon",a0="input",ai="label",ck="multiple",aB="name",cy="node",R="option",ad="options",ba="portalLayout",aN="predefinedValue",bs="proxy",bQ="reset",bX="selectedIndex",ax="submit",X=" ",aH="template",ac="templateNode",bK="text",Y="type",m="value",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bD='';var ag=b5.Component.create({NAME:b4,ATTRS:{multiple:{setter:b5.DataType.Boolean.parse,value:false},template:{valueFn:function(){return bD;}},templateNode:{valueFn:"getNode"}},UI_ATTRS:b5.FormBuilderField.UI_ATTRS.concat([ck]),CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderMultipleChoiceField,prototype:{getHTML:function(){var A=this;var cB=A.get(aH);var cD=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cC=A.get(aN);return b5.substitute(cB,{id:cD,label:cA,name:L,value:cC});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var L=this;var cA=L.get(be);var cC=cA.get(ar);var cD=L.settingsNodesMap;b5.FormBuilderSelectField.superclass.renderSettings.apply(L,arguments);if(!L._renderedSelectSettings){L._renderedSelectSettings=true;var cB=L.propertiesPanel.get(e);L._renderSettingsFields([{type:"checkbox",name:ck,labelText:"Multiple",labelAlign:"left"}],cB.item(0));var A=cD["multipleSettingNode"];A.on({change:b5.bind(L._onSettingsFieldChange,L)});A.set(J,L.get(ck));}},_uiSetMultiple:function(cA){var A=this;var L=A.get(ac);if(cA){L.setAttribute(ck,ck);}else{L.removeAttribute(ck);}}}});b5.FormBuilderSelectField=ag;b5.FormBuilder.types["select"]=b5.FormBuilderSelectField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,bw=function(A){return(A instanceof b5.Node);},a5=function(A){return(A instanceof b5.NodeList);},aQ="boundingBox",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",a1="form-builder-input-field",cg="id",r="icon",a0="input",ai="label",aB="name",cy="node",ba="portalLayout",aN="predefinedValue",bs="proxy",X=" ",aH="template",ac="templateNode",bK="text",m="value",by="width",z=b5.getClassName,bu=z(bp,a0),O=z(bp,a0,bK),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),bJ='',aI={small:25,medium:50,large:100};var bx=b5.Component.create({NAME:a1,ATTRS:{template:{valueFn:function(){return bJ;}},templateNode:{valueFn:"getNode"},width:{setter:b5.DataType.String.evaluate,value:25}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderField,prototype:{bindUI:function(){var A=this;b5.FormBuilderTextField.superclass.bindUI.apply(A,arguments);var L=A.get(ac);L.on({input:b5.bind(A._onValueInput,A)});},getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cD=A.get(aN);var cB=A.get(by);return b5.substitute(cC,{id:cE,label:cA,name:L,value:cD,width:cB});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());},renderSettings:function(){var cG=this;var cF=cG.get(be);var cA=cF.get(ar);var cE=cG.settingsNodesMap;var cH=cF.get(bY);b5.FormBuilderTextField.superclass.renderSettings.apply(cG,arguments);if(!cG._renderedInputSettings){cG._renderedInputSettings=true;var cC=cG.propertiesPanel.get(e);var A=0;var cD=-1;var cB=[];b5.each(aI,function(cK,cJ){if(cK==cG.get(by)){cD=A;}cB.push({labelText:cH[cJ],value:cK});A++;});cG._renderSettingsFields([{labelText:"Width",name:by,options:cB,type:"select",value:cG.get(by)}],cC.item(0));var L=cE["predefinedValueSettingNode"];L.on({input:b5.bind(cG._onValueInput,cG)});var cI=cE["widthSettingNode"];cI.on({change:b5.bind(cG._onWidthChange,cG)});cI.all(R).item(cD).set(bf,true);}},_onValueInput:function(L){var A=this;var cA=L.target;A.set(aN,cA.val());},_onWidthChange:function(L){var A=this;var cA=L.target;A.set(by,cA.val());},_uiSetWidth:function(cA){var A=this; -var L=A.get(ac);L.addClass(z("w"+cA));L.removeClass(z("w"+A.prevWidth));A.prevWidth=cA;}}});b5.FormBuilderTextField=bx;b5.FormBuilder.types["text"]=b5.FormBuilderTextField;var bW=b5.Lang,aW=bW.isArray,aA=bW.isNumber,bS=bW.isString,aQ="boundingBox",cq="contentBox",aK="container",bO=".",bd="drag",aC="dragContainer",v="dragContainerNode",b0="dragNodesList",az="drop",bh="dropContainer",bo="dropContainerNode",bI="",bp="field",g="fields",aF="form-builder-field",cm="form-builder-textarea-field",cg="id",r="icon",ai="label",aB="name",cy="node",ba="portalLayout",aN="predefinedValue",bs="proxy",av="size",X=" ",aH="template",ac="templateNode",bK="text",aq="textarea",m="value",z=b5.getClassName,d=z(bp),bt=z(bp,bK),N=z(bp,aq),bM=z(aF),b8=z(aF,cy),bP=z(bG,ci),al='';var aL=b5.Component.create({NAME:cm,ATTRS:{template:{valueFn:function(){return al;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bM,HTML_PARSER:{templateNode:bO+b8},EXTENDS:b5.FormBuilderTextField,prototype:{getHTML:function(){var A=this;var cC=A.get(aH);var cE=A.get(cg);var cA=A.get(ai);var L=A.get(aB);var cB=A.get(av);var cD=A.get(aN);return b5.substitute(cC,{id:cE,label:cA,name:L,value:cD});},getNode:function(){var A=this;return b5.Node.create(A.getHTML());}}});b5.FormBuilderTextAreaField=aL;b5.FormBuilder.types["textarea"]=b5.FormBuilderTextAreaField;},"@VERSION@",{requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"],skinnable:true});AUI.add("aui-form-builder",function(a){},"@VERSION@",{use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true}); \ No newline at end of file +A.dragNodes.each(function(F,E){var G=D[E];if(!C.containsKey(G.key)){A._dragNestedList.add(F);}});A._dropNestedList.addAll(A.dropNodes);},_syncNodes:function(){var A=this;var D=A.dragContainerNode;var C=A.dropContainerNode;A.dragNodes=D.all(DOT+CSS_FORM_BUILDER_FIELD);A.dropNodes=C.all([DOT+CSS_FORM_BUILDER_FIELD,DOT+CSS_FORM_BUILDER_DEFAULT_MESSAGE].join(f));},_syncSelectedFieldUI:function(F){var C=this;var E=F.get(SELECTED);var A=F.get(B);var D=C.selectedField;A.toggleClass(CSS_FORM_BUILDER_FIELD_SELECTED,E);if(!E&&F.contains(D)){E=true;}C._toggleFieldButtonsNode(F,E);},_syncUniqueFields:function(){var C=this;var E=C.get(z);var A=C.get(FIELDS);var D=C.uniqueFields;D.each(function(G,F){if(!C.contains(G,true)){D.remove(G);}});p.each(E,function(H,F){if(H.unique){var G=H.key;C.eachField(function(J){if(J.get(KEY)==G){var I=p.merge(C._cloneField(J,false),H);J.set(FIXED,I.fixed);J.set(READ_ONLY_ATTRIBUTES,I.readOnlyAttributes);J.set(UNIQUE,true);E[F]=I;D.add(G,J);}},true);}});},_toggleFieldButtonsNode:function(C,D){var A=this;var E=C.get(l);if(E){E.toggleClass(CSS_HELPER_HIDDEN,!D);}},_valueDragNodesList:function(){var A=this;var D=A.get(z);var C=[];p.each(D,function(F,E,G){C.push(p.substitute(TPL_DRAG_NODE,{icon:F.iconClass||DEFAULT_ICON_CLASS,label:F.entryLabel||F.label,key:F.key||E,type:F.type,unique:F.unique}));});return p.NodeList.create(C.join(EMPTY_STR));}}});p.FormBuilder=u;p.FormBuilder.types={};},"@VERSION@",{requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"],skinnable:true});AUI.add("aui-form-builder-field",function(b6){var bX=b6.Lang,aX=bX.isArray,bT=bX.isString,I=b6.IO.prototype._serialize,h="acceptChildren",e="bodyContent",aR="boundingBox",cf="builder",cm="button",J="buttons",x="buttonsNode",aH="checkbox",K="checked",o="children",ci="clearfix",aS="close",aT="component",cr="contentBox",aL="container",cy="dataType",cj="default",aY="delete",bI="disabled",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",b7="dropNode",br="dropZone",a3="dropZoneNode",aF="duplicate",R="edit",bJ="",bq="field",g="fields",a9="fixed",bO="for",q="form",bf="formBuilder",aG="form-builder-field",s="help",n="helper",av="hidden",r="icon",ch="id",aj="label",b2="labelNode",bD="lightbulb",bh="metadata",aC="name",cz="node",b="panel",bb="portalLayout",aO="predefinedValue",bt="proxy",ce="readOnlyAttributes",ap="required",a8="requiredFlagNode",bH="state",bo="select",a0="settings",at="settingsFormNode",X="showLabel",aw="size",Y=" ",bS="string",bZ="strings",ad="templateNode",bL="text",ar="textarea",u="tip",bw="tipIconNode",Z="type",aE="unique",bU="zone",bk="widget",z=b6.getClassName,bn=z(aT),aK=z(bq,aj),p=z(n,ci),af=z(n,av),bQ=z(bH,cj),d=z(bq),bu=z(bq,bL),B=z(q,cf,cm),bM=z(q,cf,cm,aY),a5=z(q,cf,cm,aF),V=z(q,cf,cm,R),a4=z(q,cf,aA,cz),an=z(q,cf,aA,bU),cx=z(q,cf,r),j=z(q,cf,r,aY),w=z(q,cf,r,aF),al=z(q,cf,r,R),E=z(q,cf,r,u),bN=z(q,cf,bq),bA=z(q,cf,bq,J),bs=z(q,cf,a9),cw=z(q,cf,ap),bG=z(q,cf,aE),G=z(bk),b4='
                                                                                              • ',a='
                                                                                                '+''+'
                                                                                                '+"
                                                                                                "+''+'
                                                                                                '+"
                                                                                                "+''+'
                                                                                                '+"
                                                                                                "+"
                                                                                                ",C='
                                                                                                ',ac='
                                                                                                  ',ak='',a7='',az='*',cv="

                                                                                                  ",bl='';var t=b6.Component.create({NAME:aG,ATTRS:{acceptChildren:{value:true},dataType:{value:bS},disabled:{value:false},fixed:{value:false},formBuilder:{value:undefined},id:{value:bJ},icon:{value:bJ},key:{value:bJ},label:{value:bJ},localizationMap:{value:{}},name:{valueFn:function(){var A=this;return A.get(Z)+(++b6.Env._uidx);}},parent:{value:null},predefinedValue:{value:bJ},readOnlyAttributes:{value:[],validator:aX},required:{setter:b6.DataType.Boolean.parse,value:false},selected:{setter:b6.DataType.Boolean.parse,value:false},showLabel:{setter:b6.DataType.Boolean.parse,value:true},template:{value:bJ},tip:{value:bJ},type:{value:bJ},unique:{setter:b6.DataType.Boolean.parse,value:false},buttonsNode:{valueFn:function(){return b6.Node.create(a);}},dropZoneNode:{valueFn:function(){return b6.Node.create(ac);}},labelNode:{valueFn:function(){return b6.Node.create(a7);}},requiredFlagNode:{valueFn:function(){return b6.Node.create(az);}},templateNode:{valueFn:"getNode"},tipIconNode:{valueFn:function(){return b6.Node.create(bl);}}},AUGMENTS:[b6.FormBuilderFieldSupport],UI_ATTRS:[h,bI,a9,aj,aC,aO,ap,X,u,aE],HTML_PARSER:{buttonsNode:bP+bA,dropZoneNode:bP+an,labelNode:aj+bP+aK,requiredFlagNode:bP+cw,tipIconNode:bP+E},prototype:{BOUNDING_TEMPLATE:b4,initializer:function(){var A=this;A.get(aR).setData(bq,A);A.toolTip=new b6.Tooltip({trigger:A.get(bw),hideDelay:100});},bindUI:function(){var A=this;},renderUI:function(){var A=this;var cD=A.get(aR);var cG=A.get(x);var L=A.get(cr);var cC=A.get(b2);var cF=A.get(a8);var cE=A.get(ad);var cB=A.get(bw);L.addClass(p);cD.prepend(cG);L.append(cC);L.append(cF);L.append(cB);L.append(cE);A.toolTip.render();},settingsNodesMap:{},saveSettings:function(){var A=this;var L=A.get(bf);var cB=L.get(at);b6.Array.each(I(cB._node).split("&"),function(cD){var cC=cD.split("=");A.set(cC[0],decodeURIComponent(cC[1]));});},renderSettings:function(){var cJ=this;var cF=cJ.get(bf);var A=cF.get(at);var cK=cF.get(bZ);var cC=cJ.settingsNodesMap;if(!cJ.fieldSettingsNode){cJ.fieldSettingsNode=b6.Node.create(C);var cH=b6.Node.create(C);var cD=b6.Node.create(ak);var L=b6.Node.create(a7);var cI=b6.Node.create(cv);L.setContent(cK[Z]);cI.setContent(cJ.get(cy)||cJ.get(Z));cD.append(L);cD.append(cI);cD.appendTo(cH);cJ._renderSettingsFields([{type:"text",name:aj,labelText:"Label",value:cJ.get(aj)},{type:"checkbox",name:X,labelText:"Show label",labelAlign:"left",value:cJ.get(X)},{type:"text",name:aC,labelText:"Name",value:cJ.get(aC)},{type:"checkbox",name:ap,labelText:"Required",labelAlign:"left",value:ap},{type:"text",name:aO,labelText:"Default value",value:cJ.get(aO)},{type:"textarea",name:u,labelText:"Tip",value:cJ.get(u)}],cH); +var cE=cC.labelSettingNode;cE.on({input:b6.bind(cJ._onLabelInput,cJ)});var cG=cC.showLabelSettingNode;cG.set(K,cJ.get(X));cG.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});var cB=cC.requiredSettingNode;cB.set(K,cJ.get(ap));cB.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});cJ.propertiesPanel=new b6.Panel({bodyContent:cH,collapsible:true,title:"Properties"}).render();cJ.fieldSettingsNode.append(cJ.propertiesPanel.get(aR));}A.setContent(cJ.fieldSettingsNode);},getHTML:function(){},getNode:function(){},_onLabelInput:function(L){var A=this;var cC=L.target;var cB=cC.val();A.set(aj,cB);},_onSettingsFieldChange:function(L){var A=this;var cC=L.target;var cB=cC.val();if(cC.get(Z)===aH){cB=cC.get(K);}A.set(cC.get(aC),cB);},_renderSettingsFields:function(L,cC){var A=this;var cB=A.get(ce);b6.each(L,function(cE){var cF;if(b6.Array.indexOf(cB,cE.name)>-1){cE.disabled=true;}if(cE.type===bo){cF=new b6.Select(cE);}else{if(cE.type===ar){cF=new b6.Textarea(cE);}else{cF=new b6.Field(cE);}}cF.render(cC);var cD=cF.get(cz);if(cE.type===aH){cD.set(K,cE.value);}A.settingsNodesMap[cE.name+"SettingNode"]=cD;});},_uiSetAcceptChildren:function(cD){var A=this;var L=A.get(aR);var cC=A.get(a3);var cB=L.one(bP+an);if(cD&&!cB){L.append(cC);}else{if(!cD&&cB){cB.remove();}else{if(cD&&cB){A.set(a3,cB);}}}},_uiSetDisabled:function(cB){var A=this;var L=A.get(ad);if(cB){L.setAttribute(bI,cB);}else{L.removeAttribute(bI);}},_uiSetFixed:function(cB){var A=this;var cC=A.get(x);var L=cC.one(bP+bM);L.toggleClass(af,cB);},_uiSetLabel:function(cB){var A=this;var L=A.get(b2);L.setContent(cB);},_uiSetName:function(cB){var A=this;var L=A.get(ad);L.set(aC,cB);},_uiSetPredefinedValue:function(cB){var A=this;var L=A.get(ad);L.val(cB);},_uiSetRequired:function(cB){var A=this;var L=A.get(a8);L.toggleClass(af,!cB);},_uiSetShowLabel:function(cB){var A=this;var L=A.get(b2);L.toggleClass(af,!cB);},_uiSetTip:function(cB){var A=this;var L=A.get(bw);L.toggleClass(af,!cB);A.toolTip.set(e,cB);},_uiSetUnique:function(cB){var A=this;var L=A.get(aR);var cC=A.get(x);L.toggleClass(bG,cB);cC.one(bP+a5).toggleClass(af,cB);}}});b6.FormBuilderField=t;b6.FormBuilder.types["field"]=b6.FormBuilderField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},ba=b6.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aR="boundingBox",cm="button",ck="buttonType",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",bV="form-builder-button-field",ch="id",r="icon",a1="input",aj="label",aC="name",cz="node",T="option",ae="options",bb="portalLayout",aO="predefinedValue",bt="proxy",bR="reset",bg="selected",bY="selectedIndex",ay="submit",Y=" ",bZ="strings",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bK='',cA=[ay,bR,cm];var b8=b6.Component.create({NAME:bV,ATTRS:{acceptChildren:{value:false,readOnly:true},buttonType:{value:ay,validator:function(A){return b6.Array(cA).indexOf(A.toLowerCase())>-1;}},predefinedValue:{value:ba(ay)},showLabel:{value:false},template:{valueFn:function(){return bK;}}},UI_ATTRS:b6.FormBuilderField.UI_ATTRS.concat([ck]),CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cC=A.get(aj);var cB=A.get(aC);var L=A.get(ck);var cE=A.get(aO);return b6.substitute(cD,{id:cF,label:cC,name:cB,type:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cH=this;var cE=cH.get(bf);var A=cE.get(at);var cD=cH.get(ck);var cI=cE.get(bZ);var cC=cH.settingsNodesMap;b6.FormBuilderButtonField.superclass.renderSettings.apply(cH,arguments);if(!cH._renderedButtonSettings){cH._renderedButtonSettings=true;var L=cH.propertiesPanel.get(e);var cG=[];b6.each(cA,function(cJ){cG.push({labelText:cI[cJ],value:cJ});});cH._renderSettingsFields([{labelText:"Button type",name:ck,options:cG,type:"select"}],L.item(0));var cF=cC["buttonTypeSettingNode"];cF.on({change:b6.bind(cH._onButtonTypeChange,cH)});var cB=b6.Array(cA).indexOf(cD);cF.all(T).item(cB).set(bg,true);}},_onButtonTypeChange:function(L){var A=this;var cB=L.target;A.set(ck,cB.get(m));},_uiSetButtonType:function(cB){var A=this;var L=A.get(ad);L.setAttribute(Z,cB);}}});b6.FormBuilderButtonField=b8;b6.FormBuilder.types["button"]=b6.FormBuilderButtonField;var bX=b6.Lang,aX=bX.isArray,aZ=bX.isBoolean,aB=bX.isNumber,bT=bX.isString,aV="boolean",aR="boundingBox",e="bodyContent",aH="checkbox",K="checked",ax="choice",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",co="form-builder-checkbox-field",ch="id",r="icon",bj="inline",aj="label",c="labels",aC="name",cz="node",S="parentNode",bb="portalLayout",aO="predefinedValue",bt="proxy",aw="size",Y=" ",aI="template",ad="templateNode",m="value",z=b6.getClassName,d=z(bq),ao=z(bq,aH),b3=z(bq,ax),bN=z(aG),cp=z(aG,aH),b9=z(aG,cz),bQ=z(bH,cj),b0=z(bq,c,bj),b4='
                                                                                                • ',aU='';var ab=b6.Component.create({NAME:co,ATTRS:{dataType:{value:aV},predefinedValue:{setter:b6.DataType.Boolean.parse,value:false},template:{valueFn:function(){return aU;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{BOUNDING_TEMPLATE:b4,bindUI:function(){var A=this;b6.FormBuilderCheckBoxField.superclass.bindUI.apply(A,arguments);var L=A.get(ad);L.on({"change":b6.bind(A._onValueChange,A)}); +},renderUI:function(){var A=this;var L=A.get(cr);var cC=A.get(ad);var cB=A.get(b2);b6.FormBuilderCheckBoxField.superclass.renderUI.apply(A,arguments);cB.insert(cC,cB,"before");},getHTML:function(){var A=this;var cC=A.get(aI);var cD=A.get(K);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cE=A.get(aO);return b6.substitute(cC,{checked:cD?'checked="checked"':bJ,id:cF,label:cB,name:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var A=this;var L=A.get(bf);var cC=L.get(at);var cD=A.settingsNodesMap;b6.FormBuilderCheckBoxField.superclass.renderSettings.apply(A,arguments);if(!A._renderedCheckboxSettings){A._renderedCheckboxSettings=true;cD.predefinedValueSettingNode.get(S).remove();var cB=A.propertiesPanel.get(e);A._renderSettingsFields([{type:"checkbox",name:aO,labelText:"Checked",labelAlign:"left"}],cB.item(0));var cE=cD.predefinedValueSettingNode;cE.on({change:b6.bind(A._onValueChange,A)});cE.set(K,A.get(aO));}},_onValueChange:function(L){var A=this;var cB=L.target;A.set(aO,cB.get(K));},_uiSetPredefinedValue:function(cD){var A=this;var L=A.get(ad);var cB=A.settingsNodesMap;var cC=cB.predefinedValueSettingNode;if(cC){cC.set(K,cD);}L.set(K,cD);}}});b6.FormBuilderCheckBoxField=ab;b6.FormBuilder.types["checkbox"]=b6.FormBuilderCheckBoxField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},aR="boundingBox",cr="contentBox",aL="container",cy="dataType",bP=".",aA="drop",bJ="",bq="field",g="fields",aG="form-builder-field",F="form-builder-fieldset-field",ch="id",r="icon",aj="label",aC="name",cz="node",aO="predefinedValue",Y=" ",bZ="strings",aI="template",ad="templateNode",bL="text",Z="type",m="value",bU="zone",z=b6.getClassName,bN=z(aG),b9=z(aG,cz),an=z(q,cf,aA,bU),aN='
                                                                                                  ',k='';var y=b6.Component.create({NAME:F,ATTRS:{acceptChildren:{value:true,readOnly:true},dataType:{value:undefined},template:{valueFn:function(){return aN;}},labelNode:{valueFn:function(){return b6.Node.create(k);}},templateNode:{valueFn:"getNode"}},UI_ATTRS:[h,aj,X],CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{CONTENT_TEMPLATE:aN,renderUI:function(){var A=this;var cC=A.get(aR);var cE=A.get(x);var L=A.get(cr);var cB=A.get(b2);var cD=A.get(ad);if(!cC.contains(cE)){cC.prepend(cE);}if(!L.contains(cB)){L.append(cB);}},getHTML:function(){var A=this;var L=A.get(aI);var cB=A.get(ch);return b6.substitute(L,{id:cB});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cI=this;var cE=cI.get(bf);var A=cE.get(at);var cJ=cE.get(bZ);var cB=cI.settingsNodesMap;if(!cI._renderedFieldsetSettings){cI._renderedFieldsetSettings=true;cI.fieldSettingsNode=b6.Node.create(C);var cG=b6.Node.create(C);var cC=b6.Node.create(ak);var L=b6.Node.create(a7);var cH=b6.Node.create(cv);L.setContent(cJ[Z]);cH.setContent(cI.get(cy)||cI.get(Z));cC.append(L);cC.append(cH);cC.appendTo(cG);cI._renderSettingsFields([{type:"text",name:aj,labelText:"Label",value:cI.get(aj)},{type:"checkbox",name:X,labelText:"Show label",labelAlign:"left",value:cI.get(X)}],cG);var cD=cB["labelSettingNode"];cD.on({input:b6.bind(cI._onLabelInput,cI)});var cF=cB["showLabelSettingNode"];cF.set(K,cI.get(X));cF.on({change:b6.bind(cI._onSettingsFieldChange,cI)});cI.propertiesPanel=new b6.Panel({bodyContent:cG,collapsible:true,title:"Properties"}).render();cI.fieldSettingsNode.append(cI.propertiesPanel.get(aR));}A.setContent(cI.fieldSettingsNode);},_uiSetAcceptChildren:function(cD){var A=this;var L=A.get(cr);var cC=A.get(a3);var cB=L.one(bP+an);if(cD&&!cB){L.append(cC);}else{if(!cD&&cB){cB.remove();}else{if(cD&&cB){A.set(a3,cB);}}}}}});b6.FormBuilderFieldsetField=y;b6.FormBuilder.types["fieldset"]=b6.FormBuilderFieldsetField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},aR="boundingBox",cr="contentBox",aL="container",cy="dataType",bP=".",bJ="",bq="field",g="fields",aG="form-builder-field",cq="form-builder-file-upload-field",ch="id",r="icon",aj="label",aC="name",cz="node",aO="predefinedValue",Y=" ",bZ="strings",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bC='';var M=b6.Component.create({NAME:cq,ATTRS:{template:{valueFn:function(){return bC;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cC=A.get(aw);var cE=A.get(aO);return b6.substitute(cD,{id:cF,label:cB,name:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cJ=this;var cF=cJ.get(bf);var A=cF.get(at);var cK=cF.get(bZ);var cC=cJ.settingsNodesMap;if(!cJ._renderedFileUploadSettings){cJ._renderedFileUploadSettings=true;cJ.fieldSettingsNode=b6.Node.create(C);var cH=b6.Node.create(C);var cD=b6.Node.create(ak);var L=b6.Node.create(a7);var cI=b6.Node.create(cv);L.setContent(cK[Z]);cI.setContent(cJ.get(cy)||cJ.get(Z));cD.append(L);cD.append(cI);cD.appendTo(cH);cJ._renderSettingsFields([{type:"text",name:aj,labelText:"Label",value:cJ.get(aj)},{type:"checkbox",name:X,labelText:"Show label",labelAlign:"left",value:cJ.get(X)},{type:"text",name:aC,labelText:"Name",value:cJ.get(aC)},{type:"checkbox",name:ap,labelText:"Required",labelAlign:"left",value:cJ.get(ap)},{type:"textarea",name:u,labelText:"Tip",value:cJ.get(u)}],cH);var cE=cC.labelSettingNode;cE.on({input:b6.bind(cJ._onLabelInput,cJ)});var cG=cC.showLabelSettingNode;cG.set(K,cJ.get(X));cG.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});var cB=cC.requiredSettingNode;cB.set(K,cJ.get(ap)); +cB.on({change:b6.bind(cJ._onSettingsFieldChange,cJ)});cJ.propertiesPanel=new b6.Panel({bodyContent:cH,collapsible:true,title:"Properties"}).render();cJ.fieldSettingsNode.append(cJ.propertiesPanel.get(aR));}A.setContent(cJ.fieldSettingsNode);}}});b6.FormBuilderFileUploadField=M;b6.FormBuilder.types["fileupload"]=b6.FormBuilderFileUploadField;var cg=b6.Lang,cs=b6.Array,aX=cg.isArray,aB=cg.isNumber,bT=cg.isString,bF=cg.sub,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},ba=b6.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),U="add",bW="addNode",aR="boundingBox",cm="button",ck="buttonType",cr="contentBox",aL="container",cj="default",au="defaultLabel",ct="defaultOptions",D="defaultValue",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bq="field",g="fields",aG="form-builder-field",N="form-builder-multiple-choice-field",r="icon",ch="id",a1="input",ai="item",aj="label",cl="multiple",aC="name",cz="node",T="option",bB="optionTemplate",ae="options",aO="predefinedValue",bt="proxy",cu="remove",bR="reset",ay="submit",Y=" ",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),l=z(bq,ae,U),cc=z(bq,ae,ai),cb=z(bq,ae,ai,a1),aP=z(bq,ae,ai,a1,aj),ag=z(bq,ae,ai,a1,m),bc=z(bq,ae,ai,cu),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),Q="",aq='
                                                                                                  '+''+''+' '+"
                                                                                                  ";TPL_ADD='Add an option',ENTER="ENTER";var bm=b6.Component.create({NAME:ae,ATTRS:{allowClear:{value:false},defaultLabel:{value:Q},defaultValue:{value:Q},disabled:{validator:aZ,value:false},options:{getter:"_getOptions",validator:aX,value:[]},addNode:{valueFn:function(){return b6.Node.create(TPL_ADD);}}},HTML_PARSER:{addNode:bP+l},UI_ATTRS:[ae,bI],EXTENDS:b6.Widget,prototype:{renderUI:function(){var A=this;var L=A.get(aR);var cB=A.get(bW);if(!cB.inDoc()){L.append(cB);}},bindUI:function(){var A=this;var L=A.get(aR);var cB=A.get(bW);cB.on("click",b6.bind(A._onClickAdd,A));L.delegate("click",b6.bind(A._onClickOptionRemove,A),bP+bc);L.delegate("keypress",b6.bind(A._onKeyPressOption,A),bP+cb);},add:function(cB){var A=this;var L=A.get(ae);L.push(cB);A.set(ae,L);},clear:function(){var A=this;if(A.get(ALLOW_CLEAR)){A.set(ae,[]);}},remove:function(cB){var A=this;var L=A.get(cr);var cC=A._getOptionNode(cB);if(!A.get(bI)){if(cC){cC.remove();}A.items=L.all(bP+cc);}},_addNewOption:function(){var L=this;var cD=null;if(!L.get(bI)){var cB=L.get(cr);var cC=bF(aq,{label:L.get(au),value:L.get(D)});cD=b6.Node.create(cC);cB.append(cD);var A=cD.one(a1);A.focus();A.select();L.items=cB.all(bP+cc);}return cD;},_getOptionNode:function(L){var A=this;return A.items.item(L);},_getOptions:function(cB){var A=this;var L=[];if(A.items){b6.each(A.items,function(cE,cC,cH){var cG=cE.one(bP+aP);var cF=cE.one(bP+ag);var cD=cB[cC]||{};cD.label=cG.val();cD.value=cF.val();L.push(cD);});}else{L=cB;}return L;},_indexOfTarget:function(cB){var A=this;var L=cB.ancestor(bP+cc);return A.items.indexOf(L);},_onClickAdd:function(L){var A=this;A._addNewOption();},_onClickOptionRemove:function(cC){var A=this;var cB=A.get(ae);var L=A._indexOfTarget(cC.target);A.remove(L);},_onKeyPressOption:function(cD){var A=this;var cC=A.get(ae);var cE=cD.currentTarget;var L=A.items;if(cD.isKey(ENTER)){var cB=A._indexOfTarget(cE);var cF=cE.hasClass(ag);if((cB==L.size()-1)&&cF){A._addNewOption();}}},_uiSetDisabled:function(cC){var A=this;var cB=A.get(bW);var L=A.get(aR);cB.toggleClass(af,cC);L.all(bP+bc).toggleClass(af,cC);if(cC){L.all(a1).setAttribute(bI,cC);}else{L.all(a1).removeAttribute(bI);}},_uiSetOptions:function(cC){var A=this;var cB=A.get(cr);var L=[];cs.each(cC,function(cE,cD,cF){L.push(bF(aq,cE));});cB.setContent(L.join(Q));A.items=cB.all(bP+cc);}}});var f=b6.Component.create({NAME:N,ATTRS:{acceptChildren:{value:false,readOnly:true},options:{value:[{label:"option 1",value:"value 1"},{label:"option 2",value:"value 2"},{label:"option 3",value:"value 3"}]},optionTemplate:{value:''}},UI_ATTRS:[h,aO,aj,aC,ae,X],CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{getNode:function(){var A=this;return b6.FormBuilderMultipleChoiceField.superclass.getNode.apply(A,arguments);},renderSettings:function(){var A=this;var L=A.get(ce);b6.FormBuilderMultipleChoiceField.superclass.renderSettings.apply(A,arguments);if(!A._renderedMultipleChoiceSettings){A._renderedMultipleChoiceSettings=true;var cC=b6.Node.create(C);A.optionsPanel=new b6.Panel({bodyContent:cC,collapsible:true,title:"Options"}).render();var cB=b6.Array.indexOf(L,ae)>-1;A.options=new bm({disabled:cB,options:A.get(ae)}).render(cC);A.fieldSettingsNode.append(A.optionsPanel.get(aR));}},saveSettings:function(){var A=this;b6.FormBuilderMultipleChoiceField.superclass.saveSettings.apply(A,arguments);A.set(ae,A.options.get(ae));},_uiSetOptions:function(cD){var A=this;var cC=A.get(ad);var cB=A.get(bB);var L=[];cs.each(cD,function(cF,cE,cG){L.push(bF(cB,cF));});cC.setContent(L.join(Q));}}});b6.FormBuilderMultipleChoiceField=f;b6.FormBuilder.types["multiple-choice"]=b6.FormBuilderMultipleChoiceField;var bX=b6.Lang,aX=bX.isArray,aZ=bX.isBoolean,aB=bX.isNumber,bT=bX.isString,aR="boundingBox",e="bodyContent",K="checked",ax="choice",cr="contentBox",aL="container",bP=".",bJ="",bq="field",g="fields",aG="form-builder-field",bd="form-builder-radio-field",ch="id",r="icon",bj="inline",aj="label",c="labels",aC="name",cz="node",H="optionsContainerNode",aO="predefinedValue",W="radio",aw="size",Y=" ",aI="template",ad="templateNode",m="value",z=b6.getClassName,d=z(bq),b3=z(bq,ax),bN=z(aG),aQ=z(aG,W),b9=z(aG,cz),ca=z(aG,ae,aL),bQ=z(bH,cj),b0=z(bq,c,bj),b4='
                                                                                                • ',aa='
                                                                                                  ',aW='',cd=''; +var i=b6.Component.create({NAME:bd,ATTRS:{name:{value:W},optionTemplate:{value:aW},template:{valueFn:function(){return aW;}},optionsContainerNode:{valueFn:function(){return b6.Node.create(aa);}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{optionsContainerNode:bP+ca,templateNode:bP+b9},EXTENDS:b6.FormBuilderMultipleChoiceField,prototype:{BOUNDING_TEMPLATE:b4,renderUI:function(){var A=this;var L=A.get(cr);var cB=A.get(H);b6.FormBuilderRadioField.superclass.renderUI.apply(A,arguments);L.append(cB);},getNode:function(){var A=this;return b6.Node.create(cd);},_onFieldChange:function(L){var A=this;var cB=L.target;A.set(aO,cB.val());},_uiSetDisabled:function(cB){var A=this;var L=A.get(H);L.all(a1).each(function(cC){if(cB){cC.setAttribute(bI,cB);}else{cC.removeAttribute(bI);}});},_uiSetOptions:function(cD){var A=this;var L=A.get(cr);var cC=A.get(H);var cB=A.get(ad);cC.empty();b6.each(cD,function(cG){var cF=new b6.Field({type:W,disabled:A.get(bI),name:A.get(aC),labelText:cG.label,labelAlign:"left",value:cG.value}).render(cC);var cE=cF.get(cz);if(cG.value==A.get(aO)){cE.set(K,true);}if(A.get(bI)){cE.setAttribute(bI,cD);}else{cE.removeAttribute(bI);}cE.on({change:b6.bind(A._onFieldChange,A)});});},_uiSetPredefinedValue:function(cD){var A=this;var L=A.get(bf);var cB=L.get(at);var cC=cB.one("input[name=predefinedValue]");if(cC){cC.val(cD);}}}});b6.FormBuilderRadioField=i;b6.FormBuilder.types["radio"]=b6.FormBuilderRadioField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},ba=b6.cached(function(A){return A.substring(0,1).toUpperCase()+A.substring(1);}),aR="boundingBox",cm="button",ck="buttonType",cr="contentBox",aL="container",ct="defaultOptions",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",b5="form-builder-select-field",ch="id",r="icon",a1="input",aj="label",cl="multiple",aC="name",cz="node",T="option",ae="options",bb="portalLayout",aO="predefinedValue",bt="proxy",bR="reset",bY="selectedIndex",ay="submit",Y=" ",aI="template",ad="templateNode",bL="text",Z="type",m="value",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bE='';var ah=b6.Component.create({NAME:b5,ATTRS:{multiple:{setter:b6.DataType.Boolean.parse,value:false},template:{valueFn:function(){return bE;}},templateNode:{valueFn:"getNode"}},UI_ATTRS:b6.FormBuilderField.UI_ATTRS.concat([cl]),CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderMultipleChoiceField,prototype:{getHTML:function(){var A=this;var cC=A.get(aI);var cE=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cD=A.get(aO);return b6.substitute(cC,{id:cE,label:cB,name:L,value:cD});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var L=this;var cB=L.get(bf);var cD=cB.get(at);var cE=L.settingsNodesMap;b6.FormBuilderSelectField.superclass.renderSettings.apply(L,arguments);if(!L._renderedSelectSettings){L._renderedSelectSettings=true;var cC=L.propertiesPanel.get(e);L._renderSettingsFields([{type:"checkbox",name:cl,labelText:"Multiple",labelAlign:"left"}],cC.item(0));var A=cE["multipleSettingNode"];A.on({change:b6.bind(L._onSettingsFieldChange,L)});A.set(K,L.get(cl));}},_uiSetMultiple:function(cB){var A=this;var L=A.get(ad);if(cB){L.setAttribute(cl,cl);}else{L.removeAttribute(cl);}}}});b6.FormBuilderSelectField=ah;b6.FormBuilder.types["select"]=b6.FormBuilderSelectField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,bx=function(A){return(A instanceof b6.Node);},a6=function(A){return(A instanceof b6.NodeList);},aR="boundingBox",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",a2="form-builder-input-field",ch="id",r="icon",a1="input",aj="label",aC="name",cz="node",bb="portalLayout",aO="predefinedValue",bt="proxy",Y=" ",aI="template",ad="templateNode",bL="text",m="value",bz="width",z=b6.getClassName,bv=z(bq,a1),P=z(bq,a1,bL),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),bK='',aJ={small:25,medium:50,large:100};var by=b6.Component.create({NAME:a2,ATTRS:{template:{valueFn:function(){return bK;}},templateNode:{valueFn:"getNode"},width:{setter:b6.DataType.String.evaluate,value:25}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderField,prototype:{bindUI:function(){var A=this;b6.FormBuilderTextField.superclass.bindUI.apply(A,arguments);var L=A.get(ad);L.on({input:b6.bind(A._onValueInput,A)});},getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cE=A.get(aO);var cC=A.get(bz);return b6.substitute(cD,{id:cF,label:cB,name:L,value:cE,width:cC});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());},renderSettings:function(){var cH=this;var cG=cH.get(bf);var cB=cG.get(at);var cF=cH.settingsNodesMap;var cI=cG.get(bZ);b6.FormBuilderTextField.superclass.renderSettings.apply(cH,arguments);if(!cH._renderedInputSettings){cH._renderedInputSettings=true;var cD=cH.propertiesPanel.get(e);var A=0;var cE=-1;var cC=[];b6.each(aJ,function(cL,cK){if(cL==cH.get(bz)){cE=A;}cC.push({labelText:cI[cK],value:cL});A++;});cH._renderSettingsFields([{labelText:"Width",name:bz,options:cC,type:"select",value:cH.get(bz)}],cD.item(0));var L=cF["predefinedValueSettingNode"];L.on({input:b6.bind(cH._onValueInput,cH)});var cJ=cF["widthSettingNode"];cJ.on({change:b6.bind(cH._onWidthChange,cH)});cJ.all(T).item(cE).set(bg,true);}},_onValueInput:function(L){var A=this;var cB=L.target;A.set(aO,cB.val());},_onWidthChange:function(L){var A=this;var cB=L.target;A.set(bz,cB.val());},_uiSetWidth:function(cB){var A=this; +var L=A.get(ad);L.addClass(z("w"+cB));L.removeClass(z("w"+A.prevWidth));A.prevWidth=cB;}}});b6.FormBuilderTextField=by;b6.FormBuilder.types["text"]=b6.FormBuilderTextField;var bX=b6.Lang,aX=bX.isArray,aB=bX.isNumber,bT=bX.isString,aR="boundingBox",cr="contentBox",aL="container",bP=".",be="drag",aD="dragContainer",v="dragContainerNode",b1="dragNodesList",aA="drop",bi="dropContainer",bp="dropContainerNode",bJ="",bq="field",g="fields",aG="form-builder-field",cn="form-builder-textarea-field",ch="id",r="icon",aj="label",aC="name",cz="node",bb="portalLayout",aO="predefinedValue",bt="proxy",aw="size",Y=" ",aI="template",ad="templateNode",bL="text",ar="textarea",m="value",z=b6.getClassName,d=z(bq),bu=z(bq,bL),O=z(bq,ar),bN=z(aG),b9=z(aG,cz),bQ=z(bH,cj),am='';var aM=b6.Component.create({NAME:cn,ATTRS:{template:{valueFn:function(){return am;}},templateNode:{valueFn:"getNode"}},CSS_PREFIX:bN,HTML_PARSER:{templateNode:bP+b9},EXTENDS:b6.FormBuilderTextField,prototype:{getHTML:function(){var A=this;var cD=A.get(aI);var cF=A.get(ch);var cB=A.get(aj);var L=A.get(aC);var cC=A.get(aw);var cE=A.get(aO);return b6.substitute(cD,{id:cF,label:cB,name:L,value:cE});},getNode:function(){var A=this;return b6.Node.create(A.getHTML());}}});b6.FormBuilderTextAreaField=aM;b6.FormBuilder.types["textarea"]=b6.FormBuilderTextAreaField;},"@VERSION@",{requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"],skinnable:true});AUI.add("aui-form-builder",function(a){},"@VERSION@",{use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-form/aui-form-base-debug.js b/build/aui-form/aui-form-base-debug.js index e9d51597af2..c67cab66faf 100644 --- a/build/aui-form/aui-form-base-debug.js +++ b/build/aui-form/aui-form-base-debug.js @@ -3,6 +3,8 @@ var Lang = A.Lang, getClassName = A.getClassName, + _serialize = A.IO.prototype._serialize, + NAME = 'form', CSS_FORM = getClassName(NAME), @@ -42,7 +44,7 @@ var Form = A.Component.create( getter: function(value) { var instance = this; - var values = A.io._serialize(instance.get('contentBox').getDOM()); + var values = _serialize(instance.get('contentBox').getDOM()); return A.QueryString.parse(values); }, diff --git a/build/aui-form/aui-form-base-min.js b/build/aui-form/aui-form-base-min.js index b459a173b27..268fdbc0b1a 100644 --- a/build/aui-form/aui-form-base-min.js +++ b/build/aui-form/aui-form-base-min.js @@ -1 +1 @@ -AUI.add("aui-form-base",function(b){var h=b.Lang,c=b.getClassName,i="form",a=c(i),f=c("field","labels"),e=c("field","labels","inline"),d={left:[f,"left"].join("-"),right:[f,"right"].join("-"),top:[f,"top"].join("-")};var g=b.Component.create({NAME:i,ATTRS:{action:{value:location.href,getter:"_attributeGetter",setter:"_attributeSetter"},id:{},method:{value:"POST",getter:"_attributeGetter",setter:"_attributeSetter"},monitorChanges:{value:false},nativeSubmit:{value:false},values:{getter:function(l){var j=this;var k=b.io._serialize(j.get("contentBox").getDOM());return b.QueryString.parse(k);},setter:function(m){var j=this;var k=j._setFieldsObject;var l=j.get("monitorChanges");if(h.isArray(m)){k=j._setFieldsArray;}b.each(m,b.rbind(k,j,l));return b.Attribute.INVALID_VALUE;}},fieldValues:{getter:function(k){var j=this;var l={};j.fields.each(function(n,m,o){l[n.get("name")]=n.get("value");});return l;}},labelAlign:{value:""}},HTML_PARSER:{action:function(k){var j=this;return j._attributeGetter(null,"action");},method:function(k){var j=this;return j._attributeGetter(null,"method");}},prototype:{CONTENT_TEMPLATE:"
                                                                                                  ",initializer:function(){var j=this;j.fields=new b.DataSet({getKey:j._getNodeId});},renderUI:function(){var j=this;j._renderForm();},bindUI:function(){var j=this;var k=j.get("nativeSubmit");if(!k){j.get("contentBox").on("submit",j._onSubmit);}j.after("disabledChange",j._afterDisabledChange);j.after("labelAlignChange",j._afterLabelAlignChange);j.after("nativeSubmitChange",j._afterNativeSubmitChange);},syncUI:function(){var j=this;var k=j.get("contentBox");j.set("id",k.guid());j._uiSetLabelAlign(j.get("labelAlign"));},add:function(n,j){var s=this;var o=b.Array(n);var k=o.length;var q;var n=s.fields;var p=s.get("contentBox");for(var m=0;m",initializer:function(){var k=this;k.fields=new b.DataSet({getKey:k._getNodeId});},renderUI:function(){var k=this;k._renderForm();},bindUI:function(){var k=this;var l=k.get("nativeSubmit");if(!l){k.get("contentBox").on("submit",k._onSubmit);}k.after("disabledChange",k._afterDisabledChange);k.after("labelAlignChange",k._afterLabelAlignChange);k.after("nativeSubmitChange",k._afterNativeSubmitChange);},syncUI:function(){var k=this;var l=k.get("contentBox");k.set("id",l.guid());k._uiSetLabelAlign(k.get("labelAlign"));},add:function(o,k){var t=this;var p=b.Array(o);var l=p.length;var r;var o=t.fields;var q=t.get("contentBox");for(var n=0;n",initializer:function(){var j=this;j.fields=new b.DataSet({getKey:j._getNodeId});},renderUI:function(){var j=this;j._renderForm();},bindUI:function(){var j=this;var k=j.get("nativeSubmit");if(!k){j.get("contentBox").on("submit",j._onSubmit);}j.after("disabledChange",j._afterDisabledChange);j.after("labelAlignChange",j._afterLabelAlignChange);j.after("nativeSubmitChange",j._afterNativeSubmitChange);},syncUI:function(){var j=this;var k=j.get("contentBox");j.set("id",k.guid());j._uiSetLabelAlign(j.get("labelAlign"));},add:function(n,j){var s=this;var o=b.Array(n);var k=o.length;var q;var n=s.fields;var p=s.get("contentBox");for(var m=0;m",initializer:function(){var k=this;k.fields=new b.DataSet({getKey:k._getNodeId});},renderUI:function(){var k=this;k._renderForm();},bindUI:function(){var k=this;var l=k.get("nativeSubmit");if(!l){k.get("contentBox").on("submit",k._onSubmit);}k.after("disabledChange",k._afterDisabledChange);k.after("labelAlignChange",k._afterLabelAlignChange);k.after("nativeSubmitChange",k._afterNativeSubmitChange);},syncUI:function(){var k=this;var l=k.get("contentBox");k.set("id",l.guid());k._uiSetLabelAlign(k.get("labelAlign"));},add:function(o,k){var t=this;var p=b.Array(o);var l=p.length;var r;var o=t.fields;var q=t.get("contentBox");for(var n=0;n',x='',m='',r='',p='',v={};var k=s.Component.create({NAME:j,ATTRS:{readOnly:{value:false},name:{value:"",getter:function(C){var A=this;return C||A.get("id");}},disabled:{value:false,validator:h.isBoolean},id:{getter:function(D){var A=this;var C=this.get("node");if(C){D=C.get("id");}if(!D){D=s.guid();}return D;}},type:{value:"text",validator:h.isString,writeOnce:true},labelAlign:{valueFn:function(){var A=this;return A._getChoiceCss()?"left":null;}},labelNode:{valueFn:function(){var A=this;return s.Node.create(p);}},labelText:{valueFn:function(){var A=this;return A.get("labelNode").get("innerHTML");},setter:function(C){var A=this;A.get("labelNode").set("innerHTML",C);return C;}},node:{value:null,setter:function(C){var A=this;return s.one(C)||A._createFieldNode();}},fieldHint:{value:""},fieldHintNode:{value:null,setter:function(C){var A=this;return s.one(C)||A._createFieldHint();}},prevVal:{value:""},valid:{value:true,getter:function(E){var A=this;var C=A.get("validator");var D=A.get("disabled")||C(A.get("value"));return D;}},dirty:{value:false,getter:function(D){var A=this;if(A.get("disabled")){D=false;}else{var C=String(A.get("value"));var E=String(A.get("prevVal"));D=(C!==E);}return D;}},size:{},validator:{valueFn:function(){var A=this;return A.fieldValidator;},validator:h.isFunction},value:{getter:"_getNodeValue",setter:"_setNodeValue",validator:"fieldValidator"}},HTML_PARSER:{labelNode:"label",node:"input, textarea, select"},BIND_UI_ATTRS:["disabled","id","readOnly","name","size","tabIndex","type","value"],getTypeClassName:u,getField:function(E){var F=null;if(E instanceof s.Field){F=E;}else{if(E&&(h.isString(E)||E instanceof s.Node||E.nodeName)){var C=s.one(E).get("id");F=v[C];if(!F){var D=E.ancestor(".aui-field");var A=E.ancestor(".aui-field-content");F=new k({boundingBox:D,contentBox:A,node:E});}}else{if(h.isObject(E)){F=new k(E);}}}return F;},prototype:{BOUNDING_TEMPLATE:t,CONTENT_TEMPLATE:x,FIELD_TEMPLATE:r,FIELD_TYPE:"text",initializer:function(){var A=this;var C=A.get("node").guid();v[C]=A;},renderUI:function(){var A=this;A._renderField();A._renderLabel();A._renderFieldHint();},bindUI:function(){var A=this;A.after("labelAlignChange",A._afterLabelAlignChange);A.after("fieldHintChange",A._afterFieldHintChange);},syncUI:function(){var A=this;A.set("prevVal",A.get("value"));},fieldValidator:function(C){var A=this;return true;},isValid:function(){var A=this;return A.get("valid");},isDirty:function(){var A=this;return A.get("dirty");},resetValue:function(){var A=this;A.set("value",A.get("prevVal"));A.clearInvalid();},markInvalid:function(C){var A=this;A.set("fieldHint",C);A.get("fieldHintNode").show();A.get("boundingBox").addClass(d);},clearInvalid:function(){var A=this;A.reset("fieldHint");if(!A.get("fieldHint")){A.get("fieldHintNode").hide();}A.get("boundingBox").removeClass(d);},validate:function(){var A=this;var C=A.get("valid");if(C){A.clearInvalid();}return C;},_afterFieldHintChange:function(C){var A=this;A._uiSetFieldHint(C.newVal,C.prevVal);},_afterLabelAlignChange:function(C){var A=this;A._uiSetLabelAlign(C.newVal,C.prevVal);},_createFieldHint:function(){var A=this;var C=s.Node.create(m);A.get("contentBox").append(C);return C;},_createFieldNode:function(){var A=this;var C=A.FIELD_TEMPLATE;A.FIELD_TEMPLATE=s.substitute(C,{cssClass:e,id:A.get("id"),name:A.get("name"),type:A.get("type")});return s.Node.create(A.FIELD_TEMPLATE);},_getChoiceCss:function(){var A=this;var C=A.get("type");return z[C];},_getNodeValue:function(){var A=this;return A.get("node").val();},_renderField:function(){var A=this;var G=A.get("node");G.val(A.get("value"));var E=A.get("boundingBox");var D=A.get("contentBox");var F=A.get("type");var C=[u(F)];var H=A._getChoiceCss();if(H){C.push(f);C.push(H);}E.addClass(C.join(o));G.addClass(u(F,"input"));if(!D.contains(G)){if(G.inDoc()){G.placeBefore(E);D.appendChild(G);}else{D.appendChild(G);}}E.removeAttribute("tabIndex");},_renderFieldHint:function(){var A=this;var C=A.get("fieldHint");if(C){A._uiSetFieldHint(C);}},_renderLabel:function(){var J=this;var D=J.get("labelText");if(D!==false){var E=J.get("node");var A=E.guid();D=J.get("labelText");var G=J.get("labelNode");G.addClass(l(J.name,"label"));G.setAttribute("for",A);G.set("innerHTML",D);J._uiSetLabelAlign(J.get("labelAlign"));var H=J.get("contentBox");var C=J.get("labelAlign");var I=J.get("type").toLowerCase();var K=n.test(C);var F="prepend";if(K&&J._getChoiceCss()){F="append";}H[F](G);}},_setNodeValue:function(C){var A=this;A._uiSetValue(C);return C;},_uiSetDisabled:function(D){var A=this;var C=A.get("node");if(D){C.setAttribute("disabled",D);}else{C.removeAttribute("disabled");}},_uiSetFieldHint:function(C,D){var A=this;A.get("fieldHintNode").set("innerHTML",C);},_uiSetId:function(C,D){var A=this;A.get("node").set("id",C);},_uiSetLabelAlign:function(D,F){var A=this;var C=A.get("boundingBox");C.replaceClass(w[F],w[D]);var E="removeClass";if(n.test(D)){E="addClass";}C[E](y);},_uiSetName:function(C,D){var A=this;A.get("node").setAttribute("name",C);},_uiSetReadOnly:function(C,D){var A=this;A.get("node").setAttribute("readOnly",C);},_uiSetSize:function(C,D){var A=this;A.get("node").setAttribute("size",C);},_uiSetTabIndex:function(C,D){var A=this;A.get("node").setAttribute("tabIndex",C);},_uiSetValue:function(C,D){var A=this;A.get("node").val(C);},_requireAddAttr:false}});s.Field=k;},"@VERSION@",{requires:["aui-base","aui-component","substitute"]}); AUI.add("aui-form-select",function(b){var d=b.Lang,e=d.isArray,h=d.isObject,c=b.getClassName,i="select",f=c(i),g='';var a=b.Component.create({NAME:i,ATTRS:{multiple:{value:false},options:{value:[],setter:"_setOptions"},selectedIndex:{value:-1}},UI_ATTRS:["multiple","options","selectedIndex"],EXTENDS:b.Field,HTML_PARSER:{node:"select"},prototype:{FIELD_TEMPLATE:g,FIELD_TYPE:i,_setOptions:function(k){var j=this;if(!e(k)){k=[k];}return k;},_uiSetMultiple:function(k){var j=this;j.get("node").attr("multiple",k);},_uiSetOptions:function(q){var r=this;var l=[];var n;var o;var p;var k=0;for(var m=0;m'+o+"");}var j=r.get("node");j.all("option").remove(true);j.append(l.join(""));r.set("selectedIndex",k);},_uiSetSelectedIndex:function(k){var j=this;if(k>-1){j.get("node").attr("selectedIndex",k);}}}});b.Select=a;},"@VERSION@",{requires:["aui-form-field"]});AUI.add("aui-form-textarea",function(b){var e=b.Lang,c=b.getClassName,k="textarea",h=c(k),d=[c(k,"height","monitor"),c("field","text","input"),c("helper","hidden","accessible")].join(" "),l="  ",i=" \n ",a='
                                                                                                  ',j="
                                                                                                  ",g='';var f=b.Component.create({NAME:k,ATTRS:{autoSize:{value:true},height:{value:"auto"},maxHeight:{value:1000,setter:"_setAutoDimension"},minHeight:{value:45,setter:"_setAutoDimension"},width:{value:"auto",setter:"_setAutoDimension"}},HTML_PARSER:{node:"textarea"},EXTENDS:b.Textfield,prototype:{FIELD_TEMPLATE:g,renderUI:function(){var m=this;f.superclass.renderUI.call(m);if(m.get("autoSize")){m._renderHeightMonitor();}},bindUI:function(){var m=this;f.superclass.bindUI.call(m);if(m.get("autoSize")){m.get("node").on("keyup",m._onKeyup,m);}m.after("adjustSize",m._uiAutoSize);m.after("heightChange",m._afterHeightChange);m.after("widthChange",m._afterWidthChange);},syncUI:function(){var n=this;f.superclass.syncUI.call(n);n._setAutoDimension(n.get("minHeight"),"minHeight");n._setAutoDimension(n.get("maxHeight"),"maxHeight");var o=n.get("width");var m=n.get("minHeight");n._setAutoDimension(o,"width");n._uiSetDim("height",m);n._uiSetDim("width",o);},_afterHeightChange:function(n){var m=this;m._uiSetDim("height",n.newVal,n.prevVal);},_afterWidthChange:function(n){var m=this;m._uiSetDim("width",n.newVal,n.prevVal);},_onKeyup:function(n){var m=this;m.fire("adjustSize");},_renderHeightMonitor:function(){var n=this;var p=b.Node.create(a+j);var r=n.get("node");b.getBody().append(p);n._heightMonitor=p;var m=r.getComputedStyle("fontFamily");var s=r.getComputedStyle("fontSize");var o=r.getComputedStyle("fontWeight");var q=r.getComputedStyle("fontSize");r.setStyle("height",n.get("minHeight")+"px");p.setStyles({fontFamily:m,fontSize:s,fontWeight:o});if("outerHTML" in p.getDOM()){n._updateContent=n._updateOuterContent;}else{n._updateContent=n._updateInnerContent;}},_setAutoDimension:function(o,n){var m=this;m["_"+n]=o;},_uiAutoSize:function(){var n=this;var r=n.get("node");var o=n._heightMonitor;var s=n._minHeight;var q=n._maxHeight;var p=r.val();var t=document.createTextNode(p);o.set("innerHTML","");o.appendChild(t);o.setStyle("width",r.getComputedStyle("width"));p=o.get("innerHTML");if(!p.length){p=l;}else{p+=i;}n._updateContent(p);var m=Math.max(o.get("offsetHeight"),s);m=Math.min(m,q);if(m!=n._lastHeight){n._lastHeight=m;n._uiSetDim("height",m);}},_uiSetDim:function(o,n){var m=this;var p=m.get("node");if(e.isNumber(n)){n+="px";}p.setStyle(o,n);},_updateInnerContent:function(n){var m=this;return m._heightMonitor.set("innerHTML",n);},_updateOuterContent:function(n){var m=this;n=n.replace(/\n/g,"
                                                                                                  ");return m._updateInnerContent(n);}}});b.Textarea=f;},"@VERSION@",{requires:["aui-form-textfield"],skinnable:true});AUI.add("aui-form-textfield",function(a){var e=a.Lang,b=a.getClassName,f="textfield",c=b(f);var d=a.Component.create({NAME:f,ATTRS:{selectOnFocus:{value:false},allowOnly:{value:null,validator:function(h){var g=this;return h instanceof RegExp;}},defaultValue:{value:""},validator:{value:null}},EXTENDS:a.Field,prototype:{bindUI:function(){var g=this;d.superclass.bindUI.call(g);var i=g.get("node");if(g.get("allowOnly")){i.on("keypress",g._filterInputText,g);}if(g.get("selectOnFocus")){i.on("focus",g._selectInputText,g);}var h=g.get("defaultValue");if(h){i.on("blur",g._checkDefaultValue,g);i.on("focus",g._checkDefaultValue,g);}},syncUI:function(){var g=this;var i=g.get("value");if(!i){var h=g.get("defaultValue");g.set("value",g.get("defaultValue"));}d.superclass.syncUI.apply(g,arguments);},_filterInputText:function(j){var g=this;var h=g.get("allowOnly");var i=String.fromCharCode(j.charCode);if(!h.test(i)){j.halt();}},_checkDefaultValue:function(m){var g=this;var i=g.get("defaultValue");var l=g.get("node");var k=e.trim(g.get("value"));var j=m.type;var h=(j=="focus"||j=="focusin");if(i){var n=k;if(h&&(k==i)){n="";}else{if(!h&&!k){n=i;}}g.set("value",n);}},_selectInputText:function(h){var g=this;h.currentTarget.select();}}});a.Textfield=d;},"@VERSION@",{requires:["aui-form-field"]});AUI.add("aui-form-validator",function(t){var l=t.Lang,j=t.Object,S=l.isBoolean,H=l.isDate,y=j.isEmpty,u=l.isFunction,ac=l.isObject,o=l.isString,a=l.trim,J="-",G=".",q="",p="form-validator",C="Invalid Date",M="|",ak="blurHandlers",g="checkbox",d="container",al="containerErrorClass",W="containerValidClass",K="contentBox",U="error",an="errorClass",am="extractCssPrefix",ap="extractRules",s="field",ai="fieldContainer",aa="fieldStrings",e="inputHandlers",ab="message",b="messageContainer",T="name",Z="radio",r="rules",ad="selectText",ah="showAllMessages",z="showMessages",Q="stack",m="stackErrorContainer",v="type",ag="valid",E="validateOnBlur",Y="validateOnInput",X="validClass",n="blur",R="errorField",ae="input",I="reset",B="submit",F="submitError",i="validateField",D="validField",h=t.getClassName,ao=h(p,U),x=h(p,U,d),f=h(p,ag),af=h(p,ag,d),N=h(s),c=h(p,ab),w=h(p,Q,U),aj='
                                                                                                  ',V='',k=[ap,E,Y]; YUI.AUI.defaults.FormValidator={STRINGS:{DEFAULT:"Please fix this field.",acceptFiles:"Please enter a value with a valid extension ({0}).",alpha:"Please enter only apha characters.",alphanum:"Please enter only aphanumeric characters.",date:"Please enter a valid date.",digits:"Please enter only digits.",email:"Please enter a valid email address.",equalTo:"Please enter the same value again.",max:"Please enter a value less than or equal to {0}.",maxLength:"Please enter no more than {0} characters.",min:"Please enter a value greater than or equal to {0}.",minLength:"Please enter at least {0} characters.",number:"Please enter a valid number.",range:"Please enter a value between {0} and {1}.",rangeLength:"Please enter a value between {0} and {1} characters long.",required:"This field is required.",url:"Please enter a valid URL."},REGEX:{alpha:/^[a-z_]+$/i,alphanum:/^\w+$/,digits:/^\d+$/,number:/^[+\-]?(\d+([.,]\d+)?)+$/,email:/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,url:/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i},RULES:{acceptFiles:function(aq,O,ar){var L=null;if(o(ar)){var A=ar.split(/,\s*|\b\s*/).join(M);L=new RegExp("[.]("+A+")$","i");}return L&&L.test(aq);},date:function(O,L,aq){var A=new Date(O);return(H(A)&&(A!=C)&&!isNaN(A));},equalTo:function(O,L,aq){var A=t.one(aq);return A&&(a(A.val())==O);},max:function(L,A,O){return(P.toNumber(L)<=O);},maxLength:function(L,A,O){return(L.length<=O);},min:function(L,A,O){return(P.toNumber(L)>=O);},minLength:function(L,A,O){return(L.length>=O);},range:function(O,L,aq){var A=P.toNumber(O);return(A>=aq[0])&&(A<=aq[1]);},rangeLength:function(O,L,aq){var A=O.length;return(A>=aq[0])&&(A<=aq[1]);},required:function(ar,O,at){var A=this;if(t.FormValidator.isCheckable(O)){var L=O.get(T);var aq=A.getElementsByName(L);return(aq.filter(":checked").size()>0);}else{return !!ar;}}}};var P=t.Component.create({NAME:p,ATTRS:{containerErrorClass:{value:x,validator:o},containerValidClass:{value:af,validator:o},errorClass:{value:ao,validator:o},extractCssPrefix:{value:N+J,validator:o},extractRules:{value:true,validator:S},fieldContainer:{value:G+N},fieldStrings:{value:{},validator:ac},messageContainer:{getter:function(A){return t.Node.create(A).clone();},value:aj},render:{value:true},strings:{valueFn:function(){return YUI.AUI.defaults.FormValidator.STRINGS;}},rules:{validator:ac,value:{}},selectText:{value:true,validator:S},showMessages:{value:true,validator:S},showAllMessages:{value:false,validator:S},stackErrorContainer:{getter:function(A){return t.Node.create(A).clone();},value:V},validateOnBlur:{value:true,validator:S},validateOnInput:{value:false,validator:S},validClass:{value:f,validator:o}},isCheckable:function(L){var A=L.get(v).toLowerCase();return(A==g||A==Z);},toNumber:function(A){return parseFloat(A)||0;},EXTENDS:t.Widget,UI_ATTRS:k,prototype:{CONTENT_TEMPLATE:null,UI_EVENTS:{},initializer:function(){var A=this;A.blurHandlers=[];A.errors={};A.inputHandlers=[];A.stackErrorContainers={};},bindUI:function(){var A=this;A._createEvents();A._bindValidation();},addFieldError:function(aq,O){var A=this;var ar=A.errors;var L=aq.get(T);if(!ar[L]){ar[L]=[];}ar[L].push(O);},clearFieldError:function(L){var A=this;delete A.errors[L.get(T)];},eachRule:function(L){var A=this;t.each(A.get(r),function(O,aq){if(u(L)){L.apply(A,[O,aq]);}});},findFieldContainer:function(L){var A=this;var O=A.get(ai);if(O){return L.ancestor(O);}},focusInvalidField:function(){var A=this;var L=A.get(K);var O=L.one(G+ao);if(O){if(A.get(ad)){O.selectText();}O.focus();}},getElementsByName:function(L){var A=this;return A.get(K).all('[name="'+L+'"]');},getField:function(L){var A=this;if(o(L)){L=A.getElementsByName(L).item(0);}return L;},getFieldError:function(L){var A=this;return A.errors[L.get(T)];},getFieldStackErrorContainer:function(aq){var A=this;var L=aq.get(T);var O=A.stackErrorContainers;if(!O[L]){O[L]=A.get(m);}return O[L];},getFieldErrorMessage:function(at,ar){var au=this;var aw=at.get(T);var L=au.get(aa)[aw]||{};var A=au.get(r)[aw]; -var av=au.getStrings();var aq={};if(ar in A){var O=t.Array(A[ar]);t.each(O,function(az,ay){aq[ay]=[az].join(q);});}var ax=(L[ar]||av[ar]||av.DEFAULT);return t.substitute(ax,aq);},hasErrors:function(){var A=this;return !y(A.errors);},highlight:function(O,L){var A=this;var aq=A.findFieldContainer(O);A._highlightHelper(O,A.get(an),A.get(X),L);A._highlightHelper(aq,A.get(al),A.get(W),L);},normalizeRuleValue:function(L){var A=this;return u(L)?L.apply(A):L;},unhighlight:function(L){var A=this;A.highlight(L,true);},printStackError:function(O,L,aq){var A=this;if(!A.get(ah)){aq=aq.slice(0,1);}L.empty();t.each(aq,function(at,ar){var au=A.getFieldErrorMessage(O,at);var av=A.get(b).addClass(at);L.append(av.html(au));});},resetAllFields:function(){var A=this;A.eachRule(function(O,aq){var L=A.getField(aq);A.resetField(L);});},resetField:function(O){var A=this;var L=A.getFieldStackErrorContainer(O);L.remove();A.resetFieldCss(O);A.clearFieldError(O);},resetFieldCss:function(O){var L=this;var aq=L.findFieldContainer(O);var A=function(at,ar){if(at){t.each(ar,function(au){at.removeClass(L.get(au));});}};A(O,[X,an]);A(aq,[W,al]);},validatable:function(O){var A=this;var ar=A.get(r)[O.get(T)];var aq=A.normalizeRuleValue(ar.required);var L=YUI.AUI.defaults.FormValidator.RULES.required.apply(A,[O.val(),O]);return(aq||(!aq&&L));},validate:function(){var A=this;A.eachRule(function(L,O){A.validateField(O);});A.focusInvalidField();},validateField:function(aq){var A=this;var O=A.getField(aq);if(O){var L=A.validatable(O);A.resetField(O);if(L){A.fire(i,{validator:{field:O}});}}},_bindValidation:function(){var A=this;var L=A.get(K);L.on(I,t.bind(A._onFormReset,A));L.on(B,t.bind(A._onFormSubmit,A));},_createEvents:function(){var A=this;var L=function(O,aq){A.publish(O,{defaultFn:aq});};L(R,A._defErrorFieldFn);L(D,A._defValidFieldFn);L(i,A._defValidateFieldFn);},_defErrorFieldFn:function(aq){var A=this;var L=aq.validator;var ar=L.field;A.highlight(ar);if(A.get(z)){var O=A.getFieldStackErrorContainer(ar);ar.placeBefore(O);A.printStackError(ar,O,L.errors);}},_defValidFieldFn:function(L){var A=this;var O=L.validator.field;A.unhighlight(O);},_defValidateFieldFn:function(O){var L=this;var aq=O.validator.field;var ar=L.get(r)[aq.get(T)];t.each(ar,function(aw,au){var av=YUI.AUI.defaults.FormValidator.RULES[au];var at=a(aq.val());aw=L.normalizeRuleValue(aw);if(u(av)&&!av.apply(L,[at,aq,aw])){L.addFieldError(aq,au);}});var A=L.getFieldError(aq);if(A){L.fire(R,{validator:{field:aq,errors:A}});}else{L.fire(D,{validator:{field:aq}});}},_highlightHelper:function(aq,A,L,O){if(aq){if(O){aq.removeClass(A).addClass(L);}else{aq.removeClass(L).addClass(A);}}},_onBlurField:function(L){var A=this;var O=L.currentTarget.get(T);A.validateField(O);},_onFieldInputChange:function(L){var A=this;A.validateField(L.currentTarget);},_onFormSubmit:function(L){var A=this;var O={validator:{formEvent:L}};A.validate();if(A.hasErrors()){O.validator.errors=A.errors;A.fire(F,O);L.halt();}else{A.fire(B,O);}},_onFormReset:function(L){var A=this;A.resetAllFields();},_bindValidateHelper:function(ar,aq,O,L){var A=this;A._unbindHandlers(L);if(ar){A.eachRule(function(au,av){var at=A.getElementsByName(av);A[L].push(at.on(aq,t.bind(O,A)));});}},_uiSetExtractRules:function(ar){var A=this;if(ar){var L=A.get(K);var aq=A.get(r);var O=A.get(am);t.each(YUI.AUI.defaults.FormValidator.RULES,function(av,au){var at=[G,O,au].join(q);L.all(at).each(function(aw){if(aw.get(v)){var ax=aw.get(T);if(!aq[ax]){aq[ax]={};}if(!(au in aq[ax])){aq[ax][au]=true;}}});});}},_uiSetValidateOnInput:function(L){var A=this;A._bindValidateHelper(L,ae,A._onFieldInputChange,e);},_uiSetValidateOnBlur:function(L){var A=this;A._bindValidateHelper(L,n,A._onBlurField,ak);},_unbindHandlers:function(L){var A=this;t.each(A[L],function(O){O.detach();});A[L]=[];}}});t.each(YUI.AUI.defaults.FormValidator.REGEX,function(L,A){YUI.AUI.defaults.FormValidator.RULES[A]=function(aq,O,ar){return YUI.AUI.defaults.FormValidator.REGEX[A].test(aq);};});t.FormValidator=P;},"@VERSION@",{requires:["aui-base","aui-event-input","selector-css3","substitute"]});AUI.add("aui-form",function(a){},"@VERSION@",{skinnable:false,use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"]}); \ No newline at end of file +var av=au.getStrings();var aq={};if(ar in A){var O=t.Array(A[ar]);t.each(O,function(az,ay){aq[ay]=[az].join(q);});}var ax=(L[ar]||av[ar]||av.DEFAULT);return t.substitute(ax,aq);},hasErrors:function(){var A=this;return !y(A.errors);},highlight:function(O,L){var A=this;var aq=A.findFieldContainer(O);A._highlightHelper(O,A.get(an),A.get(X),L);A._highlightHelper(aq,A.get(al),A.get(W),L);},normalizeRuleValue:function(L){var A=this;return u(L)?L.apply(A):L;},unhighlight:function(L){var A=this;A.highlight(L,true);},printStackError:function(O,L,aq){var A=this;if(!A.get(ah)){aq=aq.slice(0,1);}L.empty();t.each(aq,function(at,ar){var au=A.getFieldErrorMessage(O,at);var av=A.get(b).addClass(at);L.append(av.html(au));});},resetAllFields:function(){var A=this;A.eachRule(function(O,aq){var L=A.getField(aq);A.resetField(L);});},resetField:function(O){var A=this;var L=A.getFieldStackErrorContainer(O);L.remove();A.resetFieldCss(O);A.clearFieldError(O);},resetFieldCss:function(O){var L=this;var aq=L.findFieldContainer(O);var A=function(at,ar){if(at){t.each(ar,function(au){at.removeClass(L.get(au));});}};A(O,[X,an]);A(aq,[W,al]);},validatable:function(O){var A=this;var ar=A.get(r)[O.get(T)];var aq=A.normalizeRuleValue(ar.required);var L=YUI.AUI.defaults.FormValidator.RULES.required.apply(A,[O.val(),O]);return(aq||(!aq&&L));},validate:function(){var A=this;A.eachRule(function(L,O){A.validateField(O);});A.focusInvalidField();},validateField:function(aq){var A=this;var O=A.getField(aq);if(O){var L=A.validatable(O);A.resetField(O);if(L){A.fire(i,{validator:{field:O}});}}},_bindValidation:function(){var A=this;var L=A.get(K);L.on(I,t.bind(A._onFormReset,A));L.on(B,t.bind(A._onFormSubmit,A));},_createEvents:function(){var A=this;var L=function(O,aq){A.publish(O,{defaultFn:aq});};L(R,A._defErrorFieldFn);L(D,A._defValidFieldFn);L(i,A._defValidateFieldFn);},_defErrorFieldFn:function(aq){var A=this;var L=aq.validator;var ar=L.field;A.highlight(ar);if(A.get(z)){var O=A.getFieldStackErrorContainer(ar);ar.placeBefore(O);A.printStackError(ar,O,L.errors);}},_defValidFieldFn:function(L){var A=this;var O=L.validator.field;A.unhighlight(O);},_defValidateFieldFn:function(O){var L=this;var aq=O.validator.field;var ar=L.get(r)[aq.get(T)];t.each(ar,function(aw,au){var av=YUI.AUI.defaults.FormValidator.RULES[au];var at=a(aq.val());aw=L.normalizeRuleValue(aw);if(u(av)&&!av.apply(L,[at,aq,aw])){L.addFieldError(aq,au);}});var A=L.getFieldError(aq);if(A){L.fire(R,{validator:{field:aq,errors:A}});}else{L.fire(D,{validator:{field:aq}});}},_highlightHelper:function(aq,A,L,O){if(aq){if(O){aq.removeClass(A).addClass(L);}else{aq.removeClass(L).addClass(A);}}},_onBlurField:function(L){var A=this;var O=L.currentTarget.get(T);A.validateField(O);},_onFieldInputChange:function(L){var A=this;A.validateField(L.currentTarget);},_onFormSubmit:function(L){var A=this;var O={validator:{formEvent:L}};A.validate();if(A.hasErrors()){O.validator.errors=A.errors;A.fire(F,O);L.halt();}else{A.fire(B,O);}},_onFormReset:function(L){var A=this;A.resetAllFields();},_bindValidateHelper:function(ar,aq,O,L){var A=this;A._unbindHandlers(L);if(ar){A.eachRule(function(au,av){var at=A.getElementsByName(av);A[L].push(at.on(aq,t.bind(O,A)));});}},_uiSetExtractRules:function(ar){var A=this;if(ar){var L=A.get(K);var aq=A.get(r);var O=A.get(am);t.each(YUI.AUI.defaults.FormValidator.RULES,function(av,au){var at=[G,O,au].join(q);L.all(at).each(function(aw){if(aw.get(v)){var ax=aw.get(T);if(!aq[ax]){aq[ax]={};}if(!(au in aq[ax])){aq[ax][au]=true;}}});});}},_uiSetValidateOnInput:function(L){var A=this;A._bindValidateHelper(L,ae,A._onFieldInputChange,e);},_uiSetValidateOnBlur:function(L){var A=this;A._bindValidateHelper(L,n,A._onBlurField,ak);},_unbindHandlers:function(L){var A=this;t.each(A[L],function(O){O.detach();});A[L]=[];}}});t.each(YUI.AUI.defaults.FormValidator.REGEX,function(L,A){YUI.AUI.defaults.FormValidator.RULES[A]=function(aq,O,ar){return YUI.AUI.defaults.FormValidator.REGEX[A].test(aq);};});t.FormValidator=P;},"@VERSION@",{requires:["aui-base","aui-event-input","selector-css3","substitute"]});AUI.add("aui-form",function(a){},"@VERSION@",{use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-form/aui-form.js b/build/aui-form/aui-form.js index 54331f79b43..d5a76e8ecd7 100644 --- a/build/aui-form/aui-form.js +++ b/build/aui-form/aui-form.js @@ -3,6 +3,8 @@ var Lang = A.Lang, getClassName = A.getClassName, + _serialize = A.IO.prototype._serialize, + NAME = 'form', CSS_FORM = getClassName(NAME), @@ -42,7 +44,7 @@ var Form = A.Component.create( getter: function(value) { var instance = this; - var values = A.io._serialize(instance.get('contentBox').getDOM()); + var values = _serialize(instance.get('contentBox').getDOM()); return A.QueryString.parse(values); }, @@ -2474,5 +2476,5 @@ A.FormValidator = FormValidator; }, '@VERSION@' ,{requires:['aui-base','aui-event-input','selector-css3','substitute']}); -AUI.add('aui-form', function(A){}, '@VERSION@' ,{skinnable:false, use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator']}); +AUI.add('aui-form', function(A){}, '@VERSION@' ,{use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator'], skinnable:false}); From 98008e4bd730640f46dfa008777d266bc34cba66 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Tue, 23 Aug 2011 14:39:45 -0700 Subject: [PATCH 114/132] AUI-495 - Create A.fn method to fix argument list --- build/aui-base/aui-base-debug.js | 74 ++++++++++++++++++++++++++------ build/aui-base/aui-base-min.js | 8 ++-- build/aui-base/aui-base.js | 74 ++++++++++++++++++++++++++------ build/aui/aui-min.js | 8 ++-- build/aui/aui.js | 74 ++++++++++++++++++++++++++------ src/aui-base/js/aui-base.js | 60 +++++++++++++++++++++++--- 6 files changed, 249 insertions(+), 49 deletions(-) diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index 482fb402b54..5e5b10f8368 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -12,16 +12,16 @@ alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -36,7 +36,7 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -63,9 +63,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -485,7 +485,9 @@ AUI.add('aui-base', function(A) { var Lang = A.Lang, isArray = Lang.isArray, isFunction = Lang.isFunction, + isNumber = Lang.isNumber, isString = Lang.isString, + isUndefined = Lang.isUndefined, AArray = A.Array, LString = A.namespace('Lang.String'), @@ -587,8 +589,8 @@ A.mix( }, defaultValue: function(str, defaultValue) { - if (Lang.isUndefined(str) || str == STR_BLANK) { - if (Lang.isUndefined(defaultValue)) { + if (isUndefined(str) || str == STR_BLANK) { + if (isUndefined(defaultValue)) { defaultValue = STR_BLANK; } @@ -664,7 +666,7 @@ A.mix( round: function(value, precision) { value = Number(value); - if (Lang.isNumber(precision)) { + if (isNumber(precision)) { precision = Math.pow(10, precision); value = Math.round(value * precision) / precision; } @@ -746,7 +748,7 @@ A.mix( }, undef: function(str) { - if (Lang.isUndefined(str)) { + if (isUndefined(str)) { str = STR_BLANK; } @@ -852,4 +854,52 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +A.fn = function(fn, context, args) { + var wrappedFn; + + // Explicitly set function arguments + if (!isNumber(fn)) { + var xargs = arguments; + + if (xargs.length > 2) { + xargs = AArray(xargs, 2, true); + } + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + + return fn.apply(context || fn, xargs); + }; + } + else { + // Set function arity + var argLength = fn; + + fn = context; + context = args; + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + context = context || fn; + + var returnValue; + + if (argLength > 0) { + returnValue = fn.apply(context, AArray(arguments, 0, true).slice(0, argLength)); + } + else { + returnValue = fn.call(context); + } + + return returnValue; + }; + } + + return wrappedFn; +}; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index daf98cf59a9..e57462cdbbe 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,4 +1,4 @@ -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit-uncompressed":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},skinnable:false,use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"]},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{requires:["classnamemanager"],skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; -}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; -})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                                                  ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit-uncompressed":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; +}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var R=n.Lang,x=R.isArray,o=R.isFunction,Q=R.isNumber,h=R.isString,p=R.isUndefined,t=n.Array,N=n.namespace("Lang.String"),I=t.indexOf,z="",D=n.config.doc,E="firstChild",K="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,F=/\r?\n/g,B=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,L=/<\/?[^>]+>/gi,J=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,C="&",s="<",l="...",P="end",f="#",O="middle",H="start",q="0",y="g",r="s",j=["return value ",null,";"],d=[],w=n.cached(function(i){j[1]=i;return new Function("value",j.join(z));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var M in a){if(a.hasOwnProperty(M)){var G=a[M];m[G]=M;d.push(M);}}var v=new RegExp("["+d.join(z)+"]","g"),u=/&([^;]+);/g;n.mix(N,{camelize:n.cached(function(T,S){var i=c;T=String(T);if(S){i=new RegExp(S+"([a-z])","gi");}return T.replace(i,N._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(S,i){return S.indexOf(i)!=-1;},defaultValue:function(S,i){if(p(S)||S==z){if(p(i)){i=z;}S=i;}return S;},endsWith:function(T,S){var i=(T.length-S.length);return((i>=0)&&(T.indexOf(S,i)==i));},escapeHTML:function(i){return i.replace(v,N._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(S,i){return w(i)(S);},nl2br:function(S){var i=this;return String(S).replace(F,"
                                                                                                  ");},padNumber:function(T,U,i){var V=i?Number(T).toFixed(i):String(T);var S=V.indexOf(".");if(S==-1){S=V.length;}return N.repeat(q,Math.max(0,U-S))+V;},pluralize:function(S,i,U){var T;if(S==1){T=i;}else{T=U||i+r;}return S+" "+T;},remove:function(U,i,T){var S=new RegExp(N.escapeRegEx(i),T?y:z);return U.replace(S,z);},removeAll:function(S,i){return N.remove(S,i,true);},repeat:function(i,S){return new Array(S+1).join(i);},round:function(S,i){S=Number(S);if(Q(i)){i=Math.pow(10,i);S=Math.round(S*i)/i;}return S;},startsWith:function(S,i){return(S.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(B,z);}return i;},stripTags:function(S){var i=this;if(S){S=String(S).replace(L,z);}return S;},substr:function(S,T,i){return String(S).substr(T,i);},uncamelize:n.cached(function(S,i){i=i||" "; +S=String(S);S=S.replace(J,"$1"+i+"$2$3");S=S.replace(b,"$1"+i+"$2");return S;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:R.trim,truncate:function(V,U,i){V=String(V);var T=V.length;if(V&&T>U){i=i||P;if(i==P){V=V.substr(0,U-l.length)+l;}else{if(i==O){var S=Math.floor(U/2);V=V.substr(0,S)+l+V.substr(T-S);}else{if(i==H){V=l+V.substr(T-U);}}}}return V;},undef:function(i){if(p(i)){i=z;}return i;},unescapeEntities:function(i){if(N.contains(i,C)){if(D&&!N.contains(i,s)){i=N._unescapeEntitiesUsingDom(i);}else{i=N.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(u,N._unescapeHTML);},_camelize:function(i,S){return S.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(S){var T=m[S];if(!T&&entity.charAt(0)==f){var i=Number(q+entity.substr(1));if(!isNaN(i)){T=String.fromCharCode(i);}}return T;},_unescapeEntitiesUsingDom:function(S){var i=N._unescapeNode;i[K]=S;if(i[g]){i[g]();}S=i.firstChild.nodeValue;i[K]=z;return S;},_unescapeNode:D.createElement("a")});n.mix(t,{remove:function(i,U,T){var S=i.slice((T||U)+1||i.length);i.length=(U<0)?(i.length+U):U;return i.push.apply(i,S);},removeItem:function(i,T){var S=I(i,T);return t.remove(i,S);}});n.mix(R,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(S){var i=this;return String(S).indexOf(n.Env._guidp)===0;}});n.fn=function(U,T,i){var S;if(!Q(U)){var W=arguments;if(W.length>2){W=t(W,2,true);}var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];return U.apply(T||U,W);};}else{var X=U;U=T;T=i;var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];T=T||U;var Y;if(X>0){Y=U.apply(T,t(arguments,0,true).slice(0,X));}else{Y=U.call(T);}return Y;};}return S;};},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index 482fb402b54..5e5b10f8368 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -12,16 +12,16 @@ alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -36,7 +36,7 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -63,9 +63,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -485,7 +485,9 @@ AUI.add('aui-base', function(A) { var Lang = A.Lang, isArray = Lang.isArray, isFunction = Lang.isFunction, + isNumber = Lang.isNumber, isString = Lang.isString, + isUndefined = Lang.isUndefined, AArray = A.Array, LString = A.namespace('Lang.String'), @@ -587,8 +589,8 @@ A.mix( }, defaultValue: function(str, defaultValue) { - if (Lang.isUndefined(str) || str == STR_BLANK) { - if (Lang.isUndefined(defaultValue)) { + if (isUndefined(str) || str == STR_BLANK) { + if (isUndefined(defaultValue)) { defaultValue = STR_BLANK; } @@ -664,7 +666,7 @@ A.mix( round: function(value, precision) { value = Number(value); - if (Lang.isNumber(precision)) { + if (isNumber(precision)) { precision = Math.pow(10, precision); value = Math.round(value * precision) / precision; } @@ -746,7 +748,7 @@ A.mix( }, undef: function(str) { - if (Lang.isUndefined(str)) { + if (isUndefined(str)) { str = STR_BLANK; } @@ -852,4 +854,52 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +A.fn = function(fn, context, args) { + var wrappedFn; + + // Explicitly set function arguments + if (!isNumber(fn)) { + var xargs = arguments; + + if (xargs.length > 2) { + xargs = AArray(xargs, 2, true); + } + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + + return fn.apply(context || fn, xargs); + }; + } + else { + // Set function arity + var argLength = fn; + + fn = context; + context = args; + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + context = context || fn; + + var returnValue; + + if (argLength > 0) { + returnValue = fn.apply(context, AArray(arguments, 0, true).slice(0, argLength)); + } + else { + returnValue = fn.call(context); + } + + return returnValue; + }; + } + + return wrappedFn; +}; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index 8cb55c72387..c4f98c9a688 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,7 +10,7 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ }};b.Queue=t;YUI.Env._loaderQueue=YUI.Env._loaderQueue||new t();var m="__",p=Object.prototype.hasOwnProperty,l=b.Lang.isObject;b.cached=function(x,v,w){v||(v={});return function(y){var z=arguments.length>1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit-uncompressed":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},skinnable:false,use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"]},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{requires:["classnamemanager"],skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; -}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; -})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var P=n.Lang,w=P.isArray,o=P.isFunction,h=P.isString,s=n.Array,M=n.namespace("Lang.String"),H=s.indexOf,y="",C=n.config.doc,D="firstChild",J="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,E=/\r?\n/g,z=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,K=/<\/?[^>]+>/gi,I=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,B="&",r="<",l="...",O="end",f="#",N="middle",G="start",p="0",x="g",q="s",j=["return value ",null,";"],d=[],v=n.cached(function(i){j[1]=i;return new Function("value",j.join(y));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var L in a){if(a.hasOwnProperty(L)){var F=a[L];m[F]=L;d.push(L);}}var u=new RegExp("["+d.join(y)+"]","g"),t=/&([^;]+);/g;n.mix(M,{camelize:n.cached(function(R,Q){var i=c;R=String(R);if(Q){i=new RegExp(Q+"([a-z])","gi");}return R.replace(i,M._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(Q,i){return Q.indexOf(i)!=-1;},defaultValue:function(Q,i){if(P.isUndefined(Q)||Q==y){if(P.isUndefined(i)){i=y;}Q=i;}return Q;},endsWith:function(R,Q){var i=(R.length-Q.length);return((i>=0)&&(R.indexOf(Q,i)==i));},escapeHTML:function(i){return i.replace(u,M._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(Q,i){return v(i)(Q);},nl2br:function(Q){var i=this;return String(Q).replace(E,"
                                                                                                  ");},padNumber:function(R,S,i){var T=i?Number(R).toFixed(i):String(R);var Q=T.indexOf(".");if(Q==-1){Q=T.length;}return M.repeat(p,Math.max(0,S-Q))+T;},pluralize:function(Q,i,S){var R;if(Q==1){R=i;}else{R=S||i+q;}return Q+" "+R;},remove:function(S,i,R){var Q=new RegExp(M.escapeRegEx(i),R?x:y);return S.replace(Q,y);},removeAll:function(Q,i){return M.remove(Q,i,true);},repeat:function(i,Q){return new Array(Q+1).join(i);},round:function(Q,i){Q=Number(Q);if(P.isNumber(i)){i=Math.pow(10,i);Q=Math.round(Q*i)/i;}return Q;},startsWith:function(Q,i){return(Q.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(z,y);}return i;},stripTags:function(Q){var i=this;if(Q){Q=String(Q).replace(K,y);}return Q;},substr:function(Q,R,i){return String(Q).substr(R,i);},uncamelize:n.cached(function(Q,i){i=i||" "; -Q=String(Q);Q=Q.replace(I,"$1"+i+"$2$3");Q=Q.replace(b,"$1"+i+"$2");return Q;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:P.trim,truncate:function(T,S,i){T=String(T);var R=T.length;if(T&&R>S){i=i||O;if(i==O){T=T.substr(0,S-l.length)+l;}else{if(i==N){var Q=Math.floor(S/2);T=T.substr(0,Q)+l+T.substr(R-Q);}else{if(i==G){T=l+T.substr(R-S);}}}}return T;},undef:function(i){if(P.isUndefined(i)){i=y;}return i;},unescapeEntities:function(i){if(M.contains(i,B)){if(C&&!M.contains(i,r)){i=M._unescapeEntitiesUsingDom(i);}else{i=M.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(t,M._unescapeHTML);},_camelize:function(i,Q){return Q.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(Q){var R=m[Q];if(!R&&entity.charAt(0)==f){var i=Number(p+entity.substr(1));if(!isNaN(i)){R=String.fromCharCode(i);}}return R;},_unescapeEntitiesUsingDom:function(Q){var i=M._unescapeNode;i[J]=Q;if(i[g]){i[g]();}Q=i.firstChild.nodeValue;i[J]=y;return Q;},_unescapeNode:C.createElement("a")});n.mix(s,{remove:function(i,S,R){var Q=i.slice((R||S)+1||i.length);i.length=(S<0)?(i.length+S):S;return i.push.apply(i,Q);},removeItem:function(i,R){var Q=H(i,R);return s.remove(i,Q);}});n.mix(P,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(Q){var i=this;return String(Q).indexOf(n.Env._guidp)===0;}});},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit-uncompressed":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-cockpit":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-cockpit","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-cockpit-uncompressed","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; +}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +})();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var R=n.Lang,x=R.isArray,o=R.isFunction,Q=R.isNumber,h=R.isString,p=R.isUndefined,t=n.Array,N=n.namespace("Lang.String"),I=t.indexOf,z="",D=n.config.doc,E="firstChild",K="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,F=/\r?\n/g,B=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,L=/<\/?[^>]+>/gi,J=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,C="&",s="<",l="...",P="end",f="#",O="middle",H="start",q="0",y="g",r="s",j=["return value ",null,";"],d=[],w=n.cached(function(i){j[1]=i;return new Function("value",j.join(z));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var M in a){if(a.hasOwnProperty(M)){var G=a[M];m[G]=M;d.push(M);}}var v=new RegExp("["+d.join(z)+"]","g"),u=/&([^;]+);/g;n.mix(N,{camelize:n.cached(function(T,S){var i=c;T=String(T);if(S){i=new RegExp(S+"([a-z])","gi");}return T.replace(i,N._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(S,i){return S.indexOf(i)!=-1;},defaultValue:function(S,i){if(p(S)||S==z){if(p(i)){i=z;}S=i;}return S;},endsWith:function(T,S){var i=(T.length-S.length);return((i>=0)&&(T.indexOf(S,i)==i));},escapeHTML:function(i){return i.replace(v,N._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(S,i){return w(i)(S);},nl2br:function(S){var i=this;return String(S).replace(F,"
                                                                                                  ");},padNumber:function(T,U,i){var V=i?Number(T).toFixed(i):String(T);var S=V.indexOf(".");if(S==-1){S=V.length;}return N.repeat(q,Math.max(0,U-S))+V;},pluralize:function(S,i,U){var T;if(S==1){T=i;}else{T=U||i+r;}return S+" "+T;},remove:function(U,i,T){var S=new RegExp(N.escapeRegEx(i),T?y:z);return U.replace(S,z);},removeAll:function(S,i){return N.remove(S,i,true);},repeat:function(i,S){return new Array(S+1).join(i);},round:function(S,i){S=Number(S);if(Q(i)){i=Math.pow(10,i);S=Math.round(S*i)/i;}return S;},startsWith:function(S,i){return(S.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(B,z);}return i;},stripTags:function(S){var i=this;if(S){S=String(S).replace(L,z);}return S;},substr:function(S,T,i){return String(S).substr(T,i);},uncamelize:n.cached(function(S,i){i=i||" "; +S=String(S);S=S.replace(J,"$1"+i+"$2$3");S=S.replace(b,"$1"+i+"$2");return S;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:R.trim,truncate:function(V,U,i){V=String(V);var T=V.length;if(V&&T>U){i=i||P;if(i==P){V=V.substr(0,U-l.length)+l;}else{if(i==O){var S=Math.floor(U/2);V=V.substr(0,S)+l+V.substr(T-S);}else{if(i==H){V=l+V.substr(T-U);}}}}return V;},undef:function(i){if(p(i)){i=z;}return i;},unescapeEntities:function(i){if(N.contains(i,C)){if(D&&!N.contains(i,s)){i=N._unescapeEntitiesUsingDom(i);}else{i=N.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(u,N._unescapeHTML);},_camelize:function(i,S){return S.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(S){var T=m[S];if(!T&&entity.charAt(0)==f){var i=Number(q+entity.substr(1));if(!isNaN(i)){T=String.fromCharCode(i);}}return T;},_unescapeEntitiesUsingDom:function(S){var i=N._unescapeNode;i[K]=S;if(i[g]){i[g]();}S=i.firstChild.nodeValue;i[K]=z;return S;},_unescapeNode:D.createElement("a")});n.mix(t,{remove:function(i,U,T){var S=i.slice((T||U)+1||i.length);i.length=(U<0)?(i.length+U):U;return i.push.apply(i,S);},removeItem:function(i,T){var S=I(i,T);return t.remove(i,S);}});n.mix(R,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(S){var i=this;return String(S).indexOf(n.Env._guidp)===0;}});n.fn=function(U,T,i){var S;if(!Q(U)){var W=arguments;if(W.length>2){W=t(W,2,true);}var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];return U.apply(T||U,W);};}else{var X=U;U=T;T=i;var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];T=T||U;var Y;if(X>0){Y=U.apply(T,t(arguments,0,true).slice(0,X));}else{Y=U.call(T);}return Y;};}return S;};},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); diff --git a/build/aui/aui.js b/build/aui/aui.js index 0a18f1efa5d..e3bae554818 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4726,16 +4726,16 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit-uncompressed': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-cockpit': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-cockpit','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-cockpit-uncompressed','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -4750,7 +4750,7 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, @@ -4777,9 +4777,9 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -5199,7 +5199,9 @@ AUI.add('aui-base', function(A) { var Lang = A.Lang, isArray = Lang.isArray, isFunction = Lang.isFunction, + isNumber = Lang.isNumber, isString = Lang.isString, + isUndefined = Lang.isUndefined, AArray = A.Array, LString = A.namespace('Lang.String'), @@ -5301,8 +5303,8 @@ A.mix( }, defaultValue: function(str, defaultValue) { - if (Lang.isUndefined(str) || str == STR_BLANK) { - if (Lang.isUndefined(defaultValue)) { + if (isUndefined(str) || str == STR_BLANK) { + if (isUndefined(defaultValue)) { defaultValue = STR_BLANK; } @@ -5378,7 +5380,7 @@ A.mix( round: function(value, precision) { value = Number(value); - if (Lang.isNumber(precision)) { + if (isNumber(precision)) { precision = Math.pow(10, precision); value = Math.round(value * precision) / precision; } @@ -5460,7 +5462,7 @@ A.mix( }, undef: function(str) { - if (Lang.isUndefined(str)) { + if (isUndefined(str)) { str = STR_BLANK; } @@ -5566,4 +5568,52 @@ A.mix( } ); -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +A.fn = function(fn, context, args) { + var wrappedFn; + + // Explicitly set function arguments + if (!isNumber(fn)) { + var xargs = arguments; + + if (xargs.length > 2) { + xargs = AArray(xargs, 2, true); + } + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + + return fn.apply(context || fn, xargs); + }; + } + else { + // Set function arity + var argLength = fn; + + fn = context; + context = args; + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + context = context || fn; + + var returnValue; + + if (argLength > 0) { + returnValue = fn.apply(context, AArray(arguments, 0, true).slice(0, argLength)); + } + else { + returnValue = fn.call(context); + } + + return returnValue; + }; + } + + return wrappedFn; +}; + +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/src/aui-base/js/aui-base.js b/src/aui-base/js/aui-base.js index 8d9119f6b81..f98ab2dbf5e 100644 --- a/src/aui-base/js/aui-base.js +++ b/src/aui-base/js/aui-base.js @@ -1,7 +1,9 @@ var Lang = A.Lang, isArray = Lang.isArray, isFunction = Lang.isFunction, + isNumber = Lang.isNumber, isString = Lang.isString, + isUndefined = Lang.isUndefined, AArray = A.Array, LString = A.namespace('Lang.String'), @@ -103,8 +105,8 @@ A.mix( }, defaultValue: function(str, defaultValue) { - if (Lang.isUndefined(str) || str == STR_BLANK) { - if (Lang.isUndefined(defaultValue)) { + if (isUndefined(str) || str == STR_BLANK) { + if (isUndefined(defaultValue)) { defaultValue = STR_BLANK; } @@ -180,7 +182,7 @@ A.mix( round: function(value, precision) { value = Number(value); - if (Lang.isNumber(precision)) { + if (isNumber(precision)) { precision = Math.pow(10, precision); value = Math.round(value * precision) / precision; } @@ -262,7 +264,7 @@ A.mix( }, undef: function(str) { - if (Lang.isUndefined(str)) { + if (isUndefined(str)) { str = STR_BLANK; } @@ -366,4 +368,52 @@ A.mix( return String(id).indexOf(A.Env._guidp) === 0; } } -); \ No newline at end of file +); + +A.fn = function(fn, context, args) { + var wrappedFn; + + // Explicitly set function arguments + if (!isNumber(fn)) { + var xargs = arguments; + + if (xargs.length > 2) { + xargs = AArray(xargs, 2, true); + } + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + + return fn.apply(context || fn, xargs); + }; + } + else { + // Set function arity + var argLength = fn; + + fn = context; + context = args; + + var dynamicLookup = (isString(fn) && context); + + wrappedFn = function() { + fn = (!dynamicLookup) ? fn : context[fn]; + context = context || fn; + + var returnValue; + + if (argLength > 0) { + returnValue = fn.apply(context, AArray(arguments, 0, true).slice(0, argLength)); + } + else { + returnValue = fn.call(context); + } + + return returnValue; + }; + } + + return wrappedFn; +}; \ No newline at end of file From 6a7e22fc20b008ee61454baa8e15ed996e3ab187 Mon Sep 17 00:00:00 2001 From: Jonathan Mak Date: Thu, 18 Aug 2011 10:48:43 -0700 Subject: [PATCH 115/132] AUI-491 - Remove th and td CSS styles --- src/aui-skin-base/css/reset.css | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/aui-skin-base/css/reset.css b/src/aui-skin-base/css/reset.css index c7419220556..173361413f3 100644 --- a/src/aui-skin-base/css/reset.css +++ b/src/aui-skin-base/css/reset.css @@ -1,21 +1,15 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote{ margin: 0; padding: 0; } -table { - border-collapse: collapse; - border-spacing: 0; - clear: both; -} - fieldset, img { border-width: 0; } -address, caption, cite, code, dfn, th, var { +address, caption, cite, code, dfn, var { font-style: normal; font-weight: normal; } From a439ecc9bdc1d9067c160131c177a183adb49f09 Mon Sep 17 00:00:00 2001 From: Jonathan Mak Date: Thu, 18 Aug 2011 10:48:55 -0700 Subject: [PATCH 116/132] AUI-491 - Build --- build/aui-skin-base/css/aui-skin-base-min.css | 6 +++--- build/aui-skin-base/css/aui-skin-base.css | 10 ++-------- build/aui-skin-base/css/reset.css | 10 ++-------- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/build/aui-skin-base/css/aui-skin-base-min.css b/build/aui-skin-base/css/aui-skin-base-min.css index 1b389fce6a5..41315a9f027 100644 --- a/build/aui-skin-base/css/aui-skin-base-min.css +++ b/build/aui-skin-base/css/aui-skin-base-min.css @@ -1,4 +1,4 @@ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0;clear:both}fieldset,img{border-width:0}address,caption,cite,code,dfn,th,var{font-style:normal;font-weight:normal}caption,th{text-align:left}q:before,q:after{content:''}abbr,acronym{border:0;border-bottom:1px dotted #000;cursor:help}blockquote,ul,ol,dl{margin:1em}ol,ul,dl{margin-left:2em}ol{list-style:decimal outside}ul{list-style:disc outside}ul ul{list-style-type:circle}ol ol{list-style-type:upper-roman}dl dd{margin-left:1em}th{font-weight:bold}caption{margin-bottom:.5em;text-align:center}p{margin-bottom:1em}h1{font-size:1.8em}h2{font-size:1.6em}h3{font-size:1.4em}h1,h2,h3{margin:1em 0}h4,h5,h6{font-size:1.1em}h1,h2,h3,h4,h5,h6,strong{font-weight:bold}b,strong{font-weight:bold}i,em{font-style:italic}code,pre{font-family:"Courier New",Courier,monospace}pre{white-space:pre}.important{font-weight:bold}hr,.separator{border-top:1px dotted #bfbfbf}.aui-state-default,.aui-state-active,.aui-state-hover{background:#eee;border:1px solid #ccc;border-color:#bbb #999 #999 #bbb}.aui-state-active{background:#efefef;border-color:#333}.aui-state-hover{background:#ddd;border-color:#999 #bbb #bbb #999;cursor:pointer}.aui-state-disabled{cursor:default!important}.aui-html-template{display:none}.aui-basecelleditor-hidden,.aui-datecelleditor-hidden,.aui-dropdowncelleditor-hidden,.aui-textcelleditor-hidden,.aui-textareacelleditor-hidden,.aui-checkboxcelleditor-hidden,.aui-radiocelleditor-hidden,.aui-helper-hidden{display:none!important}.aui-helper-hidden-accessible,.aui-overlay-hidden,.aui-overlaycontext-hidden,.aui-overlaymask-hidden,.aui-calendar-hidden,.aui-date-picker-hidden,.aui-datepicker-hidden,.aui-colorpicker-hidden,.aui-tooltip-hidden,.aui-image-viewer-hidden,.aui-image-gallery-hidden{clip:rect(0 0 0 0)!important;position:absolute!important;-webkit-transform:scale(0);-webkit-transform-origin:0 0;*position:fixed!important;_position:absolute!important}.aui-helper-force-offset{display:block!important;position:absolute!important;visibility:hidden!important}.aui-helper-reset{margin:0;padding:0;outline:0;text-decoration:none;font-size:100%;list-style:none;border:0}.aui-helper-clearfix:after{clear:both;content:"";display:block;height:0}.aui-helper-clearfix{zoom:1}.aui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0)}.aui-helper-unselectable,.aui-helper-unselectable *{-moz-user-select:none;-khtml-user-select:none}.aui-helper-scroll-lock{height:100%;margin:0;overflow:hidden;width:100%}body{background-color:#FFF;font:62.5%/1.6em Arial,Helvetica,Verdana,sans-serif}.aui-layout{width:100%}.ie6 .aui-layout-content,.ie7 .aui-layout-content{display:block}.ltr .aui-column,.rtl .aui-column-last{float:left}.rtl .aui-column,.ltr .aui-column-last{float:right}.ltr .aui-column-last{margin-left:-5px}.rtl .aui-column-last{margin-right:-5px}.aui-layout-content:after{clear:both;content:"";display:block;height:0}.aui-layout-content{zoom:1}.aui-w1-16{width:6.25%}.aui-w1-12{width:8.334%}.aui-w1-10,.aui-w10{width:10%}.aui-w1-9{width:11.112%}.aui-w1-8{width:12.5%}.aui-w1-7{width:14.286%}.aui-w15{width:15%}.aui-w1-6{width:16.667%}.aui-w3-16{width:18.75%}.aui-w1-5,.aui-w20{width:20%}.aui-w2-9{width:22.223%}.aui-w1-4,.aui-w25{width:25%}.aui-w2-7{width:28.572%}.aui-w3-10,.aui-w30{width:30%}.aui-w5-16{width:31.25%}.aui-w1-3,.aui-w33{width:33.334%}.aui-w35{width:35%}.aui-w3-8{width:37.5%}.aui-w38{width:38.2%}.aui-w2-5,.aui-w40{width:40%}.aui-w5-12{width:41.667%}.aui-w7-16{width:43.75%}.aui-w4-9{width:44.445%}.aui-w45{width:45%}.aui-w3-7{width:42.858%}.aui-w1-2,.aui-w50{width:50%}.aui-w55{width:55%}.aui-w5-9{width:55.556%}.aui-w9-16{width:56.25%}.aui-w4-7{width:57.143%}.aui-w7-12{width:58.334%}.aui-w3-5,.aui-w60{width:60%}.aui-w5-8{width:62.5%}.aui-w62{width:61.8%}.aui-w65{width:65%}.aui-w2-3,.aui-w66{width:66.667%}.aui-w11-16{width:68.75%}.aui-w7-10,.aui-w70{width:70%}.aui-w5-7{width:71.429%}.aui-w3-4,.aui-w75{width:75%}.aui-w7-9{width:77.778%}.aui-w4-5,.aui-w80{width:80%}.aui-w13-16{width:81.25%}.aui-w5-6{width:83.334%}.aui-w85{width:85%}.aui-w6-7{width:85.715%}.aui-w7-8{width:87.5%}.aui-w9-10,.aui-w90{width:90%}.aui-w11-12{width:91.667%}.aui-w15-16{width:93.75%}.aui-w95{width:95%}.aui-w100{width:100%}.webkit .aui-w1-12{width:8.345%}.webkit .aui-w11-12{width:91.675%}.webkit .aui-w1-6{width:16.675%}.webkit .aui-w5-6{width:83.345%}.webkit .aui-w5-12{width:41.675%}.webkit .aui-w7-12{width:58.345%}.webkit .aui-w1-3,.webkit .aui-w33{width:33.345%}.webkit .aui-w2-3,.webkit .aui-w66{width:66.675%}.aui-column-content,.aui-column-content-center{padding:0 .5em}.ltr .aui-column-content-first,.rtl .aui-column-content-last{padding-left:0}.rtl .aui-column-content-first,.ltr .aui-column-content-last{padding-right:0}.ie6.ltr .aui-column-first,.ie6.ltr .aui-column-content-first,.ie6.rtl .aui-column-last,.ie6.rtl .aui-column-content-last{display:inline}.ie6 .aui-layout-content .aui-column-content-center,.ie6 .aui-layout-content .aui-column-content-first,.ie6 .aui-layout-content .aui-column-content-last{word-wrap:break-word;overflow:hidden}.ie body{position:relative}.ie5 body,.ie6 body{position:static}.floatbox{overflow:hidden}.aui-fieldset-legend{font-size:1.2em;font-weight:bold}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input,.aui-field-labels-inline .aui-field-hint{float:left}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input-text{width:45%}.aui-field-labels-inline .aui-field-label{margin:.3em 2% 0 0}.aui-field-labels-right .aui-field-label{text-align:right}.aui-field-labels-inline .aui-field-hint{display:block;float:none;clear:both;margin-left:47%}.aui-field-label,.aui-field-labels-top .aui-field-label{display:block;float:none;text-align:left;margin:0;width:auto} -.aui-field-input,.aui-field-labels-top .aui-field-input{float:none;width:auto}.aui-field-hint,.aui-field-labels-top .aui-field-hint{line-height:1;clear:none;float:right;width:45%;margin:0}.aui-field-hint-icon{float:left}.aui-field-inline{display:inline-block;vertical-align:middle}.aui-field-label-inline{display:inline-block;margin:.4em .4em 0 0}.aui-field-inline .aui-field-content,.aui-field-inline .aui-field-label{display:inline-block}.aui-field-inline .aui-field-label{vertical-align:middle}.aui-field-group{float:left;width:53%}.aui-choice-label{line-height:1;width:89%}.aui-field-input-choice{display:inline-block;margin:0 .4em 0 0;vertical-align:middle}.aui-choice-label,.aui-field-input-choice{float:left}.aui-field-row{display:block;clear:both}.aui-field-row:after{clear:both;content:"";display:block;height:0}.aui-field-row{zoom:1}.aui-button-holder{overflow:hidden;display:block;clear:both}.aui-button-input{margin:0;line-height:1.3;text-decoration:none;cursor:pointer;font-weight:bold;padding:5px 10px 6px 7px}.aui-button-input{*padding:4px 10px 3px 7px}.aui-field-content:after,.aui-button-holder:after{clear:both;content:" ";display:block;height:0;overflow:hidden}.aui-field-content,.aui-button-holder{display:inline-block}/*\*/* html .aui-field-content,* html .aui-button-holder{height:1%}.aui-field-content,.aui-button-holder{display:block}/**/.aui-field-label{font-weight:bold}.aui-choice-label{font-weight:normal}.aui-field-hint{color:#777;font-size:.9em}.aui-choice-label,.aui-field-hint{line-height:1.2}.aui-field-element-left{display:inline-block;vertical-align:middle}.aui-field.aui-has-error .aui-field-content{border-bottom:1px solid #ef4a4a;background-color:#ff9f9f}.aui-field.aui-has-warn .aui-field-content{border-bottom:1px solid #ffc45f;background-color:#fffabf}.aui-field .aui-message-holder{color:#f00;display:block;font-weight:bold}.aui-status-failure{border:1px solid #ef4a4a}.aui-icon{background-repeat:no-repeat;background:url(../images/icon_sprite.png) no-repeat 0 0;display:block;height:16px;overflow:hidden;text-indent:-99999em;width:16px}.aui-icon-carat-1-t{background-position:0 0}.aui-icon-carat-1-tr{background-position:-16px 0}.aui-icon-carat-1-r{background-position:-32px 0}.aui-icon-carat-1-br{background-position:-48px 0}.aui-icon-carat-1-b{background-position:-64px 0}.aui-icon-carat-1-bl{background-position:-80px 0}.aui-icon-carat-1-l{background-position:-96px 0}.aui-icon-carat-1-tl{background-position:-112px 0}.aui-icon-carat-2-t-b{background-position:-128px 0}.aui-icon-carat-2-r-l{background-position:-144px 0}.aui-icon-triangle-1-t{background-position:0 -16px}.aui-icon-triangle-1-tr{background-position:-16px -16px}.aui-icon-triangle-1-r{background-position:-32px -16px}.aui-icon-triangle-1-br{background-position:-48px -16px}.aui-icon-triangle-1-b{background-position:-64px -16px}.aui-icon-triangle-1-bl{background-position:-80px -16px}.aui-icon-triangle-1-l{background-position:-96px -16px}.aui-icon-triangle-1-tl{background-position:-112px -16px}.aui-icon-triangle-2-t-b{background-position:-128px -16px}.aui-icon-triangle-2-r-l{background-position:-144px -16px}.aui-icon-arrow-1-t{background-position:0 -32px}.aui-icon-arrow-1-tr{background-position:-16px -32px}.aui-icon-arrow-1-r{background-position:-32px -32px}.aui-icon-arrow-1-br{background-position:-48px -32px}.aui-icon-arrow-1-b{background-position:-64px -32px}.aui-icon-arrow-1-bl{background-position:-80px -32px}.aui-icon-arrow-1-l{background-position:-96px -32px}.aui-icon-arrow-1-tl{background-position:-112px -32px}.aui-icon-arrow-2-t-b{background-position:-128px -32px}.aui-icon-arrow-2-tr-bl{background-position:-144px -32px}.aui-icon-arrow-2-r-l{background-position:-160px -32px}.aui-icon-arrow-2-br-tl{background-position:-176px -32px}.aui-icon-arrowstop-1-t{background-position:-192px -32px}.aui-icon-arrowstop-1-r{background-position:-208px -32px}.aui-icon-arrowstop-1-b{background-position:-224px -32px}.aui-icon-arrowstop-1-l{background-position:-240px -32px}.aui-icon-arrowthick-1-t{background-position:0 -48px}.aui-icon-arrowthick-1-tr{background-position:-16px -48px}.aui-icon-arrowthick-1-r{background-position:-32px -48px}.aui-icon-arrowthick-1-br{background-position:-48px -48px}.aui-icon-arrowthick-1-b{background-position:-64px -48px}.aui-icon-arrowthick-1-bl{background-position:-80px -48px}.aui-icon-arrowthick-1-l{background-position:-96px -48px}.aui-icon-arrowthick-1-tl{background-position:-112px -48px}.aui-icon-arrowthick-2-t-b{background-position:-128px -48px}.aui-icon-arrowthick-2-tr-bl{background-position:-144px -48px}.aui-icon-arrowthick-2-r-l{background-position:-160px -48px}.aui-icon-arrowthick-2-br-tl{background-position:-176px -48px}.aui-icon-arrowthickstop-1-t{background-position:-192px -48px}.aui-icon-arrowthickstop-1-r{background-position:-208px -48px}.aui-icon-arrowthickstop-1-b{background-position:-224px -48px}.aui-icon-arrowthickstop-1-l{background-position:-240px -48px}.aui-icon-arrowreturnthick-1-l{background-position:0 -64px}.aui-icon-arrowreturnthick-1-t{background-position:-16px -64px}.aui-icon-arrowreturnthick-1-r{background-position:-32px -64px}.aui-icon-arrowreturnthick-1-b{background-position:-48px -64px}.aui-icon-arrowreturn-1-l{background-position:-64px -64px}.aui-icon-arrowreturn-1-t{background-position:-80px -64px}.aui-icon-arrowreturn-1-r{background-position:-96px -64px}.aui-icon-arrowreturn-1-b{background-position:-112px -64px}.aui-icon-arrowrefresh-1-l{background-position:-128px -64px}.aui-icon-arrowrefresh-1-t{background-position:-144px -64px}.aui-icon-arrowrefresh-1-r{background-position:-160px -64px}.aui-icon-arrowrefresh-1-b{background-position:-176px -64px}.aui-icon-arrow-4{background-position:0 -80px}.aui-icon-arrow-4-diag{background-position:-16px -80px}.aui-icon-extlink{background-position:-32px -80px}.aui-icon-newwin{background-position:-48px -80px}.aui-icon-refresh{background-position:-64px -80px} -.aui-icon-shuffle{background-position:-80px -80px}.aui-icon-transfer-r-l{background-position:-96px -80px}.aui-icon-transferthick-r-l{background-position:-112px -80px}.aui-icon-folder-collapsed{background-position:0 -96px}.aui-icon-folder-open{background-position:-16px -96px}.aui-icon-document{background-position:-32px -96px}.aui-icon-document-b{background-position:-48px -96px}.aui-icon-note{background-position:-64px -96px}.aui-icon-mail-closed{background-position:-80px -96px}.aui-icon-mail-open{background-position:-96px -96px}.aui-icon-suitcase{background-position:-112px -96px}.aui-icon-comment{background-position:-128px -96px}.aui-icon-person{background-position:-144px -96px}.aui-icon-print{background-position:-160px -96px}.aui-icon-trash{background-position:-176px -96px}.aui-icon-locked{background-position:-192px -96px}.aui-icon-unlocked{background-position:-208px -96px}.aui-icon-bookmark{background-position:-224px -96px}.aui-icon-tag{background-position:-240px -96px}.aui-icon-home{background-position:0 -112px}.aui-icon-flag{background-position:-16px -112px}.aui-icon-calendar{background-position:-32px -112px}.aui-icon-cart{background-position:-48px -112px}.aui-icon-pencil{background-position:-64px -112px}.aui-icon-clock{background-position:-80px -112px}.aui-icon-disk{background-position:-96px -112px}.aui-icon-calculator{background-position:-112px -112px}.aui-icon-zoomin{background-position:-128px -112px}.aui-icon-zoomout{background-position:-144px -112px}.aui-icon-search{background-position:-160px -112px}.aui-icon-wrench{background-position:-176px -112px}.aui-icon-gear{background-position:-192px -112px}.aui-icon-heart{background-position:-208px -112px}.aui-icon-star{background-position:-224px -112px}.aui-icon-link{background-position:-240px -112px}.aui-icon-cancel{background-position:0 -128px}.aui-icon-plus{background-position:-16px -128px}.aui-icon-plusthick{background-position:-32px -128px}.aui-icon-minus{background-position:-48px -128px}.aui-icon-minusthick{background-position:-64px -128px}.aui-icon-close{background-position:-80px -128px}.aui-icon-closethick{background-position:-96px -128px}.aui-icon-key{background-position:-112px -128px}.aui-icon-lightbulb{background-position:-128px -128px}.aui-icon-scissors{background-position:-144px -128px}.aui-icon-clipboard{background-position:-160px -128px}.aui-icon-copy{background-position:-176px -128px}.aui-icon-contact{background-position:-192px -128px}.aui-icon-image{background-position:-208px -128px}.aui-icon-video{background-position:-224px -128px}.aui-icon-script{background-position:-240px -128px}.aui-icon-alert{background-position:0 -144px}.aui-icon-info{background-position:-16px -144px}.aui-icon-notice{background-position:-32px -144px}.aui-icon-help{background-position:-48px -144px}.aui-icon-check{background-position:-64px -144px}.aui-icon-bullet{background-position:-80px -144px}.aui-icon-radio-off{background-position:-96px -144px}.aui-icon-radio-on{background-position:-112px -144px}.aui-icon-pin-l{background-position:-128px -144px}.aui-icon-pin-b{background-position:-144px -144px}.aui-icon-play{background-position:0 -160px}.aui-icon-pause{background-position:-16px -160px}.aui-icon-seek-next{background-position:-32px -160px}.aui-icon-seek-prev{background-position:-48px -160px}.aui-icon-seek-end{background-position:-64px -160px}.aui-icon-seek-first{background-position:-80px -160px}.aui-icon-stop{background-position:-96px -160px}.aui-icon-eject{background-position:-112px -160px}.aui-icon-volume-off{background-position:-128px -160px}.aui-icon-volume-on{background-position:-144px -160px}.aui-icon-power{background-position:0 -176px}.aui-icon-signal-diag{background-position:-16px -176px}.aui-icon-signal{background-position:-32px -176px}.aui-icon-battery-0{background-position:-48px -176px}.aui-icon-battery-1{background-position:-64px -176px}.aui-icon-battery-2{background-position:-80px -176px}.aui-icon-battery-3{background-position:-96px -176px}.aui-icon-circle-plus{background-position:0 -192px}.aui-icon-circle-minus{background-position:-16px -192px}.aui-icon-circle-close{background-position:-32px -192px}.aui-icon-circle-triangle-r{background-position:-48px -192px}.aui-icon-circle-triangle-b{background-position:-64px -192px}.aui-icon-circle-triangle-l{background-position:-80px -192px}.aui-icon-circle-triangle-t{background-position:-96px -192px}.aui-icon-circle-arrow-r{background-position:-112px -192px}.aui-icon-circle-arrow-b{background-position:-128px -192px}.aui-icon-circle-arrow-l{background-position:-144px -192px}.aui-icon-circle-arrow-t{background-position:-160px -192px}.aui-icon-circle-zoomin{background-position:-176px -192px}.aui-icon-circle-zoomout{background-position:-192px -192px}.aui-icon-circle-check{background-position:-208px -192px}.aui-icon-circlesmall-plus{background-position:0 -208px}.aui-icon-circlesmall-minus{background-position:-16px -208px}.aui-icon-circlesmall-close{background-position:-32px -208px}.aui-icon-squaresmall-plus{background-position:-48px -208px}.aui-icon-squaresmall-minus{background-position:-64px -208px}.aui-icon-squaresmall-close{background-position:-80px -208px}.aui-icon-grip-dotted-vertical{background-position:0 -224px}.aui-icon-grip-dotted-horizontal{background-position:-16px -224px}.aui-icon-grip-solid-vertical{background-position:-32px -224px}.aui-icon-grip-solid-horizontal{background-position:-48px -224px}.aui-icon-gripsmall-diagonal-br{background-position:-64px -224px}.aui-icon-grip-diagonal-br{background-position:-80px -224px}.aui-icon-loading{background:url(../images/loading_indicator.gif) no-repeat 0 0;width:16px;height:16px}.yui3-widget-content{overflow:hidden}.yui3-widget-close{float:right}.yui3-widget-stacked .yui3-widget-shim{border:0;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:-1;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0);_width:0;_height:0}.yui3-widget-content-expanded{-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%} +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote{margin:0;padding:0}fieldset,img{border-width:0}address,caption,cite,code,dfn,var{font-style:normal;font-weight:normal}caption,th{text-align:left}q:before,q:after{content:''}abbr,acronym{border:0;border-bottom:1px dotted #000;cursor:help}blockquote,ul,ol,dl{margin:1em}ol,ul,dl{margin-left:2em}ol{list-style:decimal outside}ul{list-style:disc outside}ul ul{list-style-type:circle}ol ol{list-style-type:upper-roman}dl dd{margin-left:1em}th{font-weight:bold}caption{margin-bottom:.5em;text-align:center}p{margin-bottom:1em}h1{font-size:1.8em}h2{font-size:1.6em}h3{font-size:1.4em}h1,h2,h3{margin:1em 0}h4,h5,h6{font-size:1.1em}h1,h2,h3,h4,h5,h6,strong{font-weight:bold}b,strong{font-weight:bold}i,em{font-style:italic}code,pre{font-family:"Courier New",Courier,monospace}pre{white-space:pre}.important{font-weight:bold}hr,.separator{border-top:1px dotted #bfbfbf}.aui-state-default,.aui-state-active,.aui-state-hover{background:#eee;border:1px solid #ccc;border-color:#bbb #999 #999 #bbb}.aui-state-active{background:#efefef;border-color:#333}.aui-state-hover{background:#ddd;border-color:#999 #bbb #bbb #999;cursor:pointer}.aui-state-disabled{cursor:default!important}.aui-html-template{display:none}.aui-basecelleditor-hidden,.aui-datecelleditor-hidden,.aui-dropdowncelleditor-hidden,.aui-textcelleditor-hidden,.aui-textareacelleditor-hidden,.aui-checkboxcelleditor-hidden,.aui-radiocelleditor-hidden,.aui-helper-hidden{display:none!important}.aui-helper-hidden-accessible,.aui-overlay-hidden,.aui-overlaycontext-hidden,.aui-overlaymask-hidden,.aui-calendar-hidden,.aui-date-picker-hidden,.aui-datepicker-hidden,.aui-colorpicker-hidden,.aui-tooltip-hidden,.aui-image-viewer-hidden,.aui-image-gallery-hidden{clip:rect(0 0 0 0)!important;position:absolute!important;-webkit-transform:scale(0);-webkit-transform-origin:0 0;*position:fixed!important;_position:absolute!important}.aui-helper-force-offset{display:block!important;position:absolute!important;visibility:hidden!important}.aui-helper-reset{margin:0;padding:0;outline:0;text-decoration:none;font-size:100%;list-style:none;border:0}.aui-helper-clearfix:after{clear:both;content:"";display:block;height:0}.aui-helper-clearfix{zoom:1}.aui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0)}.aui-helper-unselectable,.aui-helper-unselectable *{-moz-user-select:none;-khtml-user-select:none}.aui-helper-scroll-lock{height:100%;margin:0;overflow:hidden;width:100%}body{background-color:#FFF;font:62.5%/1.6em Arial,Helvetica,Verdana,sans-serif}.aui-layout{width:100%}.ie6 .aui-layout-content,.ie7 .aui-layout-content{display:block}.ltr .aui-column,.rtl .aui-column-last{float:left}.rtl .aui-column,.ltr .aui-column-last{float:right}.ltr .aui-column-last{margin-left:-5px}.rtl .aui-column-last{margin-right:-5px}.aui-layout-content:after{clear:both;content:"";display:block;height:0}.aui-layout-content{zoom:1}.aui-w1-16{width:6.25%}.aui-w1-12{width:8.334%}.aui-w1-10,.aui-w10{width:10%}.aui-w1-9{width:11.112%}.aui-w1-8{width:12.5%}.aui-w1-7{width:14.286%}.aui-w15{width:15%}.aui-w1-6{width:16.667%}.aui-w3-16{width:18.75%}.aui-w1-5,.aui-w20{width:20%}.aui-w2-9{width:22.223%}.aui-w1-4,.aui-w25{width:25%}.aui-w2-7{width:28.572%}.aui-w3-10,.aui-w30{width:30%}.aui-w5-16{width:31.25%}.aui-w1-3,.aui-w33{width:33.334%}.aui-w35{width:35%}.aui-w3-8{width:37.5%}.aui-w38{width:38.2%}.aui-w2-5,.aui-w40{width:40%}.aui-w5-12{width:41.667%}.aui-w7-16{width:43.75%}.aui-w4-9{width:44.445%}.aui-w45{width:45%}.aui-w3-7{width:42.858%}.aui-w1-2,.aui-w50{width:50%}.aui-w55{width:55%}.aui-w5-9{width:55.556%}.aui-w9-16{width:56.25%}.aui-w4-7{width:57.143%}.aui-w7-12{width:58.334%}.aui-w3-5,.aui-w60{width:60%}.aui-w5-8{width:62.5%}.aui-w62{width:61.8%}.aui-w65{width:65%}.aui-w2-3,.aui-w66{width:66.667%}.aui-w11-16{width:68.75%}.aui-w7-10,.aui-w70{width:70%}.aui-w5-7{width:71.429%}.aui-w3-4,.aui-w75{width:75%}.aui-w7-9{width:77.778%}.aui-w4-5,.aui-w80{width:80%}.aui-w13-16{width:81.25%}.aui-w5-6{width:83.334%}.aui-w85{width:85%}.aui-w6-7{width:85.715%}.aui-w7-8{width:87.5%}.aui-w9-10,.aui-w90{width:90%}.aui-w11-12{width:91.667%}.aui-w15-16{width:93.75%}.aui-w95{width:95%}.aui-w100{width:100%}.webkit .aui-w1-12{width:8.345%}.webkit .aui-w11-12{width:91.675%}.webkit .aui-w1-6{width:16.675%}.webkit .aui-w5-6{width:83.345%}.webkit .aui-w5-12{width:41.675%}.webkit .aui-w7-12{width:58.345%}.webkit .aui-w1-3,.webkit .aui-w33{width:33.345%}.webkit .aui-w2-3,.webkit .aui-w66{width:66.675%}.aui-column-content,.aui-column-content-center{padding:0 .5em}.ltr .aui-column-content-first,.rtl .aui-column-content-last{padding-left:0}.rtl .aui-column-content-first,.ltr .aui-column-content-last{padding-right:0}.ie6.ltr .aui-column-first,.ie6.ltr .aui-column-content-first,.ie6.rtl .aui-column-last,.ie6.rtl .aui-column-content-last{display:inline}.ie6 .aui-layout-content .aui-column-content-center,.ie6 .aui-layout-content .aui-column-content-first,.ie6 .aui-layout-content .aui-column-content-last{word-wrap:break-word;overflow:hidden}.ie body{position:relative}.ie5 body,.ie6 body{position:static}.floatbox{overflow:hidden}.aui-fieldset-legend{font-size:1.2em;font-weight:bold}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input,.aui-field-labels-inline .aui-field-hint{float:left}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input-text{width:45%}.aui-field-labels-inline .aui-field-label{margin:.3em 2% 0 0}.aui-field-labels-right .aui-field-label{text-align:right}.aui-field-labels-inline .aui-field-hint{display:block;float:none;clear:both;margin-left:47%}.aui-field-label,.aui-field-labels-top .aui-field-label{display:block;float:none;text-align:left;margin:0;width:auto}.aui-field-input,.aui-field-labels-top .aui-field-input{float:none;width:auto} +.aui-field-hint,.aui-field-labels-top .aui-field-hint{line-height:1;clear:none;float:right;width:45%;margin:0}.aui-field-hint-icon{float:left}.aui-field-inline{display:inline-block;vertical-align:middle}.aui-field-label-inline{display:inline-block;margin:.4em .4em 0 0}.aui-field-inline .aui-field-content,.aui-field-inline .aui-field-label{display:inline-block}.aui-field-inline .aui-field-label{vertical-align:middle}.aui-field-group{float:left;width:53%}.aui-choice-label{line-height:1;width:89%}.aui-field-input-choice{display:inline-block;margin:0 .4em 0 0;vertical-align:middle}.aui-choice-label,.aui-field-input-choice{float:left}.aui-field-row{display:block;clear:both}.aui-field-row:after{clear:both;content:"";display:block;height:0}.aui-field-row{zoom:1}.aui-button-holder{overflow:hidden;display:block;clear:both}.aui-button-input{margin:0;line-height:1.3;text-decoration:none;cursor:pointer;font-weight:bold;padding:5px 10px 6px 7px}.aui-button-input{*padding:4px 10px 3px 7px}.aui-field-content:after,.aui-button-holder:after{clear:both;content:" ";display:block;height:0;overflow:hidden}.aui-field-content,.aui-button-holder{display:inline-block}/*\*/* html .aui-field-content,* html .aui-button-holder{height:1%}.aui-field-content,.aui-button-holder{display:block}/**/.aui-field-label{font-weight:bold}.aui-choice-label{font-weight:normal}.aui-field-hint{color:#777;font-size:.9em}.aui-choice-label,.aui-field-hint{line-height:1.2}.aui-field-element-left{display:inline-block;vertical-align:middle}.aui-field.aui-has-error .aui-field-content{border-bottom:1px solid #ef4a4a;background-color:#ff9f9f}.aui-field.aui-has-warn .aui-field-content{border-bottom:1px solid #ffc45f;background-color:#fffabf}.aui-field .aui-message-holder{color:#f00;display:block;font-weight:bold}.aui-status-failure{border:1px solid #ef4a4a}.aui-icon{background-repeat:no-repeat;background:url(../images/icon_sprite.png) no-repeat 0 0;display:block;height:16px;overflow:hidden;text-indent:-99999em;width:16px}.aui-icon-carat-1-t{background-position:0 0}.aui-icon-carat-1-tr{background-position:-16px 0}.aui-icon-carat-1-r{background-position:-32px 0}.aui-icon-carat-1-br{background-position:-48px 0}.aui-icon-carat-1-b{background-position:-64px 0}.aui-icon-carat-1-bl{background-position:-80px 0}.aui-icon-carat-1-l{background-position:-96px 0}.aui-icon-carat-1-tl{background-position:-112px 0}.aui-icon-carat-2-t-b{background-position:-128px 0}.aui-icon-carat-2-r-l{background-position:-144px 0}.aui-icon-triangle-1-t{background-position:0 -16px}.aui-icon-triangle-1-tr{background-position:-16px -16px}.aui-icon-triangle-1-r{background-position:-32px -16px}.aui-icon-triangle-1-br{background-position:-48px -16px}.aui-icon-triangle-1-b{background-position:-64px -16px}.aui-icon-triangle-1-bl{background-position:-80px -16px}.aui-icon-triangle-1-l{background-position:-96px -16px}.aui-icon-triangle-1-tl{background-position:-112px -16px}.aui-icon-triangle-2-t-b{background-position:-128px -16px}.aui-icon-triangle-2-r-l{background-position:-144px -16px}.aui-icon-arrow-1-t{background-position:0 -32px}.aui-icon-arrow-1-tr{background-position:-16px -32px}.aui-icon-arrow-1-r{background-position:-32px -32px}.aui-icon-arrow-1-br{background-position:-48px -32px}.aui-icon-arrow-1-b{background-position:-64px -32px}.aui-icon-arrow-1-bl{background-position:-80px -32px}.aui-icon-arrow-1-l{background-position:-96px -32px}.aui-icon-arrow-1-tl{background-position:-112px -32px}.aui-icon-arrow-2-t-b{background-position:-128px -32px}.aui-icon-arrow-2-tr-bl{background-position:-144px -32px}.aui-icon-arrow-2-r-l{background-position:-160px -32px}.aui-icon-arrow-2-br-tl{background-position:-176px -32px}.aui-icon-arrowstop-1-t{background-position:-192px -32px}.aui-icon-arrowstop-1-r{background-position:-208px -32px}.aui-icon-arrowstop-1-b{background-position:-224px -32px}.aui-icon-arrowstop-1-l{background-position:-240px -32px}.aui-icon-arrowthick-1-t{background-position:0 -48px}.aui-icon-arrowthick-1-tr{background-position:-16px -48px}.aui-icon-arrowthick-1-r{background-position:-32px -48px}.aui-icon-arrowthick-1-br{background-position:-48px -48px}.aui-icon-arrowthick-1-b{background-position:-64px -48px}.aui-icon-arrowthick-1-bl{background-position:-80px -48px}.aui-icon-arrowthick-1-l{background-position:-96px -48px}.aui-icon-arrowthick-1-tl{background-position:-112px -48px}.aui-icon-arrowthick-2-t-b{background-position:-128px -48px}.aui-icon-arrowthick-2-tr-bl{background-position:-144px -48px}.aui-icon-arrowthick-2-r-l{background-position:-160px -48px}.aui-icon-arrowthick-2-br-tl{background-position:-176px -48px}.aui-icon-arrowthickstop-1-t{background-position:-192px -48px}.aui-icon-arrowthickstop-1-r{background-position:-208px -48px}.aui-icon-arrowthickstop-1-b{background-position:-224px -48px}.aui-icon-arrowthickstop-1-l{background-position:-240px -48px}.aui-icon-arrowreturnthick-1-l{background-position:0 -64px}.aui-icon-arrowreturnthick-1-t{background-position:-16px -64px}.aui-icon-arrowreturnthick-1-r{background-position:-32px -64px}.aui-icon-arrowreturnthick-1-b{background-position:-48px -64px}.aui-icon-arrowreturn-1-l{background-position:-64px -64px}.aui-icon-arrowreturn-1-t{background-position:-80px -64px}.aui-icon-arrowreturn-1-r{background-position:-96px -64px}.aui-icon-arrowreturn-1-b{background-position:-112px -64px}.aui-icon-arrowrefresh-1-l{background-position:-128px -64px}.aui-icon-arrowrefresh-1-t{background-position:-144px -64px}.aui-icon-arrowrefresh-1-r{background-position:-160px -64px}.aui-icon-arrowrefresh-1-b{background-position:-176px -64px}.aui-icon-arrow-4{background-position:0 -80px}.aui-icon-arrow-4-diag{background-position:-16px -80px}.aui-icon-extlink{background-position:-32px -80px}.aui-icon-newwin{background-position:-48px -80px}.aui-icon-refresh{background-position:-64px -80px}.aui-icon-shuffle{background-position:-80px -80px} +.aui-icon-transfer-r-l{background-position:-96px -80px}.aui-icon-transferthick-r-l{background-position:-112px -80px}.aui-icon-folder-collapsed{background-position:0 -96px}.aui-icon-folder-open{background-position:-16px -96px}.aui-icon-document{background-position:-32px -96px}.aui-icon-document-b{background-position:-48px -96px}.aui-icon-note{background-position:-64px -96px}.aui-icon-mail-closed{background-position:-80px -96px}.aui-icon-mail-open{background-position:-96px -96px}.aui-icon-suitcase{background-position:-112px -96px}.aui-icon-comment{background-position:-128px -96px}.aui-icon-person{background-position:-144px -96px}.aui-icon-print{background-position:-160px -96px}.aui-icon-trash{background-position:-176px -96px}.aui-icon-locked{background-position:-192px -96px}.aui-icon-unlocked{background-position:-208px -96px}.aui-icon-bookmark{background-position:-224px -96px}.aui-icon-tag{background-position:-240px -96px}.aui-icon-home{background-position:0 -112px}.aui-icon-flag{background-position:-16px -112px}.aui-icon-calendar{background-position:-32px -112px}.aui-icon-cart{background-position:-48px -112px}.aui-icon-pencil{background-position:-64px -112px}.aui-icon-clock{background-position:-80px -112px}.aui-icon-disk{background-position:-96px -112px}.aui-icon-calculator{background-position:-112px -112px}.aui-icon-zoomin{background-position:-128px -112px}.aui-icon-zoomout{background-position:-144px -112px}.aui-icon-search{background-position:-160px -112px}.aui-icon-wrench{background-position:-176px -112px}.aui-icon-gear{background-position:-192px -112px}.aui-icon-heart{background-position:-208px -112px}.aui-icon-star{background-position:-224px -112px}.aui-icon-link{background-position:-240px -112px}.aui-icon-cancel{background-position:0 -128px}.aui-icon-plus{background-position:-16px -128px}.aui-icon-plusthick{background-position:-32px -128px}.aui-icon-minus{background-position:-48px -128px}.aui-icon-minusthick{background-position:-64px -128px}.aui-icon-close{background-position:-80px -128px}.aui-icon-closethick{background-position:-96px -128px}.aui-icon-key{background-position:-112px -128px}.aui-icon-lightbulb{background-position:-128px -128px}.aui-icon-scissors{background-position:-144px -128px}.aui-icon-clipboard{background-position:-160px -128px}.aui-icon-copy{background-position:-176px -128px}.aui-icon-contact{background-position:-192px -128px}.aui-icon-image{background-position:-208px -128px}.aui-icon-video{background-position:-224px -128px}.aui-icon-script{background-position:-240px -128px}.aui-icon-alert{background-position:0 -144px}.aui-icon-info{background-position:-16px -144px}.aui-icon-notice{background-position:-32px -144px}.aui-icon-help{background-position:-48px -144px}.aui-icon-check{background-position:-64px -144px}.aui-icon-bullet{background-position:-80px -144px}.aui-icon-radio-off{background-position:-96px -144px}.aui-icon-radio-on{background-position:-112px -144px}.aui-icon-pin-l{background-position:-128px -144px}.aui-icon-pin-b{background-position:-144px -144px}.aui-icon-play{background-position:0 -160px}.aui-icon-pause{background-position:-16px -160px}.aui-icon-seek-next{background-position:-32px -160px}.aui-icon-seek-prev{background-position:-48px -160px}.aui-icon-seek-end{background-position:-64px -160px}.aui-icon-seek-first{background-position:-80px -160px}.aui-icon-stop{background-position:-96px -160px}.aui-icon-eject{background-position:-112px -160px}.aui-icon-volume-off{background-position:-128px -160px}.aui-icon-volume-on{background-position:-144px -160px}.aui-icon-power{background-position:0 -176px}.aui-icon-signal-diag{background-position:-16px -176px}.aui-icon-signal{background-position:-32px -176px}.aui-icon-battery-0{background-position:-48px -176px}.aui-icon-battery-1{background-position:-64px -176px}.aui-icon-battery-2{background-position:-80px -176px}.aui-icon-battery-3{background-position:-96px -176px}.aui-icon-circle-plus{background-position:0 -192px}.aui-icon-circle-minus{background-position:-16px -192px}.aui-icon-circle-close{background-position:-32px -192px}.aui-icon-circle-triangle-r{background-position:-48px -192px}.aui-icon-circle-triangle-b{background-position:-64px -192px}.aui-icon-circle-triangle-l{background-position:-80px -192px}.aui-icon-circle-triangle-t{background-position:-96px -192px}.aui-icon-circle-arrow-r{background-position:-112px -192px}.aui-icon-circle-arrow-b{background-position:-128px -192px}.aui-icon-circle-arrow-l{background-position:-144px -192px}.aui-icon-circle-arrow-t{background-position:-160px -192px}.aui-icon-circle-zoomin{background-position:-176px -192px}.aui-icon-circle-zoomout{background-position:-192px -192px}.aui-icon-circle-check{background-position:-208px -192px}.aui-icon-circlesmall-plus{background-position:0 -208px}.aui-icon-circlesmall-minus{background-position:-16px -208px}.aui-icon-circlesmall-close{background-position:-32px -208px}.aui-icon-squaresmall-plus{background-position:-48px -208px}.aui-icon-squaresmall-minus{background-position:-64px -208px}.aui-icon-squaresmall-close{background-position:-80px -208px}.aui-icon-grip-dotted-vertical{background-position:0 -224px}.aui-icon-grip-dotted-horizontal{background-position:-16px -224px}.aui-icon-grip-solid-vertical{background-position:-32px -224px}.aui-icon-grip-solid-horizontal{background-position:-48px -224px}.aui-icon-gripsmall-diagonal-br{background-position:-64px -224px}.aui-icon-grip-diagonal-br{background-position:-80px -224px}.aui-icon-loading{background:url(../images/loading_indicator.gif) no-repeat 0 0;width:16px;height:16px}.yui3-widget-content{overflow:hidden}.yui3-widget-close{float:right}.yui3-widget-stacked .yui3-widget-shim{border:0;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:-1;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0);_width:0;_height:0}.yui3-widget-content-expanded{-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%} .aui-overlay{position:absolute}.yui3-widget-tmp-forcesize{overflow:hidden!important}.yui3-widget-stacked .yui3-widget-shim{border-width:0;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:-1;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0);_width:0;_height:0}.aui-autocomplete-results-content,.aui-calendar-content,.aui-colorpicker-content,.aui-dialog-content,.aui-overlaycontext-content{background:#fff}.aui-dialog-content,.aui-date-picker-content,.aui-overlaycontextpanel-content,.aui-tooltip-content,.aui-colorpicker-content,.aui-tree-drag-helper-content{-moz-box-shadow:4px 4px 14px #777;-webkit-box-shadow:4px 4px 14px #777;box-shadow:4px 4px 14px #777}.aui-tab-active .aui-tab-content{-moz-box-shadow:0 0 15px #575757 inset,0px 0 5px #222 inset;-webkit-box-shadow:0 0 15px #575757 inset,0px 0 5px #222 inset;box-shadow:0 0 15px #575757 inset,0px 0 5px #222 inset}.aui-null-selector{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.aui-state-default,.aui-state-active,.aui-state-hover,.aui-calendar-content,.aui-colorpicker-content,.aui-colorpicker-panel-content,.aui-image-gallery-paginator .aui-image-gallery-paginator-thumb,.aui-image-viewer-loading .aui-image-viewer-bd,.aui-loadingmask-message,.aui-loadingmask-message-content,.aui-progress-bar-content,.aui-progress-bar-status,.aui-form-builder-field,.aui-form-builder-default-message,.aui-tabview-list{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-carousel menu{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.aui-carousel menu a{-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.aui-textboxlistentry,.aui-textboxlistentry-close{-moz-border-radius:14px;-webkit-border-radius:14px;border-radius:14px}.aui-dialog .yui3-widget-hd,.aui-editable-hover,.aui-tab,.aui-overlaycontextpanel-pointer.aui-state-default,.aui-toolbar-item-content,.aui-toolbar-item,.aui-toolbar-vertical .aui-toolbar-item{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.aui-toolbar-first{-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.aui-toolbar-last{-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.aui-image-viewer-bd,.aui-toolbar-vertical .aui-toolbar-first{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px}.aui-image-viewer-bd,.aui-toolbar-vertical .aui-toolbar-first{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.aui-image-viewer-content .yui3-widget-ft,.aui-toolbar-vertical .aui-toolbar-last{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.aui-image-viewer-content .yui3-widget-ft,.aui-toolbar-vertical .aui-toolbar-last{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px} \ No newline at end of file diff --git a/build/aui-skin-base/css/aui-skin-base.css b/build/aui-skin-base/css/aui-skin-base.css index 17ab46b254a..da4e50e17c1 100644 --- a/build/aui-skin-base/css/aui-skin-base.css +++ b/build/aui-skin-base/css/aui-skin-base.css @@ -1,21 +1,15 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote{ margin: 0; padding: 0; } -table { - border-collapse: collapse; - border-spacing: 0; - clear: both; -} - fieldset, img { border-width: 0; } -address, caption, cite, code, dfn, th, var { +address, caption, cite, code, dfn, var { font-style: normal; font-weight: normal; } diff --git a/build/aui-skin-base/css/reset.css b/build/aui-skin-base/css/reset.css index c7419220556..173361413f3 100644 --- a/build/aui-skin-base/css/reset.css +++ b/build/aui-skin-base/css/reset.css @@ -1,21 +1,15 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote{ margin: 0; padding: 0; } -table { - border-collapse: collapse; - border-spacing: 0; - clear: both; -} - fieldset, img { border-width: 0; } -address, caption, cite, code, dfn, th, var { +address, caption, cite, code, dfn, var { font-style: normal; font-weight: normal; } From 89a8b750cd86deb84560b11f4c077305eff142e2 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Tue, 23 Aug 2011 14:54:55 -0700 Subject: [PATCH 117/132] AUI-491 - Source formatting --- build/aui-skin-base/css/aui-skin-base.css | 2 +- build/aui-skin-base/css/reset.css | 2 +- .../aui-skin-classic/css/aui-skin-classic-all-min.css | 6 +++--- build/aui-skin-classic/css/aui-skin-classic-all.css | 10 ++-------- build/aui-skin-classic/css/reset.css | 10 ++-------- src/aui-skin-base/css/reset.css | 2 +- 6 files changed, 10 insertions(+), 22 deletions(-) diff --git a/build/aui-skin-base/css/aui-skin-base.css b/build/aui-skin-base/css/aui-skin-base.css index da4e50e17c1..59fe161e492 100644 --- a/build/aui-skin-base/css/aui-skin-base.css +++ b/build/aui-skin-base/css/aui-skin-base.css @@ -1,6 +1,6 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote{ +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote { margin: 0; padding: 0; } diff --git a/build/aui-skin-base/css/reset.css b/build/aui-skin-base/css/reset.css index 173361413f3..81c8f846507 100644 --- a/build/aui-skin-base/css/reset.css +++ b/build/aui-skin-base/css/reset.css @@ -1,6 +1,6 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote{ +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote { margin: 0; padding: 0; } diff --git a/build/aui-skin-classic/css/aui-skin-classic-all-min.css b/build/aui-skin-classic/css/aui-skin-classic-all-min.css index 631e6f4e0d2..15d13719880 100644 --- a/build/aui-skin-classic/css/aui-skin-classic-all-min.css +++ b/build/aui-skin-classic/css/aui-skin-classic-all-min.css @@ -1,4 +1,4 @@ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0;clear:both}fieldset,img{border-width:0}address,caption,cite,code,dfn,th,var{font-style:normal;font-weight:normal}caption,th{text-align:left}q:before,q:after{content:''}abbr,acronym{border:0;border-bottom:1px dotted #000;cursor:help}blockquote,ul,ol,dl{margin:1em}ol,ul,dl{margin-left:2em}ol{list-style:decimal outside}ul{list-style:disc outside}ul ul{list-style-type:circle}ol ol{list-style-type:upper-roman}dl dd{margin-left:1em}th{font-weight:bold}caption{margin-bottom:.5em;text-align:center}p{margin-bottom:1em}h1{font-size:1.8em}h2{font-size:1.6em}h3{font-size:1.4em}h1,h2,h3{margin:1em 0}h4,h5,h6{font-size:1.1em}h1,h2,h3,h4,h5,h6,strong{font-weight:bold}b,strong{font-weight:bold}i,em{font-style:italic}code,pre{font-family:"Courier New",Courier,monospace}pre{white-space:pre}.important{font-weight:bold}hr,.separator{border-top:1px dotted #bfbfbf}.aui-state-default,.aui-state-active,.aui-state-hover{background:#eee;border:1px solid #ccc;border-color:#bbb #999 #999 #bbb}.aui-state-active{background:#efefef;border-color:#333}.aui-state-hover{background:#ddd;border-color:#999 #bbb #bbb #999;cursor:pointer}.aui-state-disabled{cursor:default!important}.aui-html-template{display:none}.aui-basecelleditor-hidden,.aui-datecelleditor-hidden,.aui-dropdowncelleditor-hidden,.aui-textcelleditor-hidden,.aui-textareacelleditor-hidden,.aui-checkboxcelleditor-hidden,.aui-radiocelleditor-hidden,.aui-helper-hidden{display:none!important}.aui-helper-hidden-accessible,.aui-overlay-hidden,.aui-overlaycontext-hidden,.aui-overlaymask-hidden,.aui-calendar-hidden,.aui-date-picker-hidden,.aui-datepicker-hidden,.aui-colorpicker-hidden,.aui-tooltip-hidden,.aui-image-viewer-hidden,.aui-image-gallery-hidden{clip:rect(0 0 0 0)!important;position:absolute!important;-webkit-transform:scale(0);-webkit-transform-origin:0 0;*position:fixed!important;_position:absolute!important}.aui-helper-force-offset{display:block!important;position:absolute!important;visibility:hidden!important}.aui-helper-reset{margin:0;padding:0;outline:0;text-decoration:none;font-size:100%;list-style:none;border:0}.aui-helper-clearfix:after{clear:both;content:"";display:block;height:0}.aui-helper-clearfix{zoom:1}.aui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0)}.aui-helper-unselectable,.aui-helper-unselectable *{-moz-user-select:none;-khtml-user-select:none}.aui-helper-scroll-lock{height:100%;margin:0;overflow:hidden;width:100%}body{background-color:#FFF;font:62.5%/1.6em Arial,Helvetica,Verdana,sans-serif}.aui-layout{width:100%}.ie6 .aui-layout-content,.ie7 .aui-layout-content{display:block}.ltr .aui-column,.rtl .aui-column-last{float:left}.rtl .aui-column,.ltr .aui-column-last{float:right}.ltr .aui-column-last{margin-left:-5px}.rtl .aui-column-last{margin-right:-5px}.aui-layout-content:after{clear:both;content:"";display:block;height:0}.aui-layout-content{zoom:1}.aui-w1-16{width:6.25%}.aui-w1-12{width:8.334%}.aui-w1-10,.aui-w10{width:10%}.aui-w1-9{width:11.112%}.aui-w1-8{width:12.5%}.aui-w1-7{width:14.286%}.aui-w15{width:15%}.aui-w1-6{width:16.667%}.aui-w3-16{width:18.75%}.aui-w1-5,.aui-w20{width:20%}.aui-w2-9{width:22.223%}.aui-w1-4,.aui-w25{width:25%}.aui-w2-7{width:28.572%}.aui-w3-10,.aui-w30{width:30%}.aui-w5-16{width:31.25%}.aui-w1-3,.aui-w33{width:33.334%}.aui-w35{width:35%}.aui-w3-8{width:37.5%}.aui-w38{width:38.2%}.aui-w2-5,.aui-w40{width:40%}.aui-w5-12{width:41.667%}.aui-w7-16{width:43.75%}.aui-w4-9{width:44.445%}.aui-w45{width:45%}.aui-w3-7{width:42.858%}.aui-w1-2,.aui-w50{width:50%}.aui-w55{width:55%}.aui-w5-9{width:55.556%}.aui-w9-16{width:56.25%}.aui-w4-7{width:57.143%}.aui-w7-12{width:58.334%}.aui-w3-5,.aui-w60{width:60%}.aui-w5-8{width:62.5%}.aui-w62{width:61.8%}.aui-w65{width:65%}.aui-w2-3,.aui-w66{width:66.667%}.aui-w11-16{width:68.75%}.aui-w7-10,.aui-w70{width:70%}.aui-w5-7{width:71.429%}.aui-w3-4,.aui-w75{width:75%}.aui-w7-9{width:77.778%}.aui-w4-5,.aui-w80{width:80%}.aui-w13-16{width:81.25%}.aui-w5-6{width:83.334%}.aui-w85{width:85%}.aui-w6-7{width:85.715%}.aui-w7-8{width:87.5%}.aui-w9-10,.aui-w90{width:90%}.aui-w11-12{width:91.667%}.aui-w15-16{width:93.75%}.aui-w95{width:95%}.aui-w100{width:100%}.webkit .aui-w1-12{width:8.345%}.webkit .aui-w11-12{width:91.675%}.webkit .aui-w1-6{width:16.675%}.webkit .aui-w5-6{width:83.345%}.webkit .aui-w5-12{width:41.675%}.webkit .aui-w7-12{width:58.345%}.webkit .aui-w1-3,.webkit .aui-w33{width:33.345%}.webkit .aui-w2-3,.webkit .aui-w66{width:66.675%}.aui-column-content,.aui-column-content-center{padding:0 .5em}.ltr .aui-column-content-first,.rtl .aui-column-content-last{padding-left:0}.rtl .aui-column-content-first,.ltr .aui-column-content-last{padding-right:0}.ie6.ltr .aui-column-first,.ie6.ltr .aui-column-content-first,.ie6.rtl .aui-column-last,.ie6.rtl .aui-column-content-last{display:inline}.ie6 .aui-layout-content .aui-column-content-center,.ie6 .aui-layout-content .aui-column-content-first,.ie6 .aui-layout-content .aui-column-content-last{word-wrap:break-word;overflow:hidden}.ie body{position:relative}.ie5 body,.ie6 body{position:static}.floatbox{overflow:hidden}.aui-fieldset-legend{font-size:1.2em;font-weight:bold}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input,.aui-field-labels-inline .aui-field-hint{float:left}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input-text{width:45%}.aui-field-labels-inline .aui-field-label{margin:.3em 2% 0 0}.aui-field-labels-right .aui-field-label{text-align:right}.aui-field-labels-inline .aui-field-hint{display:block;float:none;clear:both;margin-left:47%}.aui-field-label,.aui-field-labels-top .aui-field-label{display:block;float:none;text-align:left;margin:0;width:auto} -.aui-field-input,.aui-field-labels-top .aui-field-input{float:none;width:auto}.aui-field-hint,.aui-field-labels-top .aui-field-hint{line-height:1;clear:none;float:right;width:45%;margin:0}.aui-field-hint-icon{float:left}.aui-field-inline{display:inline-block;vertical-align:middle}.aui-field-label-inline{display:inline-block;margin:.4em .4em 0 0}.aui-field-inline .aui-field-content,.aui-field-inline .aui-field-label{display:inline-block}.aui-field-inline .aui-field-label{vertical-align:middle}.aui-field-group{float:left;width:53%}.aui-choice-label{line-height:1;width:89%}.aui-field-input-choice{display:inline-block;margin:0 .4em 0 0;vertical-align:middle}.aui-choice-label,.aui-field-input-choice{float:left}.aui-field-row{display:block;clear:both}.aui-field-row:after{clear:both;content:"";display:block;height:0}.aui-field-row{zoom:1}.aui-button-holder{overflow:hidden;display:block;clear:both}.aui-button-input{margin:0;line-height:1.3;text-decoration:none;cursor:pointer;font-weight:bold;padding:5px 10px 6px 7px}.aui-button-input{*padding:4px 10px 3px 7px}.aui-field-content:after,.aui-button-holder:after{clear:both;content:" ";display:block;height:0;overflow:hidden}.aui-field-content,.aui-button-holder{display:inline-block}/*\*/* html .aui-field-content,* html .aui-button-holder{height:1%}.aui-field-content,.aui-button-holder{display:block}/**/.aui-field-label{font-weight:bold}.aui-choice-label{font-weight:normal}.aui-field-hint{color:#777;font-size:.9em}.aui-choice-label,.aui-field-hint{line-height:1.2}.aui-field-element-left{display:inline-block;vertical-align:middle}.aui-field.aui-has-error .aui-field-content{border-bottom:1px solid #ef4a4a;background-color:#ff9f9f}.aui-field.aui-has-warn .aui-field-content{border-bottom:1px solid #ffc45f;background-color:#fffabf}.aui-field .aui-message-holder{color:#f00;display:block;font-weight:bold}.aui-status-failure{border:1px solid #ef4a4a}.aui-icon{background-repeat:no-repeat;background:url(../images/icon_sprite.png) no-repeat 0 0;display:block;height:16px;overflow:hidden;text-indent:-99999em;width:16px}.aui-icon-carat-1-t{background-position:0 0}.aui-icon-carat-1-tr{background-position:-16px 0}.aui-icon-carat-1-r{background-position:-32px 0}.aui-icon-carat-1-br{background-position:-48px 0}.aui-icon-carat-1-b{background-position:-64px 0}.aui-icon-carat-1-bl{background-position:-80px 0}.aui-icon-carat-1-l{background-position:-96px 0}.aui-icon-carat-1-tl{background-position:-112px 0}.aui-icon-carat-2-t-b{background-position:-128px 0}.aui-icon-carat-2-r-l{background-position:-144px 0}.aui-icon-triangle-1-t{background-position:0 -16px}.aui-icon-triangle-1-tr{background-position:-16px -16px}.aui-icon-triangle-1-r{background-position:-32px -16px}.aui-icon-triangle-1-br{background-position:-48px -16px}.aui-icon-triangle-1-b{background-position:-64px -16px}.aui-icon-triangle-1-bl{background-position:-80px -16px}.aui-icon-triangle-1-l{background-position:-96px -16px}.aui-icon-triangle-1-tl{background-position:-112px -16px}.aui-icon-triangle-2-t-b{background-position:-128px -16px}.aui-icon-triangle-2-r-l{background-position:-144px -16px}.aui-icon-arrow-1-t{background-position:0 -32px}.aui-icon-arrow-1-tr{background-position:-16px -32px}.aui-icon-arrow-1-r{background-position:-32px -32px}.aui-icon-arrow-1-br{background-position:-48px -32px}.aui-icon-arrow-1-b{background-position:-64px -32px}.aui-icon-arrow-1-bl{background-position:-80px -32px}.aui-icon-arrow-1-l{background-position:-96px -32px}.aui-icon-arrow-1-tl{background-position:-112px -32px}.aui-icon-arrow-2-t-b{background-position:-128px -32px}.aui-icon-arrow-2-tr-bl{background-position:-144px -32px}.aui-icon-arrow-2-r-l{background-position:-160px -32px}.aui-icon-arrow-2-br-tl{background-position:-176px -32px}.aui-icon-arrowstop-1-t{background-position:-192px -32px}.aui-icon-arrowstop-1-r{background-position:-208px -32px}.aui-icon-arrowstop-1-b{background-position:-224px -32px}.aui-icon-arrowstop-1-l{background-position:-240px -32px}.aui-icon-arrowthick-1-t{background-position:0 -48px}.aui-icon-arrowthick-1-tr{background-position:-16px -48px}.aui-icon-arrowthick-1-r{background-position:-32px -48px}.aui-icon-arrowthick-1-br{background-position:-48px -48px}.aui-icon-arrowthick-1-b{background-position:-64px -48px}.aui-icon-arrowthick-1-bl{background-position:-80px -48px}.aui-icon-arrowthick-1-l{background-position:-96px -48px}.aui-icon-arrowthick-1-tl{background-position:-112px -48px}.aui-icon-arrowthick-2-t-b{background-position:-128px -48px}.aui-icon-arrowthick-2-tr-bl{background-position:-144px -48px}.aui-icon-arrowthick-2-r-l{background-position:-160px -48px}.aui-icon-arrowthick-2-br-tl{background-position:-176px -48px}.aui-icon-arrowthickstop-1-t{background-position:-192px -48px}.aui-icon-arrowthickstop-1-r{background-position:-208px -48px}.aui-icon-arrowthickstop-1-b{background-position:-224px -48px}.aui-icon-arrowthickstop-1-l{background-position:-240px -48px}.aui-icon-arrowreturnthick-1-l{background-position:0 -64px}.aui-icon-arrowreturnthick-1-t{background-position:-16px -64px}.aui-icon-arrowreturnthick-1-r{background-position:-32px -64px}.aui-icon-arrowreturnthick-1-b{background-position:-48px -64px}.aui-icon-arrowreturn-1-l{background-position:-64px -64px}.aui-icon-arrowreturn-1-t{background-position:-80px -64px}.aui-icon-arrowreturn-1-r{background-position:-96px -64px}.aui-icon-arrowreturn-1-b{background-position:-112px -64px}.aui-icon-arrowrefresh-1-l{background-position:-128px -64px}.aui-icon-arrowrefresh-1-t{background-position:-144px -64px}.aui-icon-arrowrefresh-1-r{background-position:-160px -64px}.aui-icon-arrowrefresh-1-b{background-position:-176px -64px}.aui-icon-arrow-4{background-position:0 -80px}.aui-icon-arrow-4-diag{background-position:-16px -80px}.aui-icon-extlink{background-position:-32px -80px}.aui-icon-newwin{background-position:-48px -80px}.aui-icon-refresh{background-position:-64px -80px} -.aui-icon-shuffle{background-position:-80px -80px}.aui-icon-transfer-r-l{background-position:-96px -80px}.aui-icon-transferthick-r-l{background-position:-112px -80px}.aui-icon-folder-collapsed{background-position:0 -96px}.aui-icon-folder-open{background-position:-16px -96px}.aui-icon-document{background-position:-32px -96px}.aui-icon-document-b{background-position:-48px -96px}.aui-icon-note{background-position:-64px -96px}.aui-icon-mail-closed{background-position:-80px -96px}.aui-icon-mail-open{background-position:-96px -96px}.aui-icon-suitcase{background-position:-112px -96px}.aui-icon-comment{background-position:-128px -96px}.aui-icon-person{background-position:-144px -96px}.aui-icon-print{background-position:-160px -96px}.aui-icon-trash{background-position:-176px -96px}.aui-icon-locked{background-position:-192px -96px}.aui-icon-unlocked{background-position:-208px -96px}.aui-icon-bookmark{background-position:-224px -96px}.aui-icon-tag{background-position:-240px -96px}.aui-icon-home{background-position:0 -112px}.aui-icon-flag{background-position:-16px -112px}.aui-icon-calendar{background-position:-32px -112px}.aui-icon-cart{background-position:-48px -112px}.aui-icon-pencil{background-position:-64px -112px}.aui-icon-clock{background-position:-80px -112px}.aui-icon-disk{background-position:-96px -112px}.aui-icon-calculator{background-position:-112px -112px}.aui-icon-zoomin{background-position:-128px -112px}.aui-icon-zoomout{background-position:-144px -112px}.aui-icon-search{background-position:-160px -112px}.aui-icon-wrench{background-position:-176px -112px}.aui-icon-gear{background-position:-192px -112px}.aui-icon-heart{background-position:-208px -112px}.aui-icon-star{background-position:-224px -112px}.aui-icon-link{background-position:-240px -112px}.aui-icon-cancel{background-position:0 -128px}.aui-icon-plus{background-position:-16px -128px}.aui-icon-plusthick{background-position:-32px -128px}.aui-icon-minus{background-position:-48px -128px}.aui-icon-minusthick{background-position:-64px -128px}.aui-icon-close{background-position:-80px -128px}.aui-icon-closethick{background-position:-96px -128px}.aui-icon-key{background-position:-112px -128px}.aui-icon-lightbulb{background-position:-128px -128px}.aui-icon-scissors{background-position:-144px -128px}.aui-icon-clipboard{background-position:-160px -128px}.aui-icon-copy{background-position:-176px -128px}.aui-icon-contact{background-position:-192px -128px}.aui-icon-image{background-position:-208px -128px}.aui-icon-video{background-position:-224px -128px}.aui-icon-script{background-position:-240px -128px}.aui-icon-alert{background-position:0 -144px}.aui-icon-info{background-position:-16px -144px}.aui-icon-notice{background-position:-32px -144px}.aui-icon-help{background-position:-48px -144px}.aui-icon-check{background-position:-64px -144px}.aui-icon-bullet{background-position:-80px -144px}.aui-icon-radio-off{background-position:-96px -144px}.aui-icon-radio-on{background-position:-112px -144px}.aui-icon-pin-l{background-position:-128px -144px}.aui-icon-pin-b{background-position:-144px -144px}.aui-icon-play{background-position:0 -160px}.aui-icon-pause{background-position:-16px -160px}.aui-icon-seek-next{background-position:-32px -160px}.aui-icon-seek-prev{background-position:-48px -160px}.aui-icon-seek-end{background-position:-64px -160px}.aui-icon-seek-first{background-position:-80px -160px}.aui-icon-stop{background-position:-96px -160px}.aui-icon-eject{background-position:-112px -160px}.aui-icon-volume-off{background-position:-128px -160px}.aui-icon-volume-on{background-position:-144px -160px}.aui-icon-power{background-position:0 -176px}.aui-icon-signal-diag{background-position:-16px -176px}.aui-icon-signal{background-position:-32px -176px}.aui-icon-battery-0{background-position:-48px -176px}.aui-icon-battery-1{background-position:-64px -176px}.aui-icon-battery-2{background-position:-80px -176px}.aui-icon-battery-3{background-position:-96px -176px}.aui-icon-circle-plus{background-position:0 -192px}.aui-icon-circle-minus{background-position:-16px -192px}.aui-icon-circle-close{background-position:-32px -192px}.aui-icon-circle-triangle-r{background-position:-48px -192px}.aui-icon-circle-triangle-b{background-position:-64px -192px}.aui-icon-circle-triangle-l{background-position:-80px -192px}.aui-icon-circle-triangle-t{background-position:-96px -192px}.aui-icon-circle-arrow-r{background-position:-112px -192px}.aui-icon-circle-arrow-b{background-position:-128px -192px}.aui-icon-circle-arrow-l{background-position:-144px -192px}.aui-icon-circle-arrow-t{background-position:-160px -192px}.aui-icon-circle-zoomin{background-position:-176px -192px}.aui-icon-circle-zoomout{background-position:-192px -192px}.aui-icon-circle-check{background-position:-208px -192px}.aui-icon-circlesmall-plus{background-position:0 -208px}.aui-icon-circlesmall-minus{background-position:-16px -208px}.aui-icon-circlesmall-close{background-position:-32px -208px}.aui-icon-squaresmall-plus{background-position:-48px -208px}.aui-icon-squaresmall-minus{background-position:-64px -208px}.aui-icon-squaresmall-close{background-position:-80px -208px}.aui-icon-grip-dotted-vertical{background-position:0 -224px}.aui-icon-grip-dotted-horizontal{background-position:-16px -224px}.aui-icon-grip-solid-vertical{background-position:-32px -224px}.aui-icon-grip-solid-horizontal{background-position:-48px -224px}.aui-icon-gripsmall-diagonal-br{background-position:-64px -224px}.aui-icon-grip-diagonal-br{background-position:-80px -224px}.aui-icon-loading{background:url(../images/loading_indicator.gif) no-repeat 0 0;width:16px;height:16px}.yui3-widget-content{overflow:hidden}.yui3-widget-close{float:right}.yui3-widget-stacked .yui3-widget-shim{border:0;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:-1;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0);_width:0;_height:0}.yui3-widget-content-expanded{-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%} +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote{margin:0;padding:0}fieldset,img{border-width:0}address,caption,cite,code,dfn,var{font-style:normal;font-weight:normal}caption,th{text-align:left}q:before,q:after{content:''}abbr,acronym{border:0;border-bottom:1px dotted #000;cursor:help}blockquote,ul,ol,dl{margin:1em}ol,ul,dl{margin-left:2em}ol{list-style:decimal outside}ul{list-style:disc outside}ul ul{list-style-type:circle}ol ol{list-style-type:upper-roman}dl dd{margin-left:1em}th{font-weight:bold}caption{margin-bottom:.5em;text-align:center}p{margin-bottom:1em}h1{font-size:1.8em}h2{font-size:1.6em}h3{font-size:1.4em}h1,h2,h3{margin:1em 0}h4,h5,h6{font-size:1.1em}h1,h2,h3,h4,h5,h6,strong{font-weight:bold}b,strong{font-weight:bold}i,em{font-style:italic}code,pre{font-family:"Courier New",Courier,monospace}pre{white-space:pre}.important{font-weight:bold}hr,.separator{border-top:1px dotted #bfbfbf}.aui-state-default,.aui-state-active,.aui-state-hover{background:#eee;border:1px solid #ccc;border-color:#bbb #999 #999 #bbb}.aui-state-active{background:#efefef;border-color:#333}.aui-state-hover{background:#ddd;border-color:#999 #bbb #bbb #999;cursor:pointer}.aui-state-disabled{cursor:default!important}.aui-html-template{display:none}.aui-basecelleditor-hidden,.aui-datecelleditor-hidden,.aui-dropdowncelleditor-hidden,.aui-textcelleditor-hidden,.aui-textareacelleditor-hidden,.aui-checkboxcelleditor-hidden,.aui-radiocelleditor-hidden,.aui-helper-hidden{display:none!important}.aui-helper-hidden-accessible,.aui-overlay-hidden,.aui-overlaycontext-hidden,.aui-overlaymask-hidden,.aui-calendar-hidden,.aui-date-picker-hidden,.aui-datepicker-hidden,.aui-colorpicker-hidden,.aui-tooltip-hidden,.aui-image-viewer-hidden,.aui-image-gallery-hidden{clip:rect(0 0 0 0)!important;position:absolute!important;-webkit-transform:scale(0);-webkit-transform-origin:0 0;*position:fixed!important;_position:absolute!important}.aui-helper-force-offset{display:block!important;position:absolute!important;visibility:hidden!important}.aui-helper-reset{margin:0;padding:0;outline:0;text-decoration:none;font-size:100%;list-style:none;border:0}.aui-helper-clearfix:after{clear:both;content:"";display:block;height:0}.aui-helper-clearfix{zoom:1}.aui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0)}.aui-helper-unselectable,.aui-helper-unselectable *{-moz-user-select:none;-khtml-user-select:none}.aui-helper-scroll-lock{height:100%;margin:0;overflow:hidden;width:100%}body{background-color:#FFF;font:62.5%/1.6em Arial,Helvetica,Verdana,sans-serif}.aui-layout{width:100%}.ie6 .aui-layout-content,.ie7 .aui-layout-content{display:block}.ltr .aui-column,.rtl .aui-column-last{float:left}.rtl .aui-column,.ltr .aui-column-last{float:right}.ltr .aui-column-last{margin-left:-5px}.rtl .aui-column-last{margin-right:-5px}.aui-layout-content:after{clear:both;content:"";display:block;height:0}.aui-layout-content{zoom:1}.aui-w1-16{width:6.25%}.aui-w1-12{width:8.334%}.aui-w1-10,.aui-w10{width:10%}.aui-w1-9{width:11.112%}.aui-w1-8{width:12.5%}.aui-w1-7{width:14.286%}.aui-w15{width:15%}.aui-w1-6{width:16.667%}.aui-w3-16{width:18.75%}.aui-w1-5,.aui-w20{width:20%}.aui-w2-9{width:22.223%}.aui-w1-4,.aui-w25{width:25%}.aui-w2-7{width:28.572%}.aui-w3-10,.aui-w30{width:30%}.aui-w5-16{width:31.25%}.aui-w1-3,.aui-w33{width:33.334%}.aui-w35{width:35%}.aui-w3-8{width:37.5%}.aui-w38{width:38.2%}.aui-w2-5,.aui-w40{width:40%}.aui-w5-12{width:41.667%}.aui-w7-16{width:43.75%}.aui-w4-9{width:44.445%}.aui-w45{width:45%}.aui-w3-7{width:42.858%}.aui-w1-2,.aui-w50{width:50%}.aui-w55{width:55%}.aui-w5-9{width:55.556%}.aui-w9-16{width:56.25%}.aui-w4-7{width:57.143%}.aui-w7-12{width:58.334%}.aui-w3-5,.aui-w60{width:60%}.aui-w5-8{width:62.5%}.aui-w62{width:61.8%}.aui-w65{width:65%}.aui-w2-3,.aui-w66{width:66.667%}.aui-w11-16{width:68.75%}.aui-w7-10,.aui-w70{width:70%}.aui-w5-7{width:71.429%}.aui-w3-4,.aui-w75{width:75%}.aui-w7-9{width:77.778%}.aui-w4-5,.aui-w80{width:80%}.aui-w13-16{width:81.25%}.aui-w5-6{width:83.334%}.aui-w85{width:85%}.aui-w6-7{width:85.715%}.aui-w7-8{width:87.5%}.aui-w9-10,.aui-w90{width:90%}.aui-w11-12{width:91.667%}.aui-w15-16{width:93.75%}.aui-w95{width:95%}.aui-w100{width:100%}.webkit .aui-w1-12{width:8.345%}.webkit .aui-w11-12{width:91.675%}.webkit .aui-w1-6{width:16.675%}.webkit .aui-w5-6{width:83.345%}.webkit .aui-w5-12{width:41.675%}.webkit .aui-w7-12{width:58.345%}.webkit .aui-w1-3,.webkit .aui-w33{width:33.345%}.webkit .aui-w2-3,.webkit .aui-w66{width:66.675%}.aui-column-content,.aui-column-content-center{padding:0 .5em}.ltr .aui-column-content-first,.rtl .aui-column-content-last{padding-left:0}.rtl .aui-column-content-first,.ltr .aui-column-content-last{padding-right:0}.ie6.ltr .aui-column-first,.ie6.ltr .aui-column-content-first,.ie6.rtl .aui-column-last,.ie6.rtl .aui-column-content-last{display:inline}.ie6 .aui-layout-content .aui-column-content-center,.ie6 .aui-layout-content .aui-column-content-first,.ie6 .aui-layout-content .aui-column-content-last{word-wrap:break-word;overflow:hidden}.ie body{position:relative}.ie5 body,.ie6 body{position:static}.floatbox{overflow:hidden}.aui-fieldset-legend{font-size:1.2em;font-weight:bold}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input,.aui-field-labels-inline .aui-field-hint{float:left}.aui-field-labels-inline .aui-field-label,.aui-field-labels-inline .aui-field-input-text{width:45%}.aui-field-labels-inline .aui-field-label{margin:.3em 2% 0 0}.aui-field-labels-right .aui-field-label{text-align:right}.aui-field-labels-inline .aui-field-hint{display:block;float:none;clear:both;margin-left:47%}.aui-field-label,.aui-field-labels-top .aui-field-label{display:block;float:none;text-align:left;margin:0;width:auto}.aui-field-input,.aui-field-labels-top .aui-field-input{float:none;width:auto} +.aui-field-hint,.aui-field-labels-top .aui-field-hint{line-height:1;clear:none;float:right;width:45%;margin:0}.aui-field-hint-icon{float:left}.aui-field-inline{display:inline-block;vertical-align:middle}.aui-field-label-inline{display:inline-block;margin:.4em .4em 0 0}.aui-field-inline .aui-field-content,.aui-field-inline .aui-field-label{display:inline-block}.aui-field-inline .aui-field-label{vertical-align:middle}.aui-field-group{float:left;width:53%}.aui-choice-label{line-height:1;width:89%}.aui-field-input-choice{display:inline-block;margin:0 .4em 0 0;vertical-align:middle}.aui-choice-label,.aui-field-input-choice{float:left}.aui-field-row{display:block;clear:both}.aui-field-row:after{clear:both;content:"";display:block;height:0}.aui-field-row{zoom:1}.aui-button-holder{overflow:hidden;display:block;clear:both}.aui-button-input{margin:0;line-height:1.3;text-decoration:none;cursor:pointer;font-weight:bold;padding:5px 10px 6px 7px}.aui-button-input{*padding:4px 10px 3px 7px}.aui-field-content:after,.aui-button-holder:after{clear:both;content:" ";display:block;height:0;overflow:hidden}.aui-field-content,.aui-button-holder{display:inline-block}/*\*/* html .aui-field-content,* html .aui-button-holder{height:1%}.aui-field-content,.aui-button-holder{display:block}/**/.aui-field-label{font-weight:bold}.aui-choice-label{font-weight:normal}.aui-field-hint{color:#777;font-size:.9em}.aui-choice-label,.aui-field-hint{line-height:1.2}.aui-field-element-left{display:inline-block;vertical-align:middle}.aui-field.aui-has-error .aui-field-content{border-bottom:1px solid #ef4a4a;background-color:#ff9f9f}.aui-field.aui-has-warn .aui-field-content{border-bottom:1px solid #ffc45f;background-color:#fffabf}.aui-field .aui-message-holder{color:#f00;display:block;font-weight:bold}.aui-status-failure{border:1px solid #ef4a4a}.aui-icon{background-repeat:no-repeat;background:url(../images/icon_sprite.png) no-repeat 0 0;display:block;height:16px;overflow:hidden;text-indent:-99999em;width:16px}.aui-icon-carat-1-t{background-position:0 0}.aui-icon-carat-1-tr{background-position:-16px 0}.aui-icon-carat-1-r{background-position:-32px 0}.aui-icon-carat-1-br{background-position:-48px 0}.aui-icon-carat-1-b{background-position:-64px 0}.aui-icon-carat-1-bl{background-position:-80px 0}.aui-icon-carat-1-l{background-position:-96px 0}.aui-icon-carat-1-tl{background-position:-112px 0}.aui-icon-carat-2-t-b{background-position:-128px 0}.aui-icon-carat-2-r-l{background-position:-144px 0}.aui-icon-triangle-1-t{background-position:0 -16px}.aui-icon-triangle-1-tr{background-position:-16px -16px}.aui-icon-triangle-1-r{background-position:-32px -16px}.aui-icon-triangle-1-br{background-position:-48px -16px}.aui-icon-triangle-1-b{background-position:-64px -16px}.aui-icon-triangle-1-bl{background-position:-80px -16px}.aui-icon-triangle-1-l{background-position:-96px -16px}.aui-icon-triangle-1-tl{background-position:-112px -16px}.aui-icon-triangle-2-t-b{background-position:-128px -16px}.aui-icon-triangle-2-r-l{background-position:-144px -16px}.aui-icon-arrow-1-t{background-position:0 -32px}.aui-icon-arrow-1-tr{background-position:-16px -32px}.aui-icon-arrow-1-r{background-position:-32px -32px}.aui-icon-arrow-1-br{background-position:-48px -32px}.aui-icon-arrow-1-b{background-position:-64px -32px}.aui-icon-arrow-1-bl{background-position:-80px -32px}.aui-icon-arrow-1-l{background-position:-96px -32px}.aui-icon-arrow-1-tl{background-position:-112px -32px}.aui-icon-arrow-2-t-b{background-position:-128px -32px}.aui-icon-arrow-2-tr-bl{background-position:-144px -32px}.aui-icon-arrow-2-r-l{background-position:-160px -32px}.aui-icon-arrow-2-br-tl{background-position:-176px -32px}.aui-icon-arrowstop-1-t{background-position:-192px -32px}.aui-icon-arrowstop-1-r{background-position:-208px -32px}.aui-icon-arrowstop-1-b{background-position:-224px -32px}.aui-icon-arrowstop-1-l{background-position:-240px -32px}.aui-icon-arrowthick-1-t{background-position:0 -48px}.aui-icon-arrowthick-1-tr{background-position:-16px -48px}.aui-icon-arrowthick-1-r{background-position:-32px -48px}.aui-icon-arrowthick-1-br{background-position:-48px -48px}.aui-icon-arrowthick-1-b{background-position:-64px -48px}.aui-icon-arrowthick-1-bl{background-position:-80px -48px}.aui-icon-arrowthick-1-l{background-position:-96px -48px}.aui-icon-arrowthick-1-tl{background-position:-112px -48px}.aui-icon-arrowthick-2-t-b{background-position:-128px -48px}.aui-icon-arrowthick-2-tr-bl{background-position:-144px -48px}.aui-icon-arrowthick-2-r-l{background-position:-160px -48px}.aui-icon-arrowthick-2-br-tl{background-position:-176px -48px}.aui-icon-arrowthickstop-1-t{background-position:-192px -48px}.aui-icon-arrowthickstop-1-r{background-position:-208px -48px}.aui-icon-arrowthickstop-1-b{background-position:-224px -48px}.aui-icon-arrowthickstop-1-l{background-position:-240px -48px}.aui-icon-arrowreturnthick-1-l{background-position:0 -64px}.aui-icon-arrowreturnthick-1-t{background-position:-16px -64px}.aui-icon-arrowreturnthick-1-r{background-position:-32px -64px}.aui-icon-arrowreturnthick-1-b{background-position:-48px -64px}.aui-icon-arrowreturn-1-l{background-position:-64px -64px}.aui-icon-arrowreturn-1-t{background-position:-80px -64px}.aui-icon-arrowreturn-1-r{background-position:-96px -64px}.aui-icon-arrowreturn-1-b{background-position:-112px -64px}.aui-icon-arrowrefresh-1-l{background-position:-128px -64px}.aui-icon-arrowrefresh-1-t{background-position:-144px -64px}.aui-icon-arrowrefresh-1-r{background-position:-160px -64px}.aui-icon-arrowrefresh-1-b{background-position:-176px -64px}.aui-icon-arrow-4{background-position:0 -80px}.aui-icon-arrow-4-diag{background-position:-16px -80px}.aui-icon-extlink{background-position:-32px -80px}.aui-icon-newwin{background-position:-48px -80px}.aui-icon-refresh{background-position:-64px -80px}.aui-icon-shuffle{background-position:-80px -80px} +.aui-icon-transfer-r-l{background-position:-96px -80px}.aui-icon-transferthick-r-l{background-position:-112px -80px}.aui-icon-folder-collapsed{background-position:0 -96px}.aui-icon-folder-open{background-position:-16px -96px}.aui-icon-document{background-position:-32px -96px}.aui-icon-document-b{background-position:-48px -96px}.aui-icon-note{background-position:-64px -96px}.aui-icon-mail-closed{background-position:-80px -96px}.aui-icon-mail-open{background-position:-96px -96px}.aui-icon-suitcase{background-position:-112px -96px}.aui-icon-comment{background-position:-128px -96px}.aui-icon-person{background-position:-144px -96px}.aui-icon-print{background-position:-160px -96px}.aui-icon-trash{background-position:-176px -96px}.aui-icon-locked{background-position:-192px -96px}.aui-icon-unlocked{background-position:-208px -96px}.aui-icon-bookmark{background-position:-224px -96px}.aui-icon-tag{background-position:-240px -96px}.aui-icon-home{background-position:0 -112px}.aui-icon-flag{background-position:-16px -112px}.aui-icon-calendar{background-position:-32px -112px}.aui-icon-cart{background-position:-48px -112px}.aui-icon-pencil{background-position:-64px -112px}.aui-icon-clock{background-position:-80px -112px}.aui-icon-disk{background-position:-96px -112px}.aui-icon-calculator{background-position:-112px -112px}.aui-icon-zoomin{background-position:-128px -112px}.aui-icon-zoomout{background-position:-144px -112px}.aui-icon-search{background-position:-160px -112px}.aui-icon-wrench{background-position:-176px -112px}.aui-icon-gear{background-position:-192px -112px}.aui-icon-heart{background-position:-208px -112px}.aui-icon-star{background-position:-224px -112px}.aui-icon-link{background-position:-240px -112px}.aui-icon-cancel{background-position:0 -128px}.aui-icon-plus{background-position:-16px -128px}.aui-icon-plusthick{background-position:-32px -128px}.aui-icon-minus{background-position:-48px -128px}.aui-icon-minusthick{background-position:-64px -128px}.aui-icon-close{background-position:-80px -128px}.aui-icon-closethick{background-position:-96px -128px}.aui-icon-key{background-position:-112px -128px}.aui-icon-lightbulb{background-position:-128px -128px}.aui-icon-scissors{background-position:-144px -128px}.aui-icon-clipboard{background-position:-160px -128px}.aui-icon-copy{background-position:-176px -128px}.aui-icon-contact{background-position:-192px -128px}.aui-icon-image{background-position:-208px -128px}.aui-icon-video{background-position:-224px -128px}.aui-icon-script{background-position:-240px -128px}.aui-icon-alert{background-position:0 -144px}.aui-icon-info{background-position:-16px -144px}.aui-icon-notice{background-position:-32px -144px}.aui-icon-help{background-position:-48px -144px}.aui-icon-check{background-position:-64px -144px}.aui-icon-bullet{background-position:-80px -144px}.aui-icon-radio-off{background-position:-96px -144px}.aui-icon-radio-on{background-position:-112px -144px}.aui-icon-pin-l{background-position:-128px -144px}.aui-icon-pin-b{background-position:-144px -144px}.aui-icon-play{background-position:0 -160px}.aui-icon-pause{background-position:-16px -160px}.aui-icon-seek-next{background-position:-32px -160px}.aui-icon-seek-prev{background-position:-48px -160px}.aui-icon-seek-end{background-position:-64px -160px}.aui-icon-seek-first{background-position:-80px -160px}.aui-icon-stop{background-position:-96px -160px}.aui-icon-eject{background-position:-112px -160px}.aui-icon-volume-off{background-position:-128px -160px}.aui-icon-volume-on{background-position:-144px -160px}.aui-icon-power{background-position:0 -176px}.aui-icon-signal-diag{background-position:-16px -176px}.aui-icon-signal{background-position:-32px -176px}.aui-icon-battery-0{background-position:-48px -176px}.aui-icon-battery-1{background-position:-64px -176px}.aui-icon-battery-2{background-position:-80px -176px}.aui-icon-battery-3{background-position:-96px -176px}.aui-icon-circle-plus{background-position:0 -192px}.aui-icon-circle-minus{background-position:-16px -192px}.aui-icon-circle-close{background-position:-32px -192px}.aui-icon-circle-triangle-r{background-position:-48px -192px}.aui-icon-circle-triangle-b{background-position:-64px -192px}.aui-icon-circle-triangle-l{background-position:-80px -192px}.aui-icon-circle-triangle-t{background-position:-96px -192px}.aui-icon-circle-arrow-r{background-position:-112px -192px}.aui-icon-circle-arrow-b{background-position:-128px -192px}.aui-icon-circle-arrow-l{background-position:-144px -192px}.aui-icon-circle-arrow-t{background-position:-160px -192px}.aui-icon-circle-zoomin{background-position:-176px -192px}.aui-icon-circle-zoomout{background-position:-192px -192px}.aui-icon-circle-check{background-position:-208px -192px}.aui-icon-circlesmall-plus{background-position:0 -208px}.aui-icon-circlesmall-minus{background-position:-16px -208px}.aui-icon-circlesmall-close{background-position:-32px -208px}.aui-icon-squaresmall-plus{background-position:-48px -208px}.aui-icon-squaresmall-minus{background-position:-64px -208px}.aui-icon-squaresmall-close{background-position:-80px -208px}.aui-icon-grip-dotted-vertical{background-position:0 -224px}.aui-icon-grip-dotted-horizontal{background-position:-16px -224px}.aui-icon-grip-solid-vertical{background-position:-32px -224px}.aui-icon-grip-solid-horizontal{background-position:-48px -224px}.aui-icon-gripsmall-diagonal-br{background-position:-64px -224px}.aui-icon-grip-diagonal-br{background-position:-80px -224px}.aui-icon-loading{background:url(../images/loading_indicator.gif) no-repeat 0 0;width:16px;height:16px}.yui3-widget-content{overflow:hidden}.yui3-widget-close{float:right}.yui3-widget-stacked .yui3-widget-shim{border:0;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:-1;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0);_width:0;_height:0}.yui3-widget-content-expanded{-moz-box-sizing:border-box;-ms-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%} .aui-overlay{position:absolute}.yui3-widget-tmp-forcesize{overflow:hidden!important}.yui3-widget-stacked .yui3-widget-shim{border-width:0;height:100%;left:0;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:-1;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0);_width:0;_height:0}.aui-autocomplete-results-content,.aui-calendar-content,.aui-colorpicker-content,.aui-dialog-content,.aui-overlaycontext-content{background:#fff}.aui-dialog-content,.aui-date-picker-content,.aui-overlaycontextpanel-content,.aui-tooltip-content,.aui-colorpicker-content,.aui-tree-drag-helper-content{-moz-box-shadow:4px 4px 14px #777;-webkit-box-shadow:4px 4px 14px #777;box-shadow:4px 4px 14px #777}.aui-tab-active .aui-tab-content{-moz-box-shadow:0 0 15px #575757 inset,0px 0 5px #222 inset;-webkit-box-shadow:0 0 15px #575757 inset,0px 0 5px #222 inset;box-shadow:0 0 15px #575757 inset,0px 0 5px #222 inset}.aui-null-selector{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.aui-state-default,.aui-state-active,.aui-state-hover,.aui-calendar-content,.aui-colorpicker-content,.aui-colorpicker-panel-content,.aui-image-gallery-paginator .aui-image-gallery-paginator-thumb,.aui-image-viewer-loading .aui-image-viewer-bd,.aui-loadingmask-message,.aui-loadingmask-message-content,.aui-progress-bar-content,.aui-progress-bar-status,.aui-form-builder-field,.aui-form-builder-default-message,.aui-tabview-list{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-carousel menu{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.aui-carousel menu a{-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.aui-textboxlistentry,.aui-textboxlistentry-close{-moz-border-radius:14px;-webkit-border-radius:14px;border-radius:14px}.aui-dialog .yui3-widget-hd,.aui-editable-hover,.aui-tab,.aui-overlaycontextpanel-pointer.aui-state-default,.aui-toolbar-item-content,.aui-toolbar-item,.aui-toolbar-vertical .aui-toolbar-item{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.aui-toolbar-first{-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.aui-toolbar-last{-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:4px}.aui-image-viewer-bd,.aui-toolbar-vertical .aui-toolbar-first{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px}.aui-image-viewer-bd,.aui-toolbar-vertical .aui-toolbar-first{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.aui-image-viewer-content .yui3-widget-ft,.aui-toolbar-vertical .aui-toolbar-last{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.aui-image-viewer-content .yui3-widget-ft,.aui-toolbar-vertical .aui-toolbar-last{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}a{color:#5b677d}input[type="submit"],input[type="button"],input[type="reset"],button{background:#d4d4d4 url(../images/common/state_default_bg.png) repeat-x 0 0;border:1px solid;border-color:#c8c9ca #9e9e9e #9e9e9e #c8c9ca;color:#34404f;font-weight:bold;text-shadow:1px 1px #fff}input[type="submit"]:hover,input[type="button"]:hover,input[type="reset"]:hover,button:hover{background:#b9ced9 url(../images/common/state_hover_bg.png) repeat-x 0 0;border-color:#627782;color:#369}input[type="submit"]:focus,input[type="button"]:focus,input[type="reset"]:focus,button:focus{background:#ebebeb url(../images/common/state_active_bg.png) repeat-x 0 0;border-color:#555}.aui-state-default{background:#d4d4d4 url(../images/common/state_default_bg.png) repeat-x 0 0;border:1px solid;border-color:#c8c9ca #9e9e9e #9e9e9e #c8c9ca}.aui-state-hover{background:#b9ced9 url(../images/common/state_hover_bg.png) repeat-x 0 0;border-color:#627782}.aui-state-active{background:#ebebeb url(../images/common/state_active_bg.png) repeat-x 0 0;border-color:#555}.aui-dialog-content{-moz-box-shadow:2px 4px 7px rgba(0,0,0,0.5);-webkit-box-shadow:2px 4px 7px rgba(0,0,0,0.5);box-shadow:2px 4px 7px rgba(0,0,0,0.5)}.aui-dialog-hd{-moz-box-shadow:1px 1px 0 #fff;-webkit-box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 #fff}.aui-tabview-wrapper,.aui-tabviewmenu-list,.aui-tab-active,.aui-dialog-content,.aui-dialog .yui3-widget-hd,input[type="submit"],input[type="button"],input[type="reset"],button,.aui-panel-content,.aui-panel-collapsed .aui-panel-hd{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-panel-hd{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px}.aui-panel-hd{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px} \ No newline at end of file diff --git a/build/aui-skin-classic/css/aui-skin-classic-all.css b/build/aui-skin-classic/css/aui-skin-classic-all.css index db20316c664..62c4c81a241 100644 --- a/build/aui-skin-classic/css/aui-skin-classic-all.css +++ b/build/aui-skin-classic/css/aui-skin-classic-all.css @@ -1,21 +1,15 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote { margin: 0; padding: 0; } -table { - border-collapse: collapse; - border-spacing: 0; - clear: both; -} - fieldset, img { border-width: 0; } -address, caption, cite, code, dfn, th, var { +address, caption, cite, code, dfn, var { font-style: normal; font-weight: normal; } diff --git a/build/aui-skin-classic/css/reset.css b/build/aui-skin-classic/css/reset.css index c7419220556..81c8f846507 100644 --- a/build/aui-skin-classic/css/reset.css +++ b/build/aui-skin-classic/css/reset.css @@ -1,21 +1,15 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote { margin: 0; padding: 0; } -table { - border-collapse: collapse; - border-spacing: 0; - clear: both; -} - fieldset, img { border-width: 0; } -address, caption, cite, code, dfn, th, var { +address, caption, cite, code, dfn, var { font-style: normal; font-weight: normal; } diff --git a/src/aui-skin-base/css/reset.css b/src/aui-skin-base/css/reset.css index 173361413f3..81c8f846507 100644 --- a/src/aui-skin-base/css/reset.css +++ b/src/aui-skin-base/css/reset.css @@ -1,6 +1,6 @@ /* ---------- Browser normalization ---------- */ -body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote{ +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote { margin: 0; padding: 0; } From 6c797c615d87bc26552da426037da5eef529bdb5 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 23 Aug 2011 21:37:05 -0300 Subject: [PATCH 118/132] AUI-461 Add clearFields method --- .../aui-diagram-builder.js | 24 +++++++++++++++---- .../assets/aui-datatable-edit-core.css | 2 +- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index 2bb0a93d05e..d4adf4fdd01 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -1032,6 +1032,22 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + clearFields: function() { + var instance = this; + + var fields = []; + + instance.get(FIELDS).each(function(field) { + fields.push(field); + }); + + AArray.each(fields, function(field) { + field.destroy(); + }); + + fields = null; + }, + closeEditProperties: function() { var instance = this; var editingNode = instance.editingNode; @@ -1613,6 +1629,10 @@ var DiagramNode = A.Component.create({ destructor: function() { var instance = this; + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + instance.get(BUILDER).removeField(instance); }, @@ -1645,10 +1665,6 @@ var DiagramNode = A.Component.create({ var strings = instance.getStrings(); if (confirm(strings[DELETE_NODES_MESSAGE])) { - instance.get(FIELDS).each(function(anchor) { - anchor.destroy(); - }); - instance.destroy(); } diff --git a/src/aui-datatable/assets/aui-datatable-edit-core.css b/src/aui-datatable/assets/aui-datatable-edit-core.css index 8013d03de9b..be4ee362b6b 100644 --- a/src/aui-datatable/assets/aui-datatable-edit-core.css +++ b/src/aui-datatable/assets/aui-datatable-edit-core.css @@ -3,7 +3,7 @@ } .aui-basecelleditor .aui-buttonitem-content { - margin: 2px 2px 0 0; + margin: 2px 0; padding: 3px 3px 1px 1px; } From 181dff4977c04e1e019a9e644c3ae8d8e55a6f62 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Tue, 23 Aug 2011 21:37:13 -0300 Subject: [PATCH 119/132] Build files --- .../assets/aui-datatable-edit-core.css | 2 +- .../assets/skins/sam/aui-datatable-edit.css | 2 +- .../assets/skins/sam/aui-datatable.css | 2 +- .../assets/skins/sam/aui-diagram-builder.css | 1 + .../aui-diagram-builder-debug.js | 24 +++++++++++++++---- .../aui-diagram-builder-impl-debug.js | 24 +++++++++++++++---- .../aui-diagram-builder-impl-min.js | 6 ++--- .../aui-diagram-builder-impl.js | 24 +++++++++++++++---- .../aui-diagram-builder-min.js | 4 ++-- .../js/aui-diagram-builder-impl.js | 24 +++++++++++++++---- 10 files changed, 89 insertions(+), 24 deletions(-) diff --git a/build/aui-datatable/assets/aui-datatable-edit-core.css b/build/aui-datatable/assets/aui-datatable-edit-core.css index 8013d03de9b..be4ee362b6b 100644 --- a/build/aui-datatable/assets/aui-datatable-edit-core.css +++ b/build/aui-datatable/assets/aui-datatable-edit-core.css @@ -3,7 +3,7 @@ } .aui-basecelleditor .aui-buttonitem-content { - margin: 2px 2px 0 0; + margin: 2px 0; padding: 3px 3px 1px 1px; } diff --git a/build/aui-datatable/assets/skins/sam/aui-datatable-edit.css b/build/aui-datatable/assets/skins/sam/aui-datatable-edit.css index 7abbf5bfcd0..6ad3db008cf 100644 --- a/build/aui-datatable/assets/skins/sam/aui-datatable-edit.css +++ b/build/aui-datatable/assets/skins/sam/aui-datatable-edit.css @@ -1 +1 @@ -.aui-datatable-editable{cursor:pointer}.aui-basecelleditor .aui-buttonitem-content{margin:2px 2px 0 0;padding:3px 3px 1px 1px}.aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:2px}.webkit .aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:3px}.aui-checkboxcelleditor .aui-celleditor-label,.aui-radiocelleditor .aui-celleditor-label{padding-left:3px}.aui-checkboxcelleditor .aui-celleditor-wrapper,.aui-radiocelleditor .aui-celleditor-wrapper{display:block;clear:both;padding:2px 0}.aui-celleditor-edit-dd-handle{cursor:move;display:inline-block;margin-top:-3px;vertical-align:middle}.aui-basecelleditor{background-color:#f2f2f2;border:1px solid #808080;padding:6px;text-align:left}.aui-celleditor-edit{padding:0 0 5px}.aui-celleditor-edit-option-row{padding:0 0 2px 0} +.aui-datatable-editable{cursor:pointer}.aui-basecelleditor .aui-buttonitem-content{margin:2px 0;padding:3px 3px 1px 1px}.aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:2px}.webkit .aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:3px}.aui-checkboxcelleditor .aui-celleditor-label,.aui-radiocelleditor .aui-celleditor-label{padding-left:3px}.aui-checkboxcelleditor .aui-celleditor-wrapper,.aui-radiocelleditor .aui-celleditor-wrapper{display:block;clear:both;padding:2px 0}.aui-celleditor-edit-dd-handle{cursor:move;display:inline-block;margin-top:-3px;vertical-align:middle}.aui-basecelleditor{background-color:#f2f2f2;border:1px solid #808080;padding:6px;text-align:left}.aui-celleditor-edit{padding:0 0 5px}.aui-celleditor-edit-option-row{padding:0 0 2px 0} diff --git a/build/aui-datatable/assets/skins/sam/aui-datatable.css b/build/aui-datatable/assets/skins/sam/aui-datatable.css index de53d4abcb1..166a1abc878 100644 --- a/build/aui-datatable/assets/skins/sam/aui-datatable.css +++ b/build/aui-datatable/assets/skins/sam/aui-datatable.css @@ -1,2 +1,2 @@ -.aui-datatable-editable{cursor:pointer}.aui-basecelleditor .aui-buttonitem-content{margin:2px 2px 0 0;padding:3px 3px 1px 1px}.aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:2px}.webkit .aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:3px}.aui-checkboxcelleditor .aui-celleditor-label,.aui-radiocelleditor .aui-celleditor-label{padding-left:3px}.aui-checkboxcelleditor .aui-celleditor-wrapper,.aui-radiocelleditor .aui-celleditor-wrapper{display:block;clear:both;padding:2px 0}.aui-celleditor-edit-dd-handle{cursor:move;display:inline-block;margin-top:-3px;vertical-align:middle}.aui-basecelleditor{background-color:#f2f2f2;border:1px solid #808080;padding:6px;text-align:left}.aui-celleditor-edit{padding:0 0 5px}.aui-celleditor-edit-option-row{padding:0 0 2px 0} +.aui-datatable-editable{cursor:pointer}.aui-basecelleditor .aui-buttonitem-content{margin:2px 0;padding:3px 3px 1px 1px}.aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:2px}.webkit .aui-basecelleditor .aui-buttonitem-label-only{padding-bottom:3px}.aui-checkboxcelleditor .aui-celleditor-label,.aui-radiocelleditor .aui-celleditor-label{padding-left:3px}.aui-checkboxcelleditor .aui-celleditor-wrapper,.aui-radiocelleditor .aui-celleditor-wrapper{display:block;clear:both;padding:2px 0}.aui-celleditor-edit-dd-handle{cursor:move;display:inline-block;margin-top:-3px;vertical-align:middle}.aui-basecelleditor{background-color:#f2f2f2;border:1px solid #808080;padding:6px;text-align:left}.aui-celleditor-edit{padding:0 0 5px}.aui-celleditor-edit-option-row{padding:0 0 2px 0} .yui3-skin-sam .yui3-datatable td.aui-datatable-cell-selected,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-asc.aui-datatable-cell-selected,.yui3-skin-sam tr.yui3-datatable-odd td.yui3-datatable-desc.aui-datatable-cell-selected,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-asc.aui-datatable-cell-selected,.yui3-skin-sam tr.yui3-datatable-even td.yui3-datatable-desc.aui-datatable-cell-selected{background-color:#68e;color:#fff;outline:0}.yui3-skin-sam .yui3-datatable tr.aui-datatable-row-selected,.yui3-skin-sam tr.yui3-datatable-odd.aui-datatable-row-selected td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-odd.aui-datatable-row-selected td.yui3-datatable-desc,.yui3-skin-sam tr.yui3-datatable-even.aui-datatable-row-selected td.yui3-datatable-asc,.yui3-skin-sam tr.yui3-datatable-even.aui-datatable-row-selected td.yui3-datatable-desc{background-color:#68e;color:#fff;outline:0} diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css index 2f1d40e547b..025ffe994f4 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css @@ -1,2 +1,3 @@ .aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{position:absolute;width:260px}.aui-diagram-builder-base-canvas{position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-content{min-height:400px}.aui-diagram-builder-base-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} + diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 2bb0a93d05e..d4adf4fdd01 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -1032,6 +1032,22 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + clearFields: function() { + var instance = this; + + var fields = []; + + instance.get(FIELDS).each(function(field) { + fields.push(field); + }); + + AArray.each(fields, function(field) { + field.destroy(); + }); + + fields = null; + }, + closeEditProperties: function() { var instance = this; var editingNode = instance.editingNode; @@ -1613,6 +1629,10 @@ var DiagramNode = A.Component.create({ destructor: function() { var instance = this; + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + instance.get(BUILDER).removeField(instance); }, @@ -1645,10 +1665,6 @@ var DiagramNode = A.Component.create({ var strings = instance.getStrings(); if (confirm(strings[DELETE_NODES_MESSAGE])) { - instance.get(FIELDS).each(function(anchor) { - anchor.destroy(); - }); - instance.destroy(); } diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js index dfc75428e76..c2f3275e036 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js @@ -246,6 +246,22 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + clearFields: function() { + var instance = this; + + var fields = []; + + instance.get(FIELDS).each(function(field) { + fields.push(field); + }); + + AArray.each(fields, function(field) { + field.destroy(); + }); + + fields = null; + }, + closeEditProperties: function() { var instance = this; var editingNode = instance.editingNode; @@ -827,6 +843,10 @@ var DiagramNode = A.Component.create({ destructor: function() { var instance = this; + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + instance.get(BUILDER).removeField(instance); }, @@ -859,10 +879,6 @@ var DiagramNode = A.Component.create({ var strings = instance.getStrings(); if (confirm(strings[DELETE_NODES_MESSAGE])) { - instance.get(FIELDS).each(function(anchor) { - anchor.destroy(); - }); - instance.destroy(); } diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js index 7f0cddc370e..2d934c7bcdd 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js @@ -1,3 +1,3 @@ -AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                  ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                  ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes(); -A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                  ',CONTROLS_TEMPLATE:'
                                                                                                  ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180; -return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                  ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                  ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this; +A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                  ',CONTROLS_TEMPLATE:'
                                                                                                  ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(r).each(function(a6){a6.destroy();});A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this; +return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl.js b/build/aui-diagram-builder/aui-diagram-builder-impl.js index dfc75428e76..c2f3275e036 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl.js @@ -246,6 +246,22 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + clearFields: function() { + var instance = this; + + var fields = []; + + instance.get(FIELDS).each(function(field) { + fields.push(field); + }); + + AArray.each(fields, function(field) { + field.destroy(); + }); + + fields = null; + }, + closeEditProperties: function() { var instance = this; var editingNode = instance.editingNode; @@ -827,6 +843,10 @@ var DiagramNode = A.Component.create({ destructor: function() { var instance = this; + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + instance.get(BUILDER).removeField(instance); }, @@ -859,10 +879,6 @@ var DiagramNode = A.Component.create({ var strings = instance.getStrings(); if (confirm(strings[DELETE_NODES_MESSAGE])) { - instance.get(FIELDS).each(function(anchor) { - anchor.destroy(); - }); - instance.destroy(); } diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index 50c1ea5e009..003d40ea8b3 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,6 +1,6 @@ AUI.add("aui-diagram-builder-base",function(aj){var Y=aj.Lang,d=Y.isArray,ax=Y.isBoolean,Q=Y.isNumber,G=Y.isObject,aA=Y.isString,N=function(A){return(A instanceof aj.ArrayList);},W=function(A){return(A instanceof aj.Node);},I=function(A){return(A instanceof aj.AvailableField);},aK=aj.Array,aa="add",o="addNode",aJ="auto",R="availableField",V="availableFields",aG="availableFieldsDragConfig",au="base",w="boundingBox",aD="builder",ae="cancel",ag="canvas",ay="clearfix",f="column",a="container",ah="content",z="contentBox",e="contentContainer",U="contentNode",J="createDocumentFragment",E="diagram",K="diagram-builder-base",af="disk",s="draggable",aF="drop",aq="dropConfig",ad="dropContainer",aw="field",x="fields",r="fieldsContainer",av="height",t="helper",ab="icon",B="iconClass",ap="id",al="label",y="layout",ao="list",T="maxFields",v="node",g="parentNode",ai="propertyList",aE="rendered",ar="save",u="settings",S="tab",M="tabView",b="tabs",h="tabview",P="toolbar",m="toolbarContainer",C=aj.getClassName,aI=" ",j=".",k="#",aI=" ",F="_",n=C(f),D=C(E,aD,au,ag),at=C(E,aD,au,ah,a),aL=C(E,aD,au,aF,a),H=C(E,aD,au,aw),am=C(E,aD,au,aw,s),c=C(E,aD,au,aw,ab),Z=C(E,aD,au,aw,al),i=C(E,aD,au,x,a),an=C(E,aD,au,S,aa),O=C(E,aD,au,S,u),q=C(E,aD,au,b,a),ac=C(E,aD,au,b,a,ah),aB=C(E,aD,au,P,a),ak=C(t,ay),p=C(ab),L=C(y),aC=C(h,ah),aH=C(h,ao);var l=aj.Component.create({NAME:R,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aA},iconClass:{validator:aA},id:{value:aj.guid(),setter:"_setId",validator:aA},node:{valueFn:function(aM){var A=this;if(!W(aM)){aM=aj.Node.create(aj.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(B)}));aM.setData(R,A);}return aM;},validator:W,writeOnce:true},type:{value:v,validator:aA}},EXTENDS:aj.Base,buildNodeId:function(A){return V+F+aw+F+A;},getAvailableFieldById:function(A){return aj.AvailableField.getAvailableFieldByNode(k+aj.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return aj.one(A).getData(R);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                • '+''+'
                                                                                                  '+"
                                                                                                • ",initializer:function(){var A=this;var aM=A.get(v);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(j+Z);A._uiSetDraggable(A.get(s));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(al));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return aj.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(v).toggleClass(am,aM);},_uiSetId:function(aM){var A=this;A.get(v).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});aj.AvailableField=l;var X=function(){};X.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||N(A);}},maxFields:{value:Infinity,validator:Q}};aj.mix(X.prototype,{_setFields:function(aM){var A=this;if(N(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(x,aM);},addField:function(aM){var A=this;if(A.get(x).size()
                                                                                                  ',DROP_CONTAINER_TEMPLATE:'
                                                                                                  ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                  ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                    ',CANVAS_TEMPLATE:'
                                                                                                    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(ag);A.contentContainer=A.get(e);A.dropContainer=A.get(ad);A.fieldsContainer=A.get(r);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(x);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(V));},syncUI:function(){var A=this;var aM=A.get(z);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(L);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(U);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this; A.contentContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);A.dropContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ae);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(z);var aN=A.canvas;var aO=A.contentContainer;var aP=A.dropContainer;if(!aN.inDoc()){aO.appendChild(aN);}if(!aP.inDoc()){aN.appendChild(aP);}if(aO.inDoc()){aO.get(g).append(aO);}else{aM.appendChild(aO);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new aj.PropertyList(A.get(ai)).render(A.settingsNode);A.propertyList.get(w).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new aj.TabView(A.get(M));aM.get(w);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(U);A.settingsNode=aM.getTab(1).get(U);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new aj.Toolbar(A.get(P)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new aj.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new aj.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(I(aP)?aP:new aj.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,groups:[V],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,container:A.get(w),dragConfig:{groups:[V],plugins:[{cfg:{moveOnEnd:false},fn:aj.Plugin.DDProxy}]},nodes:j+am},aM||{});},_setPropertyList:function(aM){var A=this;return aj.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(w);var aQ=aO.one(j+aH);var aN={after:{activeTabChange:aj.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(j+q),contentBox:aO.one(j+ac),bubbleTargets:aM,contentNode:aO.one(j+aC),cssClass:q,listNode:aQ,render:aM.get(z)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[o]},{cssClass:O,label:A[u]}];}return aj.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return aj.merge({activeState:false,bubbleTargets:aM,children:[{handler:aj.bind(aM._handleSaveEvent,aM),label:A[ar],icon:af},{handler:aj.bind(aM._handleCancelEvent,aM),label:A[ae]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=aj.getDoc().invoke(J);aK.each(aO,function(aP){aM.appendChild(aP.get(v));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});aj.DiagramBuilderBase=az;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                    ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                    ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af); -A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx); -},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                    ',CONTROLS_TEMPLATE:'
                                                                                                    ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.get(r).each(function(a7){a7.destroy();});a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,}); +A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this; +return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                    ',CONTROLS_TEMPLATE:'
                                                                                                    ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(r).each(function(a6){a6.destroy();});A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,}); au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                    ',NODE_TEMPLATE:'
                                                                                                    ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js index f40f0ae92c1..784fbc3f883 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js @@ -245,6 +245,22 @@ var DiagramBuilder = A.Component.create({ instance.tmpConnector = new A.Connector(instance.get(TMP_CONNECTOR)); }, + clearFields: function() { + var instance = this; + + var fields = []; + + instance.get(FIELDS).each(function(field) { + fields.push(field); + }); + + AArray.each(fields, function(field) { + field.destroy(); + }); + + fields = null; + }, + closeEditProperties: function() { var instance = this; var editingNode = instance.editingNode; @@ -826,6 +842,10 @@ var DiagramNode = A.Component.create({ destructor: function() { var instance = this; + instance.get(FIELDS).each(function(anchor) { + anchor.destroy(); + }); + instance.get(BUILDER).removeField(instance); }, @@ -858,10 +878,6 @@ var DiagramNode = A.Component.create({ var strings = instance.getStrings(); if (confirm(strings[DELETE_NODES_MESSAGE])) { - instance.get(FIELDS).each(function(anchor) { - anchor.destroy(); - }); - instance.destroy(); } From 39f1fd3ae49abf14798e6b1688e8b1581a60281f Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Wed, 24 Aug 2011 07:12:50 -0700 Subject: [PATCH 120/132] AUI-485 - Source formatting --- .../aui-tpl-snippets-base-debug.js | 10 +++++----- .../aui-tpl-snippets-base-min.js | 2 +- .../aui-tpl-snippets/aui-tpl-snippets-base.js | 10 +++++----- .../aui-tpl-snippets-checkbox-debug.js | 2 +- .../aui-tpl-snippets-checkbox-min.js | 2 +- .../aui-tpl-snippets-checkbox.js | 2 +- .../aui-tpl-snippets-debug.js | 20 +++++++++---------- .../aui-tpl-snippets-input-debug.js | 2 +- .../aui-tpl-snippets-input-min.js | 2 +- .../aui-tpl-snippets-input.js | 2 +- .../aui-tpl-snippets/aui-tpl-snippets-min.js | 2 +- .../aui-tpl-snippets-select-debug.js | 2 +- .../aui-tpl-snippets-select-min.js | 2 +- .../aui-tpl-snippets-select.js | 2 +- .../aui-tpl-snippets-textarea-debug.js | 2 +- .../aui-tpl-snippets-textarea-min.js | 2 +- .../aui-tpl-snippets-textarea.js | 2 +- build/aui-tpl-snippets/aui-tpl-snippets.js | 20 +++++++++---------- .../js/aui-tpl-snippets-base.js | 8 ++++---- 19 files changed, 48 insertions(+), 48 deletions(-) diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js index cbabd9d6a51..272034d230f 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js @@ -3,15 +3,15 @@ var Lang = A.Lang, AArray = A.Array, - _SPACE = ' ', - _EMPTY_STR = ''; + STR_BLANK = '', + STR_SPACE = ' '; A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = _SPACE + A.getClassName(_EMPTY_STR); + var prefix = STR_SPACE + A.getClassName(STR_SPACE); - return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); } }; -}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); +}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js index 31dfbf77173..4fa146d41be 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,c="",b=" ";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(b);return d(f).join(b)+(h?(g+d(h).join(g)):b);}};},"@VERSION@",{requires:["aui-template"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base.js b/build/aui-tpl-snippets/aui-tpl-snippets-base.js index cbabd9d6a51..272034d230f 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-base.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base.js @@ -3,15 +3,15 @@ var Lang = A.Lang, AArray = A.Array, - _SPACE = ' ', - _EMPTY_STR = ''; + STR_BLANK = '', + STR_SPACE = ' '; A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = _SPACE + A.getClassName(_EMPTY_STR); + var prefix = STR_SPACE + A.getClassName(STR_SPACE); - return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); } }; -}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); +}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js index 0f72a64379d..5f5cfeb2e33 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js index 5318b1741e6..e5d82e758b9 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js index 0f72a64379d..5f5cfeb2e33 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js index 048d0a266df..b35cd6498ab 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js @@ -3,18 +3,18 @@ var Lang = A.Lang, AArray = A.Array, - _SPACE = ' ', - _EMPTY_STR = ''; + STR_BLANK = '', + STR_SPACE = ' '; A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = _SPACE + A.getClassName(_EMPTY_STR); + var prefix = STR_SPACE + A.getClassName(STR_SPACE); - return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); } }; -}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); +}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', @@ -30,7 +30,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); AUI.add('aui-tpl-snippets-input', function(A) { A.Template.register( 'input', @@ -42,7 +42,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); AUI.add('aui-tpl-snippets-textarea', function(A) { A.Template.register( 'textarea', @@ -54,7 +54,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); AUI.add('aui-tpl-snippets-checkbox', function(A) { A.Template.register( 'checkbox', @@ -66,8 +66,8 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{skinnable:false, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js index d607d1fd5d5..e5be21b705c 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js index 1fde0a17d46..5cf7a1bc0a8 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input.js b/build/aui-tpl-snippets/aui-tpl-snippets-input.js index d607d1fd5d5..e5be21b705c 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-min.js index 4cd399168a9..67312896d82 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,b=" ",c="";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return a.Array(f).join(b)+(h?(g+a.Array(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,c="",b=" ";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(b);return d(f).join(b)+(h?(g+d(h).join(g)):b);}};},"@VERSION@",{requires:["aui-template"],skinnable:false});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{skinnable:false,use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js index a3641c84d38..bac0b78ce86 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js @@ -13,4 +13,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js index f30b769b0ea..f61ed1ad9ee 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select.js b/build/aui-tpl-snippets/aui-tpl-snippets-select.js index a3641c84d38..bac0b78ce86 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select.js @@ -13,4 +13,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js index e507f215493..f2a70c5bf05 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js index 4429d72bf1a..49d16a1c305 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js index e507f215493..f2a70c5bf05 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets.js b/build/aui-tpl-snippets/aui-tpl-snippets.js index 048d0a266df..b35cd6498ab 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets.js @@ -3,18 +3,18 @@ var Lang = A.Lang, AArray = A.Array, - _SPACE = ' ', - _EMPTY_STR = ''; + STR_BLANK = '', + STR_SPACE = ' '; A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = _SPACE + A.getClassName(_EMPTY_STR); + var prefix = STR_SPACE + A.getClassName(STR_SPACE); - return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); } }; -}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); +}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', @@ -30,7 +30,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); AUI.add('aui-tpl-snippets-input', function(A) { A.Template.register( 'input', @@ -42,7 +42,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); AUI.add('aui-tpl-snippets-textarea', function(A) { A.Template.register( 'textarea', @@ -54,7 +54,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); AUI.add('aui-tpl-snippets-checkbox', function(A) { A.Template.register( 'checkbox', @@ -66,8 +66,8 @@ A.Template.register( ] ); -}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); +}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{skinnable:false, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox']}); diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js index daaf9b4c590..58faffd3e8c 100644 --- a/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js @@ -2,13 +2,13 @@ var Lang = A.Lang, AArray = A.Array, - _SPACE = ' ', - _EMPTY_STR = ''; + STR_BLANK = '', + STR_SPACE = ' '; A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = _SPACE + A.getClassName(_EMPTY_STR); + var prefix = STR_SPACE + A.getClassName(STR_SPACE); - return A.Array(cssClass).join(_SPACE) + (auiCssClass ? (prefix + A.Array(auiCssClass).join(prefix)) : _EMPTY_STR); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); } }; \ No newline at end of file From de4813b33de721b33fdcb5ba2cddd55d18ef9691 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Wed, 24 Aug 2011 07:21:30 -0700 Subject: [PATCH 121/132] AUI-484 - Source formatting --- build/aui-template/aui-template-debug.js | 6 +++--- build/aui-template/aui-template-min.js | 2 +- build/aui-template/aui-template.js | 6 +++--- demos/template/index.html | 10 +++++----- src/aui-template/js/aui-template.js | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build/aui-template/aui-template-debug.js b/build/aui-template/aui-template-debug.js index 49009f9dbc8..8b0f965aa16 100644 --- a/build/aui-template/aui-template-debug.js +++ b/build/aui-template/aui-template-debug.js @@ -523,11 +523,11 @@ var Lang = A.Lang, var NODE_PROTO = A.Node.prototype; - NODE_PROTO.toTemplate = function() { + NODE_PROTO.toTpl = function() { return Template.from(this); }; - NODE_PROTO.renderTemplate = function(tpl, data) { + NODE_PROTO.renderTpl = function(tpl, data) { var instance = this; if (isString(tpl) || isArray(tpl)) { @@ -544,7 +544,7 @@ var Lang = A.Lang, A.NodeList.importMethod( NODE_PROTO, [ - 'renderTemplate' + 'renderTpl' ] ); diff --git a/build/aui-template/aui-template-min.js b/build/aui-template/aui-template-min.js index 18a3bae286a..5154e58cf7f 100644 --- a/build/aui-template/aui-template-min.js +++ b/build/aui-template/aui-template-min.js @@ -1,2 +1,2 @@ AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,isUndefined=Lang.isUndefined,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_PREFIX_GLOBAL_REPLACE=/^(?!\$)/,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_GLOBAL_SYMBOL="$",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last, $ns, $ans, $yns",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_GLOBAL_PROP=['MAP_GLOBALS["',null,'"]'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_SPECIAL_ANS="$ans",STR_SPECIAL_NS="$ns",STR_SPECIAL_YNS="$yns",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST,"$ans":STR_SPECIAL_ANS,"$ns":STR_SPECIAL_NS,"$yns":STR_SPECIAL_YNS},MAP_GLOBALS={},SRC_CREATE={},AUI_NS=A.getClassName(STR_BLANK),YUI_NS=A.ClassNameManager.getClassName(STR_BLANK),_INSTANCES={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);var $yns=instance.$yns;var $ans=instance.$ans;var $ns=instance.$ns;eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last,$ns,$ans,$yns)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{if(name.indexOf(STR_GLOBAL_SYMBOL)===0&&(name in MAP_GLOBALS)){BUFFER_GLOBAL_PROP[1]=name;value=BUFFER_GLOBAL_PROP.join(STR_BLANK);}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE; -args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){if(isObject(tpl[tpl.length-1])){config=tpl.pop();}else{if(isObject(args[1])){config=args[1];}}tpl=tpl.join(STR_BLANK);}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;iHidden Textarea

                                                                                                  Javascript object

                                                                                                  Script tag

                                                                                                  -var scriptTPL = A.one('#scriptTPL').toTemplate();
                                                                                                  +var scriptTPL = A.one('#scriptTPL').toTpl();
                                                                                                   scriptTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');

                                                                                                  Hidden Div

                                                                                                  -var divTPL = A.one('#divTPL').toTemplate();
                                                                                                  +var divTPL = A.one('#divTPL').toTpl();
                                                                                                   divTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');

                                                                                                  Hidden Textarea

                                                                                                  -var textareaTPL = A.one('#textareaTPL').toTemplate();
                                                                                                  +var textareaTPL = A.one('#textareaTPL').toTpl();
                                                                                                   textareaTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');
                                                                                                  @@ -432,12 +432,12 @@

                                                                                                  Making extra methods available to the template

                                                                                                  Getting a template from a node

                                                                                                  tpl = A.Template.from('#divContainingTplMarkup');
                                                                                                  or -
                                                                                                  tpl = A.one('#divContainingTplMarkup').toTemplate();
                                                                                                  +
                                                                                                  tpl = A.one('#divContainingTplMarkup').toTpl();

                                                                                                  Rendering a template to a node

                                                                                                  tpl.render({name: 'Nate', age: 31}, '#outputContainer');
                                                                                                  or -
                                                                                                  A.one('#outputContainer').renderTemplate(['This is my name: {name}'], {name: 'Nate', age: 31});
                                                                                                  +
                                                                                                  A.one('#outputContainer').renderTpl(['This is my name: {name}'], {name: 'Nate', age: 31});

                                                                                                  Parse a template to a string without rendering

                                                                                                  html = tpl.parse({name: 'Nate', age: 31});
                                                                                                  diff --git a/src/aui-template/js/aui-template.js b/src/aui-template/js/aui-template.js index 63ba7160bf8..92446345171 100644 --- a/src/aui-template/js/aui-template.js +++ b/src/aui-template/js/aui-template.js @@ -522,11 +522,11 @@ var Lang = A.Lang, var NODE_PROTO = A.Node.prototype; - NODE_PROTO.toTemplate = function() { + NODE_PROTO.toTpl = function() { return Template.from(this); }; - NODE_PROTO.renderTemplate = function(tpl, data) { + NODE_PROTO.renderTpl = function(tpl, data) { var instance = this; if (isString(tpl) || isArray(tpl)) { @@ -543,7 +543,7 @@ var Lang = A.Lang, A.NodeList.importMethod( NODE_PROTO, [ - 'renderTemplate' + 'renderTpl' ] ); From 8433f3dbf9200b3bc04dae1bb9349bfc4252a5cc Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Wed, 24 Aug 2011 08:03:36 -0700 Subject: [PATCH 122/132] AUI-484 - Source formatting --- build/aui-template/aui-template-debug.js | 6 +++--- build/aui-template/aui-template-min.js | 2 +- build/aui-template/aui-template.js | 6 +++--- demos/template/index.html | 10 +++++----- src/aui-template/js/aui-template.js | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build/aui-template/aui-template-debug.js b/build/aui-template/aui-template-debug.js index 8b0f965aa16..118c982b2ff 100644 --- a/build/aui-template/aui-template-debug.js +++ b/build/aui-template/aui-template-debug.js @@ -523,11 +523,11 @@ var Lang = A.Lang, var NODE_PROTO = A.Node.prototype; - NODE_PROTO.toTpl = function() { + NODE_PROTO.toTPL = function() { return Template.from(this); }; - NODE_PROTO.renderTpl = function(tpl, data) { + NODE_PROTO.renderTPL = function(tpl, data) { var instance = this; if (isString(tpl) || isArray(tpl)) { @@ -544,7 +544,7 @@ var Lang = A.Lang, A.NodeList.importMethod( NODE_PROTO, [ - 'renderTpl' + 'renderTPL' ] ); diff --git a/build/aui-template/aui-template-min.js b/build/aui-template/aui-template-min.js index 5154e58cf7f..69efcb2f788 100644 --- a/build/aui-template/aui-template-min.js +++ b/build/aui-template/aui-template-min.js @@ -1,2 +1,2 @@ AUI.add("aui-template",function(A){var Lang=A.Lang,UA=A.UA,LString=Lang.String,isArray=Lang.isArray,isDate=Lang.isDate,isString=Lang.isString,isObject=Lang.isObject,isValue=Lang.isValue,isUndefined=Lang.isUndefined,REGEX_TPL=/]*?((for|if|exec)="([^"]+)")*?>((?:(?=([^<]+))\5|<(?!tpl\b[^>]*>))*?)<\/tpl>/,REGEX_NEWLINE=/\r\n|\n/g,REGEX_QUOTE=/'/g,REGEX_QUOTE_ESCAPED=/\\'/g,REGEX_PREFIX_GLOBAL_REPLACE=/^(?!\$)/,REGEX_TPL_VAR=/\{([\w-.#$]+)(?:\:([\w.]*)(?:\((.*?)?\))?)?(\s?[+\-*\/]\s?[\d.+\-*\/()]+)?\}/g,REGEX_TPL_SCRIPTLET=/\{\[((?:\\\]|.|\n)*?)\]\}/g,STR_BLANK="",STR_COLON=":",STR_COMMA=",",STR_DOT=".",STR_FOR="for",STR_EXEC="exec",STR_IF="if",STR_QUOTE="'",STR_BRACE_OPEN="{",STR_BRACE_CLOSE="}",STR_PAREN_OPEN="(",STR_PAREN_CLOSE=")",STR_GLOBAL_SYMBOL="$",STR_JOIN_OPEN=STR_QUOTE+STR_COMMA,STR_JOIN_CLOSE=STR_COMMA+STR_QUOTE,STR_JOIN_GROUP_OPEN=STR_JOIN_OPEN+STR_PAREN_OPEN,STR_JOIN_GROUP_CLOSE=STR_PAREN_CLOSE+STR_JOIN_CLOSE,STR_COMPILE_TPL_ARGS="values, parent, $index, $i, $count, $last, $ns, $ans, $yns",BUFFER_HTML=["",null,""],BUFFER_STR_COMPILE_SUB_TPL=[STR_JOIN_OPEN+"this._compileSubTpl(",null,STR_COMMA+STR_COMPILE_TPL_ARGS+STR_PAREN_CLOSE+STR_JOIN_CLOSE],BUFFER_COMPILED_TPL_FN=["compiledTplFn = function("+STR_COMPILE_TPL_ARGS+") { return ["+STR_QUOTE,null,STR_QUOTE+'].join("");};'],BUFFER_GLOBAL_PROP=['MAP_GLOBALS["',null,'"]'],BUFFER_VALUES_LOOKUP=['values["',null,'"]'],STR_INVOKE_METHOD_NAME_OPEN='this._invokeMethod("',STR_INVOKE_METHOD_NAME_CLOSE='"'+STR_COMMA,STR_UNDEFINED_OUT=' === undefined ? "" : ',STR_REPLACE_NEWLINE="\\n",STR_REPLACE_QUOTE="\\'",STR_VALUES="values",STR_PARENT="parent",STR_SPECIAL_I="$i",STR_SPECIAL_INDEX="$index",STR_SPECIAL_COUNT="$count",STR_SPECIAL_LAST="$last",STR_SPECIAL_ANS="$ans",STR_SPECIAL_NS="$ns",STR_SPECIAL_YNS="$yns",STR_RETURN="return ",STR_WITHVALUES="with(values){ ",STR_WITHCLOSE="; }",STR_LANGSTRING_VAR="LString.",TOKEN_TPL="AUITPL",TOKEN_TPL_LENGTH=TOKEN_TPL.length,TOKEN_PARENT_PROP=STR_PARENT+STR_DOT,TOKEN_THIS_PROP="this.",TOKEN_THIS_PROP_LENGTH=TOKEN_THIS_PROP.length,TOKEN_VALUES_PROP=STR_VALUES+STR_DOT,MAP_TPL_FN={".":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_VALUES+STR_WITHCLOSE),"..":new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+STR_PARENT+STR_WITHCLOSE)},MAP_TPL_FILTERED_TYPES={"boolean":true,"number":true,"string":true},MAP_TPL_VALUES={".":"this._getValidValues(values)","#":STR_SPECIAL_INDEX,"$index":STR_SPECIAL_INDEX,"$i":STR_SPECIAL_I,"$count":STR_SPECIAL_COUNT,"$last":STR_SPECIAL_LAST,"$ans":STR_SPECIAL_ANS,"$ns":STR_SPECIAL_NS,"$yns":STR_SPECIAL_YNS},MAP_GLOBALS={},SRC_CREATE={},AUI_NS=A.getClassName(STR_BLANK),YUI_NS=A.ClassNameManager.getClassName(STR_BLANK),_INSTANCES={};var Template=function(html,src){var instance=this;var tpl;var fromStaticCall=(src===SRC_CREATE);if(fromStaticCall||A.instanceOf(instance,Template)){if(!fromStaticCall){html=instance._parseArgs(arguments);}tpl=instance._parse(html);}else{html=Template.prototype._parseArgs(arguments);tpl=new Template(html,SRC_CREATE);}return tpl;};Template.prototype={html:function(tpl){var instance=this;var retVal=instance;if(isValue(tpl)){instance._parse(instance._parseArgs(arguments));}else{retVal=instance._html;}return retVal;},parse:function(values){var instance=this;return instance._parentTpl.compiled.call(instance,values,{},1,1,1);},render:function(values,node){var instance=this;var rendered=A.Node.create(instance.parse(values));node=node&&A.one(node);if(node){node.setContent(rendered);}return rendered;},_compile:function(tpl){var instance=this;var compiledTplFn;var fnBody=tpl.tplBody;fnBody=fnBody.replace(REGEX_NEWLINE,STR_REPLACE_NEWLINE);fnBody=fnBody.replace(REGEX_QUOTE,STR_REPLACE_QUOTE);fnBody=fnBody.replace(REGEX_TPL_VAR,instance._compileTpl);fnBody=fnBody.replace(REGEX_TPL_SCRIPTLET,instance._compileCode);BUFFER_COMPILED_TPL_FN[1]=fnBody;var body=BUFFER_COMPILED_TPL_FN.join(STR_BLANK);var $yns=instance.$yns;var $ans=instance.$ans;var $ns=instance.$ns;eval(body);tpl.compiled=function(values,parent,$index,$i,$count,$last){var buffer=[];var subTpl=STR_BLANK;var testFn=tpl.testFn;if(!testFn||testFn.call(instance,values,parent,$index,$i,$count,$last,$ns,$ans,$yns)){var subValues=values;var tplFn=tpl.tplFn;if(tplFn){subValues=tplFn.call(instance,values,parent);parent=values;}if(tplFn&&isArray(subValues)){var length=subValues.length;var execFn=tpl.execFn;for(var i=0;i-1){value=TOKEN_VALUES_PROP+name;}else{if(name.indexOf(STR_GLOBAL_SYMBOL)===0&&(name in MAP_GLOBALS)){BUFFER_GLOBAL_PROP[1]=name;value=BUFFER_GLOBAL_PROP.join(STR_BLANK);}else{BUFFER_VALUES_LOOKUP[1]=name;value=BUFFER_VALUES_LOOKUP.join(STR_BLANK);}}}}if(math){value=STR_PAREN_OPEN+value+math+STR_PAREN_CLOSE;}if(methodName){args=args?STR_COMMA+args:STR_BLANK;if(methodName.indexOf(TOKEN_THIS_PROP)!==0){methodName=STR_LANGSTRING_VAR+methodName+STR_PAREN_OPEN;}else{methodName=STR_INVOKE_METHOD_NAME_OPEN+methodName.substr(TOKEN_THIS_PROP_LENGTH)+STR_INVOKE_METHOD_NAME_CLOSE; -args=STR_COMMA+STR_VALUES;}}else{args=STR_BLANK;methodName=STR_PAREN_OPEN+value+STR_UNDEFINED_OUT;}compiled=STR_JOIN_OPEN+methodName+value+args+STR_JOIN_GROUP_CLOSE;}return compiled;},_getValidValues:function(values){var instance=this;var val=STR_BLANK;if(MAP_TPL_FILTERED_TYPES[typeof values]||isDate(values)){val=values;}return val;},_invokeMethod:function(methodName,value,allValues){var instance=this;return instance[methodName](value,allValues);},_parse:function(html){var instance=this;instance._html=html;var match;var id=0;var tpls=[];BUFFER_HTML[1]=html;html=BUFFER_HTML.join(STR_BLANK);while(match=html.match(REGEX_TPL)){var testFn=null;var execFn=null;var tplFn=null;var expression=match[2];var expressionValue=match[3];if(expressionValue){if(expression==STR_FOR){tplFn=MAP_TPL_FN[expressionValue]||new Function(STR_VALUES,STR_PARENT,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{expressionValue=LString.unescapeEntities(expressionValue);if(expression==STR_IF){testFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+STR_RETURN+expressionValue+STR_WITHCLOSE);}else{if(expression==STR_EXEC){execFn=new Function(STR_VALUES,STR_PARENT,STR_SPECIAL_INDEX,STR_SPECIAL_I,STR_SPECIAL_COUNT,STR_SPECIAL_LAST,STR_SPECIAL_NS,STR_SPECIAL_ANS,STR_SPECIAL_YNS,STR_WITHVALUES+expressionValue+STR_WITHCLOSE);}}}}var tplBody=match[4]||STR_BLANK;html=html.replace(match[0],STR_BRACE_OPEN+TOKEN_TPL+id+STR_BRACE_CLOSE);id=tpls.push({execFn:execFn,id:id,testFn:testFn,tplBody:tplBody,tplFn:tplFn});}var lastIndex=id-1;while(id--){instance._compile(tpls[id]);}instance._parentTpl=tpls[lastIndex];instance.tpls=tpls;return instance;},_parseArgs:function(args){var instance=this;var config;var tpl=args[0];if(isArray(tpl)){if(isObject(tpl[tpl.length-1])){config=tpl.pop();}else{if(isObject(args[1])){config=args[1];}}tpl=tpl.join(STR_BLANK);}else{if(args.length>1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;i1){var buffer=[];args=A.Array(args,0,true);var length=args.length;var item;var lastItem=args[length-1];if(isObject(lastItem)){config=args.pop();}for(var i=0;iHidden Textarea

                                                                                                Javascript object

                                                                                                Script tag

                                                                                                -var scriptTPL = A.one('#scriptTPL').toTpl();
                                                                                                +var scriptTPL = A.one('#scriptTPL').toTPL();
                                                                                                 scriptTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');

                                                                                                Hidden Div

                                                                                                -var divTPL = A.one('#divTPL').toTpl();
                                                                                                +var divTPL = A.one('#divTPL').toTPL();
                                                                                                 divTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');

                                                                                                Hidden Textarea

                                                                                                -var textareaTPL = A.one('#textareaTPL').toTpl();
                                                                                                +var textareaTPL = A.one('#textareaTPL').toTPL();
                                                                                                 textareaTPL.render(['Item 1', 'Item 2', 'Item 3'], '#somewhere');
                                                                                                @@ -432,12 +432,12 @@

                                                                                                Making extra methods available to the template

                                                                                                Getting a template from a node

                                                                                                tpl = A.Template.from('#divContainingTplMarkup');
                                                                                                or -
                                                                                                tpl = A.one('#divContainingTplMarkup').toTpl();
                                                                                                +
                                                                                                tpl = A.one('#divContainingTplMarkup').toTPL();

                                                                                                Rendering a template to a node

                                                                                                tpl.render({name: 'Nate', age: 31}, '#outputContainer');
                                                                                                or -
                                                                                                A.one('#outputContainer').renderTpl(['This is my name: {name}'], {name: 'Nate', age: 31});
                                                                                                +
                                                                                                A.one('#outputContainer').renderTPL(['This is my name: {name}'], {name: 'Nate', age: 31});

                                                                                                Parse a template to a string without rendering

                                                                                                html = tpl.parse({name: 'Nate', age: 31});
                                                                                                diff --git a/src/aui-template/js/aui-template.js b/src/aui-template/js/aui-template.js index 92446345171..25e402a9a58 100644 --- a/src/aui-template/js/aui-template.js +++ b/src/aui-template/js/aui-template.js @@ -522,11 +522,11 @@ var Lang = A.Lang, var NODE_PROTO = A.Node.prototype; - NODE_PROTO.toTpl = function() { + NODE_PROTO.toTPL = function() { return Template.from(this); }; - NODE_PROTO.renderTpl = function(tpl, data) { + NODE_PROTO.renderTPL = function(tpl, data) { var instance = this; if (isString(tpl) || isArray(tpl)) { @@ -543,7 +543,7 @@ var Lang = A.Lang, A.NodeList.importMethod( NODE_PROTO, [ - 'renderTpl' + 'renderTPL' ] ); From fc11c6f80b34cc140d8ff5685f600ddbfdb3e546 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Wed, 24 Aug 2011 17:19:37 -0700 Subject: [PATCH 123/132] Diagram builder - removing -base from css classes; following pattern in DataTable, etc. --- .../assets/aui-diagram-builder-base-core.css | 34 ++++----- .../sam/aui-diagram-builder-base-skin.css | 8 +- .../skins/sam/aui-diagram-builder-base.css | 2 +- .../assets/skins/sam/aui-diagram-builder.css | 2 +- .../aui-diagram-builder-base-debug.js | 73 +++++++++---------- .../aui-diagram-builder-base-min.js | 4 +- .../aui-diagram-builder-base.js | 73 +++++++++---------- .../aui-diagram-builder-debug.js | 73 +++++++++---------- .../aui-diagram-builder-min.js | 6 +- .../aui-diagram-builder.js | 73 +++++++++---------- demos/diagram-builder/index.html | 26 +++---- .../assets/aui-diagram-builder-base-core.css | 34 ++++----- .../sam/aui-diagram-builder-base-skin.css | 8 +- .../js/aui-diagram-builder-base.js | 73 +++++++++---------- 14 files changed, 242 insertions(+), 247 deletions(-) diff --git a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index 0ad6d4fd08d..63c557ec860 100644 --- a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -1,8 +1,8 @@ -.aui-diagram-builder-base { +.aui-diagram-builder { margin: 0; } -.aui-diagram-builder-base .aui-diagram-builder-base-field { +.aui-diagram-builder .aui-diagram-builder-field { border-radius: 4px 4px 4px 4px; float: left; height: 63px; @@ -12,70 +12,70 @@ width: 79px; } -.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable { +.aui-diagram-builder .aui-diagram-builder-field-draggable { cursor: pointer; } -.aui-diagram-builder-base .aui-diagram-builder-base-field:hover { +.aui-diagram-builder .aui-diagram-builder-field:hover { background-color: #fff; } -.aui-diagram-builder-base-field-icon { +.aui-diagram-builder-field-icon { display: inline-block; margin: 3px; } -.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text { +.aui-diagram-builder .aui-diagram-builder-field-icon-text { background-position: -48px -80px; } -.aui-diagram-builder-base .aui-property-list { +.aui-diagram-builder .aui-property-list { padding-bottom: 10px; } -.aui-diagram-builder-base-content { +.aui-diagram-builder-content { background-color: #f1f1f1; /*padding-left: 260px;*/ } -.aui-diagram-builder-base-tabs-container .aui-tabview-list { +.aui-diagram-builder-tabs-container .aui-tabview-list { margin-bottom: 5px; } -.aui-diagram-builder-base-tabs-container { +.aui-diagram-builder-tabs-container { position: absolute; width: 260px; } -.aui-diagram-builder-base-canvas { +.aui-diagram-builder-canvas { position: relative; } -.aui-diagram-builder-base-fields-container { +.aui-diagram-builder-fields-container { margin: 5px; } -.aui-diagram-builder-base-content { +.aui-diagram-builder-content { min-height: 400px; } -.aui-diagram-builder-base-content-container { +.aui-diagram-builder-content-container { padding-left: 260px; } -.aui-diagram-builder-base-tabs-container-content { +.aui-diagram-builder-tabs-container-content { } .aui-diagram-node { position: absolute; } -.aui-diagram-builder-base-drop-container { +.aui-diagram-builder-drop-container { position: relative; } -.aui-diagram-builder-base-drop-container { +.aui-diagram-builder-drop-container { height: 600px; } diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css index 36cc962934e..5ce4127ffce 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css @@ -11,13 +11,13 @@ background: url(anchor-drop-active.png) no-repeat scroll center center transparent; } -.aui-diagram-builder-base .aui-diagram-builder-base-field { +.aui-diagram-builder .aui-diagram-builder-field { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } -.aui-diagram-builder-base-canvas { +.aui-diagram-builder-canvas { background-image: url(checker-bg.png); border-left: 1px solid #CCCCCC; outline: 0; @@ -28,12 +28,12 @@ overflow: hidden; } -.aui-diagram-builder-base-field-icon { +.aui-diagram-builder-field-icon { width: 30px; height: 30px; } -.aui-diagram-builder-base-drop-container { +.aui-diagram-builder-drop-container { } .aui-diagram-node-task-icon { diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css index baa71dc2b51..48ca25d7700 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css @@ -1 +1 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{position:absolute;width:260px}.aui-diagram-builder-base-canvas{position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-content{min-height:400px}.aui-diagram-builder-base-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder{margin:0}.aui-diagram-builder .aui-diagram-builder-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder .aui-diagram-builder-field-draggable{cursor:pointer}.aui-diagram-builder .aui-diagram-builder-field:hover{background-color:#fff}.aui-diagram-builder-field-icon{display:inline-block;margin:3px}.aui-diagram-builder .aui-diagram-builder-field-icon-text{background-position:-48px -80px}.aui-diagram-builder .aui-property-list{padding-bottom:10px}.aui-diagram-builder-content{background-color:#f1f1f1}.aui-diagram-builder-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-tabs-container{position:absolute;width:260px}.aui-diagram-builder-canvas{position:relative}.aui-diagram-builder-fields-container{margin:5px}.aui-diagram-builder-content{min-height:400px}.aui-diagram-builder-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-drop-container{position:relative}.aui-diagram-builder-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder .aui-diagram-builder-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css index 025ffe994f4..32dd9e45b9c 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css @@ -1,3 +1,3 @@ -.aui-diagram-builder-base{margin:0}.aui-diagram-builder-base .aui-diagram-builder-base-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable{cursor:pointer}.aui-diagram-builder-base .aui-diagram-builder-base-field:hover{background-color:#fff}.aui-diagram-builder-base-field-icon{display:inline-block;margin:3px}.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text{background-position:-48px -80px}.aui-diagram-builder-base .aui-property-list{padding-bottom:10px}.aui-diagram-builder-base-content{background-color:#f1f1f1}.aui-diagram-builder-base-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-base-tabs-container{position:absolute;width:260px}.aui-diagram-builder-base-canvas{position:relative}.aui-diagram-builder-base-fields-container{margin:5px}.aui-diagram-builder-base-content{min-height:400px}.aui-diagram-builder-base-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-base-drop-container{position:relative}.aui-diagram-builder-base-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder-base .aui-diagram-builder-base-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-base-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-base-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder{margin:0}.aui-diagram-builder .aui-diagram-builder-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder .aui-diagram-builder-field-draggable{cursor:pointer}.aui-diagram-builder .aui-diagram-builder-field:hover{background-color:#fff}.aui-diagram-builder-field-icon{display:inline-block;margin:3px}.aui-diagram-builder .aui-diagram-builder-field-icon-text{background-position:-48px -80px}.aui-diagram-builder .aui-property-list{padding-bottom:10px}.aui-diagram-builder-content{background-color:#f1f1f1}.aui-diagram-builder-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-tabs-container{position:absolute;width:260px}.aui-diagram-builder-canvas{position:relative}.aui-diagram-builder-fields-container{margin:5px}.aui-diagram-builder-content{min-height:400px}.aui-diagram-builder-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-drop-container{position:relative}.aui-diagram-builder-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder .aui-diagram-builder-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js index 67d00c9f5aa..a57fc2d054f 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js @@ -26,7 +26,6 @@ var Lang = A.Lang, AVAILABLE_FIELD = 'availableField', AVAILABLE_FIELDS = 'availableFields', AVAILABLE_FIELDS_DRAG_CONFIG = 'availableFieldsDragConfig', - BASE = 'base', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', @@ -40,7 +39,7 @@ var Lang = A.Lang, CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', - DIAGRAM_BUILDER_BASE = 'diagram-builder-base', + DIAGRAM_BUILDER = 'diagram-builder', DISK = 'disk', DRAGGABLE = 'draggable', DROP = 'drop', @@ -80,19 +79,19 @@ var Lang = A.Lang, _UNDERLINE = '_', CSS_COLUMN = AgetClassName(COLUMN), - CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), - CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), - CSS_DIAGRAM_BUILDER_BASE_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, ICON), - CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, LABEL), - CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, ADD), - CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), - CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), + CSS_DIAGRAM_BUILDER_CANVAS = AgetClassName(DIAGRAM, BUILDER, CANVAS), + CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, DROP, CONTAINER), + CSS_DIAGRAM_BUILDER_FIELD = AgetClassName(DIAGRAM, BUILDER, FIELD), + CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, FIELD, DRAGGABLE), + CSS_DIAGRAM_BUILDER_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, FIELD, ICON), + CSS_DIAGRAM_BUILDER_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, FIELD, LABEL), + CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), + CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), + CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), @@ -166,9 +165,9 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                                                              • ' + - '' + - '
                                                                                                ' + + FIELD_ITEM_TEMPLATE: '
                                                                                              • ' + + '' + + '
                                                                                                ' + '
                                                                                              • ', initializer: function() { @@ -181,7 +180,7 @@ var AvailableField = A.Component.create({ labelChange: instance._afterLabelChange }); - instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL); + instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_FIELD_LABEL); instance._uiSetDraggable( instance.get(DRAGGABLE) @@ -227,7 +226,7 @@ var AvailableField = A.Component.create({ _uiSetDraggable: function(val) { var instance = this; - instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE, val); + instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE, val); }, _uiSetId: function(val) { @@ -341,7 +340,7 @@ A.FieldSupport = FieldSupport; var DiagramBuilderBase = A.Component.create( { - NAME: DIAGRAM_BUILDER_BASE, + NAME: DIAGRAM_BUILDER, ATTRS: { availableFields: { @@ -423,11 +422,11 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, - dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, - fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, - canvas: _DOT+CSS_DIAGRAM_BUILDER_BASE_CANVAS + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER, + dropContainer: _DOT+CSS_DIAGRAM_BUILDER_DROP_CONTAINER, + fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER, + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER, + canvas: _DOT+CSS_DIAGRAM_BUILDER_CANVAS }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -435,11 +434,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
                                                                                                ', - DROP_CONTAINER_TEMPLATE: '
                                                                                                ', - TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                ', - FIELDS_CONTAINER_TEMPLATE: '
                                                                                                  ', - CANVAS_TEMPLATE: '
                                                                                                  ', + CONTENT_CONTAINER_TEMPLATE: '
                                                                                                  ', + DROP_CONTAINER_TEMPLATE: '
                                                                                                  ', + TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                  ', + FIELDS_CONTAINER_TEMPLATE: '
                                                                                                    ', + CANVAS_TEMPLATE: '
                                                                                                    ', fieldsNode: null, propertyList: null, @@ -677,7 +676,7 @@ var DiagramBuilderBase = A.Component.create( } ] }, - nodes: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE + nodes: _DOT+CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE }, val || {} ); @@ -708,11 +707,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; @@ -721,8 +720,8 @@ var DiagramBuilderBase = A.Component.create( var strings = instance.getStrings(); defaultValue.items = [ - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_ADD, label: strings[ADD_NODE] }, - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS, label: strings[SETTINGS] } + { cssClass: CSS_DIAGRAM_BUILDER_TAB_ADD, label: strings[ADD_NODE] }, + { cssClass: CSS_DIAGRAM_BUILDER_TAB_SETTINGS, label: strings[SETTINGS] } ]; } diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-min.js b/build/aui-diagram-builder/aui-diagram-builder-base-min.js index f2e0ab42007..111ee7c709c 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-diagram-builder-base",function(aj){var Y=aj.Lang,d=Y.isArray,ax=Y.isBoolean,Q=Y.isNumber,G=Y.isObject,aA=Y.isString,N=function(A){return(A instanceof aj.ArrayList);},W=function(A){return(A instanceof aj.Node);},I=function(A){return(A instanceof aj.AvailableField);},aK=aj.Array,aa="add",o="addNode",aJ="auto",R="availableField",V="availableFields",aG="availableFieldsDragConfig",au="base",w="boundingBox",aD="builder",ae="cancel",ag="canvas",ay="clearfix",f="column",a="container",ah="content",z="contentBox",e="contentContainer",U="contentNode",J="createDocumentFragment",E="diagram",K="diagram-builder-base",af="disk",s="draggable",aF="drop",aq="dropConfig",ad="dropContainer",aw="field",x="fields",r="fieldsContainer",av="height",t="helper",ab="icon",B="iconClass",ap="id",al="label",y="layout",ao="list",T="maxFields",v="node",g="parentNode",ai="propertyList",aE="rendered",ar="save",u="settings",S="tab",M="tabView",b="tabs",h="tabview",P="toolbar",m="toolbarContainer",C=aj.getClassName,aI=" ",j=".",k="#",aI=" ",F="_",n=C(f),D=C(E,aD,au,ag),at=C(E,aD,au,ah,a),aL=C(E,aD,au,aF,a),H=C(E,aD,au,aw),am=C(E,aD,au,aw,s),c=C(E,aD,au,aw,ab),Z=C(E,aD,au,aw,al),i=C(E,aD,au,x,a),an=C(E,aD,au,S,aa),O=C(E,aD,au,S,u),q=C(E,aD,au,b,a),ac=C(E,aD,au,b,a,ah),aB=C(E,aD,au,P,a),ak=C(t,ay),p=C(ab),L=C(y),aC=C(h,ah),aH=C(h,ao);var l=aj.Component.create({NAME:R,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aA},iconClass:{validator:aA},id:{value:aj.guid(),setter:"_setId",validator:aA},node:{valueFn:function(aM){var A=this;if(!W(aM)){aM=aj.Node.create(aj.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(B)}));aM.setData(R,A);}return aM;},validator:W,writeOnce:true},type:{value:v,validator:aA}},EXTENDS:aj.Base,buildNodeId:function(A){return V+F+aw+F+A;},getAvailableFieldById:function(A){return aj.AvailableField.getAvailableFieldByNode(k+aj.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return aj.one(A).getData(R);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                  • '+''+'
                                                                                                    '+"
                                                                                                  • ",initializer:function(){var A=this;var aM=A.get(v);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(j+Z);A._uiSetDraggable(A.get(s));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(al));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return aj.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(v).toggleClass(am,aM);},_uiSetId:function(aM){var A=this;A.get(v).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});aj.AvailableField=l;var X=function(){};X.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||N(A);}},maxFields:{value:Infinity,validator:Q}};aj.mix(X.prototype,{_setFields:function(aM){var A=this;if(N(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(x,aM);},addField:function(aM){var A=this;if(A.get(x).size()',DROP_CONTAINER_TEMPLATE:'
                                                                                                    ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                    ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                      ',CANVAS_TEMPLATE:'
                                                                                                      ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(ag);A.contentContainer=A.get(e);A.dropContainer=A.get(ad);A.fieldsContainer=A.get(r);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(x);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(V));},syncUI:function(){var A=this;var aM=A.get(z);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(L);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(U);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this; -A.contentContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);A.dropContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ae);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(z);var aN=A.canvas;var aO=A.contentContainer;var aP=A.dropContainer;if(!aN.inDoc()){aO.appendChild(aN);}if(!aP.inDoc()){aN.appendChild(aP);}if(aO.inDoc()){aO.get(g).append(aO);}else{aM.appendChild(aO);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new aj.PropertyList(A.get(ai)).render(A.settingsNode);A.propertyList.get(w).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new aj.TabView(A.get(M));aM.get(w);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(U);A.settingsNode=aM.getTab(1).get(U);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new aj.Toolbar(A.get(P)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new aj.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new aj.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(I(aP)?aP:new aj.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,groups:[V],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,container:A.get(w),dragConfig:{groups:[V],plugins:[{cfg:{moveOnEnd:false},fn:aj.Plugin.DDProxy}]},nodes:j+am},aM||{});},_setPropertyList:function(aM){var A=this;return aj.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(w);var aQ=aO.one(j+aH);var aN={after:{activeTabChange:aj.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(j+q),contentBox:aO.one(j+ac),bubbleTargets:aM,contentNode:aO.one(j+aC),cssClass:q,listNode:aQ,render:aM.get(z)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[o]},{cssClass:O,label:A[u]}];}return aj.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return aj.merge({activeState:false,bubbleTargets:aM,children:[{handler:aj.bind(aM._handleSaveEvent,aM),label:A[ar],icon:af},{handler:aj.bind(aM._handleCancelEvent,aM),label:A[ae]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=aj.getDoc().invoke(J);aK.each(aO,function(aP){aM.appendChild(aP.get(v));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});aj.DiagramBuilderBase=az;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(ai){var W=ai.Lang,d=W.isArray,ax=W.isBoolean,O=W.isNumber,F=W.isObject,aB=W.isString,M=function(A){return(A instanceof ai.ArrayList);},U=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,X="add",o="addNode",aJ="auto",P="availableField",T="availableFields",aG="availableFieldsDragConfig",v="boundingBox",aD="builder",ac="cancel",af="canvas",az="clearfix",f="column",a="container",ag="content",y="contentBox",e="contentContainer",S="contentNode",I="createDocumentFragment",D="diagram",ap="diagram-builder",ad="disk",r="draggable",aF="drop",at="dropConfig",ab="dropContainer",aw="field",w="fields",q="fieldsContainer",av="height",s="helper",aa="icon",z="iconClass",ar="id",an="label",x="layout",aq="list",R="maxFields",u="node",g="parentNode",ah="propertyList",aE="rendered",au="save",t="settings",Q="tab",K="tabView",b="tabs",h="tabview",N="toolbar",m="toolbarContainer",C=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",n=C(f),B=C(D,aD,af),ak=C(D,aD,ag,a),G=C(D,aD,aF,a),ay=C(D,aD,aw),l=C(D,aD,aw,r),c=C(D,aD,aw,aa),ae=C(D,aD,aw,an),Z=C(D,aD,w,a),al=C(D,aD,Q,X),L=C(D,aD,Q,t),Y=C(D,aD,b,a),aj=C(D,aD,b,a,ag),ao=C(D,aD,N,a),am=C(s,az),p=C(aa),J=C(x),aC=C(h,ag),aH=C(h,aq);var k=ai.Component.create({NAME:P,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aB},iconClass:{validator:aB},id:{value:ai.guid(),setter:"_setId",validator:aB},node:{valueFn:function(aL){var A=this;if(!U(aL)){aL=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aL.setData(P,A);}return aL;},validator:U,writeOnce:true},type:{value:u,validator:aB}},EXTENDS:ai.Base,buildNodeId:function(A){return T+E+aw+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(P);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                    • '+''+'
                                                                                                      '+"
                                                                                                    • ",initializer:function(){var A=this;var aL=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aL.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ar));A._uiSetLabel(A.get(an));},_afterDraggableChange:function(aL){var A=this;A._uiSetDraggable(aL.newVal);},_afterIdChange:function(aL){var A=this;A._uiSetId(aL.newVal);},_afterLabelChange:function(aL){var A=this;A._uiSetLabel(aL.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aL){var A=this;A.get(u).toggleClass(l,aL);},_uiSetId:function(aL){var A=this;A.get(u).set(ar,aL);},_uiSetLabel:function(aL){var A=this;A.labelNode.setContent(aL);}}});ai.AvailableField=k;var V=function(){};V.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(V.prototype,{_setFields:function(aL){var A=this;if(M(aL)){return aL;}else{return A.createFields(aL);}},_updateFields:function(aL){var A=this;A.set(w,aL);},addField:function(aL){var A=this;if(A.get(w).size()',DROP_CONTAINER_TEMPLATE:'
                                                                                                      ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                      ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                        ',CANVAS_TEMPLATE:'
                                                                                                        ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aM){var A=this;var aL=A.availableFieldsDrag;return(aM===aL.dd);},plotFields:function(){var aL=this;var A=aL.get(w);A.each(function(aM){aL.plotField(aM);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aL=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aL.addClass(J);},_afterActiveTabChange:function(aM){var A=this;var aL=aM.newVal.get(S);if(A.get(aE)&&(aL===A.settingsNode)){A._renderSettings();}},_afterRender:function(aL){var A=this;A.plotFields();},_afterUiSetHeight:function(aL){var A=this;A.contentContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL); +A.dropContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL);},_defCancelFn:function(aL){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(au);},_renderCanvas:function(){var A=this;var aL=A.get(y);var aM=A.canvas;var aN=A.contentContainer;var aO=A.dropContainer;if(!aM.inDoc()){aN.appendChild(aM);}if(!aO.inDoc()){aM.appendChild(aO);}if(aN.inDoc()){aN.get(g).append(aN);}else{aL.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aL=new ai.TabView(A.get(K));aL.get(v);A.tabView=aL;A.fieldsNode=aL.getTab(0).get(S);A.settingsNode=aL.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(at));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aM){var aL=this;var A=[];aK.each(aM,function(aO,aN){A.push(H(aO)?aO:new ai.AvailableField(aO));});return A;},_setDropConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aL||{});},_setAvailableFieldsDragConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aL||{});},_setPropertyList:function(aL){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aL);},_setTabView:function(aO){var aL=this;var aN=aL.get(v);var aP=aN.one(i+aH);var aM={after:{activeTabChange:ai.bind(aL._afterActiveTabChange,aL)},boundingBox:aN.one(i+Y),contentBox:aN.one(i+aj),bubbleTargets:aL,contentNode:aN.one(i+aC),cssClass:Y,listNode:aP,render:aL.get(y)};if(!aP){var A=aL.getStrings();aM.items=[{cssClass:al,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aM,aO);},_setToolbar:function(aM){var aL=this;var A=aL.getStrings();return ai.merge({activeState:false,bubbleTargets:aL,children:[{handler:ai.bind(aL._handleSaveEvent,aL),label:A[au],icon:ad},{handler:ai.bind(aL._handleCancelEvent,aL),label:A[ac]}]},aM);},_uiSetAvailableFields:function(aN){var A=this;var aM=A.fieldsNode;if(aM){var aL=ai.getDoc().invoke(I);aK.each(aN,function(aO){aL.appendChild(aO.get(u));});aM.setContent(A.fieldsContainer.setContent(aL));}},_uiSetFields:function(aL){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=aA;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-base.js b/build/aui-diagram-builder/aui-diagram-builder-base.js index 67d00c9f5aa..a57fc2d054f 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base.js @@ -26,7 +26,6 @@ var Lang = A.Lang, AVAILABLE_FIELD = 'availableField', AVAILABLE_FIELDS = 'availableFields', AVAILABLE_FIELDS_DRAG_CONFIG = 'availableFieldsDragConfig', - BASE = 'base', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', @@ -40,7 +39,7 @@ var Lang = A.Lang, CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', - DIAGRAM_BUILDER_BASE = 'diagram-builder-base', + DIAGRAM_BUILDER = 'diagram-builder', DISK = 'disk', DRAGGABLE = 'draggable', DROP = 'drop', @@ -80,19 +79,19 @@ var Lang = A.Lang, _UNDERLINE = '_', CSS_COLUMN = AgetClassName(COLUMN), - CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), - CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), - CSS_DIAGRAM_BUILDER_BASE_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, ICON), - CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, LABEL), - CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, ADD), - CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), - CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), + CSS_DIAGRAM_BUILDER_CANVAS = AgetClassName(DIAGRAM, BUILDER, CANVAS), + CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, DROP, CONTAINER), + CSS_DIAGRAM_BUILDER_FIELD = AgetClassName(DIAGRAM, BUILDER, FIELD), + CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, FIELD, DRAGGABLE), + CSS_DIAGRAM_BUILDER_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, FIELD, ICON), + CSS_DIAGRAM_BUILDER_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, FIELD, LABEL), + CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), + CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), + CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), @@ -166,9 +165,9 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                                                                      • ' + - '' + - '
                                                                                                        ' + + FIELD_ITEM_TEMPLATE: '
                                                                                                      • ' + + '' + + '
                                                                                                        ' + '
                                                                                                      • ', initializer: function() { @@ -181,7 +180,7 @@ var AvailableField = A.Component.create({ labelChange: instance._afterLabelChange }); - instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL); + instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_FIELD_LABEL); instance._uiSetDraggable( instance.get(DRAGGABLE) @@ -227,7 +226,7 @@ var AvailableField = A.Component.create({ _uiSetDraggable: function(val) { var instance = this; - instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE, val); + instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE, val); }, _uiSetId: function(val) { @@ -341,7 +340,7 @@ A.FieldSupport = FieldSupport; var DiagramBuilderBase = A.Component.create( { - NAME: DIAGRAM_BUILDER_BASE, + NAME: DIAGRAM_BUILDER, ATTRS: { availableFields: { @@ -423,11 +422,11 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, - dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, - fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, - canvas: _DOT+CSS_DIAGRAM_BUILDER_BASE_CANVAS + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER, + dropContainer: _DOT+CSS_DIAGRAM_BUILDER_DROP_CONTAINER, + fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER, + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER, + canvas: _DOT+CSS_DIAGRAM_BUILDER_CANVAS }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -435,11 +434,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
                                                                                                        ', - DROP_CONTAINER_TEMPLATE: '
                                                                                                        ', - TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                        ', - FIELDS_CONTAINER_TEMPLATE: '
                                                                                                          ', - CANVAS_TEMPLATE: '
                                                                                                          ', + CONTENT_CONTAINER_TEMPLATE: '
                                                                                                          ', + DROP_CONTAINER_TEMPLATE: '
                                                                                                          ', + TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                          ', + FIELDS_CONTAINER_TEMPLATE: '
                                                                                                            ', + CANVAS_TEMPLATE: '
                                                                                                            ', fieldsNode: null, propertyList: null, @@ -677,7 +676,7 @@ var DiagramBuilderBase = A.Component.create( } ] }, - nodes: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE + nodes: _DOT+CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE }, val || {} ); @@ -708,11 +707,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; @@ -721,8 +720,8 @@ var DiagramBuilderBase = A.Component.create( var strings = instance.getStrings(); defaultValue.items = [ - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_ADD, label: strings[ADD_NODE] }, - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS, label: strings[SETTINGS] } + { cssClass: CSS_DIAGRAM_BUILDER_TAB_ADD, label: strings[ADD_NODE] }, + { cssClass: CSS_DIAGRAM_BUILDER_TAB_SETTINGS, label: strings[SETTINGS] } ]; } diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index d4adf4fdd01..8e9335614c1 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -26,7 +26,6 @@ var Lang = A.Lang, AVAILABLE_FIELD = 'availableField', AVAILABLE_FIELDS = 'availableFields', AVAILABLE_FIELDS_DRAG_CONFIG = 'availableFieldsDragConfig', - BASE = 'base', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', @@ -40,7 +39,7 @@ var Lang = A.Lang, CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', - DIAGRAM_BUILDER_BASE = 'diagram-builder-base', + DIAGRAM_BUILDER = 'diagram-builder', DISK = 'disk', DRAGGABLE = 'draggable', DROP = 'drop', @@ -80,19 +79,19 @@ var Lang = A.Lang, _UNDERLINE = '_', CSS_COLUMN = AgetClassName(COLUMN), - CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), - CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), - CSS_DIAGRAM_BUILDER_BASE_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, ICON), - CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, LABEL), - CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, ADD), - CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), - CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), + CSS_DIAGRAM_BUILDER_CANVAS = AgetClassName(DIAGRAM, BUILDER, CANVAS), + CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, DROP, CONTAINER), + CSS_DIAGRAM_BUILDER_FIELD = AgetClassName(DIAGRAM, BUILDER, FIELD), + CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, FIELD, DRAGGABLE), + CSS_DIAGRAM_BUILDER_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, FIELD, ICON), + CSS_DIAGRAM_BUILDER_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, FIELD, LABEL), + CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), + CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), + CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), @@ -166,9 +165,9 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                                                                          • ' + - '' + - '
                                                                                                            ' + + FIELD_ITEM_TEMPLATE: '
                                                                                                          • ' + + '' + + '
                                                                                                            ' + '
                                                                                                          • ', initializer: function() { @@ -181,7 +180,7 @@ var AvailableField = A.Component.create({ labelChange: instance._afterLabelChange }); - instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL); + instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_FIELD_LABEL); instance._uiSetDraggable( instance.get(DRAGGABLE) @@ -227,7 +226,7 @@ var AvailableField = A.Component.create({ _uiSetDraggable: function(val) { var instance = this; - instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE, val); + instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE, val); }, _uiSetId: function(val) { @@ -341,7 +340,7 @@ A.FieldSupport = FieldSupport; var DiagramBuilderBase = A.Component.create( { - NAME: DIAGRAM_BUILDER_BASE, + NAME: DIAGRAM_BUILDER, ATTRS: { availableFields: { @@ -423,11 +422,11 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, - dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, - fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, - canvas: _DOT+CSS_DIAGRAM_BUILDER_BASE_CANVAS + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER, + dropContainer: _DOT+CSS_DIAGRAM_BUILDER_DROP_CONTAINER, + fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER, + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER, + canvas: _DOT+CSS_DIAGRAM_BUILDER_CANVAS }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -435,11 +434,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
                                                                                                            ', - DROP_CONTAINER_TEMPLATE: '
                                                                                                            ', - TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                            ', - FIELDS_CONTAINER_TEMPLATE: '
                                                                                                              ', - CANVAS_TEMPLATE: '
                                                                                                              ', + CONTENT_CONTAINER_TEMPLATE: '
                                                                                                              ', + DROP_CONTAINER_TEMPLATE: '
                                                                                                              ', + TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                              ', + FIELDS_CONTAINER_TEMPLATE: '
                                                                                                                ', + CANVAS_TEMPLATE: '
                                                                                                                ', fieldsNode: null, propertyList: null, @@ -677,7 +676,7 @@ var DiagramBuilderBase = A.Component.create( } ] }, - nodes: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE + nodes: _DOT+CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE }, val || {} ); @@ -708,11 +707,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; @@ -721,8 +720,8 @@ var DiagramBuilderBase = A.Component.create( var strings = instance.getStrings(); defaultValue.items = [ - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_ADD, label: strings[ADD_NODE] }, - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS, label: strings[SETTINGS] } + { cssClass: CSS_DIAGRAM_BUILDER_TAB_ADD, label: strings[ADD_NODE] }, + { cssClass: CSS_DIAGRAM_BUILDER_TAB_SETTINGS, label: strings[SETTINGS] } ]; } diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index 003d40ea8b3..ea66b5e22f2 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,6 +1,6 @@ -AUI.add("aui-diagram-builder-base",function(aj){var Y=aj.Lang,d=Y.isArray,ax=Y.isBoolean,Q=Y.isNumber,G=Y.isObject,aA=Y.isString,N=function(A){return(A instanceof aj.ArrayList);},W=function(A){return(A instanceof aj.Node);},I=function(A){return(A instanceof aj.AvailableField);},aK=aj.Array,aa="add",o="addNode",aJ="auto",R="availableField",V="availableFields",aG="availableFieldsDragConfig",au="base",w="boundingBox",aD="builder",ae="cancel",ag="canvas",ay="clearfix",f="column",a="container",ah="content",z="contentBox",e="contentContainer",U="contentNode",J="createDocumentFragment",E="diagram",K="diagram-builder-base",af="disk",s="draggable",aF="drop",aq="dropConfig",ad="dropContainer",aw="field",x="fields",r="fieldsContainer",av="height",t="helper",ab="icon",B="iconClass",ap="id",al="label",y="layout",ao="list",T="maxFields",v="node",g="parentNode",ai="propertyList",aE="rendered",ar="save",u="settings",S="tab",M="tabView",b="tabs",h="tabview",P="toolbar",m="toolbarContainer",C=aj.getClassName,aI=" ",j=".",k="#",aI=" ",F="_",n=C(f),D=C(E,aD,au,ag),at=C(E,aD,au,ah,a),aL=C(E,aD,au,aF,a),H=C(E,aD,au,aw),am=C(E,aD,au,aw,s),c=C(E,aD,au,aw,ab),Z=C(E,aD,au,aw,al),i=C(E,aD,au,x,a),an=C(E,aD,au,S,aa),O=C(E,aD,au,S,u),q=C(E,aD,au,b,a),ac=C(E,aD,au,b,a,ah),aB=C(E,aD,au,P,a),ak=C(t,ay),p=C(ab),L=C(y),aC=C(h,ah),aH=C(h,ao);var l=aj.Component.create({NAME:R,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aA},iconClass:{validator:aA},id:{value:aj.guid(),setter:"_setId",validator:aA},node:{valueFn:function(aM){var A=this;if(!W(aM)){aM=aj.Node.create(aj.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(B)}));aM.setData(R,A);}return aM;},validator:W,writeOnce:true},type:{value:v,validator:aA}},EXTENDS:aj.Base,buildNodeId:function(A){return V+F+aw+F+A;},getAvailableFieldById:function(A){return aj.AvailableField.getAvailableFieldByNode(k+aj.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return aj.one(A).getData(R);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                              • '+''+'
                                                                                                                '+"
                                                                                                              • ",initializer:function(){var A=this;var aM=A.get(v);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(j+Z);A._uiSetDraggable(A.get(s));A._uiSetId(A.get(ap));A._uiSetLabel(A.get(al));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return aj.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(v).toggleClass(am,aM);},_uiSetId:function(aM){var A=this;A.get(v).set(ap,aM);},_uiSetLabel:function(aM){var A=this;A.labelNode.setContent(aM);}}});aj.AvailableField=l;var X=function(){};X.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||N(A);}},maxFields:{value:Infinity,validator:Q}};aj.mix(X.prototype,{_setFields:function(aM){var A=this;if(N(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(x,aM);},addField:function(aM){var A=this;if(A.get(x).size()',DROP_CONTAINER_TEMPLATE:'
                                                                                                                ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                                ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                                  ',CANVAS_TEMPLATE:'
                                                                                                                  ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(ag);A.contentContainer=A.get(e);A.dropContainer=A.get(ad);A.fieldsContainer=A.get(r);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(x);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(V));},syncUI:function(){var A=this;var aM=A.get(z);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(L);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(U);if(A.get(aE)&&(aM===A.settingsNode)){A._renderSettings();}},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this; -A.contentContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);A.dropContainer.setStyle(av,Q(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ae);},_handleSaveEvent:function(){var A=this;A.fire(ar);},_renderCanvas:function(){var A=this;var aM=A.get(z);var aN=A.canvas;var aO=A.contentContainer;var aP=A.dropContainer;if(!aN.inDoc()){aO.appendChild(aN);}if(!aP.inDoc()){aN.appendChild(aP);}if(aO.inDoc()){aO.get(g).append(aO);}else{aM.appendChild(aO);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new aj.PropertyList(A.get(ai)).render(A.settingsNode);A.propertyList.get(w).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new aj.TabView(A.get(M));aM.get(w);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(U);A.settingsNode=aM.getTab(1).get(U);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new aj.Toolbar(A.get(P)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new aj.DD.Drop(A.get(aq));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new aj.DD.Delegate(A.get(aG));},_setAvailableFields:function(aN){var aM=this;var A=[];aK.each(aN,function(aP,aO){A.push(I(aP)?aP:new aj.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,groups:[V],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return aj.merge({bubbleTargets:A,container:A.get(w),dragConfig:{groups:[V],plugins:[{cfg:{moveOnEnd:false},fn:aj.Plugin.DDProxy}]},nodes:j+am},aM||{});},_setPropertyList:function(aM){var A=this;return aj.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(w);var aQ=aO.one(j+aH);var aN={after:{activeTabChange:aj.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(j+q),contentBox:aO.one(j+ac),bubbleTargets:aM,contentNode:aO.one(j+aC),cssClass:q,listNode:aQ,render:aM.get(z)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:an,label:A[o]},{cssClass:O,label:A[u]}];}return aj.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return aj.merge({activeState:false,bubbleTargets:aM,children:[{handler:aj.bind(aM._handleSaveEvent,aM),label:A[ar],icon:af},{handler:aj.bind(aM._handleCancelEvent,aM),label:A[ae]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=aj.getDoc().invoke(J);aK.each(aO,function(aP){aM.appendChild(aP.get(v));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aE)){A.plotFields();}}}});aj.DiagramBuilderBase=az;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                                  ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                                  ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af); -A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this; +AUI.add("aui-diagram-builder-base",function(ai){var W=ai.Lang,d=W.isArray,ax=W.isBoolean,O=W.isNumber,F=W.isObject,aB=W.isString,M=function(A){return(A instanceof ai.ArrayList);},U=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,X="add",o="addNode",aJ="auto",P="availableField",T="availableFields",aG="availableFieldsDragConfig",v="boundingBox",aD="builder",ac="cancel",af="canvas",az="clearfix",f="column",a="container",ag="content",y="contentBox",e="contentContainer",S="contentNode",I="createDocumentFragment",D="diagram",ap="diagram-builder",ad="disk",r="draggable",aF="drop",at="dropConfig",ab="dropContainer",aw="field",w="fields",q="fieldsContainer",av="height",s="helper",aa="icon",z="iconClass",ar="id",an="label",x="layout",aq="list",R="maxFields",u="node",g="parentNode",ah="propertyList",aE="rendered",au="save",t="settings",Q="tab",K="tabView",b="tabs",h="tabview",N="toolbar",m="toolbarContainer",C=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",n=C(f),B=C(D,aD,af),ak=C(D,aD,ag,a),G=C(D,aD,aF,a),ay=C(D,aD,aw),l=C(D,aD,aw,r),c=C(D,aD,aw,aa),ae=C(D,aD,aw,an),Z=C(D,aD,w,a),al=C(D,aD,Q,X),L=C(D,aD,Q,t),Y=C(D,aD,b,a),aj=C(D,aD,b,a,ag),ao=C(D,aD,N,a),am=C(s,az),p=C(aa),J=C(x),aC=C(h,ag),aH=C(h,aq);var k=ai.Component.create({NAME:P,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aB},iconClass:{validator:aB},id:{value:ai.guid(),setter:"_setId",validator:aB},node:{valueFn:function(aL){var A=this;if(!U(aL)){aL=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aL.setData(P,A);}return aL;},validator:U,writeOnce:true},type:{value:u,validator:aB}},EXTENDS:ai.Base,buildNodeId:function(A){return T+E+aw+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(P);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                                • '+''+'
                                                                                                                  '+"
                                                                                                                • ",initializer:function(){var A=this;var aL=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aL.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ar));A._uiSetLabel(A.get(an));},_afterDraggableChange:function(aL){var A=this;A._uiSetDraggable(aL.newVal);},_afterIdChange:function(aL){var A=this;A._uiSetId(aL.newVal);},_afterLabelChange:function(aL){var A=this;A._uiSetLabel(aL.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aL){var A=this;A.get(u).toggleClass(l,aL);},_uiSetId:function(aL){var A=this;A.get(u).set(ar,aL);},_uiSetLabel:function(aL){var A=this;A.labelNode.setContent(aL);}}});ai.AvailableField=k;var V=function(){};V.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(V.prototype,{_setFields:function(aL){var A=this;if(M(aL)){return aL;}else{return A.createFields(aL);}},_updateFields:function(aL){var A=this;A.set(w,aL);},addField:function(aL){var A=this;if(A.get(w).size()
                                                                                                                  ',DROP_CONTAINER_TEMPLATE:'
                                                                                                                  ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                                  ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                                    ',CANVAS_TEMPLATE:'
                                                                                                                    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aM){var A=this;var aL=A.availableFieldsDrag;return(aM===aL.dd);},plotFields:function(){var aL=this;var A=aL.get(w);A.each(function(aM){aL.plotField(aM);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aL=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aL.addClass(J);},_afterActiveTabChange:function(aM){var A=this;var aL=aM.newVal.get(S);if(A.get(aE)&&(aL===A.settingsNode)){A._renderSettings();}},_afterRender:function(aL){var A=this;A.plotFields();},_afterUiSetHeight:function(aL){var A=this;A.contentContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL); +A.dropContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL);},_defCancelFn:function(aL){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(au);},_renderCanvas:function(){var A=this;var aL=A.get(y);var aM=A.canvas;var aN=A.contentContainer;var aO=A.dropContainer;if(!aM.inDoc()){aN.appendChild(aM);}if(!aO.inDoc()){aM.appendChild(aO);}if(aN.inDoc()){aN.get(g).append(aN);}else{aL.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aL=new ai.TabView(A.get(K));aL.get(v);A.tabView=aL;A.fieldsNode=aL.getTab(0).get(S);A.settingsNode=aL.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(at));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aM){var aL=this;var A=[];aK.each(aM,function(aO,aN){A.push(H(aO)?aO:new ai.AvailableField(aO));});return A;},_setDropConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aL||{});},_setAvailableFieldsDragConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aL||{});},_setPropertyList:function(aL){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aL);},_setTabView:function(aO){var aL=this;var aN=aL.get(v);var aP=aN.one(i+aH);var aM={after:{activeTabChange:ai.bind(aL._afterActiveTabChange,aL)},boundingBox:aN.one(i+Y),contentBox:aN.one(i+aj),bubbleTargets:aL,contentNode:aN.one(i+aC),cssClass:Y,listNode:aP,render:aL.get(y)};if(!aP){var A=aL.getStrings();aM.items=[{cssClass:al,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aM,aO);},_setToolbar:function(aM){var aL=this;var A=aL.getStrings();return ai.merge({activeState:false,bubbleTargets:aL,children:[{handler:ai.bind(aL._handleSaveEvent,aL),label:A[au],icon:ad},{handler:ai.bind(aL._handleCancelEvent,aL),label:A[ac]}]},aM);},_uiSetAvailableFields:function(aN){var A=this;var aM=A.fieldsNode;if(aM){var aL=ai.getDoc().invoke(I);aK.each(aN,function(aO){aL.appendChild(aO.get(u));});aM.setContent(A.fieldsContainer.setContent(aL));}},_uiSetFields:function(aL){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=aA;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                                    ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                                    ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af); +A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this; return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                    ',CONTROLS_TEMPLATE:'
                                                                                                                    ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(r).each(function(a6){a6.destroy();});A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,}); au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                    ',NODE_TEMPLATE:'
                                                                                                                    ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index d4adf4fdd01..8e9335614c1 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -26,7 +26,6 @@ var Lang = A.Lang, AVAILABLE_FIELD = 'availableField', AVAILABLE_FIELDS = 'availableFields', AVAILABLE_FIELDS_DRAG_CONFIG = 'availableFieldsDragConfig', - BASE = 'base', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', @@ -40,7 +39,7 @@ var Lang = A.Lang, CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', - DIAGRAM_BUILDER_BASE = 'diagram-builder-base', + DIAGRAM_BUILDER = 'diagram-builder', DISK = 'disk', DRAGGABLE = 'draggable', DROP = 'drop', @@ -80,19 +79,19 @@ var Lang = A.Lang, _UNDERLINE = '_', CSS_COLUMN = AgetClassName(COLUMN), - CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), - CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), - CSS_DIAGRAM_BUILDER_BASE_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, ICON), - CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, LABEL), - CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, ADD), - CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), - CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), + CSS_DIAGRAM_BUILDER_CANVAS = AgetClassName(DIAGRAM, BUILDER, CANVAS), + CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, DROP, CONTAINER), + CSS_DIAGRAM_BUILDER_FIELD = AgetClassName(DIAGRAM, BUILDER, FIELD), + CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, FIELD, DRAGGABLE), + CSS_DIAGRAM_BUILDER_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, FIELD, ICON), + CSS_DIAGRAM_BUILDER_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, FIELD, LABEL), + CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), + CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), + CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), @@ -166,9 +165,9 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                                                                                  • ' + - '' + - '
                                                                                                                    ' + + FIELD_ITEM_TEMPLATE: '
                                                                                                                  • ' + + '' + + '
                                                                                                                    ' + '
                                                                                                                  • ', initializer: function() { @@ -181,7 +180,7 @@ var AvailableField = A.Component.create({ labelChange: instance._afterLabelChange }); - instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL); + instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_FIELD_LABEL); instance._uiSetDraggable( instance.get(DRAGGABLE) @@ -227,7 +226,7 @@ var AvailableField = A.Component.create({ _uiSetDraggable: function(val) { var instance = this; - instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE, val); + instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE, val); }, _uiSetId: function(val) { @@ -341,7 +340,7 @@ A.FieldSupport = FieldSupport; var DiagramBuilderBase = A.Component.create( { - NAME: DIAGRAM_BUILDER_BASE, + NAME: DIAGRAM_BUILDER, ATTRS: { availableFields: { @@ -423,11 +422,11 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, - dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, - fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, - canvas: _DOT+CSS_DIAGRAM_BUILDER_BASE_CANVAS + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER, + dropContainer: _DOT+CSS_DIAGRAM_BUILDER_DROP_CONTAINER, + fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER, + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER, + canvas: _DOT+CSS_DIAGRAM_BUILDER_CANVAS }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -435,11 +434,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
                                                                                                                    ', - DROP_CONTAINER_TEMPLATE: '
                                                                                                                    ', - TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                                    ', - FIELDS_CONTAINER_TEMPLATE: '
                                                                                                                      ', - CANVAS_TEMPLATE: '
                                                                                                                      ', + CONTENT_CONTAINER_TEMPLATE: '
                                                                                                                      ', + DROP_CONTAINER_TEMPLATE: '
                                                                                                                      ', + TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                                      ', + FIELDS_CONTAINER_TEMPLATE: '
                                                                                                                        ', + CANVAS_TEMPLATE: '
                                                                                                                        ', fieldsNode: null, propertyList: null, @@ -677,7 +676,7 @@ var DiagramBuilderBase = A.Component.create( } ] }, - nodes: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE + nodes: _DOT+CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE }, val || {} ); @@ -708,11 +707,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; @@ -721,8 +720,8 @@ var DiagramBuilderBase = A.Component.create( var strings = instance.getStrings(); defaultValue.items = [ - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_ADD, label: strings[ADD_NODE] }, - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS, label: strings[SETTINGS] } + { cssClass: CSS_DIAGRAM_BUILDER_TAB_ADD, label: strings[ADD_NODE] }, + { cssClass: CSS_DIAGRAM_BUILDER_TAB_SETTINGS, label: strings[SETTINGS] } ]; } diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index 96ddbf4bb58..aa185ff0a8e 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -19,7 +19,7 @@ width: 250px; } - .aui-diagram-builder-base-drop-container .aui-diagram-node-editing .aui-diagram-node-content { + .aui-diagram-builder-drop-container .aui-diagram-node-editing .aui-diagram-node-content { background-color: lightyellow !important; } @@ -34,7 +34,7 @@ z-index: 1; } - .aui-basecelleditor { + .auicelleditor { z-index: 1000 !important; } @@ -66,7 +66,7 @@ font-weight: bold; } - .aui-diagram-builder-base .aui-diagram-builder-base-field { + .aui-diagram-builder .aui-diagram-builder-field { position: relative; } @@ -75,20 +75,20 @@
                                                                                                                        -

                                                                                                                        Alloy - diagram-builder-base Demo

                                                                                                                        +

                                                                                                                        Alloy - diagram-builder Demo

                                                                                                                        -
                                                                                                                        -
                                                                                                                        +
                                                                                                                        +
                                                                                                                        -
                                                                                                                        -
                                                                                                                        +
                                                                                                                        +
                                                                                                                        @@ -100,9 +100,9 @@

                                                                                                                        Alloy - diagram-builder-base Demo

                                                                                                                        -
                                                                                                                        -
                                                                                                                        -
                                                                                                                        +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        diff --git a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index 0ad6d4fd08d..63c557ec860 100644 --- a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -1,8 +1,8 @@ -.aui-diagram-builder-base { +.aui-diagram-builder { margin: 0; } -.aui-diagram-builder-base .aui-diagram-builder-base-field { +.aui-diagram-builder .aui-diagram-builder-field { border-radius: 4px 4px 4px 4px; float: left; height: 63px; @@ -12,70 +12,70 @@ width: 79px; } -.aui-diagram-builder-base .aui-diagram-builder-base-field-draggable { +.aui-diagram-builder .aui-diagram-builder-field-draggable { cursor: pointer; } -.aui-diagram-builder-base .aui-diagram-builder-base-field:hover { +.aui-diagram-builder .aui-diagram-builder-field:hover { background-color: #fff; } -.aui-diagram-builder-base-field-icon { +.aui-diagram-builder-field-icon { display: inline-block; margin: 3px; } -.aui-diagram-builder-base .aui-diagram-builder-base-field-icon-text { +.aui-diagram-builder .aui-diagram-builder-field-icon-text { background-position: -48px -80px; } -.aui-diagram-builder-base .aui-property-list { +.aui-diagram-builder .aui-property-list { padding-bottom: 10px; } -.aui-diagram-builder-base-content { +.aui-diagram-builder-content { background-color: #f1f1f1; /*padding-left: 260px;*/ } -.aui-diagram-builder-base-tabs-container .aui-tabview-list { +.aui-diagram-builder-tabs-container .aui-tabview-list { margin-bottom: 5px; } -.aui-diagram-builder-base-tabs-container { +.aui-diagram-builder-tabs-container { position: absolute; width: 260px; } -.aui-diagram-builder-base-canvas { +.aui-diagram-builder-canvas { position: relative; } -.aui-diagram-builder-base-fields-container { +.aui-diagram-builder-fields-container { margin: 5px; } -.aui-diagram-builder-base-content { +.aui-diagram-builder-content { min-height: 400px; } -.aui-diagram-builder-base-content-container { +.aui-diagram-builder-content-container { padding-left: 260px; } -.aui-diagram-builder-base-tabs-container-content { +.aui-diagram-builder-tabs-container-content { } .aui-diagram-node { position: absolute; } -.aui-diagram-builder-base-drop-container { +.aui-diagram-builder-drop-container { position: relative; } -.aui-diagram-builder-base-drop-container { +.aui-diagram-builder-drop-container { height: 600px; } diff --git a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css index 36cc962934e..5ce4127ffce 100644 --- a/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css +++ b/src/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base-skin.css @@ -11,13 +11,13 @@ background: url(anchor-drop-active.png) no-repeat scroll center center transparent; } -.aui-diagram-builder-base .aui-diagram-builder-base-field { +.aui-diagram-builder .aui-diagram-builder-field { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } -.aui-diagram-builder-base-canvas { +.aui-diagram-builder-canvas { background-image: url(checker-bg.png); border-left: 1px solid #CCCCCC; outline: 0; @@ -28,12 +28,12 @@ overflow: hidden; } -.aui-diagram-builder-base-field-icon { +.aui-diagram-builder-field-icon { width: 30px; height: 30px; } -.aui-diagram-builder-base-drop-container { +.aui-diagram-builder-drop-container { } .aui-diagram-node-task-icon { diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-base.js b/src/aui-diagram-builder/js/aui-diagram-builder-base.js index 61e4067e22c..c48a5bc7627 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-base.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-base.js @@ -25,7 +25,6 @@ var Lang = A.Lang, AVAILABLE_FIELD = 'availableField', AVAILABLE_FIELDS = 'availableFields', AVAILABLE_FIELDS_DRAG_CONFIG = 'availableFieldsDragConfig', - BASE = 'base', BOUNDING_BOX = 'boundingBox', BUILDER = 'builder', CANCEL = 'cancel', @@ -39,7 +38,7 @@ var Lang = A.Lang, CONTENT_NODE = 'contentNode', CREATE_DOCUMENT_FRAGMENT = 'createDocumentFragment', DIAGRAM = 'diagram', - DIAGRAM_BUILDER_BASE = 'diagram-builder-base', + DIAGRAM_BUILDER = 'diagram-builder', DISK = 'disk', DRAGGABLE = 'draggable', DROP = 'drop', @@ -79,19 +78,19 @@ var Lang = A.Lang, _UNDERLINE = '_', CSS_COLUMN = AgetClassName(COLUMN), - CSS_DIAGRAM_BUILDER_BASE_CANVAS = AgetClassName(DIAGRAM, BUILDER, BASE, CANVAS), - CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, CONTENT, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, DROP, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_FIELD = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD), - CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, DRAGGABLE), - CSS_DIAGRAM_BUILDER_BASE_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, ICON), - CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, BASE, FIELD, LABEL), - CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, FIELDS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, ADD), - CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, BASE, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, BASE, TABS, CONTAINER, CONTENT), - CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, BASE, TOOLBAR, CONTAINER), + CSS_DIAGRAM_BUILDER_CANVAS = AgetClassName(DIAGRAM, BUILDER, CANVAS), + CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER = AgetClassName(DIAGRAM, BUILDER, CONTENT, CONTAINER), + CSS_DIAGRAM_BUILDER_DROP_CONTAINER = AgetClassName(DIAGRAM, BUILDER, DROP, CONTAINER), + CSS_DIAGRAM_BUILDER_FIELD = AgetClassName(DIAGRAM, BUILDER, FIELD), + CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE = AgetClassName(DIAGRAM, BUILDER, FIELD, DRAGGABLE), + CSS_DIAGRAM_BUILDER_FIELD_ICON = AgetClassName(DIAGRAM, BUILDER, FIELD, ICON), + CSS_DIAGRAM_BUILDER_FIELD_LABEL = AgetClassName(DIAGRAM, BUILDER, FIELD, LABEL), + CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), + CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), + CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), + CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), CSS_LAYOUT = AgetClassName(LAYOUT), @@ -165,9 +164,9 @@ var AvailableField = A.Component.create({ }, prototype: { - FIELD_ITEM_TEMPLATE: '
                                                                                                                      • ' + - '' + - '
                                                                                                                        ' + + FIELD_ITEM_TEMPLATE: '
                                                                                                                      • ' + + '' + + '
                                                                                                                        ' + '
                                                                                                                      • ', initializer: function() { @@ -180,7 +179,7 @@ var AvailableField = A.Component.create({ labelChange: instance._afterLabelChange }); - instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_LABEL); + instance.labelNode = node.one(_DOT+CSS_DIAGRAM_BUILDER_FIELD_LABEL); instance._uiSetDraggable( instance.get(DRAGGABLE) @@ -226,7 +225,7 @@ var AvailableField = A.Component.create({ _uiSetDraggable: function(val) { var instance = this; - instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE, val); + instance.get(NODE).toggleClass(CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE, val); }, _uiSetId: function(val) { @@ -340,7 +339,7 @@ A.FieldSupport = FieldSupport; var DiagramBuilderBase = A.Component.create( { - NAME: DIAGRAM_BUILDER_BASE, + NAME: DIAGRAM_BUILDER, ATTRS: { availableFields: { @@ -422,11 +421,11 @@ var DiagramBuilderBase = A.Component.create( }, HTML_PARSER: { - contentContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_CONTENT_CONTAINER, - dropContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_DROP_CONTAINER, - fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELDS_CONTAINER, - toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_BASE_TOOLBAR_CONTAINER, - canvas: _DOT+CSS_DIAGRAM_BUILDER_BASE_CANVAS + contentContainer: _DOT+CSS_DIAGRAM_BUILDER_CONTENT_CONTAINER, + dropContainer: _DOT+CSS_DIAGRAM_BUILDER_DROP_CONTAINER, + fieldsContainer: _DOT+CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER, + toolbarContainer: _DOT+CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER, + canvas: _DOT+CSS_DIAGRAM_BUILDER_CANVAS }, UI_ATTRS: [AVAILABLE_FIELDS, FIELDS], @@ -434,11 +433,11 @@ var DiagramBuilderBase = A.Component.create( AUGMENTS: [A.FieldSupport], prototype: { - CONTENT_CONTAINER_TEMPLATE: '
                                                                                                                        ', - DROP_CONTAINER_TEMPLATE: '
                                                                                                                        ', - TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                                        ', - FIELDS_CONTAINER_TEMPLATE: '
                                                                                                                          ', - CANVAS_TEMPLATE: '
                                                                                                                          ', + CONTENT_CONTAINER_TEMPLATE: '
                                                                                                                          ', + DROP_CONTAINER_TEMPLATE: '
                                                                                                                          ', + TOOLBAR_CONTAINER_TEMPLATE: '
                                                                                                                          ', + FIELDS_CONTAINER_TEMPLATE: '
                                                                                                                            ', + CANVAS_TEMPLATE: '
                                                                                                                            ', fieldsNode: null, propertyList: null, @@ -676,7 +675,7 @@ var DiagramBuilderBase = A.Component.create( } ] }, - nodes: _DOT+CSS_DIAGRAM_BUILDER_BASE_FIELD_DRAGGABLE + nodes: _DOT+CSS_DIAGRAM_BUILDER_FIELD_DRAGGABLE }, val || {} ); @@ -707,11 +706,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_BASE_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; @@ -720,8 +719,8 @@ var DiagramBuilderBase = A.Component.create( var strings = instance.getStrings(); defaultValue.items = [ - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_ADD, label: strings[ADD_NODE] }, - { cssClass: CSS_DIAGRAM_BUILDER_BASE_TAB_SETTINGS, label: strings[SETTINGS] } + { cssClass: CSS_DIAGRAM_BUILDER_TAB_ADD, label: strings[ADD_NODE] }, + { cssClass: CSS_DIAGRAM_BUILDER_TAB_SETTINGS, label: strings[SETTINGS] } ]; } From 12bcb7c58c5a3bd7edea7b7d5a20287988fbddf3 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 25 Aug 2011 11:00:51 -0300 Subject: [PATCH 124/132] Source formatting --- demos/diagram-builder/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/diagram-builder/index.html b/demos/diagram-builder/index.html index aa185ff0a8e..9bce913a8d7 100644 --- a/demos/diagram-builder/index.html +++ b/demos/diagram-builder/index.html @@ -34,7 +34,7 @@ z-index: 1; } - .auicelleditor { + .aui-basecelleditor { z-index: 1000 !important; } From e1ce894a8d00f2ff36ad3c1d92c6a2ffdb695d59 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 25 Aug 2011 13:41:21 -0300 Subject: [PATCH 125/132] AUI-461 Avoid null pointer reference after destroy DiagramNode --- src/aui-diagram-builder/js/aui-diagram-builder-impl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js index 784fbc3f883..a64947ae882 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-impl.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-impl.js @@ -258,7 +258,7 @@ var DiagramBuilder = A.Component.create({ field.destroy(); }); - fields = null; + fields = instance.editingConnector = instance.editingNode = instance.selectedNode = null; }, closeEditProperties: function() { From 65d9193fa9b9bc4e2d66b2d97be78e9602fafddf Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 25 Aug 2011 13:41:29 -0300 Subject: [PATCH 126/132] Build files --- build/aui-diagram-builder/aui-diagram-builder-debug.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-impl-debug.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-impl-min.js | 6 +++--- build/aui-diagram-builder/aui-diagram-builder-impl.js | 2 +- build/aui-diagram-builder/aui-diagram-builder-min.js | 2 +- build/aui-diagram-builder/aui-diagram-builder.js | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 8e9335614c1..ea2d4e09014 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -1044,7 +1044,7 @@ var DiagramBuilder = A.Component.create({ field.destroy(); }); - fields = null; + fields = instance.editingConnector = instance.editingNode = instance.selectedNode = null; }, closeEditProperties: function() { diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js index c2f3275e036..d2f170731b2 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js @@ -259,7 +259,7 @@ var DiagramBuilder = A.Component.create({ field.destroy(); }); - fields = null; + fields = instance.editingConnector = instance.editingNode = instance.selectedNode = null; }, closeEditProperties: function() { diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js index 2d934c7bcdd..c1716d3ea25 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js @@ -1,3 +1,3 @@ -AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                                            ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                                            ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this; -A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                            ',CONTROLS_TEMPLATE:'
                                                                                                                            ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(r).each(function(a6){a6.destroy();});A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this; -return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                                            ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                                            ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af);A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=a6.editingConnector=a6.editingNode=a6.selectedNode=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false); +}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this;return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                            ',CONTROLS_TEMPLATE:'
                                                                                                                            ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(r).each(function(a6){a6.destroy();});A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this; +A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl.js b/build/aui-diagram-builder/aui-diagram-builder-impl.js index c2f3275e036..d2f170731b2 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl.js @@ -259,7 +259,7 @@ var DiagramBuilder = A.Component.create({ field.destroy(); }); - fields = null; + fields = instance.editingConnector = instance.editingNode = instance.selectedNode = null; }, closeEditProperties: function() { diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index ea66b5e22f2..d63abe73d8c 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,6 +1,6 @@ AUI.add("aui-diagram-builder-base",function(ai){var W=ai.Lang,d=W.isArray,ax=W.isBoolean,O=W.isNumber,F=W.isObject,aB=W.isString,M=function(A){return(A instanceof ai.ArrayList);},U=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,X="add",o="addNode",aJ="auto",P="availableField",T="availableFields",aG="availableFieldsDragConfig",v="boundingBox",aD="builder",ac="cancel",af="canvas",az="clearfix",f="column",a="container",ag="content",y="contentBox",e="contentContainer",S="contentNode",I="createDocumentFragment",D="diagram",ap="diagram-builder",ad="disk",r="draggable",aF="drop",at="dropConfig",ab="dropContainer",aw="field",w="fields",q="fieldsContainer",av="height",s="helper",aa="icon",z="iconClass",ar="id",an="label",x="layout",aq="list",R="maxFields",u="node",g="parentNode",ah="propertyList",aE="rendered",au="save",t="settings",Q="tab",K="tabView",b="tabs",h="tabview",N="toolbar",m="toolbarContainer",C=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",n=C(f),B=C(D,aD,af),ak=C(D,aD,ag,a),G=C(D,aD,aF,a),ay=C(D,aD,aw),l=C(D,aD,aw,r),c=C(D,aD,aw,aa),ae=C(D,aD,aw,an),Z=C(D,aD,w,a),al=C(D,aD,Q,X),L=C(D,aD,Q,t),Y=C(D,aD,b,a),aj=C(D,aD,b,a,ag),ao=C(D,aD,N,a),am=C(s,az),p=C(aa),J=C(x),aC=C(h,ag),aH=C(h,aq);var k=ai.Component.create({NAME:P,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aB},iconClass:{validator:aB},id:{value:ai.guid(),setter:"_setId",validator:aB},node:{valueFn:function(aL){var A=this;if(!U(aL)){aL=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aL.setData(P,A);}return aL;},validator:U,writeOnce:true},type:{value:u,validator:aB}},EXTENDS:ai.Base,buildNodeId:function(A){return T+E+aw+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(P);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                                          • '+''+'
                                                                                                                            '+"
                                                                                                                          • ",initializer:function(){var A=this;var aL=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aL.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ar));A._uiSetLabel(A.get(an));},_afterDraggableChange:function(aL){var A=this;A._uiSetDraggable(aL.newVal);},_afterIdChange:function(aL){var A=this;A._uiSetId(aL.newVal);},_afterLabelChange:function(aL){var A=this;A._uiSetLabel(aL.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aL){var A=this;A.get(u).toggleClass(l,aL);},_uiSetId:function(aL){var A=this;A.get(u).set(ar,aL);},_uiSetLabel:function(aL){var A=this;A.labelNode.setContent(aL);}}});ai.AvailableField=k;var V=function(){};V.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(V.prototype,{_setFields:function(aL){var A=this;if(M(aL)){return aL;}else{return A.createFields(aL);}},_updateFields:function(aL){var A=this;A.set(w,aL);},addField:function(aL){var A=this;if(A.get(w).size()
                                                                                                                            ',DROP_CONTAINER_TEMPLATE:'
                                                                                                                            ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                                            ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                                              ',CANVAS_TEMPLATE:'
                                                                                                                              ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aM){var A=this;var aL=A.availableFieldsDrag;return(aM===aL.dd);},plotFields:function(){var aL=this;var A=aL.get(w);A.each(function(aM){aL.plotField(aM);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aL=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aL.addClass(J);},_afterActiveTabChange:function(aM){var A=this;var aL=aM.newVal.get(S);if(A.get(aE)&&(aL===A.settingsNode)){A._renderSettings();}},_afterRender:function(aL){var A=this;A.plotFields();},_afterUiSetHeight:function(aL){var A=this;A.contentContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL); A.dropContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL);},_defCancelFn:function(aL){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(au);},_renderCanvas:function(){var A=this;var aL=A.get(y);var aM=A.canvas;var aN=A.contentContainer;var aO=A.dropContainer;if(!aM.inDoc()){aN.appendChild(aM);}if(!aO.inDoc()){aM.appendChild(aO);}if(aN.inDoc()){aN.get(g).append(aN);}else{aL.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aL=new ai.TabView(A.get(K));aL.get(v);A.tabView=aL;A.fieldsNode=aL.getTab(0).get(S);A.settingsNode=aL.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(at));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aM){var aL=this;var A=[];aK.each(aM,function(aO,aN){A.push(H(aO)?aO:new ai.AvailableField(aO));});return A;},_setDropConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aL||{});},_setAvailableFieldsDragConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aL||{});},_setPropertyList:function(aL){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aL);},_setTabView:function(aO){var aL=this;var aN=aL.get(v);var aP=aN.one(i+aH);var aM={after:{activeTabChange:ai.bind(aL._afterActiveTabChange,aL)},boundingBox:aN.one(i+Y),contentBox:aN.one(i+aj),bubbleTargets:aL,contentNode:aN.one(i+aC),cssClass:Y,listNode:aP,render:aL.get(y)};if(!aP){var A=aL.getStrings();aM.items=[{cssClass:al,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aM,aO);},_setToolbar:function(aM){var aL=this;var A=aL.getStrings();return ai.merge({activeState:false,bubbleTargets:aL,children:[{handler:ai.bind(aL._handleSaveEvent,aL),label:A[au],icon:ad},{handler:ai.bind(aL._handleCancelEvent,aL),label:A[ac]}]},aM);},_uiSetAvailableFields:function(aN){var A=this;var aM=A.fieldsNode;if(aM){var aL=ai.getDoc().invoke(I);aK.each(aN,function(aO){aL.appendChild(aO.get(u));});aM.setContent(A.fieldsContainer.setContent(aL));}},_uiSetFields:function(aL){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=aA;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                                              ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                                              ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af); -A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this; +A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=a6.editingConnector=a6.editingNode=a6.selectedNode=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this; return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                              ',CONTROLS_TEMPLATE:'
                                                                                                                              ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(r).each(function(a6){a6.destroy();});A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,}); au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                              ',NODE_TEMPLATE:'
                                                                                                                              ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()0)||(A.get(l).size()>0));},isConnected:function(ac){var A=this;return A.connectors.hasOwnProperty(ac.get(z));},removeSource:function(ac){var A=this;A.set(l,A.get(l).remove(ac));return A;},removeTarget:function(ac){var A=this;A.set(j,A.get(j).remove(ac));delete A.connectors[ac.get(z)];return A;},_afterSourcesChange:function(ac){var A=this;A._uiSetSources(ac.newVal);},_afterTargetsChange:function(ac){var A=this;ac.prevVal.each(function(ad){ad.removeSource(A);});ac.newVal.each(function(ad){ad.addSource(A);});A._uiSetTargets(ac.newVal);},_renderNode:function(){var A=this;var ad=A.get(D);var ac=ad.get(T);A.wrapper=ac.one(y+e)||p.Node.create(A.ANCHOR_WRAPPER_TEMPLATE);A.wrapper.appendTo(ac).appendChild(A.get(Y));},_setConnector:function(ac){var A=this;return p.merge({graphic:A.getBuilder().get(J)},ac);},_setSources:function(ac){var A=this;return A._setAnchors(ac);},_setTargets:function(ac){var A=this;ac=A._setAnchors(ac,true);ac.each(function(ad){ad.addSource(A);});return ac;},_setAnchors:function(ae,ad){var A=this;if(!R(ae)){var ac=[];p.Array.some(ae,function(ag,af){if(af>=A.get(ag?n:o)){return true;}ac.push(d(ag)?ag:new p.Anchor(ag));});ae=new p.ArrayList(ac);}return ae;},_setMaxSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));return ac;},_setMaxTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));return ac;},_setNode:function(ac){var A=this;var ad=A.get(z);return p.one(ac).set(z,ad).setData(a,A);},_uiSetSources:function(ac){var A=this;A._uiSetMaxSources(A.get(o));},_uiSetMaxSources:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(f,(A.get(l).size()===ad));},_uiSetMaxTargets:function(ad){var A=this;var ac=A.get(Y);ac.toggleClass(c,(A.get(j).size()===ad));},_uiSetTargets:function(ac){var A=this;A._uiSetMaxTargets(A.get(n));}},{ATTRS:{diagramNode:{},connector:{setter:"_setConnector",value:{},validator:O},id:{readOnly:true,valueFn:function(){return p.guid();}},maxSources:{setter:"_setMaxSources",value:1,validator:Z},maxTargets:{setter:"_setMaxTargets",value:1,validator:Z},node:{setter:"_setNode",valueFn:function(){var A=this;return p.Node.create(A.NODE_TEMPLATE);}},sources:{value:[],setter:"_setSources",validator:function(A){return C(A)||R(A);}},targets:{value:[],setter:"_setTargets",validator:function(A){return C(A)||R(A);}}},getAnchorByNode:function(A){return d(A)?A:p.one(A).getData(a);}});},"@VERSION@",{requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"],skinnable:true});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index 8e9335614c1..ea2d4e09014 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -1044,7 +1044,7 @@ var DiagramBuilder = A.Component.create({ field.destroy(); }); - fields = null; + fields = instance.editingConnector = instance.editingNode = instance.selectedNode = null; }, closeEditProperties: function() { From 640a65a840774beb622ca1bce9009f36ec308023 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 25 Aug 2011 14:26:24 -0300 Subject: [PATCH 127/132] AUI-485 - Fix Source formatting --- .../aui-tpl-snippets-base-debug.js | 6 +++--- .../aui-tpl-snippets-base-min.js | 2 +- build/aui-tpl-snippets/aui-tpl-snippets-base.js | 6 +++--- .../aui-tpl-snippets-checkbox-debug.js | 2 +- .../aui-tpl-snippets-checkbox-min.js | 2 +- .../aui-tpl-snippets-checkbox.js | 2 +- build/aui-tpl-snippets/aui-tpl-snippets-debug.js | 16 ++++++++-------- .../aui-tpl-snippets-input-debug.js | 2 +- .../aui-tpl-snippets-input-min.js | 2 +- build/aui-tpl-snippets/aui-tpl-snippets-input.js | 2 +- build/aui-tpl-snippets/aui-tpl-snippets-min.js | 2 +- .../aui-tpl-snippets-select-debug.js | 2 +- .../aui-tpl-snippets-select-min.js | 2 +- .../aui-tpl-snippets/aui-tpl-snippets-select.js | 2 +- .../aui-tpl-snippets-textarea-debug.js | 2 +- .../aui-tpl-snippets-textarea-min.js | 2 +- .../aui-tpl-snippets-textarea.js | 2 +- build/aui-tpl-snippets/aui-tpl-snippets.js | 16 ++++++++-------- src/aui-tpl-snippets/js/aui-tpl-snippets-base.js | 4 ++-- 19 files changed, 38 insertions(+), 38 deletions(-) diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js index 272034d230f..113b16075af 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base-debug.js @@ -8,10 +8,10 @@ var Lang = A.Lang, A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = STR_SPACE + A.getClassName(STR_SPACE); + var prefix = STR_SPACE + A.getClassName(STR_BLANK); - return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_BLANK); } }; -}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js index 4fa146d41be..d36b65645fa 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,c="",b=" ";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(b);return d(f).join(b)+(h?(g+d(h).join(g)):b);}};},"@VERSION@",{requires:["aui-template"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,c="",b=" ";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return d(f).join(b)+(h?(g+d(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-base.js b/build/aui-tpl-snippets/aui-tpl-snippets-base.js index 272034d230f..113b16075af 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-base.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-base.js @@ -8,10 +8,10 @@ var Lang = A.Lang, A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = STR_SPACE + A.getClassName(STR_SPACE); + var prefix = STR_SPACE + A.getClassName(STR_BLANK); - return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_BLANK); } }; -}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js index 5f5cfeb2e33..0f72a64379d 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-debug.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js index e5d82e758b9..5318b1741e6 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js index 5f5cfeb2e33..0f72a64379d 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-checkbox.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js index b35cd6498ab..d265c2b226e 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-debug.js @@ -8,13 +8,13 @@ var Lang = A.Lang, A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = STR_SPACE + A.getClassName(STR_SPACE); + var prefix = STR_SPACE + A.getClassName(STR_BLANK); - return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_BLANK); } }; -}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', @@ -30,7 +30,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); AUI.add('aui-tpl-snippets-input', function(A) { A.Template.register( 'input', @@ -42,7 +42,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); AUI.add('aui-tpl-snippets-textarea', function(A) { A.Template.register( 'textarea', @@ -54,7 +54,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); AUI.add('aui-tpl-snippets-checkbox', function(A) { A.Template.register( 'checkbox', @@ -66,8 +66,8 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{skinnable:false, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox']}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js index e5be21b705c..d607d1fd5d5 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-debug.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js index 5cf7a1bc0a8..1fde0a17d46 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-input.js b/build/aui-tpl-snippets/aui-tpl-snippets-input.js index e5be21b705c..d607d1fd5d5 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-input.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-input.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-min.js index 67312896d82..672f656b9a5 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,c="",b=" ";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(b);return d(f).join(b)+(h?(g+d(h).join(g)):b);}};},"@VERSION@",{requires:["aui-template"],skinnable:false});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{skinnable:false,use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"]}); \ No newline at end of file +AUI.add("aui-tpl-snippets-base",function(a){var e=a.Lang,d=a.Array,c="",b=" ";a.TplSnippets={getClassName:function(h,f){var g=b+a.getClassName(c);return d(f).join(b)+(h?(g+d(h).join(g)):c);}};},"@VERSION@",{skinnable:false,requires:["aui-template"]});AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-input",function(a){a.Template.register("input",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets-checkbox",function(a){a.Template.register("checkbox",['','','',""]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]});AUI.add("aui-tpl-snippets",function(a){},"@VERSION@",{use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js index bac0b78ce86..a3641c84d38 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-debug.js @@ -13,4 +13,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js index f61ed1ad9ee..f30b769b0ea 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-select",function(a){a.Template.register("select",['','',"",'"]);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-select.js b/build/aui-tpl-snippets/aui-tpl-snippets-select.js index bac0b78ce86..a3641c84d38 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-select.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-select.js @@ -13,4 +13,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js index f2a70c5bf05..e507f215493 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-debug.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js index 49d16a1c305..4429d72bf1a 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea-min.js @@ -1 +1 @@ -AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{requires:["aui-tpl-snippets-base"],skinnable:false}); \ No newline at end of file +AUI.add("aui-tpl-snippets-textarea",function(a){a.Template.register("textarea",['','',"",'']);},"@VERSION@",{skinnable:false,requires:["aui-tpl-snippets-base"]}); \ No newline at end of file diff --git a/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js index f2a70c5bf05..e507f215493 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets-textarea.js @@ -9,4 +9,4 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); diff --git a/build/aui-tpl-snippets/aui-tpl-snippets.js b/build/aui-tpl-snippets/aui-tpl-snippets.js index b35cd6498ab..d265c2b226e 100644 --- a/build/aui-tpl-snippets/aui-tpl-snippets.js +++ b/build/aui-tpl-snippets/aui-tpl-snippets.js @@ -8,13 +8,13 @@ var Lang = A.Lang, A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = STR_SPACE + A.getClassName(STR_SPACE); + var prefix = STR_SPACE + A.getClassName(STR_BLANK); - return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_BLANK); } }; -}, '@VERSION@' ,{requires:['aui-template'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-template']}); AUI.add('aui-tpl-snippets-select', function(A) { A.Template.register( 'select', @@ -30,7 +30,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); AUI.add('aui-tpl-snippets-input', function(A) { A.Template.register( 'input', @@ -42,7 +42,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); AUI.add('aui-tpl-snippets-textarea', function(A) { A.Template.register( 'textarea', @@ -54,7 +54,7 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); AUI.add('aui-tpl-snippets-checkbox', function(A) { A.Template.register( 'checkbox', @@ -66,8 +66,8 @@ A.Template.register( ] ); -}, '@VERSION@' ,{requires:['aui-tpl-snippets-base'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-tpl-snippets-base']}); -AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{skinnable:false, use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox']}); +AUI.add('aui-tpl-snippets', function(A){}, '@VERSION@' ,{use:['aui-tpl-snippets-base','aui-tpl-snippets-select','aui-tpl-snippets-input','aui-tpl-snippets-textarea','aui-tpl-snippets-checkbox'], skinnable:false}); diff --git a/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js b/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js index 58faffd3e8c..a44bbee955e 100644 --- a/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js +++ b/src/aui-tpl-snippets/js/aui-tpl-snippets-base.js @@ -7,8 +7,8 @@ var Lang = A.Lang, A.TplSnippets = { getClassName: function(auiCssClass, cssClass) { - var prefix = STR_SPACE + A.getClassName(STR_SPACE); + var prefix = STR_SPACE + A.getClassName(STR_BLANK); - return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_SPACE); + return AArray(cssClass).join(STR_SPACE) + (auiCssClass ? (prefix + AArray(auiCssClass).join(prefix)) : STR_BLANK); } }; \ No newline at end of file From 124e7c3a688f7090343939a669b4349f0579c488 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Thu, 25 Aug 2011 11:04:40 -0700 Subject: [PATCH 128/132] Tabs container css class source formatting --- .../assets/aui-diagram-builder-base-core.css | 6 +++--- .../assets/skins/sam/aui-diagram-builder-base.css | 2 +- .../assets/skins/sam/aui-diagram-builder.css | 2 +- .../aui-diagram-builder-base-debug.js | 10 +++++----- .../aui-diagram-builder-base-min.js | 4 ++-- build/aui-diagram-builder/aui-diagram-builder-base.js | 10 +++++----- build/aui-diagram-builder/aui-diagram-builder-debug.js | 10 +++++----- build/aui-diagram-builder/aui-diagram-builder-min.js | 4 ++-- build/aui-diagram-builder/aui-diagram-builder.js | 10 +++++----- demos/diagram-builder/index.html | 4 ++-- .../assets/aui-diagram-builder-base-core.css | 6 +++--- src/aui-diagram-builder/js/aui-diagram-builder-base.js | 10 +++++----- 12 files changed, 39 insertions(+), 39 deletions(-) diff --git a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index 63c557ec860..14c681594df 100644 --- a/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/build/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -38,11 +38,11 @@ /*padding-left: 260px;*/ } -.aui-diagram-builder-tabs-container .aui-tabview-list { +.aui-diagram-builder-tabs .aui-tabview-list { margin-bottom: 5px; } -.aui-diagram-builder-tabs-container { +.aui-diagram-builder-tabs { position: absolute; width: 260px; } @@ -64,7 +64,7 @@ padding-left: 260px; } -.aui-diagram-builder-tabs-container-content { +.aui-diagram-builder-tabs-content { } .aui-diagram-node { diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css index 48ca25d7700..12c7a9e807f 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder-base.css @@ -1 +1 @@ -.aui-diagram-builder{margin:0}.aui-diagram-builder .aui-diagram-builder-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder .aui-diagram-builder-field-draggable{cursor:pointer}.aui-diagram-builder .aui-diagram-builder-field:hover{background-color:#fff}.aui-diagram-builder-field-icon{display:inline-block;margin:3px}.aui-diagram-builder .aui-diagram-builder-field-icon-text{background-position:-48px -80px}.aui-diagram-builder .aui-property-list{padding-bottom:10px}.aui-diagram-builder-content{background-color:#f1f1f1}.aui-diagram-builder-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-tabs-container{position:absolute;width:260px}.aui-diagram-builder-canvas{position:relative}.aui-diagram-builder-fields-container{margin:5px}.aui-diagram-builder-content{min-height:400px}.aui-diagram-builder-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-drop-container{position:relative}.aui-diagram-builder-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder .aui-diagram-builder-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder{margin:0}.aui-diagram-builder .aui-diagram-builder-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder .aui-diagram-builder-field-draggable{cursor:pointer}.aui-diagram-builder .aui-diagram-builder-field:hover{background-color:#fff}.aui-diagram-builder-field-icon{display:inline-block;margin:3px}.aui-diagram-builder .aui-diagram-builder-field-icon-text{background-position:-48px -80px}.aui-diagram-builder .aui-property-list{padding-bottom:10px}.aui-diagram-builder-content{background-color:#f1f1f1}.aui-diagram-builder-tabs .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-tabs{position:absolute;width:260px}.aui-diagram-builder-canvas{position:relative}.aui-diagram-builder-fields-container{margin:5px}.aui-diagram-builder-content{min-height:400px}.aui-diagram-builder-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-drop-container{position:relative}.aui-diagram-builder-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder .aui-diagram-builder-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css index 32dd9e45b9c..5a5e02c346c 100644 --- a/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css +++ b/build/aui-diagram-builder/assets/skins/sam/aui-diagram-builder.css @@ -1,3 +1,3 @@ -.aui-diagram-builder{margin:0}.aui-diagram-builder .aui-diagram-builder-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder .aui-diagram-builder-field-draggable{cursor:pointer}.aui-diagram-builder .aui-diagram-builder-field:hover{background-color:#fff}.aui-diagram-builder-field-icon{display:inline-block;margin:3px}.aui-diagram-builder .aui-diagram-builder-field-icon-text{background-position:-48px -80px}.aui-diagram-builder .aui-property-list{padding-bottom:10px}.aui-diagram-builder-content{background-color:#f1f1f1}.aui-diagram-builder-tabs-container .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-tabs-container{position:absolute;width:260px}.aui-diagram-builder-canvas{position:relative}.aui-diagram-builder-fields-container{margin:5px}.aui-diagram-builder-content{min-height:400px}.aui-diagram-builder-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-drop-container{position:relative}.aui-diagram-builder-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder .aui-diagram-builder-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} +.aui-diagram-builder{margin:0}.aui-diagram-builder .aui-diagram-builder-field{border-radius:4px 4px 4px 4px;float:left;height:63px;list-style:none outside none;margin:2px;text-align:center;width:79px}.aui-diagram-builder .aui-diagram-builder-field-draggable{cursor:pointer}.aui-diagram-builder .aui-diagram-builder-field:hover{background-color:#fff}.aui-diagram-builder-field-icon{display:inline-block;margin:3px}.aui-diagram-builder .aui-diagram-builder-field-icon-text{background-position:-48px -80px}.aui-diagram-builder .aui-property-list{padding-bottom:10px}.aui-diagram-builder-content{background-color:#f1f1f1}.aui-diagram-builder-tabs .aui-tabview-list{margin-bottom:5px}.aui-diagram-builder-tabs{position:absolute;width:260px}.aui-diagram-builder-canvas{position:relative}.aui-diagram-builder-fields-container{margin:5px}.aui-diagram-builder-content{min-height:400px}.aui-diagram-builder-content-container{padding-left:260px}.aui-diagram-node{position:absolute}.aui-diagram-builder-drop-container{position:relative}.aui-diagram-builder-drop-container{height:600px}.aui-diagram-builder-anchor-node{cursor:pointer;height:15px;position:absolute;width:15px}.aui-diagram-builder-anchor-node-max-targets{cursor:auto}.aui-diagram-node-content{padding:10px}.aui-diagram-builder-controls{display:none}.aui-diagram-node-selected .aui-diagram-builder-controls{display:block;text-align:center;padding:3px}.aui-diagram-node-controls-icon{display:inline-block;margin-top:-3px;vertical-align:middle}.aui-diagram-node-selected{border:1px dotted #666}.aui-diagram-node-focused{outline:0}.aui-diagram-builder-anchor-node{background:url(anchor-default.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-hover,.aui-diagram-builder-anchor-node.yui3-dd-drop-active-valid{background:url(anchor-valid.png) no-repeat scroll center center transparent}.aui-diagram-builder-anchor-node.yui3-dd-drop-over{background:url(anchor-drop-active.png) no-repeat scroll center center transparent}.aui-diagram-builder .aui-diagram-builder-field{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.aui-diagram-builder-canvas{background-image:url(checker-bg.png);border-left:1px solid #ccc;outline:0;z-index:100;border-bottom:1px solid #bbb;border-right:1px solid #bbb;border-top:1px solid #ccc;overflow:hidden}.aui-diagram-builder-field-icon{width:30px;height:30px}.aui-diagram-node-task-icon{background:url(menu-task.png) no-repeat scroll center center transparent}.aui-diagram-node-task .aui-diagram-node-content{background:url(task.png) no-repeat scroll 2px 2px transparent}.aui-diagram-node-fork-icon{background:url(menu-fork.png) no-repeat scroll center center transparent}.aui-diagram-node-fork .aui-diagram-node-content{background:url(fork.png) no-repeat scroll center center transparent}.aui-diagram-node-join-icon{background:url(menu-join.png) no-repeat scroll center center transparent}.aui-diagram-node-join .aui-diagram-node-content{background:url(join.png) no-repeat scroll center center transparent}.aui-diagram-node-state-icon{background:url(menu-state.png) no-repeat scroll center center transparent}.aui-diagram-node-state .aui-diagram-node-content{background:url(state.png) no-repeat scroll center center transparent}.aui-diagram-node-end-icon{background:url(menu-end.png) no-repeat scroll center center transparent}.aui-diagram-node-end .aui-diagram-node-content{background:url(end.png) no-repeat scroll center center transparent}.aui-diagram-node-start-icon{background:url(menu-start.png) no-repeat scroll center center transparent}.aui-diagram-node-start .aui-diagram-node-content{background:url(start.png) no-repeat scroll center center transparent}.aui-diagram-node-condition-icon{background:url(menu-condition.png) no-repeat scroll center center transparent}.aui-diagram-node-condition .aui-diagram-node-content{background:url(condition.png) no-repeat scroll center center transparent} diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js index a57fc2d054f..70b739e8804 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-debug.js @@ -89,8 +89,8 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TABS = AgetClassName(DIAGRAM, BUILDER, TABS), + CSS_DIAGRAM_BUILDER_TABS_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTENT), CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), @@ -707,11 +707,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; diff --git a/build/aui-diagram-builder/aui-diagram-builder-base-min.js b/build/aui-diagram-builder/aui-diagram-builder-base-min.js index 111ee7c709c..c60847be520 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base-min.js @@ -1,2 +1,2 @@ -AUI.add("aui-diagram-builder-base",function(ai){var W=ai.Lang,d=W.isArray,ax=W.isBoolean,O=W.isNumber,F=W.isObject,aB=W.isString,M=function(A){return(A instanceof ai.ArrayList);},U=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,X="add",o="addNode",aJ="auto",P="availableField",T="availableFields",aG="availableFieldsDragConfig",v="boundingBox",aD="builder",ac="cancel",af="canvas",az="clearfix",f="column",a="container",ag="content",y="contentBox",e="contentContainer",S="contentNode",I="createDocumentFragment",D="diagram",ap="diagram-builder",ad="disk",r="draggable",aF="drop",at="dropConfig",ab="dropContainer",aw="field",w="fields",q="fieldsContainer",av="height",s="helper",aa="icon",z="iconClass",ar="id",an="label",x="layout",aq="list",R="maxFields",u="node",g="parentNode",ah="propertyList",aE="rendered",au="save",t="settings",Q="tab",K="tabView",b="tabs",h="tabview",N="toolbar",m="toolbarContainer",C=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",n=C(f),B=C(D,aD,af),ak=C(D,aD,ag,a),G=C(D,aD,aF,a),ay=C(D,aD,aw),l=C(D,aD,aw,r),c=C(D,aD,aw,aa),ae=C(D,aD,aw,an),Z=C(D,aD,w,a),al=C(D,aD,Q,X),L=C(D,aD,Q,t),Y=C(D,aD,b,a),aj=C(D,aD,b,a,ag),ao=C(D,aD,N,a),am=C(s,az),p=C(aa),J=C(x),aC=C(h,ag),aH=C(h,aq);var k=ai.Component.create({NAME:P,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aB},iconClass:{validator:aB},id:{value:ai.guid(),setter:"_setId",validator:aB},node:{valueFn:function(aL){var A=this;if(!U(aL)){aL=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aL.setData(P,A);}return aL;},validator:U,writeOnce:true},type:{value:u,validator:aB}},EXTENDS:ai.Base,buildNodeId:function(A){return T+E+aw+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(P);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                                            • '+''+'
                                                                                                                              '+"
                                                                                                                            • ",initializer:function(){var A=this;var aL=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aL.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ar));A._uiSetLabel(A.get(an));},_afterDraggableChange:function(aL){var A=this;A._uiSetDraggable(aL.newVal);},_afterIdChange:function(aL){var A=this;A._uiSetId(aL.newVal);},_afterLabelChange:function(aL){var A=this;A._uiSetLabel(aL.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aL){var A=this;A.get(u).toggleClass(l,aL);},_uiSetId:function(aL){var A=this;A.get(u).set(ar,aL);},_uiSetLabel:function(aL){var A=this;A.labelNode.setContent(aL);}}});ai.AvailableField=k;var V=function(){};V.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(V.prototype,{_setFields:function(aL){var A=this;if(M(aL)){return aL;}else{return A.createFields(aL);}},_updateFields:function(aL){var A=this;A.set(w,aL);},addField:function(aL){var A=this;if(A.get(w).size()
                                                                                                                              ',DROP_CONTAINER_TEMPLATE:'
                                                                                                                              ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                                              ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                                                ',CANVAS_TEMPLATE:'
                                                                                                                                ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aM){var A=this;var aL=A.availableFieldsDrag;return(aM===aL.dd);},plotFields:function(){var aL=this;var A=aL.get(w);A.each(function(aM){aL.plotField(aM);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aL=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aL.addClass(J);},_afterActiveTabChange:function(aM){var A=this;var aL=aM.newVal.get(S);if(A.get(aE)&&(aL===A.settingsNode)){A._renderSettings();}},_afterRender:function(aL){var A=this;A.plotFields();},_afterUiSetHeight:function(aL){var A=this;A.contentContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL); -A.dropContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL);},_defCancelFn:function(aL){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(au);},_renderCanvas:function(){var A=this;var aL=A.get(y);var aM=A.canvas;var aN=A.contentContainer;var aO=A.dropContainer;if(!aM.inDoc()){aN.appendChild(aM);}if(!aO.inDoc()){aM.appendChild(aO);}if(aN.inDoc()){aN.get(g).append(aN);}else{aL.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aL=new ai.TabView(A.get(K));aL.get(v);A.tabView=aL;A.fieldsNode=aL.getTab(0).get(S);A.settingsNode=aL.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(at));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aM){var aL=this;var A=[];aK.each(aM,function(aO,aN){A.push(H(aO)?aO:new ai.AvailableField(aO));});return A;},_setDropConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aL||{});},_setAvailableFieldsDragConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aL||{});},_setPropertyList:function(aL){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aL);},_setTabView:function(aO){var aL=this;var aN=aL.get(v);var aP=aN.one(i+aH);var aM={after:{activeTabChange:ai.bind(aL._afterActiveTabChange,aL)},boundingBox:aN.one(i+Y),contentBox:aN.one(i+aj),bubbleTargets:aL,contentNode:aN.one(i+aC),cssClass:Y,listNode:aP,render:aL.get(y)};if(!aP){var A=aL.getStrings();aM.items=[{cssClass:al,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aM,aO);},_setToolbar:function(aM){var aL=this;var A=aL.getStrings();return ai.merge({activeState:false,bubbleTargets:aL,children:[{handler:ai.bind(aL._handleSaveEvent,aL),label:A[au],icon:ad},{handler:ai.bind(aL._handleCancelEvent,aL),label:A[ac]}]},aM);},_uiSetAvailableFields:function(aN){var A=this;var aM=A.fieldsNode;if(aM){var aL=ai.getDoc().invoke(I);aK.each(aN,function(aO){aL.appendChild(aO.get(u));});aM.setContent(A.fieldsContainer.setContent(aL));}},_uiSetFields:function(aL){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=aA;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file +AUI.add("aui-diagram-builder-base",function(ai){var X=ai.Lang,d=X.isArray,ax=X.isBoolean,O=X.isNumber,F=X.isObject,aB=X.isString,M=function(A){return(A instanceof ai.ArrayList);},V=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,Y="add",o="addNode",aJ="auto",P="availableField",T="availableFields",aG="availableFieldsDragConfig",v="boundingBox",aD="builder",ac="cancel",af="canvas",az="clearfix",f="column",a="container",ag="content",y="contentBox",e="contentContainer",S="contentNode",I="createDocumentFragment",D="diagram",ao="diagram-builder",ad="disk",r="draggable",aF="drop",ar="dropConfig",ab="dropContainer",aw="field",w="fields",q="fieldsContainer",av="height",s="helper",aa="icon",z="iconClass",aq="id",am="label",x="layout",ap="list",R="maxFields",u="node",g="parentNode",ah="propertyList",aE="rendered",at="save",t="settings",Q="tab",K="tabView",b="tabs",h="tabview",N="toolbar",m="toolbarContainer",C=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",n=C(f),B=C(D,aD,af),aj=C(D,aD,ag,a),G=C(D,aD,aF,a),ay=C(D,aD,aw),l=C(D,aD,aw,r),c=C(D,aD,aw,aa),ae=C(D,aD,aw,am),Z=C(D,aD,w,a),ak=C(D,aD,Q,Y),L=C(D,aD,Q,t),au=C(D,aD,b),U=C(D,aD,b,ag),an=C(D,aD,N,a),al=C(s,az),p=C(aa),J=C(x),aC=C(h,ag),aH=C(h,ap);var k=ai.Component.create({NAME:P,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aB},iconClass:{validator:aB},id:{value:ai.guid(),setter:"_setId",validator:aB},node:{valueFn:function(aL){var A=this;if(!V(aL)){aL=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aL.setData(P,A);}return aL;},validator:V,writeOnce:true},type:{value:u,validator:aB}},EXTENDS:ai.Base,buildNodeId:function(A){return T+E+aw+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(P);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                                              • '+''+'
                                                                                                                                '+"
                                                                                                                              • ",initializer:function(){var A=this;var aL=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aL.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(aq));A._uiSetLabel(A.get(am));},_afterDraggableChange:function(aL){var A=this;A._uiSetDraggable(aL.newVal);},_afterIdChange:function(aL){var A=this;A._uiSetId(aL.newVal);},_afterLabelChange:function(aL){var A=this;A._uiSetLabel(aL.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aL){var A=this;A.get(u).toggleClass(l,aL);},_uiSetId:function(aL){var A=this;A.get(u).set(aq,aL);},_uiSetLabel:function(aL){var A=this;A.labelNode.setContent(aL);}}});ai.AvailableField=k;var W=function(){};W.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(W.prototype,{_setFields:function(aL){var A=this;if(M(aL)){return aL;}else{return A.createFields(aL);}},_updateFields:function(aL){var A=this;A.set(w,aL);},addField:function(aL){var A=this;if(A.get(w).size()
                                                                                                                                ',DROP_CONTAINER_TEMPLATE:'
                                                                                                                                ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                                                ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                                                  ',CANVAS_TEMPLATE:'
                                                                                                                                  ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aM){var A=this;var aL=A.availableFieldsDrag;return(aM===aL.dd);},plotFields:function(){var aL=this;var A=aL.get(w);A.each(function(aM){aL.plotField(aM);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aL=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aL.addClass(J);},_afterActiveTabChange:function(aM){var A=this;var aL=aM.newVal.get(S);if(A.get(aE)&&(aL===A.settingsNode)){A._renderSettings();}},_afterRender:function(aL){var A=this;A.plotFields();},_afterUiSetHeight:function(aL){var A=this;A.contentContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL); +A.dropContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL);},_defCancelFn:function(aL){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(at);},_renderCanvas:function(){var A=this;var aL=A.get(y);var aM=A.canvas;var aN=A.contentContainer;var aO=A.dropContainer;if(!aM.inDoc()){aN.appendChild(aM);}if(!aO.inDoc()){aM.appendChild(aO);}if(aN.inDoc()){aN.get(g).append(aN);}else{aL.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aL=new ai.TabView(A.get(K));aL.get(v);A.tabView=aL;A.fieldsNode=aL.getTab(0).get(S);A.settingsNode=aL.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(ar));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aM){var aL=this;var A=[];aK.each(aM,function(aO,aN){A.push(H(aO)?aO:new ai.AvailableField(aO));});return A;},_setDropConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aL||{});},_setAvailableFieldsDragConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aL||{});},_setPropertyList:function(aL){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aL);},_setTabView:function(aO){var aL=this;var aN=aL.get(v);var aP=aN.one(i+aH);var aM={after:{activeTabChange:ai.bind(aL._afterActiveTabChange,aL)},boundingBox:aN.one(i+au),contentBox:aN.one(i+U),bubbleTargets:aL,contentNode:aN.one(i+aC),cssClass:au,listNode:aP,render:aL.get(y)};if(!aP){var A=aL.getStrings();aM.items=[{cssClass:ak,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aM,aO);},_setToolbar:function(aM){var aL=this;var A=aL.getStrings();return ai.merge({activeState:false,bubbleTargets:aL,children:[{handler:ai.bind(aL._handleSaveEvent,aL),label:A[at],icon:ad},{handler:ai.bind(aL._handleCancelEvent,aL),label:A[ac]}]},aM);},_uiSetAvailableFields:function(aN){var A=this;var aM=A.fieldsNode;if(aM){var aL=ai.getDoc().invoke(I);aK.each(aN,function(aO){aL.appendChild(aO.get(u));});aM.setContent(A.fieldsContainer.setContent(aL));}},_uiSetFields:function(aL){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=aA;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder-base.js b/build/aui-diagram-builder/aui-diagram-builder-base.js index a57fc2d054f..70b739e8804 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-base.js +++ b/build/aui-diagram-builder/aui-diagram-builder-base.js @@ -89,8 +89,8 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TABS = AgetClassName(DIAGRAM, BUILDER, TABS), + CSS_DIAGRAM_BUILDER_TABS_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTENT), CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), @@ -707,11 +707,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index 8e9335614c1..a68eaaec3cc 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -89,8 +89,8 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TABS = AgetClassName(DIAGRAM, BUILDER, TABS), + CSS_DIAGRAM_BUILDER_TABS_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTENT), CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), @@ -707,11 +707,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; diff --git a/build/aui-diagram-builder/aui-diagram-builder-min.js b/build/aui-diagram-builder/aui-diagram-builder-min.js index ea66b5e22f2..8cab884dc5a 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-min.js @@ -1,5 +1,5 @@ -AUI.add("aui-diagram-builder-base",function(ai){var W=ai.Lang,d=W.isArray,ax=W.isBoolean,O=W.isNumber,F=W.isObject,aB=W.isString,M=function(A){return(A instanceof ai.ArrayList);},U=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,X="add",o="addNode",aJ="auto",P="availableField",T="availableFields",aG="availableFieldsDragConfig",v="boundingBox",aD="builder",ac="cancel",af="canvas",az="clearfix",f="column",a="container",ag="content",y="contentBox",e="contentContainer",S="contentNode",I="createDocumentFragment",D="diagram",ap="diagram-builder",ad="disk",r="draggable",aF="drop",at="dropConfig",ab="dropContainer",aw="field",w="fields",q="fieldsContainer",av="height",s="helper",aa="icon",z="iconClass",ar="id",an="label",x="layout",aq="list",R="maxFields",u="node",g="parentNode",ah="propertyList",aE="rendered",au="save",t="settings",Q="tab",K="tabView",b="tabs",h="tabview",N="toolbar",m="toolbarContainer",C=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",n=C(f),B=C(D,aD,af),ak=C(D,aD,ag,a),G=C(D,aD,aF,a),ay=C(D,aD,aw),l=C(D,aD,aw,r),c=C(D,aD,aw,aa),ae=C(D,aD,aw,an),Z=C(D,aD,w,a),al=C(D,aD,Q,X),L=C(D,aD,Q,t),Y=C(D,aD,b,a),aj=C(D,aD,b,a,ag),ao=C(D,aD,N,a),am=C(s,az),p=C(aa),J=C(x),aC=C(h,ag),aH=C(h,aq);var k=ai.Component.create({NAME:P,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aB},iconClass:{validator:aB},id:{value:ai.guid(),setter:"_setId",validator:aB},node:{valueFn:function(aL){var A=this;if(!U(aL)){aL=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aL.setData(P,A);}return aL;},validator:U,writeOnce:true},type:{value:u,validator:aB}},EXTENDS:ai.Base,buildNodeId:function(A){return T+E+aw+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(P);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                                                • '+''+'
                                                                                                                                  '+"
                                                                                                                                • ",initializer:function(){var A=this;var aL=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aL.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ar));A._uiSetLabel(A.get(an));},_afterDraggableChange:function(aL){var A=this;A._uiSetDraggable(aL.newVal);},_afterIdChange:function(aL){var A=this;A._uiSetId(aL.newVal);},_afterLabelChange:function(aL){var A=this;A._uiSetLabel(aL.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aL){var A=this;A.get(u).toggleClass(l,aL);},_uiSetId:function(aL){var A=this;A.get(u).set(ar,aL);},_uiSetLabel:function(aL){var A=this;A.labelNode.setContent(aL);}}});ai.AvailableField=k;var V=function(){};V.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(V.prototype,{_setFields:function(aL){var A=this;if(M(aL)){return aL;}else{return A.createFields(aL);}},_updateFields:function(aL){var A=this;A.set(w,aL);},addField:function(aL){var A=this;if(A.get(w).size()
                                                                                                                                  ',DROP_CONTAINER_TEMPLATE:'
                                                                                                                                  ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                                                  ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                                                    ',CANVAS_TEMPLATE:'
                                                                                                                                    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aM){var A=this;var aL=A.availableFieldsDrag;return(aM===aL.dd);},plotFields:function(){var aL=this;var A=aL.get(w);A.each(function(aM){aL.plotField(aM);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aL=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aL.addClass(J);},_afterActiveTabChange:function(aM){var A=this;var aL=aM.newVal.get(S);if(A.get(aE)&&(aL===A.settingsNode)){A._renderSettings();}},_afterRender:function(aL){var A=this;A.plotFields();},_afterUiSetHeight:function(aL){var A=this;A.contentContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL); -A.dropContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL);},_defCancelFn:function(aL){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(au);},_renderCanvas:function(){var A=this;var aL=A.get(y);var aM=A.canvas;var aN=A.contentContainer;var aO=A.dropContainer;if(!aM.inDoc()){aN.appendChild(aM);}if(!aO.inDoc()){aM.appendChild(aO);}if(aN.inDoc()){aN.get(g).append(aN);}else{aL.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aL=new ai.TabView(A.get(K));aL.get(v);A.tabView=aL;A.fieldsNode=aL.getTab(0).get(S);A.settingsNode=aL.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(at));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aM){var aL=this;var A=[];aK.each(aM,function(aO,aN){A.push(H(aO)?aO:new ai.AvailableField(aO));});return A;},_setDropConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aL||{});},_setAvailableFieldsDragConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aL||{});},_setPropertyList:function(aL){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aL);},_setTabView:function(aO){var aL=this;var aN=aL.get(v);var aP=aN.one(i+aH);var aM={after:{activeTabChange:ai.bind(aL._afterActiveTabChange,aL)},boundingBox:aN.one(i+Y),contentBox:aN.one(i+aj),bubbleTargets:aL,contentNode:aN.one(i+aC),cssClass:Y,listNode:aP,render:aL.get(y)};if(!aP){var A=aL.getStrings();aM.items=[{cssClass:al,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aM,aO);},_setToolbar:function(aM){var aL=this;var A=aL.getStrings();return ai.merge({activeState:false,bubbleTargets:aL,children:[{handler:ai.bind(aL._handleSaveEvent,aL),label:A[au],icon:ad},{handler:ai.bind(aL._handleCancelEvent,aL),label:A[ac]}]},aM);},_uiSetAvailableFields:function(aN){var A=this;var aM=A.fieldsNode;if(aM){var aL=ai.getDoc().invoke(I);aK.each(aN,function(aO){aL.appendChild(aO.get(u));});aM.setContent(A.fieldsContainer.setContent(aL));}},_uiSetFields:function(aL){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=aA;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                                                    ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                                                    ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af); +AUI.add("aui-diagram-builder-base",function(ai){var X=ai.Lang,d=X.isArray,ax=X.isBoolean,O=X.isNumber,F=X.isObject,aB=X.isString,M=function(A){return(A instanceof ai.ArrayList);},V=function(A){return(A instanceof ai.Node);},H=function(A){return(A instanceof ai.AvailableField);},aK=ai.Array,Y="add",o="addNode",aJ="auto",P="availableField",T="availableFields",aG="availableFieldsDragConfig",v="boundingBox",aD="builder",ac="cancel",af="canvas",az="clearfix",f="column",a="container",ag="content",y="contentBox",e="contentContainer",S="contentNode",I="createDocumentFragment",D="diagram",ao="diagram-builder",ad="disk",r="draggable",aF="drop",ar="dropConfig",ab="dropContainer",aw="field",w="fields",q="fieldsContainer",av="height",s="helper",aa="icon",z="iconClass",aq="id",am="label",x="layout",ap="list",R="maxFields",u="node",g="parentNode",ah="propertyList",aE="rendered",at="save",t="settings",Q="tab",K="tabView",b="tabs",h="tabview",N="toolbar",m="toolbarContainer",C=ai.getClassName,aI=" ",i=".",j="#",aI=" ",E="_",n=C(f),B=C(D,aD,af),aj=C(D,aD,ag,a),G=C(D,aD,aF,a),ay=C(D,aD,aw),l=C(D,aD,aw,r),c=C(D,aD,aw,aa),ae=C(D,aD,aw,am),Z=C(D,aD,w,a),ak=C(D,aD,Q,Y),L=C(D,aD,Q,t),au=C(D,aD,b),U=C(D,aD,b,ag),an=C(D,aD,N,a),al=C(s,az),p=C(aa),J=C(x),aC=C(h,ag),aH=C(h,ap);var k=ai.Component.create({NAME:P,ATTRS:{draggable:{value:true,validator:ax},label:{validator:aB},iconClass:{validator:aB},id:{value:ai.guid(),setter:"_setId",validator:aB},node:{valueFn:function(aL){var A=this;if(!V(aL)){aL=ai.Node.create(ai.Lang.sub(A.FIELD_ITEM_TEMPLATE,{iconClass:A.get(z)}));aL.setData(P,A);}return aL;},validator:V,writeOnce:true},type:{value:u,validator:aB}},EXTENDS:ai.Base,buildNodeId:function(A){return T+E+aw+E+A;},getAvailableFieldById:function(A){return ai.AvailableField.getAvailableFieldByNode(j+ai.AvailableField.buildNodeId(A));},getAvailableFieldByNode:function(A){return ai.one(A).getData(P);},prototype:{FIELD_ITEM_TEMPLATE:'
                                                                                                                                  • '+''+'
                                                                                                                                    '+"
                                                                                                                                  • ",initializer:function(){var A=this;var aL=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aL.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(aq));A._uiSetLabel(A.get(am));},_afterDraggableChange:function(aL){var A=this;A._uiSetDraggable(aL.newVal);},_afterIdChange:function(aL){var A=this;A._uiSetId(aL.newVal);},_afterLabelChange:function(aL){var A=this;A._uiSetLabel(aL.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aL){var A=this;A.get(u).toggleClass(l,aL);},_uiSetId:function(aL){var A=this;A.get(u).set(aq,aL);},_uiSetLabel:function(aL){var A=this;A.labelNode.setContent(aL);}}});ai.AvailableField=k;var W=function(){};W.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(W.prototype,{_setFields:function(aL){var A=this;if(M(aL)){return aL;}else{return A.createFields(aL);}},_updateFields:function(aL){var A=this;A.set(w,aL);},addField:function(aL){var A=this;if(A.get(w).size()
                                                                                                                                    ',DROP_CONTAINER_TEMPLATE:'
                                                                                                                                    ',TOOLBAR_CONTAINER_TEMPLATE:'
                                                                                                                                    ',FIELDS_CONTAINER_TEMPLATE:'
                                                                                                                                      ',CANVAS_TEMPLATE:'
                                                                                                                                      ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aM){var A=this;var aL=A.availableFieldsDrag;return(aM===aL.dd);},plotFields:function(){var aL=this;var A=aL.get(w);A.each(function(aM){aL.plotField(aM);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aL=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aL.addClass(J);},_afterActiveTabChange:function(aM){var A=this;var aL=aM.newVal.get(S);if(A.get(aE)&&(aL===A.settingsNode)){A._renderSettings();}},_afterRender:function(aL){var A=this;A.plotFields();},_afterUiSetHeight:function(aL){var A=this;A.contentContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL); +A.dropContainer.setStyle(av,O(aL)?aL+A.DEF_UNIT:aL);},_defCancelFn:function(aL){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(at);},_renderCanvas:function(){var A=this;var aL=A.get(y);var aM=A.canvas;var aN=A.contentContainer;var aO=A.dropContainer;if(!aM.inDoc()){aN.appendChild(aM);}if(!aO.inDoc()){aM.appendChild(aO);}if(aN.inDoc()){aN.get(g).append(aN);}else{aL.appendChild(aN);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aL=new ai.TabView(A.get(K));aL.get(v);A.tabView=aL;A.fieldsNode=aL.getTab(0).get(S);A.settingsNode=aL.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(ar));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aG));},_setAvailableFields:function(aM){var aL=this;var A=[];aK.each(aM,function(aO,aN){A.push(H(aO)?aO:new ai.AvailableField(aO));});return A;},_setDropConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aL||{});},_setAvailableFieldsDragConfig:function(aL){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aL||{});},_setPropertyList:function(aL){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aJ}},aL);},_setTabView:function(aO){var aL=this;var aN=aL.get(v);var aP=aN.one(i+aH);var aM={after:{activeTabChange:ai.bind(aL._afterActiveTabChange,aL)},boundingBox:aN.one(i+au),contentBox:aN.one(i+U),bubbleTargets:aL,contentNode:aN.one(i+aC),cssClass:au,listNode:aP,render:aL.get(y)};if(!aP){var A=aL.getStrings();aM.items=[{cssClass:ak,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aM,aO);},_setToolbar:function(aM){var aL=this;var A=aL.getStrings();return ai.merge({activeState:false,bubbleTargets:aL,children:[{handler:ai.bind(aL._handleSaveEvent,aL),label:A[at],icon:ad},{handler:ai.bind(aL._handleCancelEvent,aL),label:A[ac]}]},aM);},_uiSetAvailableFields:function(aN){var A=this;var aM=A.fieldsNode;if(aM){var aL=ai.getDoc().invoke(I);aK.each(aN,function(aO){aL.appendChild(aO.get(u));});aM.setContent(A.fieldsContainer.setContent(aL));}},_uiSetFields:function(aL){var A=this;if(A.get(aE)){A.plotFields();}}}});ai.DiagramBuilderBase=aA;},"@VERSION@",{requires:["aui-tabs","aui-property-list","collection","dd"],skinnable:true});AUI.add("aui-diagram-builder-impl",function(au){var ag=au.Lang,c=ag.isArray,I=ag.isObject,aV=ag.isString,aR=ag.isBoolean,a4=au.Array,Z=function(A){return(A instanceof au.DiagramBuilderBase);},aS=function(A){return(A instanceof au.DiagramNode);},ao=function(A){return(A instanceof au.Anchor);},az=function(A,a7){var a6=c(a7)?a7:a7.getXY();var a8=c(A)?A:A.getXY();return a4.map(a8,function(ba,a9){return Math.max(0,ba-a6[a9]);});},ae="activeElement",ax="addAnchor",aY="addAnchorMessage",j="addNode",aB="anchor",av="anchors",an="anchorsDragConfig",U="availableField",ac="boolean",p="boundingBox",a0="builder",ak="cancel",al="canvas",aJ="click",aW="closeEvent",F="closeMessage",aZ="condition",aq="content",O="controls",aH="controlsToolbar",aG="data",am="dblclick",Y="delete",aE="deleteConnectorsMessage",n="deleteNodesMessage",aN="description",G="diagram",ap="diagram-builder",aA="diagramNode",B="diagram-node",aO="dragNode",C="editEvent",L="editMessage",Q="editing",aM="end",a="esc",aQ="field",r="fields",ay="fieldsDragConfig",at="fork",aa="graphic",aP="height",q="hover",aI="id",t="join",S="keydown",ar="link",ai="max",V="maxFields",v="maxSources",s="mouseenter",ad="mouseleave",m="name",o="node",aD="p1",aC="p2",d="parentNode",l="pencil",aj="records",k="recordset",h="region",a1="rendered",K="required",aU="selected",J="shuffle",R="source",aT="sources",aF="start",ab="state",i="target",M="targets",D="task",P="tmpConnector",e="type",N="width",aX="wrapper",y="xy",x="zIndex",a3="-",g=".",T="",f="#",H="_",w=au.getClassName,W=w(G,a0,aB,o,ai,M),aw=w(G,a0,aB,q),aL=w(G,a0,aB,o),E=w(G,a0,aB,o,aX),u=w(G,a0,O),af=w(G,o),b=w(G,o,aq),aK=w(G,o,Q),a2=w(G,o,aU);var ah=function(){var a6="        ",A="
                                                                                                                                      ";au.all(".aui-diagram-node").each(function(bc){var a7=T,a9=au.Widget.getByNode(bc),a8=a9.get("name"),bb=a9.get("boundingBox"),ba=bb.one(".log")||au.Node.create("
                                                                                                                                      ").appendTo(bb);a7+=a8+A;a9.get(r).each(function(bd){a7+=a6+"a: "+bd.get("id")+A;bd.get("targets").each(function(be){var bf=be.get(aA);be.get("node").setContent(be.get("id"));a7+=a6+a6+"t: "+bf.get("name")+" (s: "+be.get("id")+")"+A;});bd.get("sources").each(function(bf){var be=bf.get(aA);bf.get("node").setContent(bf.get("id"));a7+=a6+a6+"s: "+be.get("name")+" (t: "+bf.get("id")+")"+A;});});ba.setContent(a7);});};var z=au.Component.create({NAME:ap,ATTRS:{fieldsDragConfig:{value:null,setter:"_setFieldsDragConfig",validator:I},graphic:{valueFn:function(){return new au.Graphic();},validator:I},strings:{value:{addNode:"Add node",cancel:"Cancel",deleteConnectorsMessage:"Are you sure you want to delete the selected connector(s)?",propertyName:"Property Name",save:"Save",settings:"Settings",value:"Value"}},tmpConnector:{setter:"_setTmpConnector",value:{},validator:I}},EXTENDS:au.DiagramBuilderBase,FIELDS_TAB:0,SETTINGS_TAB:1,prototype:{selectedConnector:null,selectedNode:null,initializer:function(){var A=this;A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});A.handlerKeyDown=au.getDoc().on(S,au.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aJ,au.bind(A._onNodeClick,A),g+af);A.dropContainer.delegate(am,au.bind(A._onNodeEdit,A),g+af); A.dropContainer.delegate(s,au.bind(A._onMouseenterAnchors,A),g+aL);A.dropContainer.delegate(ad,au.bind(A._onMouseleaveAnchors,A),g+aL);},renderUI:function(){var A=this;au.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;au.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.tmpConnector=new au.Connector(A.get(P));},clearFields:function(){var a6=this;var A=[];a6.get(r).each(function(a7){A.push(a7);});a4.each(A,function(a7){a7.destroy();});A=null;},closeEditProperties:function(){var A=this;var a6=A.editingNode;A.tabView.selectTab(au.DiagramBuilder.FIELDS_TAB);if(a6){a6.get(p).removeClass(aK);}A.editingConnector=null;A.editingNode=null;},connect:function(a7,ba,a9){var a6=this;if(aV(a7)){a7=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(a7));}if(aV(ba)){ba=au.Widget.getByNode(f+au.DiagramNode.buildNodeId(ba));}if(a7&&ba){var a8=a7.findAvailableAnchor();var A=ba.findAvailableAnchor();if(a8&&A){a8.connect(A,a9);}}return a6;},connectAll:function(a6){var A=this;a4.each(a6,function(a7){if(a7.hasOwnProperty(R)&&a7.hasOwnProperty(i)){A.connect(a7.source,a7.target,a7.connector);}});return A;},createField:function(a6){var A=this;if(!aS(a6)){a6.builder=A;a6=new (A.getFieldClass(a6.type||o))(a6);}a6.set(a0,A);return a6;},deleteConnectors:function(a6){var A=this;a4.each(a6,function(a7){var a8=a7.get(aB);if(a8){var a9=a8.findConnectorTarget(a7);if(a9){a8.disconnect(a9);}}});},eachConnetor:function(a7){var A=this;var a6=false;A.get(r).some(function(a8){a8.get(r).some(function(a9){au.some(a9.connectors,function(ba){a6=a7.call(A,ba,a9,a8);return a6;});return a6;});return a6;});},editConnector:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());A.editingConnector=A.selectedConnector=a6;}},editNode:function(a6){var A=this;if(a6){A.closeEditProperties();A.tabView.selectTab(au.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(k,a6.getProperties());a6.get(p).addClass(aK);A.editingNode=A.selectedNode=a6;}},getSelectedConnectors:function(){var A=this;var a6=[];A.eachConnetor(function(a7){if(a7.get(aU)){a6.push(a7);}});return a6;},getFieldClass:function(a7){var A=this;var a6=au.DiagramBuilder.types[a7];if(a6){return a6;}else{au.log("The field type: ["+a7+"] couldn't be found.");return null;}},isFieldsDrag:function(a7){var A=this;var a6=A.fieldsDrag;return(a7===a6.dd);},plotField:function(a6){var A=this;if(!a6.get(a1)){a6.render(A.dropContainer);}},unselectConnectors:function(){var A=this;a4.each(A.getSelectedConnectors(),function(a6){a6.set(aU,false);});},unselectNodes:function(){var A=this;var a6=A.selectedNode;if(a6){a6.set(aU,false);}A.selectedNode=null;},select:function(a6){var A=this;A.unselectNodes();A.selectedNode=a6.set(aU,true).focus();},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var a6={nodes:[]};A.get(r).each(function(a8){var a9=a8.get(m);var a7={transitions:[]};a4.each(a8.SERIALIZABLE_ATTRS,function(ba){a7[ba]=a8.get(ba);});a8.get(r).each(function(ba){ba.get(M).each(function(bb){a7.transitions.push({connector:ba.getConnector(bb).toJSON(),source:a9,target:bb.get(aA).get(m)});});});a6.nodes.push(a7);});return a6;},_afterKeyEvent:function(a6){var A=this;if(a6.hasModifier()||au.getDoc().get(ae).test(":input,td")){return;}if(a6.isKey(a)){A._onEscKey(a6);}else{if(a6.isKey(Y)){A._onDeleteKey(a6);}}},_onCancel:function(a6){var A=this;A.closeEditProperties();},_onDrag:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.get(r).each(function(a9){a9.alignConnectors();});}},_onDragEnd:function(a7){var A=this;var a6=a7.target;if(A.isFieldsDrag(a6)){var a8=au.Widget.getByNode(a6.get(aO));a8.set(y,a8.getLeftTop());}},_onDropHit:function(a7){var A=this;var a6=a7.drag;if(A.isAvailableFieldsDrag(a6)){var a9=a6.get(o).getData(U);var a8=A.addField({xy:az(a6.lastXY,A.dropContainer),type:a9.get(e),fields:[{}]});A.select(a8);}},_onDeleteKey:function(a8){var a6=this;var A=a6.getStrings();var a7=a6.getSelectedConnectors();if(a7.length&&confirm(A[aE])){a6.deleteConnectors(a7);}var a9=a6.selectedNode;if(a9){if(!a9.get(K)){a9.close();}}a8.halt();},_onEscKey:function(a6){var A=this;A.stopEditing();a6.halt();},_onMouseenterAnchors:function(a6){var A=this;a6.currentTarget.addClass(aw);},_onMouseleaveAnchors:function(a6){var A=this;a6.currentTarget.removeClass(aw);},_onNodeClick:function(a6){var A=this;var a7=au.Widget.getByNode(a6.currentTarget);A.select(a7);},_onNodeEdit:function(a6){var A=this;if(!a6.target.ancestor(g+b,true)){return;}var a7=au.Widget.getByNode(a6.currentTarget);if(a7){A.editNode(a7);}},_onSave:function(a7){var A=this;var a6=A.editingNode;var a8=A.editingConnector;var a9=A.propertyList.get(k);if(a6){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a6.set(bb.attributeName,bb.value);});}else{if(a8){a4.each(a9.get(aj),function(ba){var bb=ba.get(aG);a8.set(bb.attributeName,bb.value);});}}A.closeEditProperties();},_renderGraphic:function(){var A=this;A.get(aa).render(A.get(al));},_setTmpConnector:function(a7){var A=this;var a6=A.get(al).getXY();return au.merge({p1:a6,p2:a6,lazyDraw:true,graphic:A.get(aa)},a7);},_setFieldsDragConfig:function(a7){var A=this;var a6=A.dropContainer;return au.merge({bubbleTargets:A,container:a6,dragConfig:{plugins:[{cfg:{constrain:a6},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll}]},nodes:g+af},a7||{});},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new au.DD.Delegate(A.get(ay));}}});au.DiagramBuilder=z;au.DiagramBuilder.types={};var X=au.Component.create({NAME:B,EXTENDS:au.Overlay,AUGMENTS:[au.FieldSupport]});var a5=au.Component.create({NAME:B,UI_ATTRS:[r,m,K,aU],ATTRS:{anchorsDragConfig:{value:null,setter:"_setAnchorsDragConfig",validator:I},builder:{validator:Z},required:{value:false,validator:aR},description:{value:T,validator:aV},height:{value:60},name:{valueFn:function(){var A=this; return A.get(e)+(++au.Env._uidx);},validator:aV},selected:{value:false,validator:aR},strings:{value:{addAnchorMessage:"Add Anchor",closeMessage:"Close",deleteNodesMessage:"Are you sure you want to delete the selected node(s)?",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},type:{value:o,validator:aV},controlsToolbar:{validator:I,valueFn:"_valueControlsToolbar"},width:{value:60},zIndex:{value:100},tabIndex:{value:1}},EXTENDS:X,buildNodeId:function(A){return aA+H+aQ+H+A;},prototype:{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                                      ',CONTROLS_TEMPLATE:'
                                                                                                                                      ',SERIALIZABLE_ATTRS:[aN,m,K,e,N,aP,x,y,V],initializer:function(){var A=this;A._renderNodes();A._setupAnchorsDrag();A.after({render:A._afterRender});A.on({"drag:drag":A._onAnchorDrag,"drag:end":A._onAnchorDragEnd,"drag:start":A._onAnchorDragStart,"drop:hit":A._onAnchorDropHit});A.get(p).addClass(af+a3+A.get(e));},destructor:function(){var A=this;A.get(r).each(function(a6){a6.destroy();});A.get(a0).removeField(A);},alignAnchors:function(){var a6=this;var ba=a6.get(r);var a8=a6.get(p).get(h),a9=Math.floor(360/ba.size()),a7=a8.width/2,A=a8.height/2,bc=a8.left+a8.width/2,bb=a8.top+a8.height/2;ba.each(function(bg,bf){var be=bg.get(o);var bh=be.get(h);var bd=a6._getEllipseXY(a7,A,bc,bb,bf*a9);be.setXY([bd[0]-bh.width/2,bd[1]-bh.height/2]);bg.alignConnectors();});return a6;},close:function(){var a6=this;var A=a6.getStrings();if(confirm(A[n])){a6.destroy();}return a6;},createField:function(a7){var A=this;if(!ao(a7)){var a6=A.get(a0);a7.diagramNode=A;a7=new au.Anchor(a7);}return a7;},findAvailableAnchor:function(){var A=this;var a6=null;A.get(r).some(function(a7){if(!a7.hasConnection()){a6=a7;return true;}});if(!a6){a6=A.addField({});}return a6;},getConnectionNode:function(){var A=this;return new au.DiagramNode({xy:[100,100]});},getLeftTop:function(){var A=this;return az(A.get(p),A._getContainer());},getProperties:function(){var A=this;var a6=A.getPropertyModel();a4.each(a6,function(a9){var a8=A.get(a9.attributeName),a7=ag.type(a8);if(a7===ac){a8=String(a8);}a9.value=a8;});return a6;},getPropertyModel:function(){var a6=this;var A=a6.getStrings();return[{attributeName:aN,editor:new au.TextAreaCellEditor(),name:A[aN]},{attributeName:m,editor:new au.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[m]},{attributeName:e,editor:false,name:A[e]}];},syncDragTargets:function(){var A=this;A.anchorsDrag.syncTargets();},syncDropTargets:function(a6){var A=this;A.get(r).each(function(a8){var a7=au.DD.DDM.getDrop(a8.get(o));if(a7){if(a8.get(aT).size()===a8.get(v)){a7.removeFromGroup(av);}else{a7.addToGroup(av);}}});},_afterRender:function(a6){var A=this;A.alignAnchors();A._renderControls();},_getContainer:function(){var A=this;return(A.get(a0).dropContainer||A.get(p).get(d));},_getEllipseXY:function(a6,A,a9,a8,ba){var a7=ba*Math.PI/180;return[a9+a6*Math.cos(a7),a8-A*Math.sin(a7)];},_handleAddAnchorEvent:function(a6){var A=this;A.addField({});},_handleAddNodeEvent:function(a7){var A=this;var a6=A.get(a0);var a8=A.findAvailableAnchor();if(a8){var a9=A.getConnectionNode();a6.addField(a9);a8.connect(a9.addField({}));}},_handleEditEvent:function(a6){var A=this;A.get(a0).editNode(A);},_handleCloseEvent:function(a6){var A=this;if(!A.get(K)){A.close();}},_onAnchorDrag:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aC,a7.target.get(aO).getCenterXY());},_onAnchorDragEnd:function(a7){var A=this;var a6=A.get(a0).tmpConnector.shape;a6.clear();a6.end();},_onAnchorDragStart:function(a7){var A=this;var a6=A.get(a0);a6.tmpConnector.set(aD,a7.target.get(o).getCenterXY());},_onAnchorDropHit:function(a6){var A=this;var a7=au.Anchor.getAnchorByNode(a6.drag.get(o));var a8=au.Anchor.getAnchorByNode(a6.drop.get(o));a7.connect(a8);},_renderControls:function(){var A=this;var a6=A.get(p);A.controlsNode=au.Node.create(A.CONTROLS_TEMPLATE).appendTo(a6);},_renderNodes:function(){var A=this;var a6=A.get(p);A.anchorWrapper=au.Node.create(A.ANCHOR_WRAPPER_TEMPLATE).appendTo(a6);},_renderControlsToolbar:function(a6){var A=this;A.controlsToolbar=new au.Toolbar(A.get(aH)).render(A.controlsNode);A._uiSetRequired(A.get(K));},_setAnchorsDragConfig:function(a7){var A=this;var a6=A.get(a0);return au.merge({bubbleTargets:A,container:A.anchorWrapper,dragConfig:{groups:[av],plugins:[{cfg:{constrain:(a6?a6.get(al):null)},fn:au.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:au.Plugin.DDWinScroll},{cfg:{moveOnEnd:false},fn:au.Plugin.DDProxy}]},nodes:g+aL,target:true},a7||{});},_setupAnchorsDrag:function(){var A=this;A.anchorsDrag=new au.DD.Delegate(A.get(an));A.anchorsDrag.dd.addInvalid(g+W);},_uiSetFields:function(a6){var A=this;if(A.get(a1)){A.alignAnchors();A.syncDragTargets();A.syncDropTargets();}},_uiSetName:function(a7){var A=this;var a6=A.get(p);a6.set(aI,au.DiagramNode.buildNodeId(a7));},_uiSetRequired:function(a8){var a7=this;var a6=a7.getStrings();var A=a7.controlsToolbar;if(A){if(a8){A.remove(aW);}else{A.add({handler:au.bind(a7._handleCloseEvent,a7),icon:ak,id:aW,title:a6[F]});}}},_uiSetSelected:function(a6){var A=this;A.get(p).toggleClass(a2,a6);if(a6&&!A.controlsToolbar){A._renderControlsToolbar();}},_uiSetXY:function(a7){var A=this;var a6=A._getContainer().getXY();this._posNode.setXY([a7[0]+a6[0],a7[1]+a6[1]]);},_valueControlsToolbar:function(a7){var a6=this;var A=a6.getStrings();return{activeState:false,children:[{handler:au.bind(a6._handleEditEvent,a6),icon:l,id:C,title:A[L]},{handler:au.bind(a6._handleAddAnchorEvent,a6),icon:ar,id:ax,title:A[aY]},{handler:au.bind(a6._handleAddNodeEvent,a6),icon:J,id:j},{handler:au.bind(a6._handleCloseEvent,a6),icon:ak,id:aW,title:A[F]}]};}}});au.DiagramNode=a5;au.DiagramBuilder.types[o]=au.DiagramNode;au.DiagramNodeState=au.Component.create({NAME:B,ATTRS:{height:{value:40},type:{value:ab},width:{value:40}},EXTENDS:au.DiagramNode,});au.DiagramBuilder.types[ab]=au.DiagramNodeState;au.DiagramNodeCondition=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:aZ},width:{value:60}},EXTENDS:au.DiagramNodeState,}); au.DiagramBuilder.types[aZ]=au.DiagramNodeCondition;au.DiagramNodeStart=au.Component.create({NAME:B,ATTRS:{type:{value:aF}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aF]=au.DiagramNodeStart;au.DiagramNodeEnd=au.Component.create({NAME:B,ATTRS:{type:{value:aM}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[aM]=au.DiagramNodeEnd;au.DiagramNodeJoin=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:t},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[t]=au.DiagramNodeJoin;au.DiagramNodeFork=au.Component.create({NAME:B,ATTRS:{height:{value:60},type:{value:at},width:{value:60}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[at]=au.DiagramNodeFork;au.DiagramNodeTask=au.Component.create({NAME:B,ATTRS:{height:{value:70},type:{value:D},width:{value:70}},EXTENDS:au.DiagramNodeState,});au.DiagramBuilder.types[D]=au.DiagramNodeTask;},"@VERSION@",{requires:["aui-diagram-builder-base","overlay"],skinnable:true});AUI.add("aui-diagram-builder-connector",function(p){var aa=p.Lang,C=aa.isArray,G=aa.isBoolean,Z=aa.isNumber,O=aa.isObject,m=aa.isString,u=p.Array,d=function(A){return(A instanceof p.Anchor);},R=function(A){return(A instanceof p.ArrayList);},v=function(A){return(A instanceof p.DiagramNode);},Q=function(A){return(A instanceof p.Graphic);},M="anchor",S="arrowPoints",T="boundingBox",ab="builder",P="click",I="color",x="connector",a="dataAnchor",b="description",L="diagram",D="diagramNode",K="fill",J="graphic",z="id",V="lazyDraw",W="max",o="maxSources",n="maxTargets",g="mouseenter",q="mouseleave",H="name",Y="node",t="p1",s="p2",h="path",F="selected",B="shape",N="shapeHover",r="shapeSelected",l="sources",i="stroke",j="targets",X="wrapper",y=".",w="",k="#",E=p.getClassName,c=E(L,ab,M,Y,W,j),f=E(L,ab,M,Y,W,l),e=E(L,ab,M,Y,X),U=E(L,ab,M,Y);p.PolygonUtil={ARROW_POINTS:[[-12,-6],[-8,0],[-12,6],[6,0]],drawLineArrow:function(ah,ac,aj,A,ai,af){var ak=this;ah.moveTo(ac,aj);ah.lineTo(A,ai);var ad=Math.atan2(ai-aj,A-ac),ag=(A+ac)/2,ae=(ai+aj)/2;A=A-15*Math.cos(ad);ai=ai-15*Math.sin(ad);ak.drawPolygon(ah,ak.translatePoints(ak.rotatePoints(af||ak.ARROW_POINTS,ad),A,ai));},drawPolygon:function(ac,ad){var A=this;ac.moveTo(ad[0][0],ad[0][1]);u.each(ad,function(af,ae){if(ae>0){ac.lineTo(ad[ae][0],ad[ae][1]);}});ac.lineTo(ad[0][0],ad[0][1]);},translatePoints:function(ad,ac,af){var A=this;var ae=[];u.each(ad,function(ah,ag){ae.push([ad[ag][0]+ac,ad[ag][1]+af]);});return ae;},rotatePoints:function(ac,ae){var A=this;var ad=[];u.each(ac,function(ag,af){ad.push(A.rotatePoint(ae,ac[af][0],ac[af][1]));});return ad;},rotatePoint:function(ac,A,ad){return[(A*Math.cos(ac))-(ad*Math.sin(ac)),(A*Math.sin(ac))+(ad*Math.cos(ac))];}};p.Connector=p.Base.create("line",p.Base,[],{SERIALIZABLE_ATTRS:[I,b,V,H,r,N,t,s],shape:null,initializer:function(ad){var A=this;var ac=A.get(V);A.after({p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange});A._initShapes();if(!ac){A.draw();}A._uiSetSelected(A.get(F),!ac);},destroy:function(){var A=this;A.get(J).removeShape(A.shape);},draw:function(){var A=this;var ac=A.shape;var ae=A.getCoordinate(A.get(t));var ad=A.getCoordinate(A.get(s));ac.clear();p.PolygonUtil.drawLineArrow(ac,ae[0],ae[1],ad[0],ad[1],A.get(S));ac.end();},getCoordinate:function(ad){var A=this;var ac=A.get(J).getXY();return[ad[0]-ac[0],ad[1]-ac[1]];},getProperties:function(){var A=this;var ac=A.getPropertyModel();u.each(ac,function(ad){ad.value=A.get(ad.attributeName);});return ac;},getPropertyModel:function(){var ac=this;var ad=ac.get(M);var A=ad?ad.get(D).getStrings():{};return[{attributeName:b,editor:new p.TextAreaCellEditor(),name:A[b]},{attributeName:H,editor:new p.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[H]}];},toJSON:function(){var A=this;var ac={};u.each(A.SERIALIZABLE_ATTRS,function(ad){ac[ad]=A.get(ad);});return ac;},_afterSelectedChange:function(ac){var A=this;A._uiSetSelected(ac.newVal);},_initShapes:function(){var A=this;var ac=A.shape=A.get(J).addShape(A.get(B));ac.on(P,p.bind(A._onShapeClick,A));ac.on(g,p.bind(A._onShapeMouseEnter,A));ac.on(q,p.bind(A._onShapeMouseLeave,A));},_onShapeClick:function(af){var A=this;var ad=A.get(M);var ae=A.get(F);if(ad){var ac=ad.getBuilder();if(af.hasModifier()){ac.closeEditProperties();}else{ac.unselectConnectors();if(ae){ac.closeEditProperties();}else{ac.editConnector(A);}}}A.set(F,!ae);},_onShapeMouseEnter:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(N));}},_onShapeMouseLeave:function(ac){var A=this;if(!A.get(F)){A._updateShape(A.get(B));}},_setShape:function(ac){var A=this;return p.merge({type:h,stroke:{color:A.get(I),weight:3},fill:{color:A.get(I)}},ac);},_updateShape:function(ae,ac){var A=this;var ad=A.shape;if(ae.hasOwnProperty(K)){ad.set(K,ae[K]);}if(ae.hasOwnProperty(i)){ad.set(i,ae[i]);}if(ac!==false){A.draw();}},_uiSetSelected:function(ad,ac){var A=this;A._updateShape(ad?A.get(r):A.get(B),ac);}},{ATTRS:{anchor:{},color:{value:"#27aae1",validator:m},description:{value:w,validator:m},lazyDraw:{value:false,validator:G},name:{valueFn:function(){var A=this;return x+(++p.Env._uidx);},validator:m},graphic:{validator:Q},shapeHover:{value:{fill:{color:"#666"},stroke:{color:"#666",weight:5}}},selected:{value:false,validator:G},shape:{value:null,setter:"_setShape"},shapeSelected:{value:{fill:{color:"#000"},stroke:{color:"#000",weight:5}}},arrowPoints:{value:p.PolygonUtil.ARROW_POINTS},p1:{value:[0,0],validator:C},p2:{value:[0,0],validator:C}}});p.Anchor=p.Base.create("anchor",p.Base,[],{ANCHOR_WRAPPER_TEMPLATE:'
                                                                                                                                      ',NODE_TEMPLATE:'
                                                                                                                                      ',connectors:null,initializer:function(){var A=this;A.connectors={};A._renderNode();A.connectTargets();A.after({sourcesChange:A._afterSourcesChange,targetsChange:A._afterTargetsChange});A._uiSetMaxTargets(A.get(n));},addSource:function(ac){var A=this;if(A.get(l).size()Alloy - diagram-builder Demo
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      • Add node diff --git a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css index 63c557ec860..14c681594df 100644 --- a/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css +++ b/src/aui-diagram-builder/assets/aui-diagram-builder-base-core.css @@ -38,11 +38,11 @@ /*padding-left: 260px;*/ } -.aui-diagram-builder-tabs-container .aui-tabview-list { +.aui-diagram-builder-tabs .aui-tabview-list { margin-bottom: 5px; } -.aui-diagram-builder-tabs-container { +.aui-diagram-builder-tabs { position: absolute; width: 260px; } @@ -64,7 +64,7 @@ padding-left: 260px; } -.aui-diagram-builder-tabs-container-content { +.aui-diagram-builder-tabs-content { } .aui-diagram-node { diff --git a/src/aui-diagram-builder/js/aui-diagram-builder-base.js b/src/aui-diagram-builder/js/aui-diagram-builder-base.js index c48a5bc7627..9db17281c78 100644 --- a/src/aui-diagram-builder/js/aui-diagram-builder-base.js +++ b/src/aui-diagram-builder/js/aui-diagram-builder-base.js @@ -88,8 +88,8 @@ var Lang = A.Lang, CSS_DIAGRAM_BUILDER_FIELDS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, FIELDS, CONTAINER), CSS_DIAGRAM_BUILDER_TAB_ADD = AgetClassName(DIAGRAM, BUILDER, TAB, ADD), CSS_DIAGRAM_BUILDER_TAB_SETTINGS = AgetClassName(DIAGRAM, BUILDER, TAB, SETTINGS), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER), - CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTAINER, CONTENT), + CSS_DIAGRAM_BUILDER_TABS = AgetClassName(DIAGRAM, BUILDER, TABS), + CSS_DIAGRAM_BUILDER_TABS_CONTENT = AgetClassName(DIAGRAM, BUILDER, TABS, CONTENT), CSS_DIAGRAM_BUILDER_TOOLBAR_CONTAINER = AgetClassName(DIAGRAM, BUILDER, TOOLBAR, CONTAINER), CSS_HELPER_CLEARFIX = AgetClassName(HELPER, CLEARFIX), CSS_ICON = AgetClassName(ICON), @@ -706,11 +706,11 @@ var DiagramBuilderBase = A.Component.create( after: { activeTabChange: A.bind(instance._afterActiveTabChange, instance) }, - boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER), - contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTAINER_CONTENT), + boundingBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS), + contentBox: boundingBox.one(_DOT+CSS_DIAGRAM_BUILDER_TABS_CONTENT), bubbleTargets: instance, contentNode: boundingBox.one(_DOT+CSS_TABVIEW_CONTENT), - cssClass: CSS_DIAGRAM_BUILDER_TABS_CONTAINER, + cssClass: CSS_DIAGRAM_BUILDER_TABS, listNode: tabListNode, render: instance.get(CONTENT_BOX) }; From 47fdf4824ba33694d934d708b147004e2e21dff9 Mon Sep 17 00:00:00 2001 From: Hugo Huijser Date: Thu, 25 Aug 2011 11:44:58 -0700 Subject: [PATCH 129/132] Source formatting --- .../com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl b/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl index 8d2f45a4cae..7d26cd0d620 100644 --- a/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl +++ b/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl @@ -83,7 +83,7 @@ _updateOptions(_options, "${attribute.getSafeName()}", ${attribute.getSafeName() %> -<%@ include file="init-ext.jspf" %> +<%@ include file="${jspRelativePath}init-ext.jspf" %> <%! private static final String _NAMESPACE = "${namespace}"; From 34f1564401b7fa83f87d2f22893da59cac8691a3 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 25 Aug 2011 15:18:07 -0300 Subject: [PATCH 130/132] Use full path to include init-ext.jspf due SourceFormatter --- .../com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl b/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl index 7d26cd0d620..80104e77d89 100644 --- a/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl +++ b/sandbox/taglibs/alloy-taglib/src/com/liferay/alloy/tools/tagbuilder/templates/init_jsp.ftl @@ -83,7 +83,7 @@ _updateOptions(_options, "${attribute.getSafeName()}", ${attribute.getSafeName() %> -<%@ include file="${jspRelativePath}init-ext.jspf" %> +<%@ include file="${jspRelativePath}/init-ext.jspf" %> <%! private static final String _NAMESPACE = "${namespace}"; From 8fdc75804c07ea39470ad90e995f2a105e6798f5 Mon Sep 17 00:00:00 2001 From: Eduardo Lundgren Date: Thu, 25 Aug 2011 15:18:47 -0300 Subject: [PATCH 131/132] Regenerate taglibs --- .../taglibs/alloy-web/docroot/html/taglib/alloy/a_io/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/auto_complete/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/button_item/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/calendar/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/char_counter/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/color_picker/init.jsp | 2 +- .../docroot/html/taglib/alloy/date_picker_select/init.jsp | 2 +- .../taglibs/alloy-web/docroot/html/taglib/alloy/dialog/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/editable/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/image_gallery/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/image_viewer/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/io_request/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/live_search/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/loading_mask/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/nested_list/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/overlay_base/init.jsp | 2 +- .../docroot/html/taglib/alloy/overlay_context/init.jsp | 2 +- .../docroot/html/taglib/alloy/overlay_context_panel/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/overlay_mask/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/paginator/init.jsp | 2 +- .../taglibs/alloy-web/docroot/html/taglib/alloy/panel/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/parse_content/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/portal_layout/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/progress_bar/init.jsp | 2 +- .../taglibs/alloy-web/docroot/html/taglib/alloy/rating/init.jsp | 2 +- .../taglibs/alloy-web/docroot/html/taglib/alloy/resize/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/textboxlist/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/thumb_rating/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/toolbar/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/tooltip/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/tree_node_task/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/tree_view/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy/tree_view_dd/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy_util/component/init.jsp | 2 +- .../alloy-web/docroot/html/taglib/alloy_util/script/init.jsp | 2 +- .../docroot/html/taglib/liferay/auto_complete/init.jsp | 2 +- .../taglibs/alloy-web/docroot/html/taglib/liferay/test/init.jsp | 2 +- 37 files changed, 37 insertions(+), 37 deletions(-) diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/a_io/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/a_io/init.jsp index 8b7a1e5922d..c807ddbbcbd 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/a_io/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/a_io/init.jsp @@ -42,7 +42,7 @@ if ((dynamicAttributes != null) && !dynamicAttributes.isEmpty()) { %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/a_io/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:a-io:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/auto_complete/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/auto_complete/init.jsp index c486c69341c..1c974f749bb 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/auto_complete/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/auto_complete/init.jsp @@ -378,7 +378,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/auto_complete/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:auto-complete:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/button_item/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/button_item/init.jsp index 4318c976d46..f4570dd3386 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/button_item/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/button_item/init.jsp @@ -258,7 +258,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/button_item/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:button-item:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/calendar/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/calendar/init.jsp index 4dd7a0737b2..9e28054d0bb 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/calendar/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/calendar/init.jsp @@ -450,7 +450,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/calendar/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:calendar:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/char_counter/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/char_counter/init.jsp index eb663e239d9..f8c08f05720 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/char_counter/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/char_counter/init.jsp @@ -79,7 +79,7 @@ _updateOptions(_options, "onInputChange", onInputChange); _updateOptions(_options, "onMaxLengthChange", onMaxLengthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/char_counter/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:char-counter:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/color_picker/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/color_picker/init.jsp index ea220c1fb41..6b91f6b894c 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/color_picker/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/color_picker/init.jsp @@ -294,7 +294,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/color_picker/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:color-picker:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/date_picker_select/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/date_picker_select/init.jsp index 35938a44dfe..807d65e7569 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/date_picker_select/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/date_picker_select/init.jsp @@ -276,7 +276,7 @@ _updateOptions(_options, "onYearNodeNameChange", onYearNodeNameChange); _updateOptions(_options, "onYearRangeChange", onYearRangeChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/date_picker_select/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:date-picker-select:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/dialog/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/dialog/init.jsp index 8ae0ef03e89..3a607e62df0 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/dialog/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/dialog/init.jsp @@ -342,7 +342,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/dialog/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:dialog:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/editable/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/editable/init.jsp index a0a286dfee3..de4f7e38f25 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/editable/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/editable/init.jsp @@ -244,7 +244,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/editable/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:editable:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_gallery/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_gallery/init.jsp index f2b9afa33dc..60b4f5aec5d 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_gallery/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_gallery/init.jsp @@ -474,7 +474,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/image_gallery/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:image-gallery:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_viewer/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_viewer/init.jsp index 01f24a10a20..4b9fdead0a4 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_viewer/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/image_viewer/init.jsp @@ -396,7 +396,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/image_viewer/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:image-viewer:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/io_request/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/io_request/init.jsp index 93c4c532c4a..d6060bd3cc2 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/io_request/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/io_request/init.jsp @@ -199,7 +199,7 @@ _updateOptions(_options, "onUriChange", onUriChange); _updateOptions(_options, "onXdrChange", onXdrChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/io_request/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:io-request:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/live_search/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/live_search/init.jsp index 55f73682004..ee1bb3e481f 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/live_search/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/live_search/init.jsp @@ -109,7 +109,7 @@ _updateOptions(_options, "onNodesChange", onNodesChange); _updateOptions(_options, "onShowChange", onShowChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/live_search/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:live-search:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/loading_mask/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/loading_mask/init.jsp index 41dcb1a634e..dd9caa84c31 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/loading_mask/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/loading_mask/init.jsp @@ -85,7 +85,7 @@ _updateOptions(_options, "onStringsChange", onStringsChange); _updateOptions(_options, "onTargetChange", onTargetChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/loading_mask/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:loading-mask:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/nested_list/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/nested_list/init.jsp index 322c6ee1d1e..759d8faef4c 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/nested_list/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/nested_list/init.jsp @@ -61,7 +61,7 @@ _updateOptions(_options, "onInit", onInit); _updateOptions(_options, "onInitializedChange", onInitializedChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/nested_list/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:nested-list:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_base/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_base/init.jsp index ca2e4fc50af..32ff67ca625 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_base/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_base/init.jsp @@ -246,7 +246,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/overlay_base/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:overlay-base:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context/init.jsp index 4e1c7f7242b..df7e4a565d3 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context/init.jsp @@ -294,7 +294,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/overlay_context/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:overlay-context:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context_panel/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context_panel/init.jsp index 6a867fb8359..129ec079e8a 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context_panel/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_context_panel/init.jsp @@ -318,7 +318,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/overlay_context_panel/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:overlay-context-panel:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_mask/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_mask/init.jsp index a2366208776..7fd79f060ab 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_mask/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/overlay_mask/init.jsp @@ -270,7 +270,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/overlay_mask/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:overlay-mask:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/paginator/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/paginator/init.jsp index 599c4fabc7f..e602bbaf11e 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/paginator/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/paginator/init.jsp @@ -217,7 +217,7 @@ _updateOptions(_options, "onTotalLabelChange", onTotalLabelChange); _updateOptions(_options, "onTotalPagesChange", onTotalPagesChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/paginator/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:paginator:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/panel/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/panel/init.jsp index e43ece5aff9..1c25e76fc04 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/panel/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/panel/init.jsp @@ -216,7 +216,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/panel/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:panel:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/parse_content/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/parse_content/init.jsp index f6a8d6dca3c..703302bfe0b 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/parse_content/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/parse_content/init.jsp @@ -67,7 +67,7 @@ _updateOptions(_options, "onInit", onInit); _updateOptions(_options, "onInitializedChange", onInitializedChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/parse_content/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:parse-content:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/portal_layout/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/portal_layout/init.jsp index c9ad736a1c0..23cce7daedd 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/portal_layout/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/portal_layout/init.jsp @@ -61,7 +61,7 @@ _updateOptions(_options, "onInit", onInit); _updateOptions(_options, "onInitializedChange", onInitializedChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/portal_layout/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:portal-layout:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/progress_bar/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/progress_bar/init.jsp index 9d6074fb22b..765f58b4985 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/progress_bar/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/progress_bar/init.jsp @@ -222,7 +222,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/progress_bar/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:progress-bar:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/rating/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/rating/init.jsp index 1c5faeae0f8..ccdba4a7182 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/rating/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/rating/init.jsp @@ -252,7 +252,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/rating/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:rating:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/resize/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/resize/init.jsp index 96993630327..04d5b99a85e 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/resize/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/resize/init.jsp @@ -219,7 +219,7 @@ _updateOptions(_options, "onWrapTypesChange", onWrapTypesChange); _updateOptions(_options, "onWrapperChange", onWrapperChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/resize/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:resize:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/textboxlist/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/textboxlist/init.jsp index 9e2223766c5..31551010c74 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/textboxlist/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/textboxlist/init.jsp @@ -378,7 +378,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/textboxlist/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:textboxlist:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/thumb_rating/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/thumb_rating/init.jsp index bb937da72ef..58f5f0ae387 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/thumb_rating/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/thumb_rating/init.jsp @@ -252,7 +252,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/thumb_rating/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:thumb-rating:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/toolbar/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/toolbar/init.jsp index 8e18c0cd3cf..a1a763c748f 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/toolbar/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/toolbar/init.jsp @@ -230,7 +230,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/toolbar/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:toolbar:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tooltip/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tooltip/init.jsp index 0dfcac3c178..4f46e8482fa 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tooltip/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tooltip/init.jsp @@ -324,7 +324,7 @@ _updateOptions(_options, "onYChange", onYChange); _updateOptions(_options, "onZIndexChange", onZIndexChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/tooltip/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:tooltip:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_node_task/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_node_task/init.jsp index ec635f15d92..aebd99ab0eb 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_node_task/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_node_task/init.jsp @@ -205,7 +205,7 @@ _updateOptions(_options, "onParentNodeChange", onParentNodeChange); _updateOptions(_options, "onPrevSiblingChange", onPrevSiblingChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/tree_node_task/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:tree-node-task:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view/init.jsp index f1c341f7481..dac56f9e538 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view/init.jsp @@ -97,7 +97,7 @@ _updateOptions(_options, "onLastSelectedChange", onLastSelectedChange); _updateOptions(_options, "onTypeChange", onTypeChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/tree_view/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:tree-view:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view_dd/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view_dd/init.jsp index 7da325fdbd2..70e1b9e6ede 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view_dd/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy/tree_view_dd/init.jsp @@ -151,7 +151,7 @@ _updateOptions(_options, "onScrollDelayChange", onScrollDelayChange); _updateOptions(_options, "onTypeChange", onTypeChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy/tree_view_dd/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy:tree-view-dd:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/component/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/component/init.jsp index 54951bf02e3..43ad3faa12e 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/component/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/component/init.jsp @@ -52,7 +52,7 @@ _updateOptions(_options, "name", name); _updateOptions(_options, "options", options); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy_util/component/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy_util:component:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/script/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/script/init.jsp index a90fae84a31..8838aa1aae8 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/script/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/alloy_util/script/init.jsp @@ -42,7 +42,7 @@ _updateOptions(_options, "printBuffer", printBuffer); _updateOptions(_options, "use", use); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/alloy_util/script/init-ext.jspf" %> <%! private static final String _NAMESPACE = "alloy_util:script:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/auto_complete/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/auto_complete/init.jsp index 9143653c2b3..92acfd4b421 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/auto_complete/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/auto_complete/init.jsp @@ -380,7 +380,7 @@ _updateOptions(_options, "onRender", onRender); _updateOptions(_options, "onWidthChange", onWidthChange); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/liferay/auto_complete/init-ext.jspf" %> <%! private static final String _NAMESPACE = "liferay:auto-complete:"; diff --git a/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/test/init.jsp b/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/test/init.jsp index e12a999b765..4d68c7a1a9e 100644 --- a/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/test/init.jsp +++ b/sandbox/taglibs/alloy-web/docroot/html/taglib/liferay/test/init.jsp @@ -46,7 +46,7 @@ _updateOptions(_options, "attrIntPrimitive", attrIntPrimitive); _updateOptions(_options, "attrInteger", attrInteger); %> -<%@ include file="init-ext.jspf" %> +<%@ include file="/html/taglib/liferay/test/init-ext.jspf" %> <%! private static final String _NAMESPACE = "liferay:test:"; From 1506d3faaeae52dd89da0c2067ac9ee49af189b6 Mon Sep 17 00:00:00 2001 From: Nate Cavanaugh Date: Thu, 25 Aug 2011 15:42:54 -0700 Subject: [PATCH 132/132] AUI-497 - Form module relies on serialize method of io form, breaks other modules in 3.4 upgrade --- build/aui-base/aui-base-debug.js | 18 +++++++++--------- build/aui-base/aui-base-min.js | 6 +++--- build/aui-base/aui-base.js | 18 +++++++++--------- build/aui-form/aui-form-base-debug.js | 2 +- build/aui-form/aui-form-base-min.js | 2 +- build/aui-form/aui-form-base.js | 2 +- build/aui-form/aui-form-debug.js | 2 +- build/aui-form/aui-form-min.js | 2 +- build/aui-form/aui-form.js | 2 +- build/aui/aui-min.js | 6 +++--- build/aui/aui.js | 18 +++++++++--------- src/aui-form/build.aui-form-base.properties | 2 +- 12 files changed, 40 insertions(+), 40 deletions(-) diff --git a/build/aui-base/aui-base-debug.js b/build/aui-base/aui-base-debug.js index 18401c14d85..19b4a60f4d8 100644 --- a/build/aui-base/aui-base-debug.js +++ b/build/aui-base/aui-base-debug.js @@ -12,16 +12,16 @@ alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -36,12 +36,12 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, 'aui-form-builder': {submodules: {'aui-form-builder-field': {skinnable:true, requires:['aui-datatype','aui-form','aui-panel','aui-tooltip','io','substitute']}, 'aui-form-builder-base': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','aui-nested-list','aui-tabs','substitute']} }, use:['aui-form-builder-base','aui-form-builder-field'], skinnable:true}, - 'aui-form': {submodules: {'aui-form-validator': {requires:['aui-base','aui-event-input','selector-css3','substitute']}, 'aui-form-textfield': {requires:['aui-form-field']}, 'aui-form-textarea': {skinnable:true, requires:['aui-form-textfield']}, 'aui-form-select': {requires:['aui-form-field']}, 'aui-form-field': {requires:['aui-base','aui-component','substitute']}, 'aui-form-combobox': {skinnable:true, requires:['aui-form-textarea','aui-toolbar']}, 'aui-form-base': {requires:['aui-base','aui-data-set','aui-form-field','querystring-parse']} }, use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator'], skinnable:false}, + 'aui-form': {submodules: {'aui-form-validator': {requires:['aui-base','aui-event-input','selector-css3','substitute']}, 'aui-form-textfield': {requires:['aui-form-field']}, 'aui-form-textarea': {skinnable:true, requires:['aui-form-textfield']}, 'aui-form-select': {requires:['aui-form-field']}, 'aui-form-field': {requires:['aui-base','aui-component','substitute']}, 'aui-form-combobox': {skinnable:true, requires:['aui-form-textarea','aui-toolbar']}, 'aui-form-base': {requires:['aui-base','aui-data-set','aui-form-field','querystring-parse','io-form']} }, use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator'], skinnable:false}, 'aui-image-viewer': {submodules: {'aui-image-viewer-gallery': {skinnable:true, requires:['aui-image-viewer-base','aui-paginator','aui-toolbar']}, 'aui-image-viewer-base': {skinnable:true, requires:['anim','aui-overlay-mask','substitute']} }, use:['aui-image-viewer-base','aui-image-viewer-gallery'], skinnable:true}, 'aui-io': {submodules: {'aui-io-plugin': {requires:['aui-overlay-base','aui-parse-content','aui-io-request','aui-loading-mask']}, 'aui-io-request': {requires:['aui-base','io-base','json','plugin','querystring-stringify']} }, use:['aui-io-request','aui-io-plugin'], skinnable:false}, 'aui-live-search': {skinnable:false, requires:['aui-base']}, @@ -63,9 +63,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -902,4 +902,4 @@ A.fn = function(fn, context, args) { return wrappedFn; }; -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/build/aui-base/aui-base-min.js b/build/aui-base/aui-base-min.js index 6c5effa1d06..e48efe908e1 100644 --- a/build/aui-base/aui-base-min.js +++ b/build/aui-base/aui-base-min.js @@ -1,4 +1,4 @@ -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},skinnable:false,use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"]},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{requires:["classnamemanager"],skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; -}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; +}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse","io-form"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var R=n.Lang,x=R.isArray,o=R.isFunction,Q=R.isNumber,h=R.isString,p=R.isUndefined,t=n.Array,N=n.namespace("Lang.String"),I=t.indexOf,z="",D=n.config.doc,E="firstChild",K="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,F=/\r?\n/g,B=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,L=/<\/?[^>]+>/gi,J=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,C="&",s="<",l="...",P="end",f="#",O="middle",H="start",q="0",y="g",r="s",j=["return value ",null,";"],d=[],w=n.cached(function(i){j[1]=i;return new Function("value",j.join(z));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var M in a){if(a.hasOwnProperty(M)){var G=a[M];m[G]=M;d.push(M);}}var v=new RegExp("["+d.join(z)+"]","g"),u=/&([^;]+);/g;n.mix(N,{camelize:n.cached(function(T,S){var i=c;T=String(T);if(S){i=new RegExp(S+"([a-z])","gi");}return T.replace(i,N._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(S,i){return S.indexOf(i)!=-1;},defaultValue:function(S,i){if(p(S)||S==z){if(p(i)){i=z;}S=i;}return S;},endsWith:function(T,S){var i=(T.length-S.length);return((i>=0)&&(T.indexOf(S,i)==i));},escapeHTML:function(i){return i.replace(v,N._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(S,i){return w(i)(S);},nl2br:function(S){var i=this;return String(S).replace(F,"
                                                                                                                                        ");},padNumber:function(T,U,i){var V=i?Number(T).toFixed(i):String(T);var S=V.indexOf(".");if(S==-1){S=V.length;}return N.repeat(q,Math.max(0,U-S))+V;},pluralize:function(S,i,U){var T;if(S==1){T=i;}else{T=U||i+r;}return S+" "+T;},remove:function(U,i,T){var S=new RegExp(N.escapeRegEx(i),T?y:z);return U.replace(S,z);},removeAll:function(S,i){return N.remove(S,i,true);},repeat:function(i,S){return new Array(S+1).join(i);},round:function(S,i){S=Number(S);if(Q(i)){i=Math.pow(10,i);S=Math.round(S*i)/i;}return S;},startsWith:function(S,i){return(S.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(B,z);}return i;},stripTags:function(S){var i=this;if(S){S=String(S).replace(L,z);}return S;},substr:function(S,T,i){return String(S).substr(T,i);},uncamelize:n.cached(function(S,i){i=i||" "; -S=String(S);S=S.replace(J,"$1"+i+"$2$3");S=S.replace(b,"$1"+i+"$2");return S;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:R.trim,truncate:function(V,U,i){V=String(V);var T=V.length;if(V&&T>U){i=i||P;if(i==P){V=V.substr(0,U-l.length)+l;}else{if(i==O){var S=Math.floor(U/2);V=V.substr(0,S)+l+V.substr(T-S);}else{if(i==H){V=l+V.substr(T-U);}}}}return V;},undef:function(i){if(p(i)){i=z;}return i;},unescapeEntities:function(i){if(N.contains(i,C)){if(D&&!N.contains(i,s)){i=N._unescapeEntitiesUsingDom(i);}else{i=N.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(u,N._unescapeHTML);},_camelize:function(i,S){return S.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(S){var T=m[S];if(!T&&entity.charAt(0)==f){var i=Number(q+entity.substr(1));if(!isNaN(i)){T=String.fromCharCode(i);}}return T;},_unescapeEntitiesUsingDom:function(S){var i=N._unescapeNode;i[K]=S;if(i[g]){i[g]();}S=i.firstChild.nodeValue;i[K]=z;return S;},_unescapeNode:D.createElement("a")});n.mix(t,{remove:function(i,U,T){var S=i.slice((T||U)+1||i.length);i.length=(U<0)?(i.length+U):U;return i.push.apply(i,S);},removeItem:function(i,T){var S=I(i,T);return t.remove(i,S);}});n.mix(R,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(S){var i=this;return String(S).indexOf(n.Env._guidp)===0;}});n.fn=function(U,T,i){var S;if(!Q(U)){var W=arguments;if(W.length>2){W=t(W,2,true);}var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];return U.apply(T||U,W);};}else{var X=U;U=T;T=i;var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];T=T||U;var Y;if(X>0){Y=U.apply(T,t(arguments,0,true).slice(0,X));}else{Y=U.call(T);}return Y;};}return S;};},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); \ No newline at end of file +S=String(S);S=S.replace(J,"$1"+i+"$2$3");S=S.replace(b,"$1"+i+"$2");return S;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:R.trim,truncate:function(V,U,i){V=String(V);var T=V.length;if(V&&T>U){i=i||P;if(i==P){V=V.substr(0,U-l.length)+l;}else{if(i==O){var S=Math.floor(U/2);V=V.substr(0,S)+l+V.substr(T-S);}else{if(i==H){V=l+V.substr(T-U);}}}}return V;},undef:function(i){if(p(i)){i=z;}return i;},unescapeEntities:function(i){if(N.contains(i,C)){if(D&&!N.contains(i,s)){i=N._unescapeEntitiesUsingDom(i);}else{i=N.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(u,N._unescapeHTML);},_camelize:function(i,S){return S.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(S){var T=m[S];if(!T&&entity.charAt(0)==f){var i=Number(q+entity.substr(1));if(!isNaN(i)){T=String.fromCharCode(i);}}return T;},_unescapeEntitiesUsingDom:function(S){var i=N._unescapeNode;i[K]=S;if(i[g]){i[g]();}S=i.firstChild.nodeValue;i[K]=z;return S;},_unescapeNode:D.createElement("a")});n.mix(t,{remove:function(i,U,T){var S=i.slice((T||U)+1||i.length);i.length=(U<0)?(i.length+U):U;return i.push.apply(i,S);},removeItem:function(i,T){var S=I(i,T);return t.remove(i,S);}});n.mix(R,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(S){var i=this;return String(S).indexOf(n.Env._guidp)===0;}});n.fn=function(U,T,i){var S;if(!Q(U)){var W=arguments;if(W.length>2){W=t(W,2,true);}var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];return U.apply(T||U,W);};}else{var X=U;U=T;T=i;var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];T=T||U;var Y;if(X>0){Y=U.apply(T,t(arguments,0,true).slice(0,X));}else{Y=U.call(T);}return Y;};}return S;};},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); \ No newline at end of file diff --git a/build/aui-base/aui-base.js b/build/aui-base/aui-base.js index 18401c14d85..19b4a60f4d8 100644 --- a/build/aui-base/aui-base.js +++ b/build/aui-base/aui-base.js @@ -12,16 +12,16 @@ alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -36,12 +36,12 @@ 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, 'aui-form-builder': {submodules: {'aui-form-builder-field': {skinnable:true, requires:['aui-datatype','aui-form','aui-panel','aui-tooltip','io','substitute']}, 'aui-form-builder-base': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','aui-nested-list','aui-tabs','substitute']} }, use:['aui-form-builder-base','aui-form-builder-field'], skinnable:true}, - 'aui-form': {submodules: {'aui-form-validator': {requires:['aui-base','aui-event-input','selector-css3','substitute']}, 'aui-form-textfield': {requires:['aui-form-field']}, 'aui-form-textarea': {skinnable:true, requires:['aui-form-textfield']}, 'aui-form-select': {requires:['aui-form-field']}, 'aui-form-field': {requires:['aui-base','aui-component','substitute']}, 'aui-form-combobox': {skinnable:true, requires:['aui-form-textarea','aui-toolbar']}, 'aui-form-base': {requires:['aui-base','aui-data-set','aui-form-field','querystring-parse']} }, use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator'], skinnable:false}, + 'aui-form': {submodules: {'aui-form-validator': {requires:['aui-base','aui-event-input','selector-css3','substitute']}, 'aui-form-textfield': {requires:['aui-form-field']}, 'aui-form-textarea': {skinnable:true, requires:['aui-form-textfield']}, 'aui-form-select': {requires:['aui-form-field']}, 'aui-form-field': {requires:['aui-base','aui-component','substitute']}, 'aui-form-combobox': {skinnable:true, requires:['aui-form-textarea','aui-toolbar']}, 'aui-form-base': {requires:['aui-base','aui-data-set','aui-form-field','querystring-parse','io-form']} }, use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator'], skinnable:false}, 'aui-image-viewer': {submodules: {'aui-image-viewer-gallery': {skinnable:true, requires:['aui-image-viewer-base','aui-paginator','aui-toolbar']}, 'aui-image-viewer-base': {skinnable:true, requires:['anim','aui-overlay-mask','substitute']} }, use:['aui-image-viewer-base','aui-image-viewer-gallery'], skinnable:true}, 'aui-io': {submodules: {'aui-io-plugin': {requires:['aui-overlay-base','aui-parse-content','aui-io-request','aui-loading-mask']}, 'aui-io-request': {requires:['aui-base','io-base','json','plugin','querystring-stringify']} }, use:['aui-io-request','aui-io-plugin'], skinnable:false}, 'aui-live-search': {skinnable:false, requires:['aui-base']}, @@ -63,9 +63,9 @@ 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -902,4 +902,4 @@ A.fn = function(fn, context, args) { return wrappedFn; }; -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/build/aui-form/aui-form-base-debug.js b/build/aui-form/aui-form-base-debug.js index c67cab66faf..464ed942ce0 100644 --- a/build/aui-form/aui-form-base-debug.js +++ b/build/aui-form/aui-form-base-debug.js @@ -533,4 +533,4 @@ var Form = A.Component.create( A.Form = Form; -}, '@VERSION@' ,{requires:['aui-base','aui-data-set','aui-form-field','querystring-parse']}); +}, '@VERSION@' ,{requires:['aui-base','aui-data-set','aui-form-field','querystring-parse','io-form']}); diff --git a/build/aui-form/aui-form-base-min.js b/build/aui-form/aui-form-base-min.js index 268fdbc0b1a..010ebbc8bb3 100644 --- a/build/aui-form/aui-form-base-min.js +++ b/build/aui-form/aui-form-base-min.js @@ -1 +1 @@ -AUI.add("aui-form-base",function(b){var i=b.Lang,d=b.getClassName,c=b.IO.prototype._serialize,j="form",a=d(j),g=d("field","labels"),f=d("field","labels","inline"),e={left:[g,"left"].join("-"),right:[g,"right"].join("-"),top:[g,"top"].join("-")};var h=b.Component.create({NAME:j,ATTRS:{action:{value:location.href,getter:"_attributeGetter",setter:"_attributeSetter"},id:{},method:{value:"POST",getter:"_attributeGetter",setter:"_attributeSetter"},monitorChanges:{value:false},nativeSubmit:{value:false},values:{getter:function(m){var k=this;var l=c(k.get("contentBox").getDOM());return b.QueryString.parse(l);},setter:function(n){var k=this;var l=k._setFieldsObject;var m=k.get("monitorChanges");if(i.isArray(n)){l=k._setFieldsArray;}b.each(n,b.rbind(l,k,m));return b.Attribute.INVALID_VALUE;}},fieldValues:{getter:function(l){var k=this;var m={};k.fields.each(function(o,n,p){m[o.get("name")]=o.get("value");});return m;}},labelAlign:{value:""}},HTML_PARSER:{action:function(l){var k=this;return k._attributeGetter(null,"action");},method:function(l){var k=this;return k._attributeGetter(null,"method");}},prototype:{CONTENT_TEMPLATE:"
                                                                                                                                        ",initializer:function(){var k=this;k.fields=new b.DataSet({getKey:k._getNodeId});},renderUI:function(){var k=this;k._renderForm();},bindUI:function(){var k=this;var l=k.get("nativeSubmit");if(!l){k.get("contentBox").on("submit",k._onSubmit);}k.after("disabledChange",k._afterDisabledChange);k.after("labelAlignChange",k._afterLabelAlignChange);k.after("nativeSubmitChange",k._afterNativeSubmitChange);},syncUI:function(){var k=this;var l=k.get("contentBox");k.set("id",l.guid());k._uiSetLabelAlign(k.get("labelAlign"));},add:function(o,k){var t=this;var p=b.Array(o);var l=p.length;var r;var o=t.fields;var q=t.get("contentBox");for(var n=0;n",initializer:function(){var k=this;k.fields=new b.DataSet({getKey:k._getNodeId});},renderUI:function(){var k=this;k._renderForm();},bindUI:function(){var k=this;var l=k.get("nativeSubmit");if(!l){k.get("contentBox").on("submit",k._onSubmit);}k.after("disabledChange",k._afterDisabledChange);k.after("labelAlignChange",k._afterLabelAlignChange);k.after("nativeSubmitChange",k._afterNativeSubmitChange);},syncUI:function(){var k=this;var l=k.get("contentBox");k.set("id",l.guid());k._uiSetLabelAlign(k.get("labelAlign"));},add:function(o,k){var t=this;var p=b.Array(o);var l=p.length;var r;var o=t.fields;var q=t.get("contentBox");for(var n=0;n",initializer:function(){var k=this;k.fields=new b.DataSet({getKey:k._getNodeId});},renderUI:function(){var k=this;k._renderForm();},bindUI:function(){var k=this;var l=k.get("nativeSubmit");if(!l){k.get("contentBox").on("submit",k._onSubmit);}k.after("disabledChange",k._afterDisabledChange);k.after("labelAlignChange",k._afterLabelAlignChange);k.after("nativeSubmitChange",k._afterNativeSubmitChange);},syncUI:function(){var k=this;var l=k.get("contentBox");k.set("id",l.guid());k._uiSetLabelAlign(k.get("labelAlign"));},add:function(o,k){var t=this;var p=b.Array(o);var l=p.length;var r;var o=t.fields;var q=t.get("contentBox");for(var n=0;n",initializer:function(){var k=this;k.fields=new b.DataSet({getKey:k._getNodeId});},renderUI:function(){var k=this;k._renderForm();},bindUI:function(){var k=this;var l=k.get("nativeSubmit");if(!l){k.get("contentBox").on("submit",k._onSubmit);}k.after("disabledChange",k._afterDisabledChange);k.after("labelAlignChange",k._afterLabelAlignChange);k.after("nativeSubmitChange",k._afterNativeSubmitChange);},syncUI:function(){var k=this;var l=k.get("contentBox");k.set("id",l.guid());k._uiSetLabelAlign(k.get("labelAlign"));},add:function(o,k){var t=this;var p=b.Array(o);var l=p.length;var r;var o=t.fields;var q=t.get("contentBox");for(var n=0;n',x='',m='',r='',p='',v={};var k=s.Component.create({NAME:j,ATTRS:{readOnly:{value:false},name:{value:"",getter:function(C){var A=this;return C||A.get("id");}},disabled:{value:false,validator:h.isBoolean},id:{getter:function(D){var A=this;var C=this.get("node");if(C){D=C.get("id");}if(!D){D=s.guid();}return D;}},type:{value:"text",validator:h.isString,writeOnce:true},labelAlign:{valueFn:function(){var A=this;return A._getChoiceCss()?"left":null;}},labelNode:{valueFn:function(){var A=this;return s.Node.create(p);}},labelText:{valueFn:function(){var A=this;return A.get("labelNode").get("innerHTML");},setter:function(C){var A=this;A.get("labelNode").set("innerHTML",C);return C;}},node:{value:null,setter:function(C){var A=this;return s.one(C)||A._createFieldNode();}},fieldHint:{value:""},fieldHintNode:{value:null,setter:function(C){var A=this;return s.one(C)||A._createFieldHint();}},prevVal:{value:""},valid:{value:true,getter:function(E){var A=this;var C=A.get("validator");var D=A.get("disabled")||C(A.get("value"));return D;}},dirty:{value:false,getter:function(D){var A=this;if(A.get("disabled")){D=false;}else{var C=String(A.get("value"));var E=String(A.get("prevVal"));D=(C!==E);}return D;}},size:{},validator:{valueFn:function(){var A=this;return A.fieldValidator;},validator:h.isFunction},value:{getter:"_getNodeValue",setter:"_setNodeValue",validator:"fieldValidator"}},HTML_PARSER:{labelNode:"label",node:"input, textarea, select"},BIND_UI_ATTRS:["disabled","id","readOnly","name","size","tabIndex","type","value"],getTypeClassName:u,getField:function(E){var F=null;if(E instanceof s.Field){F=E;}else{if(E&&(h.isString(E)||E instanceof s.Node||E.nodeName)){var C=s.one(E).get("id");F=v[C];if(!F){var D=E.ancestor(".aui-field");var A=E.ancestor(".aui-field-content");F=new k({boundingBox:D,contentBox:A,node:E});}}else{if(h.isObject(E)){F=new k(E);}}}return F;},prototype:{BOUNDING_TEMPLATE:t,CONTENT_TEMPLATE:x,FIELD_TEMPLATE:r,FIELD_TYPE:"text",initializer:function(){var A=this;var C=A.get("node").guid();v[C]=A;},renderUI:function(){var A=this;A._renderField();A._renderLabel();A._renderFieldHint();},bindUI:function(){var A=this;A.after("labelAlignChange",A._afterLabelAlignChange);A.after("fieldHintChange",A._afterFieldHintChange);},syncUI:function(){var A=this;A.set("prevVal",A.get("value"));},fieldValidator:function(C){var A=this;return true;},isValid:function(){var A=this;return A.get("valid");},isDirty:function(){var A=this;return A.get("dirty");},resetValue:function(){var A=this;A.set("value",A.get("prevVal"));A.clearInvalid();},markInvalid:function(C){var A=this;A.set("fieldHint",C);A.get("fieldHintNode").show();A.get("boundingBox").addClass(d);},clearInvalid:function(){var A=this;A.reset("fieldHint");if(!A.get("fieldHint")){A.get("fieldHintNode").hide();}A.get("boundingBox").removeClass(d);},validate:function(){var A=this;var C=A.get("valid");if(C){A.clearInvalid();}return C;},_afterFieldHintChange:function(C){var A=this;A._uiSetFieldHint(C.newVal,C.prevVal);},_afterLabelAlignChange:function(C){var A=this;A._uiSetLabelAlign(C.newVal,C.prevVal);},_createFieldHint:function(){var A=this;var C=s.Node.create(m);A.get("contentBox").append(C);return C;},_createFieldNode:function(){var A=this;var C=A.FIELD_TEMPLATE;A.FIELD_TEMPLATE=s.substitute(C,{cssClass:e,id:A.get("id"),name:A.get("name"),type:A.get("type")});return s.Node.create(A.FIELD_TEMPLATE);},_getChoiceCss:function(){var A=this;var C=A.get("type");return z[C];},_getNodeValue:function(){var A=this;return A.get("node").val();},_renderField:function(){var A=this;var G=A.get("node");G.val(A.get("value"));var E=A.get("boundingBox");var D=A.get("contentBox");var F=A.get("type");var C=[u(F)];var H=A._getChoiceCss();if(H){C.push(f);C.push(H);}E.addClass(C.join(o));G.addClass(u(F,"input"));if(!D.contains(G)){if(G.inDoc()){G.placeBefore(E);D.appendChild(G);}else{D.appendChild(G);}}E.removeAttribute("tabIndex");},_renderFieldHint:function(){var A=this;var C=A.get("fieldHint");if(C){A._uiSetFieldHint(C);}},_renderLabel:function(){var J=this;var D=J.get("labelText");if(D!==false){var E=J.get("node");var A=E.guid();D=J.get("labelText");var G=J.get("labelNode");G.addClass(l(J.name,"label"));G.setAttribute("for",A);G.set("innerHTML",D);J._uiSetLabelAlign(J.get("labelAlign"));var H=J.get("contentBox");var C=J.get("labelAlign");var I=J.get("type").toLowerCase();var K=n.test(C);var F="prepend";if(K&&J._getChoiceCss()){F="append";}H[F](G);}},_setNodeValue:function(C){var A=this;A._uiSetValue(C);return C;},_uiSetDisabled:function(D){var A=this;var C=A.get("node");if(D){C.setAttribute("disabled",D);}else{C.removeAttribute("disabled");}},_uiSetFieldHint:function(C,D){var A=this;A.get("fieldHintNode").set("innerHTML",C);},_uiSetId:function(C,D){var A=this;A.get("node").set("id",C);},_uiSetLabelAlign:function(D,F){var A=this;var C=A.get("boundingBox");C.replaceClass(w[F],w[D]);var E="removeClass";if(n.test(D)){E="addClass";}C[E](y);},_uiSetName:function(C,D){var A=this;A.get("node").setAttribute("name",C);},_uiSetReadOnly:function(C,D){var A=this;A.get("node").setAttribute("readOnly",C);},_uiSetSize:function(C,D){var A=this;A.get("node").setAttribute("size",C);},_uiSetTabIndex:function(C,D){var A=this;A.get("node").setAttribute("tabIndex",C);},_uiSetValue:function(C,D){var A=this;A.get("node").val(C);},_requireAddAttr:false}});s.Field=k;},"@VERSION@",{requires:["aui-base","aui-component","substitute"]}); AUI.add("aui-form-select",function(b){var d=b.Lang,e=d.isArray,h=d.isObject,c=b.getClassName,i="select",f=c(i),g='';var a=b.Component.create({NAME:i,ATTRS:{multiple:{value:false},options:{value:[],setter:"_setOptions"},selectedIndex:{value:-1}},UI_ATTRS:["multiple","options","selectedIndex"],EXTENDS:b.Field,HTML_PARSER:{node:"select"},prototype:{FIELD_TEMPLATE:g,FIELD_TYPE:i,_setOptions:function(k){var j=this;if(!e(k)){k=[k];}return k;},_uiSetMultiple:function(k){var j=this;j.get("node").attr("multiple",k);},_uiSetOptions:function(q){var r=this;var l=[];var n;var o;var p;var k=0;for(var m=0;m'+o+"");}var j=r.get("node");j.all("option").remove(true);j.append(l.join(""));r.set("selectedIndex",k);},_uiSetSelectedIndex:function(k){var j=this;if(k>-1){j.get("node").attr("selectedIndex",k);}}}});b.Select=a;},"@VERSION@",{requires:["aui-form-field"]});AUI.add("aui-form-textarea",function(b){var e=b.Lang,c=b.getClassName,k="textarea",h=c(k),d=[c(k,"height","monitor"),c("field","text","input"),c("helper","hidden","accessible")].join(" "),l="  ",i=" \n ",a='
                                                                                                                                        ',j="
                                                                                                                                        ",g='';var f=b.Component.create({NAME:k,ATTRS:{autoSize:{value:true},height:{value:"auto"},maxHeight:{value:1000,setter:"_setAutoDimension"},minHeight:{value:45,setter:"_setAutoDimension"},width:{value:"auto",setter:"_setAutoDimension"}},HTML_PARSER:{node:"textarea"},EXTENDS:b.Textfield,prototype:{FIELD_TEMPLATE:g,renderUI:function(){var m=this;f.superclass.renderUI.call(m);if(m.get("autoSize")){m._renderHeightMonitor();}},bindUI:function(){var m=this;f.superclass.bindUI.call(m);if(m.get("autoSize")){m.get("node").on("keyup",m._onKeyup,m);}m.after("adjustSize",m._uiAutoSize);m.after("heightChange",m._afterHeightChange);m.after("widthChange",m._afterWidthChange);},syncUI:function(){var n=this;f.superclass.syncUI.call(n);n._setAutoDimension(n.get("minHeight"),"minHeight");n._setAutoDimension(n.get("maxHeight"),"maxHeight");var o=n.get("width");var m=n.get("minHeight");n._setAutoDimension(o,"width");n._uiSetDim("height",m);n._uiSetDim("width",o);},_afterHeightChange:function(n){var m=this;m._uiSetDim("height",n.newVal,n.prevVal);},_afterWidthChange:function(n){var m=this;m._uiSetDim("width",n.newVal,n.prevVal);},_onKeyup:function(n){var m=this;m.fire("adjustSize");},_renderHeightMonitor:function(){var n=this;var p=b.Node.create(a+j);var r=n.get("node");b.getBody().append(p);n._heightMonitor=p;var m=r.getComputedStyle("fontFamily");var s=r.getComputedStyle("fontSize");var o=r.getComputedStyle("fontWeight");var q=r.getComputedStyle("fontSize");r.setStyle("height",n.get("minHeight")+"px");p.setStyles({fontFamily:m,fontSize:s,fontWeight:o});if("outerHTML" in p.getDOM()){n._updateContent=n._updateOuterContent;}else{n._updateContent=n._updateInnerContent;}},_setAutoDimension:function(o,n){var m=this;m["_"+n]=o;},_uiAutoSize:function(){var n=this;var r=n.get("node");var o=n._heightMonitor;var s=n._minHeight;var q=n._maxHeight;var p=r.val();var t=document.createTextNode(p);o.set("innerHTML","");o.appendChild(t);o.setStyle("width",r.getComputedStyle("width"));p=o.get("innerHTML");if(!p.length){p=l;}else{p+=i;}n._updateContent(p);var m=Math.max(o.get("offsetHeight"),s);m=Math.min(m,q);if(m!=n._lastHeight){n._lastHeight=m;n._uiSetDim("height",m);}},_uiSetDim:function(o,n){var m=this;var p=m.get("node");if(e.isNumber(n)){n+="px";}p.setStyle(o,n);},_updateInnerContent:function(n){var m=this;return m._heightMonitor.set("innerHTML",n);},_updateOuterContent:function(n){var m=this;n=n.replace(/\n/g,"
                                                                                                                                        ");return m._updateInnerContent(n);}}});b.Textarea=f;},"@VERSION@",{requires:["aui-form-textfield"],skinnable:true});AUI.add("aui-form-textfield",function(a){var e=a.Lang,b=a.getClassName,f="textfield",c=b(f);var d=a.Component.create({NAME:f,ATTRS:{selectOnFocus:{value:false},allowOnly:{value:null,validator:function(h){var g=this;return h instanceof RegExp;}},defaultValue:{value:""},validator:{value:null}},EXTENDS:a.Field,prototype:{bindUI:function(){var g=this;d.superclass.bindUI.call(g);var i=g.get("node");if(g.get("allowOnly")){i.on("keypress",g._filterInputText,g);}if(g.get("selectOnFocus")){i.on("focus",g._selectInputText,g);}var h=g.get("defaultValue");if(h){i.on("blur",g._checkDefaultValue,g);i.on("focus",g._checkDefaultValue,g);}},syncUI:function(){var g=this;var i=g.get("value");if(!i){var h=g.get("defaultValue");g.set("value",g.get("defaultValue"));}d.superclass.syncUI.apply(g,arguments);},_filterInputText:function(j){var g=this;var h=g.get("allowOnly");var i=String.fromCharCode(j.charCode);if(!h.test(i)){j.halt();}},_checkDefaultValue:function(m){var g=this;var i=g.get("defaultValue");var l=g.get("node");var k=e.trim(g.get("value"));var j=m.type;var h=(j=="focus"||j=="focusin");if(i){var n=k;if(h&&(k==i)){n="";}else{if(!h&&!k){n=i;}}g.set("value",n);}},_selectInputText:function(h){var g=this;h.currentTarget.select();}}});a.Textfield=d;},"@VERSION@",{requires:["aui-form-field"]});AUI.add("aui-form-validator",function(t){var l=t.Lang,j=t.Object,S=l.isBoolean,H=l.isDate,y=j.isEmpty,u=l.isFunction,ac=l.isObject,o=l.isString,a=l.trim,J="-",G=".",q="",p="form-validator",C="Invalid Date",M="|",ak="blurHandlers",g="checkbox",d="container",al="containerErrorClass",W="containerValidClass",K="contentBox",U="error",an="errorClass",am="extractCssPrefix",ap="extractRules",s="field",ai="fieldContainer",aa="fieldStrings",e="inputHandlers",ab="message",b="messageContainer",T="name",Z="radio",r="rules",ad="selectText",ah="showAllMessages",z="showMessages",Q="stack",m="stackErrorContainer",v="type",ag="valid",E="validateOnBlur",Y="validateOnInput",X="validClass",n="blur",R="errorField",ae="input",I="reset",B="submit",F="submitError",i="validateField",D="validField",h=t.getClassName,ao=h(p,U),x=h(p,U,d),f=h(p,ag),af=h(p,ag,d),N=h(s),c=h(p,ab),w=h(p,Q,U),aj='
                                                                                                                                        ',V='',k=[ap,E,Y]; YUI.AUI.defaults.FormValidator={STRINGS:{DEFAULT:"Please fix this field.",acceptFiles:"Please enter a value with a valid extension ({0}).",alpha:"Please enter only apha characters.",alphanum:"Please enter only aphanumeric characters.",date:"Please enter a valid date.",digits:"Please enter only digits.",email:"Please enter a valid email address.",equalTo:"Please enter the same value again.",max:"Please enter a value less than or equal to {0}.",maxLength:"Please enter no more than {0} characters.",min:"Please enter a value greater than or equal to {0}.",minLength:"Please enter at least {0} characters.",number:"Please enter a valid number.",range:"Please enter a value between {0} and {1}.",rangeLength:"Please enter a value between {0} and {1} characters long.",required:"This field is required.",url:"Please enter a valid URL."},REGEX:{alpha:/^[a-z_]+$/i,alphanum:/^\w+$/,digits:/^\d+$/,number:/^[+\-]?(\d+([.,]\d+)?)+$/,email:/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,url:/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i},RULES:{acceptFiles:function(aq,O,ar){var L=null;if(o(ar)){var A=ar.split(/,\s*|\b\s*/).join(M);L=new RegExp("[.]("+A+")$","i");}return L&&L.test(aq);},date:function(O,L,aq){var A=new Date(O);return(H(A)&&(A!=C)&&!isNaN(A));},equalTo:function(O,L,aq){var A=t.one(aq);return A&&(a(A.val())==O);},max:function(L,A,O){return(P.toNumber(L)<=O);},maxLength:function(L,A,O){return(L.length<=O);},min:function(L,A,O){return(P.toNumber(L)>=O);},minLength:function(L,A,O){return(L.length>=O);},range:function(O,L,aq){var A=P.toNumber(O);return(A>=aq[0])&&(A<=aq[1]);},rangeLength:function(O,L,aq){var A=O.length;return(A>=aq[0])&&(A<=aq[1]);},required:function(ar,O,at){var A=this;if(t.FormValidator.isCheckable(O)){var L=O.get(T);var aq=A.getElementsByName(L);return(aq.filter(":checked").size()>0);}else{return !!ar;}}}};var P=t.Component.create({NAME:p,ATTRS:{containerErrorClass:{value:x,validator:o},containerValidClass:{value:af,validator:o},errorClass:{value:ao,validator:o},extractCssPrefix:{value:N+J,validator:o},extractRules:{value:true,validator:S},fieldContainer:{value:G+N},fieldStrings:{value:{},validator:ac},messageContainer:{getter:function(A){return t.Node.create(A).clone();},value:aj},render:{value:true},strings:{valueFn:function(){return YUI.AUI.defaults.FormValidator.STRINGS;}},rules:{validator:ac,value:{}},selectText:{value:true,validator:S},showMessages:{value:true,validator:S},showAllMessages:{value:false,validator:S},stackErrorContainer:{getter:function(A){return t.Node.create(A).clone();},value:V},validateOnBlur:{value:true,validator:S},validateOnInput:{value:false,validator:S},validClass:{value:f,validator:o}},isCheckable:function(L){var A=L.get(v).toLowerCase();return(A==g||A==Z);},toNumber:function(A){return parseFloat(A)||0;},EXTENDS:t.Widget,UI_ATTRS:k,prototype:{CONTENT_TEMPLATE:null,UI_EVENTS:{},initializer:function(){var A=this;A.blurHandlers=[];A.errors={};A.inputHandlers=[];A.stackErrorContainers={};},bindUI:function(){var A=this;A._createEvents();A._bindValidation();},addFieldError:function(aq,O){var A=this;var ar=A.errors;var L=aq.get(T);if(!ar[L]){ar[L]=[];}ar[L].push(O);},clearFieldError:function(L){var A=this;delete A.errors[L.get(T)];},eachRule:function(L){var A=this;t.each(A.get(r),function(O,aq){if(u(L)){L.apply(A,[O,aq]);}});},findFieldContainer:function(L){var A=this;var O=A.get(ai);if(O){return L.ancestor(O);}},focusInvalidField:function(){var A=this;var L=A.get(K);var O=L.one(G+ao);if(O){if(A.get(ad)){O.selectText();}O.focus();}},getElementsByName:function(L){var A=this;return A.get(K).all('[name="'+L+'"]');},getField:function(L){var A=this;if(o(L)){L=A.getElementsByName(L).item(0);}return L;},getFieldError:function(L){var A=this;return A.errors[L.get(T)];},getFieldStackErrorContainer:function(aq){var A=this;var L=aq.get(T);var O=A.stackErrorContainers;if(!O[L]){O[L]=A.get(m);}return O[L];},getFieldErrorMessage:function(at,ar){var au=this;var aw=at.get(T);var L=au.get(aa)[aw]||{};var A=au.get(r)[aw]; diff --git a/build/aui-form/aui-form.js b/build/aui-form/aui-form.js index d5a76e8ecd7..9bea129a80a 100644 --- a/build/aui-form/aui-form.js +++ b/build/aui-form/aui-form.js @@ -533,7 +533,7 @@ var Form = A.Component.create( A.Form = Form; -}, '@VERSION@' ,{requires:['aui-base','aui-data-set','aui-form-field','querystring-parse']}); +}, '@VERSION@' ,{requires:['aui-base','aui-data-set','aui-form-field','querystring-parse','io-form']}); AUI.add('aui-form-combobox', function(A) { var Lang = A.Lang, diff --git a/build/aui/aui-min.js b/build/aui/aui-min.js index f758f091f9c..75c8fdcec74 100644 --- a/build/aui/aui-min.js +++ b/build/aui/aui-min.js @@ -10,7 +10,7 @@ if(U){C[W]=true;X=U.details.requires;V=U.details.use;}else{if(!O._loaded[q][W]){ }};b.Queue=t;YUI.Env._loaderQueue=YUI.Env._loaderQueue||new t();var m="__",p=Object.prototype.hasOwnProperty,l=b.Lang.isObject;b.cached=function(x,v,w){v||(v={});return function(y){var z=arguments.length>1?Array.prototype.join.call(arguments,m):y.toString();if(!(z in v)||(w&&v[z]==w)){v[z]=x.apply(x,arguments);}return v[z];};};b.merge=function(){var x=arguments,y=0,w=x.length,v={};for(;y-1;};g.each=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){w.call(z||b,y[v],v,y);}}return b;};g.some=function(y,w,z,x){var v;for(v in y){if(x||h(y,v)){if(w.call(z||b,y[v],v,y)){return true;}}}return false;};g.getValue=function(z,y){if(!b.Lang.isObject(z)){return u;}var w,x=b.Array(y),v=x.length;for(w=0;z!==u&&w=0){for(v=0;w!==u&&v0){J=O.url.shift();if(N&&!O.timer){O.timer=setTimeout(function(){D(Q);},N);}if(L===s){M=E(J,P,K);}else{M=k(J,P,K);}O.nodes.push(M);c(L,M,Q,J);G(M,Q,P);if(!l[L]){f(Q,J);}if(O.async){i(Q);}}},n=function(){if(g){return;}g=true;var J,K;for(J in z){if(z.hasOwnProperty(J)){K=z[J];if(K.autopurge&&K.finished){d(K.tId);delete z[J];}}}g=false;},j=function(K,J,L){L=L||{};var O="q"+(r++),N=L.purgethreshold||e.Get.PURGE_THRESH,M;if(r%N===0){n();}M=z[O]=e.merge(L);M.tId=O;M.type=K;M.url=J;M.finished=false;M.nodes=[];M.win=M.win||e.config.win;M.context=M.context||M;M.autopurge=(q in M)?M.autopurge:(K===s)?true:false;M.attributes=M.attributes||{};M.attributes.charset=L.charset||M.attributes.charset||A;if(C in M&&K===s){M.attributes.async=M.async;}M.url=(p.isString(M.url))?[M.url]:M.url;if(!M.url[0]){M.url.shift();}M.remaining=M.url.length;i(O);return{tId:O};};e.Get={PURGE_THRESH:20,abort:function(K){var L=(p.isString(K))?K:K.tId,J=z[L];if(J){J.aborted=true;}},script:function(J,K){return j(s,J,K);},css:function(J,K){return j("css",J,K);}};},"3.4.0",{requires:["yui-base"]});YUI.add("features",function(b){var c={};b.mix(b.namespace("Features"),{tests:c,add:function(d,e,f){c[d]=c[d]||{};c[d][e]=f;},all:function(e,f){var g=c[e],d=[];if(g){b.Object.each(g,function(i,h){d.push(h+":"+(b.Features.test(e,h,f)?1:0));});}return(d.length)?d.join(";"):"";},test:function(e,g,f){f=f||[];var d,i,k,j=c[e],h=j&&j[g];if(!h){}else{d=h.result;if(b.Lang.isUndefined(d)){i=h.ua;if(i){d=(b.UA[i]);}k=h.test;if(k&&((!i)||d)){d=k.apply(b,f);}h.result=d;}}return d;}});var a=b.Features.add;a("load","0",{"name":"graphics-svg","test":function(e){var d=e.config.doc;return(d&&d.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"));},"trigger":"graphics"});a("load","1",{"name":"event-base-ie","test":function(e){var d=e.config.doc&&e.config.doc.implementation;return(d&&(!d.hasFeature("Events","2.0")));},"trigger":"node-base"});a("load","2",{"name":"graphics-vml","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(!d||!d.getContext||!d.getContext("2d")));},"trigger":"graphics"});a("load","3",{"name":"dom-style-ie","test":function(j){var h=j.Features.test,i=j.Features.add,f=j.config.win,g=j.config.doc,d="documentElement",e=false;i("style","computedStyle",{test:function(){return f&&"getComputedStyle" in f;}});i("style","opacity",{test:function(){return g&&"opacity" in g[d].style;}});e=(!h("style","opacity")&&!h("style","computedStyle"));return e;},"trigger":"dom-style"});a("load","4",{"name":"transition-timer","test":function(g){var f=g.config.doc,e=(f)?f.documentElement:null,d=true;if(e&&e.style){d=!("MozTransition" in e.style||"WebkitTransition" in e.style);}return d;},"trigger":"transition"});a("load","5",{"name":"widget-base-ie","trigger":"widget-base","ua":"ie"});a("load","6",{"name":"autocomplete-list-keys","test":function(d){return !(d.UA.ios||d.UA.android);},"trigger":"autocomplete-list"});a("load","7",{"name":"graphics-canvas-default","test":function(f){var e=f.config.doc,d=e&&e.createElement("canvas");return(e&&!e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")&&(d&&d.getContext&&d.getContext("2d")));},"trigger":"graphics"});a("load","8",{"name":"dd-gestures","test":function(d){return(d.config.win&&("ontouchstart" in d.config.win&&!d.UA.chrome));},"trigger":"dd-drag"});a("load","9",{"name":"selector-css2","test":function(f){var e=f.config.doc,d=e&&!("querySelectorAll" in e);return d; },"trigger":"selector"});a("load","10",{"name":"history-hash-ie","test":function(e){var d=e.config.doc&&e.config.doc.documentMode;return e.UA.ie&&(!("onhashchange" in e.config.win)||!d||d<8);},"trigger":"history-hash"});},"3.4.0",{requires:["yui-base"]});YUI.add("intl-base",function(b){var a=/[, ]/;b.mix(b.namespace("Intl"),{lookupBestLang:function(g,h){var f,j,c,e;function d(l){var k;for(k=0;k0){c=d(j);if(c){return c;}else{e=j.lastIndexOf("-");if(e>=0){j=j.substring(0,e);if(e>=2&&j.charAt(e-2)==="-"){j=j.substring(0,e-2);}}else{break;}}}}return"";}});},"3.4.0",{requires:["yui-base"]});YUI.add("yui-log",function(d){var c=d,e="yui:log",a="undefined",b={debug:1,info:1,warn:1,error:1};c.log=function(j,s,g,q){var l,p,n,k,o,i=c,r=i.config,h=(i.fire)?i:YUI.Env.globalEvents;if(r.debug){if(g){p=r.logExclude;n=r.logInclude;if(n&&!(g in n)){l=1;}else{if(n&&(g in n)){l=!n[g];}else{if(p&&(g in p)){l=p[g];}}}}if(!l){if(r.useBrowserConsole){k=(g)?g+": "+j:j;if(i.Lang.isFunction(r.logFn)){r.logFn.call(i,j,s,g);}else{if(typeof console!=a&&console.log){o=(s&&console[s]&&(s in b))?s:"log";console[o](k);}else{if(typeof opera!=a){opera.postError(k);}}}}if(h&&!q){if(h==i&&(!h.getEvent(e))){h.publish(e,{broadcast:2});}h.fire(e,{msg:j,cat:s,src:g});}}}return i;};c.message=function(){return c.log.apply(c,arguments);};},"3.4.0",{requires:["yui-base"]});YUI.add("yui-later",function(b){var a=[];b.later=function(j,f,k,g,h){j=j||0;g=(!b.Lang.isUndefined(g))?b.Array(g):g;var i=false,c=(f&&b.Lang.isString(k))?f[k]:k,d=function(){if(!i){if(!c.apply){c(g[0],g[1],g[2],g[3]);}else{c.apply(f,g||a);}}},e=(h)?setInterval(d,j):setTimeout(d,j);return{id:e,interval:h,cancel:function(){i=true;if(this.interval){clearInterval(e);}else{clearTimeout(e);}}};};b.Lang.later=b.later;},"3.4.0",{requires:["yui-base"]});YUI.add("yui",function(a){},"3.4.0",{use:["yui-base","get","features","intl-base","yui-log","yui-later"]}); -(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},skinnable:false,use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"]},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{requires:["classnamemanager"],skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; -}}},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],skinnable:false,plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{type:"css",path:"aui-skin-base/css/aui-skin-base.css"},"aui-skin-classic-all":{type:"css",path:"aui-skin-classic/css/aui-skin-classic-all.css"},"aui-skin-classic":{requires:["aui-skin-base"],path:"aui-skin-classic/css/aui-skin-classic.css",type:"css"},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; +(function(){YUI.AUI_config={filter:"raw",io:{method:"GET"},combine:false,groups:{alloy:{combine:false,modules:{"aui-ace-editor":{submodules:{"aui-ace-editor-theme-textmate":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-groovy":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-twilight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-vim":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-clojure":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore_soft":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scala":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-csharp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-pastel_on_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-crimson_editor":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-cobalt":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-eclipse":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds_midnight":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scss":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-clouds":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-c_cpp":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-kr_theme":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-scad":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-perl":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-textile":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-json":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_light":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-mono_industrial":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-merbivore":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-svg":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-java":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-vibrant_ink":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-dawn":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-python":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-keybinding-emacs":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-javascript":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-monokai":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ruby":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-worker-css":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-coffee":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-html":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-idle_fingers":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-ocaml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-theme-solarized_dark":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-php":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-mode-xml":{skinnable:false,requires:["aui-ace-editor-base"]},"aui-ace-editor-base":{skinnable:false,requires:["aui-component","aui-node"]}},use:["aui-ace-editor-base","aui-ace-editor-mode-xml","aui-ace-editor-mode-php","aui-ace-editor-theme-solarized_dark","aui-ace-editor-mode-ocaml","aui-ace-editor-theme-idle_fingers","aui-ace-editor-mode-html","aui-ace-editor-mode-coffee","aui-ace-editor-worker-css","aui-ace-editor-mode-ruby","aui-ace-editor-theme-monokai","aui-ace-editor-mode-javascript","aui-ace-editor-keybinding-emacs","aui-ace-editor-mode-python","aui-ace-editor-theme-dawn","aui-ace-editor-theme-vibrant_ink","aui-ace-editor-mode-java","aui-ace-editor-mode-svg","aui-ace-editor-theme-merbivore","aui-ace-editor-theme-mono_industrial","aui-ace-editor-theme-solarized_light","aui-ace-editor-mode-json","aui-ace-editor-mode-textile","aui-ace-editor-mode-perl","aui-ace-editor-mode-scad","aui-ace-editor-theme-kr_theme","aui-ace-editor-mode-c_cpp","aui-ace-editor-theme-clouds","aui-ace-editor-mode-scss","aui-ace-editor-worker-coffee","aui-ace-editor-theme-clouds_midnight","aui-ace-editor-theme-eclipse","aui-ace-editor-theme-cobalt","aui-ace-editor-theme-crimson_editor","aui-ace-editor-worker-javascript","aui-ace-editor-theme-pastel_on_dark","aui-ace-editor-mode-css","aui-ace-editor-mode-csharp","aui-ace-editor-mode-scala","aui-ace-editor-theme-merbivore_soft","aui-ace-editor-mode-clojure","aui-ace-editor-keybinding-vim","aui-ace-editor-theme-twilight","aui-ace-editor-mode-groovy","aui-ace-editor-theme-textmate"],skinnable:false},"aui-aria":{skinnable:false,requires:["aui-base","plugin"]},"aui-autocomplete":{skinnable:true,requires:["aui-base","aui-overlay-base","datasource","dataschema","aui-form-combobox"]},"aui-base":{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]},"aui-button-item":{skinnable:true,requires:["aui-base","aui-state-interaction","widget-child"]},"aui-calendar":{skinnable:true,requires:["aui-base","aui-datatype","widget-stdmod","datatype-date","widget-locale"]},"aui-carousel":{skinnable:true,requires:["aui-base","aui-template","anim"]},"aui-char-counter":{skinnable:false,requires:["aui-base","aui-event-input"]},"aui-chart":{skinnable:false,requires:["datasource","aui-swf","json"]},"aui-classnamemanager":{skinnable:false,condition:{trigger:"classnamemanager",test:function(){return true; +}},requires:["classnamemanager"]},"aui-color-picker":{submodules:{"aui-color-picker-grid-plugin":{skinnable:true,requires:["aui-color-picker","plugin"]},"aui-color-picker-base":{skinnable:true,requires:["aui-overlay-context","dd-drag","slider","substitute","aui-button-item","aui-color-util","aui-form-base","aui-panel"]}},use:["aui-color-picker-base","aui-color-picker-grid-plugin"],skinnable:true},"aui-color-util":{skinnable:false},"aui-component":{skinnable:false,requires:["widget","aui-classnamemanager"]},"aui-data-browser":{skinnable:true,requires:["aui-base","aui-datasource-control-base","aui-input-text-control","aui-tree","aui-panel"]},"aui-data-set":{skinnable:false,requires:["oop","collection","base"]},"aui-datasource-control":{submodules:{"aui-input-text-control":{requires:["aui-base","aui-datasource-control-base","aui-form-combobox"]},"aui-datasource-control-base":{requires:["aui-base","datasource","dataschema"]}},use:["aui-datasource-control-base","aui-input-text-control"],skinnable:true},"aui-datatable":{submodules:{"aui-datatable-selection":{skinnable:true,requires:["aui-datatable-base"]},"aui-datatable-edit":{skinnable:true,requires:["aui-calendar","aui-datatable-events","aui-toolbar","aui-form-validator","overlay","sortable"]},"aui-datatable-events":{requires:["aui-datatable-base"]},"aui-datatable-base":{requires:["aui-base","datatable","plugin"]}},use:["aui-datatable-base","aui-datatable-events","aui-datatable-edit","aui-datatable-selection"],skinnable:false},"aui-datatype":{skinnable:false,requires:["aui-base"]},"aui-datepicker":{submodules:{"aui-datepicker-select":{skinnable:true,requires:["aui-datepicker-base","aui-button-item"]},"aui-datepicker-base":{skinnable:true,requires:["aui-calendar","aui-overlay-context"]}},use:["aui-datepicker-base","aui-datepicker-select"],skinnable:true},"aui-debounce":{skinnable:false},"aui-delayed-task":{skinnable:false},"aui-diagram-builder":{submodules:{"aui-diagram-builder-connector":{skinnable:true,requires:["aui-base","arraylist-add","arraylist-filter","json","graphics","dd"]},"aui-diagram-builder-impl":{skinnable:true,requires:["aui-diagram-builder-base","overlay"]},"aui-diagram-builder-base":{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]}},use:["aui-diagram-builder-base","aui-diagram-builder-impl","aui-diagram-builder-connector"],skinnable:true},"aui-dialog-iframe":{skinnable:true,requires:["aui-base","aui-loading-mask","aui-resize-iframe","plugin"]},"aui-dialog":{skinnable:true,requires:["aui-panel","dd-constrain","aui-button-item","aui-overlay-manager","aui-overlay-mask","aui-io-plugin","aui-resize"]},"aui-drawing":{submodules:{"aui-drawing-fonts":{requires:["aui-drawing-base"]},"aui-drawing-drag":{requires:["aui-drawing-base","event-gestures"]},"aui-drawing-animate":{requires:["aui-drawing-base"]},"aui-drawing-base":{requires:["aui-base","aui-color-util","substitute"]}},skinnable:false,use:["aui-drawing-base","aui-drawing-animate","aui-drawing-drag","aui-drawing-fonts"],plugins:{"aui-drawing-vml":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.vml;}}},"aui-drawing-svg":{condition:{trigger:"aui-drawing-base",test:function(a){return a.UA.svg;}}},"aui-drawing-safari":{condition:{trigger:"aui-drawing-base",test:function(a){var b=a.UA;return b.safari&&(b.version.major<4||(b.iphone||b.ipad));}}}}},"aui-editable":{skinnable:true,requires:["aui-base","aui-form-combobox"]},"aui-editor":{submodules:{"aui-editor-creole-plugin":{requires:["aui-base","editor-base","aui-editor-html-creole","aui-editor-creole-parser"]},"aui-editor-creole-parser":{requires:["aui-base"]},"aui-editor-bbcode-plugin":{requires:["aui-base","editor-base"]},"aui-editor-toolbar-plugin":{requires:["aui-base","aui-button-item","aui-color-picker","aui-editor-menu-plugin","aui-editor-tools-plugin","aui-form-select","aui-overlay-context-panel","aui-panel","aui-toolbar","createlink-base","editor-lists","editor-base","plugin"]},"aui-editor-menu-plugin":{requires:["aui-base","editor-base","aui-overlay-context","aui-panel","aui-editor-tools-plugin"]},"aui-editor-tools-plugin":{requires:["aui-base","editor-base"]},"aui-editor-base":{requires:["aui-base","editor-base","aui-editor-toolbar-plugin"]}},use:["aui-editor-base","aui-editor-tools-plugin","aui-editor-menu-plugin","aui-editor-toolbar-plugin","aui-editor-bbcode-plugin","aui-editor-creole-parser","aui-editor-creole-plugin"],skinnable:true},"aui-event":{submodules:{"aui-event-input":{requires:["aui-base"]},"aui-event-base":{requires:["event"]}},use:["aui-event-base","aui-event-input"],skinnable:false},"aui-form-builder":{submodules:{"aui-form-builder-field":{skinnable:true,requires:["aui-datatype","aui-form","aui-panel","aui-tooltip","io","substitute"]},"aui-form-builder-base":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","aui-nested-list","aui-tabs","substitute"]}},use:["aui-form-builder-base","aui-form-builder-field"],skinnable:true},"aui-form":{submodules:{"aui-form-validator":{requires:["aui-base","aui-event-input","selector-css3","substitute"]},"aui-form-textfield":{requires:["aui-form-field"]},"aui-form-textarea":{skinnable:true,requires:["aui-form-textfield"]},"aui-form-select":{requires:["aui-form-field"]},"aui-form-field":{requires:["aui-base","aui-component","substitute"]},"aui-form-combobox":{skinnable:true,requires:["aui-form-textarea","aui-toolbar"]},"aui-form-base":{requires:["aui-base","aui-data-set","aui-form-field","querystring-parse","io-form"]}},use:["aui-form-base","aui-form-combobox","aui-form-field","aui-form-select","aui-form-textarea","aui-form-textfield","aui-form-validator"],skinnable:false},"aui-image-viewer":{submodules:{"aui-image-viewer-gallery":{skinnable:true,requires:["aui-image-viewer-base","aui-paginator","aui-toolbar"]},"aui-image-viewer-base":{skinnable:true,requires:["anim","aui-overlay-mask","substitute"]}},use:["aui-image-viewer-base","aui-image-viewer-gallery"],skinnable:true},"aui-io":{submodules:{"aui-io-plugin":{requires:["aui-overlay-base","aui-parse-content","aui-io-request","aui-loading-mask"]},"aui-io-request":{requires:["aui-base","io-base","json","plugin","querystring-stringify"]}},use:["aui-io-request","aui-io-plugin"],skinnable:false},"aui-live-search":{skinnable:false,requires:["aui-base"]},"aui-loading-mask":{skinnable:true,requires:["aui-overlay-mask","plugin","substitute"]},"aui-messaging":{skinnable:false,requires:["aui-base","aui-task-manager","querystring"]},"aui-nested-list":{skinnable:false,requires:["aui-base","dd-drag","dd-drop","dd-proxy"]},"aui-node":{submodules:{"aui-node-html5-print":{requires:["aui-node-html5"]},"aui-node-html5":{requires:["collection","aui-base"]},"aui-node-base":{requires:["node","aui-classnamemanager"]}},use:["aui-node-base","aui-node-html5","aui-node-html5-print"],skinnable:false},"aui-overlay":{submodules:{"aui-overlay-mask":{skinnable:true,requires:["aui-base","aui-overlay-base","event-resize"]},"aui-overlay-manager":{requires:["aui-base","aui-overlay-base","overlay","plugin"]},"aui-overlay-context-panel":{skinnable:true,requires:["aui-overlay-context","anim"]},"aui-overlay-context":{requires:["aui-overlay-manager","aui-delayed-task","aui-aria"]},"aui-overlay-base":{requires:["aui-component","widget-position","widget-stack","widget-position-align","widget-position-constrain","widget-stdmod"]}},use:["aui-overlay-base","aui-overlay-context","aui-overlay-context-panel","aui-overlay-manager","aui-overlay-mask"],skinnable:true},"aui-paginator":{skinnable:true,requires:["aui-base","substitute"]},"aui-panel":{skinnable:true,requires:["aui-component","widget-stdmod","aui-toolbar","aui-aria"]},"aui-parse-content":{skinnable:false,requires:["async-queue","aui-base","plugin"]},"aui-portal-layout":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","dd-proxy"]},"aui-progressbar":{skinnable:true,requires:["aui-base","aui-aria"]},"aui-property-list":{skinnable:true,requires:["aui-datatable"]},"aui-rating":{skinnable:true,requires:["aui-base"]},"aui-resize-iframe":{skinnable:true,requires:["aui-base","aui-task-manager","plugin"]},"aui-resize":{submodules:{"aui-resize-constrain":{skinnable:false,requires:["aui-resize-base","dd-constrain","plugin"]},"aui-resize-base":{skinnable:true,requires:["aui-base","dd-drag","dd-delegate","dd-drop","substitute"]}},use:["aui-resize-base","aui-resize-constrain"],skinnable:true},"aui-scheduler":{submodules:{"aui-scheduler-calendar":{skinnable:true,requires:["aui-scheduler-event"]},"aui-scheduler-event":{skinnable:true,requires:["aui-base","aui-color-util","aui-datatype","aui-overlay-context-panel","substitute"]},"aui-scheduler-view":{skinnable:true,requires:["aui-scheduler-event","aui-calendar","aui-button-item","substitute","dd-drag","dd-delegate","dd-drop","dd-constrain"]},"aui-scheduler-base":{skinnable:true,requires:["aui-scheduler-view","datasource"]}},use:["aui-scheduler-base","aui-scheduler-view","aui-scheduler-event","aui-scheduler-calendar"],skinnable:true},"aui-scroller":{skinnable:true,requires:["aui-base","aui-simple-anim"]},"aui-selector":{skinnable:false,requires:["selector-css3"]},"aui-simple-anim":{skinnable:false,requires:["aui-base"]},"aui-skin-base":{path:"aui-skin-base/css/aui-skin-base.css",type:"css"},"aui-skin-classic-all":{path:"aui-skin-classic/css/aui-skin-classic-all.css",type:"css"},"aui-skin-classic":{type:"css",path:"aui-skin-classic/css/aui-skin-classic.css",requires:["aui-skin-base"]},"aui-sortable":{skinnable:true,requires:["aui-base","dd-constrain","dd-drag","dd-drop","dd-proxy"]},"aui-state-interaction":{skinnable:false,requires:["aui-base","plugin"]},"aui-swf":{skinnable:false,requires:["aui-base","querystring-stringify-simple"]},"aui-tabs":{submodules:{"aui-tabs-menu-plugin":{requires:["aui-component","aui-state-interaction","aui-tabs-base","aui-overlay-context","plugin"]},"aui-tabs-base":{skinnable:true,requires:["aui-component","aui-state-interaction"]}},use:["aui-tabs-base","aui-tabs-menu-plugin"],skinnable:true},"aui-task-manager":{skinnable:false,requires:["aui-base"]},"aui-template":{skinnable:false,requires:["aui-base"]},"aui-text":{submodules:{"aui-text-unicode":{skinnable:false,requires:["aui-text-data-unicode"]},"aui-text-data-unicode":{skinnable:false,requires:["text"]}},use:["aui-text-data-unicode","aui-text-unicode"],skinnable:false},"aui-textboxlist":{skinnable:true,requires:["anim-node-plugin","aui-autocomplete","node-focusmanager"]},"aui-toolbar":{skinnable:true,requires:["aui-base","aui-button-item","aui-data-set","widget-parent"]},"aui-tooltip":{skinnable:true,requires:["aui-overlay-context-panel"]},"aui-tpl-snippets":{submodules:{"aui-tpl-snippets-checkbox":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-textarea":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-input":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-select":{skinnable:false,requires:["aui-tpl-snippets-base"]},"aui-tpl-snippets-base":{skinnable:false,requires:["aui-template"]}},use:["aui-tpl-snippets-base","aui-tpl-snippets-select","aui-tpl-snippets-input","aui-tpl-snippets-textarea","aui-tpl-snippets-checkbox"],skinnable:false},"aui-tree":{submodules:{"aui-tree-view":{skinnable:true,requires:["aui-tree-node","dd-drag","dd-drop","dd-proxy"]},"aui-tree-node":{skinnable:false,requires:["aui-tree-data","aui-io","json","querystring-stringify"]},"aui-tree-data":{skinnable:false,requires:["aui-base"]}},use:["aui-tree-data","aui-tree-node","aui-tree-view"],skinnable:true},"aui-video":{skinnable:true,requires:["aui-base","querystring-stringify-simple"]},"aui-viewport":{skinnable:false,requires:["aui-base"]}}}}}; })();(function(){YUI.AUI_config=YUI.AUI_config||{};var g=YUI.AUI_config;YUI.prototype.ready=function(){var e=this;var m=Array.prototype.slice;var k=m.call(arguments,0),j=k.length-1;var l=k[j];var i=m.call(arguments,0,j);i.push("event");i.push(function(n){var o=arguments;n.on("domready",function(){l.apply(this,o);});});e.use.apply(e,i);};var b;if(typeof A!="undefined"){b=A;}else{b=YUI(g);}var f=function(e){e.Env._guidp=["aui",e.version,e.Env._yidx].join("_").replace(/\./g,"_");};f(b);var h=b.config;b.config=b.merge(h,YUI.AUI_config);YUI.AUI=function(k){var e=this;if(k||e instanceof a){var i=b.Array(arguments);i.unshift(b.config);var j=YUI.apply(b.config.win,i);a._uaExtensions(j);a._guidExtensions(j);return j;}return b;};var a=YUI.AUI;a._guidExtensions=f;window.AUI=a;var c=b.UA;b.mix(a,YUI,true,null,2);b.mix(a,{__version:"@VERSION",defaults:g,html5shiv:function(l){var e=this;var k=l||document;if(c.ie&&k&&k.createElement){var j=a.HTML5_ELEMENTS,i=j.length;while(i--){k.createElement(j[i]);}}return l;},setDefaults:function(i){var e=this;b.mix(a.defaults,i,true,null,0,true);b.mix(b.config,i,true,null,0,true);},HTML5_ELEMENTS:"abbr,article,aside,audio,canvas,command,datalist,details,figure,figcaption,footer,header,hgroup,keygen,mark,meter,nav,output,progress,section,source,summary,time,video".split(",")},true);a.html5shiv();(function(){var k=/\./g;var e=function(o){var n=0;return parseFloat(o.replace(k,function(){return(n++==1)?"":".";}));};var j=["0","0"];var i=function(o,p){var n=(p.match(o)||j)[1];return e(n);};var m={windows:"win",macintosh:"mac"};var l=["ie","opera","chrome","aol","camino","firefox","flock","mozilla","netscape","icab","konqueror","safari"];a._uaExtensions=function(F){var x=navigator;var L=x.userAgent;var D=F.UA;var q=D.os;var u={aol:0,camino:0,firefox:0,flock:0,mozilla:0,netscape:0,icab:0,konqueror:0,safari:0,browser:0,win:q=="windows",mac:q=="macintosh",rhino:q=="rhino",agent:L};if(D.ie){u.aol=i(/America Online Browser ([^\s]*);/,L);}else{if(D.gecko){u.netscape=i(/(Netscape|Navigator)\/([^\s]*)/,L);u.flock=i(/Flock\/([^\s]*)/,L);u.camino=i(/Camino\/([^\s]*)/,L);u.firefox=i(/Firefox\/([^\s]*)/,L);}else{if(D.webkit){u.safari=i(/Version\/([^\s]*) Safari/,L);}else{u.icab=i(/iCab(?:\/|\s)?([^\s]*)/,L);u.konqueror=i(/Konqueror\/([^\s]*)/,L);}}}if(!u.win&&!u.mac){var z=/Linux/.test(L);var p=/Solaris|SunOS/.test(L);if(z){D.os="linux";u.linux=z;}else{if(p){D.os="sun";u.sun=p;}}}var M=F.config,o=M.doc;u.touch=("ontouchstart" in o);F.mix(D,u);var G=[];var w=0;var K;var s;var I;var v;var y={string:"",major:w};var H=l.length;while(H--){K=l[H];s=D[K];if(s>0){w=parseInt(s,10);I=K+w;v=(K+s);if(String(s).indexOf(".")>-1){v=v.replace(/\.(\d).*/,"-$1");}else{v+="-0";}G.push(K,I,v);y.string=K+"";y.major=w;}}D.version=y;D.renderer="";var J=o.documentElement;D.dir=J.getAttribute("dir")||"ltr";if(D.ie){D.renderer="trident";}else{if(D.gecko){D.renderer="gecko";}else{if(D.webkit){D.renderer="webkit";}else{if(D.opera){D.renderer="presto";}}}}F.UA=D;var t=[D.renderer,D.dir,"js"].concat(G);var B=m[D.os]||D.os;t.push(B);if(D.mobile){t.push("mobile");}if(D.secure){t.push("secure");}if(D.touch){t.push("touch");}D.selectors=t.join(" ");if(!J._yuid){J.className+=" "+D.selectors;var n,E;n=!(E=!!(M.win.SVGAngle||o.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")));if(n){var C=o.createElement("div");var r;C.innerHTML='';r=C.firstChild;r.style.behavior="url(#default#VML)";if(!(r&&typeof r.adj=="object")){n=false;}C=null;}a._VML=n;a._SVG=E;F.stamp(J);}D.vml=a._VML;D.svg=a._SVG;};})();a._uaExtensions(b);if(c.ie&&c.version.major<=6){try{document.execCommand("BackgroundImageCache",false,true);}catch(d){}}})();AUI.add("aui-base",function(n){var R=n.Lang,x=R.isArray,o=R.isFunction,Q=R.isNumber,h=R.isString,p=R.isUndefined,t=n.Array,N=n.namespace("Lang.String"),I=t.indexOf,z="",D=n.config.doc,E="firstChild",K="innerHTML",k="nodeValue",g="normalize",c=/-([a-z])/gi,e=/([.*+?^$(){}|[\]\/\\])/g,F=/\r?\n/g,B=/(?:)((\n|\r|.)*?)(?:<\/script>)/gi,L=/<\/?[^>]+>/gi,J=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,b=/([a-zA-Z][a-zA-Z])([A-Z])([a-z])/g,C="&",s="<",l="...",P="end",f="#",O="middle",H="start",q="0",y="g",r="s",j=["return value ",null,";"],d=[],w=n.cached(function(i){j[1]=i;return new Function("value",j.join(z));}),a={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`"},m={};for(var M in a){if(a.hasOwnProperty(M)){var G=a[M];m[G]=M;d.push(M);}}var v=new RegExp("["+d.join(z)+"]","g"),u=/&([^;]+);/g;n.mix(N,{camelize:n.cached(function(T,S){var i=c;T=String(T);if(S){i=new RegExp(S+"([a-z])","gi");}return T.replace(i,N._camelize);}),capitalize:n.cached(function(i){if(i){i=String(i);i=i.charAt(0).toUpperCase()+i.substr(1).toLowerCase();}return i;}),contains:function(S,i){return S.indexOf(i)!=-1;},defaultValue:function(S,i){if(p(S)||S==z){if(p(i)){i=z;}S=i;}return S;},endsWith:function(T,S){var i=(T.length-S.length);return((i>=0)&&(T.indexOf(S,i)==i));},escapeHTML:function(i){return i.replace(v,N._escapeHTML);},escapeRegEx:function(i){return i.replace(e,"\\$1");},math:function(S,i){return w(i)(S);},nl2br:function(S){var i=this;return String(S).replace(F,"
                                                                                                                                        ");},padNumber:function(T,U,i){var V=i?Number(T).toFixed(i):String(T);var S=V.indexOf(".");if(S==-1){S=V.length;}return N.repeat(q,Math.max(0,U-S))+V;},pluralize:function(S,i,U){var T;if(S==1){T=i;}else{T=U||i+r;}return S+" "+T;},remove:function(U,i,T){var S=new RegExp(N.escapeRegEx(i),T?y:z);return U.replace(S,z);},removeAll:function(S,i){return N.remove(S,i,true);},repeat:function(i,S){return new Array(S+1).join(i);},round:function(S,i){S=Number(S);if(Q(i)){i=Math.pow(10,i);S=Math.round(S*i)/i;}return S;},startsWith:function(S,i){return(S.lastIndexOf(i,0)==0);},stripScripts:function(i){if(i){i=String(i).replace(B,z);}return i;},stripTags:function(S){var i=this;if(S){S=String(S).replace(L,z);}return S;},substr:function(S,T,i){return String(S).substr(T,i);},uncamelize:n.cached(function(S,i){i=i||" "; -S=String(S);S=S.replace(J,"$1"+i+"$2$3");S=S.replace(b,"$1"+i+"$2");return S;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:R.trim,truncate:function(V,U,i){V=String(V);var T=V.length;if(V&&T>U){i=i||P;if(i==P){V=V.substr(0,U-l.length)+l;}else{if(i==O){var S=Math.floor(U/2);V=V.substr(0,S)+l+V.substr(T-S);}else{if(i==H){V=l+V.substr(T-U);}}}}return V;},undef:function(i){if(p(i)){i=z;}return i;},unescapeEntities:function(i){if(N.contains(i,C)){if(D&&!N.contains(i,s)){i=N._unescapeEntitiesUsingDom(i);}else{i=N.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(u,N._unescapeHTML);},_camelize:function(i,S){return S.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(S){var T=m[S];if(!T&&entity.charAt(0)==f){var i=Number(q+entity.substr(1));if(!isNaN(i)){T=String.fromCharCode(i);}}return T;},_unescapeEntitiesUsingDom:function(S){var i=N._unescapeNode;i[K]=S;if(i[g]){i[g]();}S=i.firstChild.nodeValue;i[K]=z;return S;},_unescapeNode:D.createElement("a")});n.mix(t,{remove:function(i,U,T){var S=i.slice((T||U)+1||i.length);i.length=(U<0)?(i.length+U):U;return i.push.apply(i,S);},removeItem:function(i,T){var S=I(i,T);return t.remove(i,S);}});n.mix(R,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(S){var i=this;return String(S).indexOf(n.Env._guidp)===0;}});n.fn=function(U,T,i){var S;if(!Q(U)){var W=arguments;if(W.length>2){W=t(W,2,true);}var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];return U.apply(T||U,W);};}else{var X=U;U=T;T=i;var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];T=T||U;var Y;if(X>0){Y=U.apply(T,t(arguments,0,true).slice(0,X));}else{Y=U.call(T);}return Y;};}return S;};},"@VERSION@",{requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"],skinnable:false}); +S=String(S);S=S.replace(J,"$1"+i+"$2$3");S=S.replace(b,"$1"+i+"$2");return S;}),toLowerCase:function(i){return String(i).toLowerCase();},toUpperCase:function(i){return String(i).toUpperCase();},trim:R.trim,truncate:function(V,U,i){V=String(V);var T=V.length;if(V&&T>U){i=i||P;if(i==P){V=V.substr(0,U-l.length)+l;}else{if(i==O){var S=Math.floor(U/2);V=V.substr(0,S)+l+V.substr(T-S);}else{if(i==H){V=l+V.substr(T-U);}}}}return V;},undef:function(i){if(p(i)){i=z;}return i;},unescapeEntities:function(i){if(N.contains(i,C)){if(D&&!N.contains(i,s)){i=N._unescapeEntitiesUsingDom(i);}else{i=N.unescapeHTML(i);}}return i;},unescapeHTML:function(i){return i.replace(u,N._unescapeHTML);},_camelize:function(i,S){return S.toUpperCase();},_escapeHTML:function(i){return a[i];},_unescapeHTML:function(S){var T=m[S];if(!T&&entity.charAt(0)==f){var i=Number(q+entity.substr(1));if(!isNaN(i)){T=String.fromCharCode(i);}}return T;},_unescapeEntitiesUsingDom:function(S){var i=N._unescapeNode;i[K]=S;if(i[g]){i[g]();}S=i.firstChild.nodeValue;i[K]=z;return S;},_unescapeNode:D.createElement("a")});n.mix(t,{remove:function(i,U,T){var S=i.slice((T||U)+1||i.length);i.length=(U<0)?(i.length+U):U;return i.push.apply(i,S);},removeItem:function(i,T){var S=I(i,T);return t.remove(i,S);}});n.mix(R,{emptyFn:function(){},emptyFnFalse:function(){return false;},emptyFnTrue:function(){return true;},isGuid:function(S){var i=this;return String(S).indexOf(n.Env._guidp)===0;}});n.fn=function(U,T,i){var S;if(!Q(U)){var W=arguments;if(W.length>2){W=t(W,2,true);}var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];return U.apply(T||U,W);};}else{var X=U;U=T;T=i;var V=(h(U)&&T);S=function(){U=(!V)?U:T[U];T=T||U;var Y;if(X>0){Y=U.apply(T,t(arguments,0,true).slice(0,X));}else{Y=U.call(T);}return Y;};}return S;};},"@VERSION@",{skinnable:false,requires:["aui-node","aui-component","aui-debounce","aui-delayed-task","aui-selector","aui-event-base","oop","yui-throttle"]}); diff --git a/build/aui/aui.js b/build/aui/aui.js index 7b13ee6e090..420406f2633 100644 --- a/build/aui/aui.js +++ b/build/aui/aui.js @@ -4726,16 +4726,16 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b alloy: { combine: false, modules: { - 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, skinnable:false, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate']}, + 'aui-ace-editor': {submodules: {'aui-ace-editor-theme-textmate': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-groovy': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-twilight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-vim': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-clojure': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore_soft': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scala': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-csharp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-pastel_on_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-crimson_editor': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-cobalt': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-eclipse': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds_midnight': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scss': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-clouds': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-c_cpp': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-kr_theme': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-scad': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-perl': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-textile': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-json': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_light': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-mono_industrial': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-merbivore': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-svg': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-java': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-vibrant_ink': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-dawn': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-python': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-keybinding-emacs': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-javascript': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-monokai': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ruby': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-worker-css': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-coffee': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-html': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-idle_fingers': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-ocaml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-theme-solarized_dark': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-php': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-mode-xml': {skinnable:false, requires:['aui-ace-editor-base']}, 'aui-ace-editor-base': {skinnable:false, requires:['aui-component', 'aui-node']} }, use:['aui-ace-editor-base','aui-ace-editor-mode-xml','aui-ace-editor-mode-php','aui-ace-editor-theme-solarized_dark','aui-ace-editor-mode-ocaml','aui-ace-editor-theme-idle_fingers','aui-ace-editor-mode-html','aui-ace-editor-mode-coffee','aui-ace-editor-worker-css','aui-ace-editor-mode-ruby','aui-ace-editor-theme-monokai','aui-ace-editor-mode-javascript','aui-ace-editor-keybinding-emacs','aui-ace-editor-mode-python','aui-ace-editor-theme-dawn','aui-ace-editor-theme-vibrant_ink','aui-ace-editor-mode-java','aui-ace-editor-mode-svg','aui-ace-editor-theme-merbivore','aui-ace-editor-theme-mono_industrial','aui-ace-editor-theme-solarized_light','aui-ace-editor-mode-json','aui-ace-editor-mode-textile','aui-ace-editor-mode-perl','aui-ace-editor-mode-scad','aui-ace-editor-theme-kr_theme','aui-ace-editor-mode-c_cpp','aui-ace-editor-theme-clouds','aui-ace-editor-mode-scss','aui-ace-editor-worker-coffee','aui-ace-editor-theme-clouds_midnight','aui-ace-editor-theme-eclipse','aui-ace-editor-theme-cobalt','aui-ace-editor-theme-crimson_editor','aui-ace-editor-worker-javascript','aui-ace-editor-theme-pastel_on_dark','aui-ace-editor-mode-css','aui-ace-editor-mode-csharp','aui-ace-editor-mode-scala','aui-ace-editor-theme-merbivore_soft','aui-ace-editor-mode-clojure','aui-ace-editor-keybinding-vim','aui-ace-editor-theme-twilight','aui-ace-editor-mode-groovy','aui-ace-editor-theme-textmate'], skinnable:false}, 'aui-aria': {skinnable:false, requires:['aui-base','plugin']}, 'aui-autocomplete': {skinnable:true, requires:['aui-base','aui-overlay-base','datasource','dataschema','aui-form-combobox']}, - 'aui-base': {requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}, + 'aui-base': {skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}, 'aui-button-item': {skinnable:true, requires:['aui-base','aui-state-interaction','widget-child']}, 'aui-calendar': {skinnable:true, requires:['aui-base','aui-datatype','widget-stdmod','datatype-date','widget-locale']}, 'aui-carousel': {skinnable:true, requires:['aui-base','aui-template','anim']}, 'aui-char-counter': {skinnable:false, requires:['aui-base','aui-event-input']}, 'aui-chart': {skinnable:false, requires:['datasource','aui-swf','json']}, - 'aui-classnamemanager': {requires:['classnamemanager'], skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}}, + 'aui-classnamemanager': {skinnable:false, condition: {trigger: 'classnamemanager', test: function(){return true;}}, requires:['classnamemanager']}, 'aui-color-picker': {submodules: {'aui-color-picker-grid-plugin': {skinnable:true, requires:['aui-color-picker','plugin']}, 'aui-color-picker-base': {skinnable:true, requires:['aui-overlay-context','dd-drag','slider','substitute','aui-button-item','aui-color-util','aui-form-base','aui-panel']} }, use:['aui-color-picker-base','aui-color-picker-grid-plugin'], skinnable:true}, 'aui-color-util': {skinnable:false}, 'aui-component': {skinnable:false, requires:['widget','aui-classnamemanager']}, @@ -4750,12 +4750,12 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-diagram-builder': {submodules: {'aui-diagram-builder-connector': {skinnable:true, requires:['aui-base','arraylist-add','arraylist-filter','json','graphics','dd']}, 'aui-diagram-builder-impl': {skinnable:true, requires:['aui-diagram-builder-base','overlay']}, 'aui-diagram-builder-base': {skinnable:true, requires:['aui-tabs','aui-property-list','collection','dd']} }, use:['aui-diagram-builder-base','aui-diagram-builder-impl','aui-diagram-builder-connector'], skinnable:true}, 'aui-dialog-iframe': {skinnable:true, requires:['aui-base','aui-loading-mask','aui-resize-iframe','plugin']}, 'aui-dialog': {skinnable:true, requires:['aui-panel','dd-constrain','aui-button-item','aui-overlay-manager','aui-overlay-mask','aui-io-plugin','aui-resize']}, - 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], skinnable:false, plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, + 'aui-drawing': {submodules: {'aui-drawing-fonts': {requires:['aui-drawing-base']}, 'aui-drawing-drag': {requires:['aui-drawing-base','event-gestures']}, 'aui-drawing-animate': {requires:['aui-drawing-base']}, 'aui-drawing-base': {requires:['aui-base','aui-color-util','substitute']} }, skinnable:false, use:['aui-drawing-base', 'aui-drawing-animate', 'aui-drawing-drag', 'aui-drawing-fonts'], plugins:{'aui-drawing-vml': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.vml;}}},'aui-drawing-svg': {condition: {trigger: 'aui-drawing-base',test: function(A){return A.UA.svg;}}}, 'aui-drawing-safari': {condition: {trigger: 'aui-drawing-base',test: function(A){var UA = A.UA; return UA.safari && (UA.version.major < 4 || (UA.iphone || UA.ipad));}}}}}, 'aui-editable': {skinnable:true, requires:['aui-base','aui-form-combobox']}, 'aui-editor': {submodules: {'aui-editor-creole-plugin': {requires:['aui-base','editor-base','aui-editor-html-creole','aui-editor-creole-parser']}, 'aui-editor-creole-parser': {requires:['aui-base']}, 'aui-editor-bbcode-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-toolbar-plugin': {requires:['aui-base','aui-button-item','aui-color-picker','aui-editor-menu-plugin','aui-editor-tools-plugin','aui-form-select','aui-overlay-context-panel','aui-panel','aui-toolbar','createlink-base','editor-lists','editor-base','plugin']}, 'aui-editor-menu-plugin': {requires:['aui-base','editor-base','aui-overlay-context','aui-panel','aui-editor-tools-plugin']}, 'aui-editor-tools-plugin': {requires:['aui-base','editor-base']}, 'aui-editor-base': {requires:['aui-base','editor-base','aui-editor-toolbar-plugin']} }, use:['aui-editor-base','aui-editor-tools-plugin','aui-editor-menu-plugin','aui-editor-toolbar-plugin','aui-editor-bbcode-plugin','aui-editor-creole-parser','aui-editor-creole-plugin'], skinnable:true}, 'aui-event': {submodules: {'aui-event-input': {requires:['aui-base']}, 'aui-event-base': {requires:['event']} }, use:['aui-event-base','aui-event-input'], skinnable:false}, 'aui-form-builder': {submodules: {'aui-form-builder-field': {skinnable:true, requires:['aui-datatype','aui-form','aui-panel','aui-tooltip','io','substitute']}, 'aui-form-builder-base': {skinnable:true, requires:['aui-base','aui-button-item','aui-data-set','aui-nested-list','aui-tabs','substitute']} }, use:['aui-form-builder-base','aui-form-builder-field'], skinnable:true}, - 'aui-form': {submodules: {'aui-form-validator': {requires:['aui-base','aui-event-input','selector-css3','substitute']}, 'aui-form-textfield': {requires:['aui-form-field']}, 'aui-form-textarea': {skinnable:true, requires:['aui-form-textfield']}, 'aui-form-select': {requires:['aui-form-field']}, 'aui-form-field': {requires:['aui-base','aui-component','substitute']}, 'aui-form-combobox': {skinnable:true, requires:['aui-form-textarea','aui-toolbar']}, 'aui-form-base': {requires:['aui-base','aui-data-set','aui-form-field','querystring-parse']} }, use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator'], skinnable:false}, + 'aui-form': {submodules: {'aui-form-validator': {requires:['aui-base','aui-event-input','selector-css3','substitute']}, 'aui-form-textfield': {requires:['aui-form-field']}, 'aui-form-textarea': {skinnable:true, requires:['aui-form-textfield']}, 'aui-form-select': {requires:['aui-form-field']}, 'aui-form-field': {requires:['aui-base','aui-component','substitute']}, 'aui-form-combobox': {skinnable:true, requires:['aui-form-textarea','aui-toolbar']}, 'aui-form-base': {requires:['aui-base','aui-data-set','aui-form-field','querystring-parse','io-form']} }, use:['aui-form-base','aui-form-combobox','aui-form-field','aui-form-select','aui-form-textarea','aui-form-textfield','aui-form-validator'], skinnable:false}, 'aui-image-viewer': {submodules: {'aui-image-viewer-gallery': {skinnable:true, requires:['aui-image-viewer-base','aui-paginator','aui-toolbar']}, 'aui-image-viewer-base': {skinnable:true, requires:['anim','aui-overlay-mask','substitute']} }, use:['aui-image-viewer-base','aui-image-viewer-gallery'], skinnable:true}, 'aui-io': {submodules: {'aui-io-plugin': {requires:['aui-overlay-base','aui-parse-content','aui-io-request','aui-loading-mask']}, 'aui-io-request': {requires:['aui-base','io-base','json','plugin','querystring-stringify']} }, use:['aui-io-request','aui-io-plugin'], skinnable:false}, 'aui-live-search': {skinnable:false, requires:['aui-base']}, @@ -4777,9 +4777,9 @@ YUI.add('yui', function(Y){}, '3.4.0' ,{use:['yui-base','get','features','intl-b 'aui-scroller': {skinnable:true, requires:['aui-base','aui-simple-anim']}, 'aui-selector': {skinnable:false, requires:['selector-css3']}, 'aui-simple-anim': {skinnable:false, requires:['aui-base']}, - 'aui-skin-base': {type: 'css', path: 'aui-skin-base/css/aui-skin-base.css'}, - 'aui-skin-classic-all': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic-all.css'}, - 'aui-skin-classic': {requires:['aui-skin-base'], path: 'aui-skin-classic/css/aui-skin-classic.css', type: 'css'}, + 'aui-skin-base': {path: 'aui-skin-base/css/aui-skin-base.css', type: 'css'}, + 'aui-skin-classic-all': {path: 'aui-skin-classic/css/aui-skin-classic-all.css', type: 'css'}, + 'aui-skin-classic': {type: 'css', path: 'aui-skin-classic/css/aui-skin-classic.css', requires:['aui-skin-base']}, 'aui-sortable': {skinnable:true, requires:['aui-base','dd-constrain','dd-drag','dd-drop','dd-proxy']}, 'aui-state-interaction': {skinnable:false, requires:['aui-base','plugin']}, 'aui-swf': {skinnable:false, requires:['aui-base','querystring-stringify-simple']}, @@ -5616,4 +5616,4 @@ A.fn = function(fn, context, args) { return wrappedFn; }; -}, '@VERSION@' ,{requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle'], skinnable:false}); +}, '@VERSION@' ,{skinnable:false, requires:['aui-node','aui-component','aui-debounce','aui-delayed-task','aui-selector','aui-event-base','oop','yui-throttle']}); diff --git a/src/aui-form/build.aui-form-base.properties b/src/aui-form/build.aui-form-base.properties index 2569c61d3ec..9997279d925 100644 --- a/src/aui-form/build.aui-form-base.properties +++ b/src/aui-form/build.aui-form-base.properties @@ -6,4 +6,4 @@ global.build.component=${srcdir}/build/aui-form component=aui-form-base component.jsfiles=aui-form-base.js -component.requires=aui-base,aui-data-set,aui-form-field,querystring-parse \ No newline at end of file +component.requires=aui-base,aui-data-set,aui-form-field,querystring-parse,io-form \ No newline at end of file